547537e761
Build Docker Image for Raspberry Pi / build-and-push (push) Failing after 1m15s
- 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
236 lines
6.7 KiB
Markdown
236 lines
6.7 KiB
Markdown
# Report Compatibilità: Voltronic Axpert MKS IV
|
|
|
|
> 🔬 **UPDATE 31/01/2026**: Test comandi alternativi completati! Vedere [MKS_IV_TEST_RESULTS.md](./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**:
|
|
```bash
|
|
# 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**:
|
|
```bash
|
|
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:
|
|
|
|
```cpp
|
|
// 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:
|
|
|
|
```cpp
|
|
// 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)
|
|
```bash
|
|
# 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
|
|
```bash
|
|
# 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:
|
|
- http://forums.aeva.asn.au/viewtopic.php?t=4332
|
|
- GitHub issues del progetto
|
|
- Forum Voltronic/Axpert per MKS IV specifico
|
|
|
|
## 📚 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
|
|
- AEVA Forum: http://forums.aeva.asn.au/viewtopic.php?t=4332
|
|
- GitHub: https://github.com/ned-kelly/docker-voltronic-homeassistant
|
|
- Skyboo original: https://skyboo.net/2017/03/monitoring-voltronic-power-axpert-mex-inverter-under-linux/
|
|
|
|
## 🔍 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)
|