Files
docker-voltronic-homeassistant/documentation/MKS_IV_COMPATIBILITY.md
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

6.7 KiB

Report Compatibilità: Voltronic Axpert MKS IV

🔬 UPDATE 31/01/2026: Test comandi alternativi completati! Vedere MKS_IV_TEST_RESULTS.md per report dettagliato con 22 comandi testati.

Risultato chiave: Comando QGMN funziona e identifica modello come "054"


📋 Informazioni Inverter

  • Modello: Voltronic Axpert MKS IV
  • Model Code: 054 (identificato via QGMN)
  • Protocollo: RS232 (compatibile hardware-wise)
  • Serie: MKS (Modern King Series)
  • Compatibilità software: PROTOCOLLO PROPRIETARIO (solo 1/22 comandi funzionanti)

Verifica Configurazione Attuale

1. Baudrate

Status: CORRETTO

  • Configurato: 2400 baud
  • Test eseguito: Provati 2400, 9600, 19200, 38400, 115200
  • Risultato: L'inverter risponde su 2400 baud (riceve NAK ma comunica)

2. Protocollo Seriale

Status: CORRETTO

  • Data bits: 8
  • Parity: None
  • Stop bits: 1
  • Flow control: None
  • Configurazione: 2400 8N1 ✓

3. Codice Sorgente

Status: COMPATIBILE

Il codice è basato su:

  • Skyboo's implementation per Axpert MEX
  • Protocol standard Voltronic/Axpert/MPPSolar
  • Supporta comandi: QPIGS, QPIRI, QMOD, QPIWS

File rilevanti:

  • sources/inverter-cli/main.cpp - Entry point
  • sources/inverter-cli/inverter.cpp - Comunicazione seriale (2400 baud, 8N1)
  • config/inverter.conf - Buffer sizes configurati

Problema Rilevato

Sintomo: NAK Response

L'inverter risponde con (NAKs (Negative Acknowledge) a tutti i comandi.

Hex ricevuto: 28 4E 41 4B 73 73 0d = (NAKss\r

Possibili Cause Specifiche per MKS IV

1. 🔴 Protocollo P18 vs P17

Il MKS IV potrebbe usare il protocollo P18 (più recente) invece del P17.

Differenze P18:

  • Comandi leggermente diversi
  • CRC calculation potrebbe essere diverso
  • Alcuni comandi potrebbero avere prefissi diversi

Test da fare:

# Prova questi comandi P18:
QPI    # Protocol ID
QVFW   # Main CPU Firmware version  
QVFW2  # Another CPU firmware version

2. 🔴 Device Type Setting

Alcuni MKS IV richiedono inizializzazione o handshake specifico prima di accettare comandi.

Possibili soluzioni:

  • Inviare comando di inizializzazione
  • Attendere più tempo dopo apertura porta
  • Inviare sequenza di "wake up"

3. 🔴 RS232 vs USB-HID

Il MKS IV potrebbe preferire comunicazione USB-HID invece di RS232 emulato.

Test:

ls -la /dev/hidraw*  # Verifica se esiste device HID

Nel tuo caso: Nessun /dev/hidraw trovato

4. 🔴 Cable Type

Il MKS IV potrebbe richiedere:

  • Cavo RS232 diretto (non USB-to-Serial converter)
  • Cavo speciale Voltronic con pin-out specifico

Pin-out standard RS232:

Pin 2: RX (Receive)
Pin 3: TX (Transmit)
Pin 5: GND (Ground)

Alcuni inverter richiedono anche DTR/RTS.

🔧 Soluzioni Suggerite

Soluzione 1: Test con Comandi P18

Modifica sources/inverter-cli/main.cpp per provare comandi diversi:

// In main.cpp, test raw commands:
// inverter_poller -r QPI
// inverter_poller -r QVFW
// inverter_poller -r QPIGS

Soluzione 2: Controllo Cavo/Connessione

  1. Verifica LED inverter: Alcuni MKS IV hanno LED che indicano comunicazione attiva
  2. Prova porta RS232 fisica invece di USB-to-Serial
  3. Controlla pin-out cavo: Alcuni cavi economici non hanno tutti i pin collegati

Soluzione 3: Software di Test Ufficiale

Voltronic fornisce WatchPower software per Windows:

  • Scarica da sito ufficiale Voltronic
  • Testa comunicazione su Windows per verificare hardware
  • Controlla quale porta/baudrate usa il software ufficiale

Soluzione 4: Modifica CRC o Timing

Alcuni MKS IV hanno timing più stretto:

// In inverter.cpp, dopo write():
usleep(200000);  // Aumenta da 100ms a 200ms

// Oppure aumenta timeout read:
timeout.tv_sec = 5;  // Da 2 a 5 secondi

📊 Compatibilità Codice

Supporto Dichiarato

Il progetto dichiara supporto per:

  • Voltronic Power Axpert ✓
  • MPPSolar PIP ✓
  • Voltacon ✓
  • Effekta ✓
  • OEM Inverters

⚠️ MKS IV Specificità

Il MKS IV è una versione più recente che potrebbe avere:

  • Protocollo aggiornato (P18)
  • Comandi extended
  • Buffer sizes diversi

Riferimento manuale: /manual/HS_MS_MSX_RS232_Protocol_20140822_after_current_upgrade.pdf

Questo manuale è del 2014 e potrebbe NON includere il protocollo MKS IV.

🎯 Piano d'Azione

Step 1: Verifica Hardware (PRIORITÀ ALTA)

# 1. Test con software ufficiale Voltronic su Windows (se disponibile)
# 2. Verifica LED comunicazione su inverter
# 3. Prova cavo RS232 diverso
# 4. Controlla manual MKS IV per pin-out specifico

Step 2: Test Comandi Alternativi

# Test comandi P18:
cd /home/pi/Progetti/sources/inverter-cli
./bin/inverter_poller -r QPI
./bin/inverter_poller -r QVFW
./bin/inverter_poller -r QPIRI
./bin/inverter_poller -r QMOD

Step 3: Modifica Codice

Se comandi standard non funzionano, potrebbe essere necessario:

  1. Aggiornare CRC calculation per P18
  2. Modificare timing/delay
  3. Implementare handshake iniziale

Step 4: Community Research

Cerca su forum:

📚 Risorse

Documentazione Progetto

  • documentation/CODE_ARCHITECTURE.md - Architettura completa
  • documentation/AUTO_DISCOVERY.md - Feature auto-discovery
  • documentation/DEBUG.md - Guida debugging

Manuale Protocollo

  • /manual/HS_MS_MSX_RS232_Protocol_20140822_after_current_upgrade.pdf
  • ⚠️ Potrebbe non coprire MKS IV (2014)

Forum & Support

🔍 Log Test Eseguiti

Date: 31 gennaio 2026
Device: /dev/ttyUSB0 (FTDI USB Serial Device)
Test: Baudrate detection

Results:
- 2400:   NAK response (inverter comunica ma non accetta comandi)
- 9600:   No response
- 19200:  No response
- 38400:  No response
- 115200: No response

Conclusion:
- Baudrate corretto: 2400 ✓
- Protocollo: Possibile incompatibilità con MKS IV
- Hardware: Funzionante (riceve e risponde)
- Software: Necessita verifica comandi P18

⏭️ Next Steps

  1. IMMEDIATO: Verifica su manual MKS IV se esiste protocollo P18
  2. PRIORITÀ ALTA: Test con software ufficiale Voltronic per confermare hardware
  3. RICERCA: Cerca su forum/GitHub per implementazioni MKS IV specific
  4. FALLBACK: Contatta support Voltronic per specifiche protocollo MKS IV

Autore: Generated by GitHub Copilot
Data: 31 gennaio 2026
Versione Codice: 2.0 (con auto-discovery)