Files
docker-voltronic-homeassistant/sources/inverter-cli/test_usb0.py
T
Pi Developer 547537e761
Build Docker Image for Raspberry Pi / build-and-push (push) Failing after 1m15s
Implementazione supporto multi-inverter paralleli e fix comunicazione MQTT
- Aggiunto supporto lettura inverter paralleli tramite comandi QPGS0-QPGS9
- Implementato discovery automatico inverter con filtro duplicati e serial invalidi
- Risolti bug critici comunicazione seriale:
  * Fix buffer ExecuteCmd da 7 a 200 bytes
  * Supporto terminatori CR e LF
  * Modalità blocking con delay 500ms
  * Lettura byte-by-byte per terminatore affidabile
- Implementato script MQTT per pubblicazione dati multi-inverter:
  * mqtt-push-parallel.sh con topic separati per ogni inverter
  * Fix autenticazione MQTT con username/password
  * Aggiunto flag retain (-r) per persistenza dati
- Creato test-loop-parallel.sh per simulazione completa container
- Aggiornata documentazione con compatibilità MKS IV e guida test loop
- Aggiornati profili debug VS Code per bash e parallel discovery
- Configurazione MQTT completa con server reale (192.168.1.37:1883)

Sistema testato e funzionante con 2 inverter Voltronic Axpert MKS IV
2026-01-31 16:15:26 +01:00

27 lines
676 B
Python

import serial
import time
port = '/dev/ttyUSB0'
ser = serial.Serial(port, 2400, bytesize=8, parity='N', stopbits=1, timeout=2)
for cmd_str in ['QPIGS', 'QMOD', 'QGMN']:
# CRC calcolati
crcs = {'QPIGS': 0xB7A9, 'QMOD': 0x49C1, 'QGMN': 0x4928}
cmd = cmd_str.encode()
crc = crcs[cmd_str]
cmd_full = cmd + bytes([crc >> 8, crc & 0xFF, 0x0D])
print(f"\n=== {cmd_str} ===")
print(f"Invio: {cmd_full.hex(' ')}")
ser.write(cmd_full)
time.sleep(0.5)
resp = ser.read(200)
print(f"Ricevuto ({len(resp)} bytes): {resp.hex(' ') if resp else '(nessuna risposta)'}")
if resp:
print(f"ASCII: {resp}")
ser.close()