Commit Graph

9 Commits

Author SHA1 Message Date
Pi Developer 078544381e refactor: Rimuove discovery, usa QPGS diretto in cascade mode
Build Docker Image for Raspberry Pi / build-and-push (push) Has been cancelled
- mqtt-push-parallel.sh: riscritto da 659 a 230 righe
  * Rimosse tutte le meccaniche di serial discovery (VALID_SERIALS,
    VALID_QPGS, PARALLEL_DISCOVERY, DIRECT_SERIALS, ecc.)
  * Ora query direte QPGS0→inv1, QPGS1→inv2 senza discovery preliminare
  * Numero inverter configurabile via CASCADE_COUNT env var (default 2)
  * Fix PV_in_watts: quando DATA[25]=0 (batteria carica) e SCC_OK e
    no AC grid (line_loss=1), usa Load_watt come proxy di produzione PV
  * Aggiunto publish di PV_in_watthour e Load_watthour
  * Aggiunto parsing corretto dei status flags dal byte di stato QPGS

- entrypoint.sh: riscritto da 240 a 131 righe
  * Rimossa intera logica di auto-discovery buffer sizes
  * Rimossi FORCE_DISCOVERY, SKIP_DISCOVERY, DISCOVERY_FLAG
  * Rimossi run_discovery() e update_config_with_discovery()
  * Startup immediato senza attese/tentativi di discovery
  * CASCADE_COUNT env var propagata agli script

- healthcheck: corretto per processi effettivi del container
  * Prima: cercava mqtt-subscriber + mosquitto_sub + watch (3 proc)
  * watch non viene mai avviato → sempre unhealthy
  * Ora: controlla mosquitto_sub (subscriber) + sleep (push loop cicla)
2026-02-22 15:02:22 +01:00
Pi Developer 4d5ed5d845 fix: Corregge calcolo PV_in_watts in modalità QPGS parallela
Build Docker Image for Raspberry Pi / build-and-push (push) Successful in 8m11s
DATA[25] ('PV Input Current') nei reply QPGS è in realtà la corrente
in uscita dal SCC (Solar Charge Controller) verso la batteria, a tensione
batteria - NON la corrente ai pannelli PV a tensione PV.

Bug: PV_WATTS = DATA[14] (PV voltage ~246V) * DATA[25] (SCC current ~55A)
     → valore ~4-5x troppo alto (es. 246.8 * 55 = 13574W per inverter)

Fix: PV_WATTS = DATA[11] (battery voltage ~54V) * DATA[25] (SCC current)
     → valore corretto (es. 53.9 * 55 = 2964W per inverter)

Identico al comportamento di QPIGS in main.cpp:
  pv_input_watts = scc_voltage * pv_input_current
  con commento: 'input current is going to battery at battery voltage
  (NOT at PV voltage)'
2026-02-22 14:20:30 +01:00
Pi Developer 5fc8958ae1 Corregge mapping QPGS per PV e scarica batteria
Build Docker Image for Raspberry Pi / build-and-push (push) Successful in 8m23s
Docker Image Cleanup / cleanup-old-images (push) Failing after 27s
2026-02-11 19:41:59 +01:00
Pi Developer 9e72d4f5a7 Migliora discovery e pubblicazione MQTT per inverter in cascata
Build Docker Image for Raspberry Pi / build-and-push (push) Successful in 9m22s
2026-02-10 21:59:47 +01:00
Pi Developer 168ee6d12a feat: Replicazione parametri comuni QPIRI su tutti gli inverter
Build Docker Image for Raspberry Pi / build-and-push (push) Successful in 7m36s
- Parametri configurazione (QPIRI) ora pubblicati per inv1_* e inv2_*
- Separata pubblicazione runtime (QPGS) da configurazione (QPIRI)
- QPIRI letto una volta e replicato su tutti gli inverter
- 17 parametri runtime per inverter + 9 parametri config condivisi
- Total: 26 parametri per inverter (17 runtime + 9 config)

Parametri comuni replicati su entrambi gli inverter:
- Battery_recharge_voltage
- Battery_under_voltage
- Battery_bulk_voltage
- Battery_float_voltage
- Max_charge_current
- Max_grid_charge_current
- Out_source_priority
- Charger_source_priority
- Battery_redischarge_voltage
2026-02-03 00:27:35 +01:00
Pi Developer 6dc4626774 feat: Supporto completo estrazione 28 parametri da QPGS+QPIRI per inverter paralleli
Build Docker Image for Raspberry Pi / build-and-push (push) Successful in 7m3s
- Aggiunta funzione extractAndPublishAllData() con tutti i 33 parametri
- Parsing QPGS (19 params runtime) + QPIRI (8 params config) + PV_watts calcolato
- Fallback automatico a modalità standard se QPGS non disponibile
- Retry ridotto a 1 tentativo (2s delay) per performance
- Gestione errori NAK con messaggi informativi per utente
- Supporto bitmap status flags da QPGS (Load_on, SCC_on, AC_charge_on)

Note: Test mostrano che inverter attualmente in modalità Battery (QMOD=B)
risponde NAK a tutti i comandi eccetto QMOD. Necessaria verifica stato
fisico inverter o attivazione modalità parallela nel firmware.
2026-02-03 00:09:05 +01:00
Pi Developer f906047f39 feat: Flusso completo discovery parallelo per 2 inverter
Build Docker Image for Raspberry Pi / build-and-push (push) Successful in 7m34s
FLUSSO IMPLEMENTATO:
1. All'avvio: registra discovery topics per 2 inverter (hardcoded)
2. Discovery topics ripetuti ogni 5 minuti (invece di 10)
3. Parallel discovery parametri con retry:
   - Tenta discovery fino a 3 volte
   - Se fallisce: attende 5s e riprova
   - Se tutti i tentativi falliscono: assume 2 inverter
4. Estrazione dati ogni 30s per entrambi gli inverter

NAMING:
- Inverter 1: voltronic_inv1_*
- Inverter 2: voltronic_inv2_*

Discovery topics include tutti i 33 parametri per entrambi gli inverter
2026-02-02 23:50:24 +01:00
Pi Developer 0143e8eb36 feat: Forza modalità parallela con default 2 inverter
Build Docker Image for Raspberry Pi / build-and-push (push) Successful in 7m6s
- Rimosso timeout e detection automatica
- Sempre modalità parallela forzata
- Default 2 inverter se parallel discovery fallisce
- Registra discovery per voltronic_inv1 e voltronic_inv2

NOTA: Se gli inverter non rispondono a QPGS, NON sono in modalità parallela.
Per gestire 2 inverter fisici separati, serve INVERTER_DEVICES=/dev/ttyUSB0:/dev/ttyUSB1
2026-02-02 23:43:12 +01:00
Pi Developer 547537e761 Implementazione supporto multi-inverter paralleli e fix comunicazione MQTT
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
2026-01-31 16:15:26 +01:00