
I SolaX X1-HYBRID e X3-HYBRID Gen 4 sono inverter ad accumulo di energia che supportano configurazioni sia monofase (3–7,5 kW) che trifase (5–15 kW). Il template TapHome comunica tramite Modbus RTU su RS-485, leggendo registri di ingresso e holding per lo stato di carica della batteria, la potenza del string FV, il flusso di potenza dalla rete, i totali di energia, la modalità di ricarica e il SOC della carica notturna. Tutti gli script di scrittura sono commentati, rendendo il template di fatto in sola lettura.
Il template implementa inoltre un rilevamento completo dei guasti analizzando i codici di errore a 32 bit dell’inverter e i codici di errore a 16 bit del gestore, segnalando i singoli guasti come errori in TapHome.
Collegamento hardware
L’inverter SolaX Gen 4 fornisce una porta COM RS-485 per la comunicazione Modbus RTU sul pannello inferiore. La porta COM utilizza un connettore RJ45.

Assegnazione dei pin del terminale COM (RJ45):
| Pin | Assegnazione | Descrizione |
|---|---|---|
| 1 | Drycontact_A(in) | Connessione interruttore di sistema |
| 2 | Drycontact_B(in) | Connessione interruttore di sistema |
| 3 | +13V | — |
| 4 | 485A | RS-485 data+ (per TapHome) |
| 5 | 485B | RS-485 data− (per TapHome) |
| 6 | GND | Massa |
| 7 | Drycontact_A(out) | Connessione generatore |
| 8 | Drycontact_B(out) | Connessione generatore |
Collegare TapHome alla porta COM dell’inverter:
- Pin 4 (485A) sulla porta COM dell’inverter a A+/D+ su RS-485 TapHome
- Pin 5 (485B) sulla porta COM dell’inverter a B-/D- su RS-485 TapHome
- Pin 6 (GND) — raccomandato per una comunicazione affidabile
L’inverter stesso non supporta nativamente Modbus TCP. Modbus TCP è disponibile solo tramite il modulo di monitoraggio SolaX (dongle Wi-Fi) e non viene utilizzato dal template TapHome.
Per installazioni in cui il cablaggio RS-485 non è pratico, il template SolaX Inverter (Cloud API) fornisce monitoraggio attraverso la piattaforma SolaxCloud via HTTPS — senza connessione fisica. Supporta tutti i tipi di inverter SolaX, non solo il Gen 4 Hybrid.
Alcuni registri holding sono contrassegnati con cicli di scrittura EEprom limitati. Le operazioni di scrittura eccessive possono causare danni hardware irreversibili. Il template TapHome ha tutti gli script di scrittura disabilitati, quindi non è un problema con il template attuale.
Configurazione
Abilitazione della comunicazione Modbus
Modbus RTU è disponibile di default sulla porta COM RS-485 dell’inverter. I seguenti parametri devono corrispondere tra l’inverter e il modulo TapHome:
- Slave ID – predefinito 1, configurabile sul display dell’inverter
- Baud rate – l’inverter usa per default 19200 baud, ma il template TapHome usa 9600 baud. Modificare uno dei due per farli corrispondere
- Formato dati – 8 bit dati, nessuna parità, 1 stop bit
Configurazione sul display dell’inverter: Menu > Setting > Advance Setting > Modbus. Impostare l’indirizzo slave e il baud rate. Il baud rate può essere letto anche dal registro holding H:0x00B0 e scritto tramite il registro 0x00CA (valori: 0=115200, 1=57600, 2=56000, 3=38400, 4=19200, 5=14400, 6=9600).
Per evitare di modificare le impostazioni dell’inverter, regolare il baud rate nelle impostazioni del modulo TapHome a 19200 per corrispondere al valore predefinito dell’inverter.
Temporizzazione della comunicazione
Il protocollo richiede un intervallo minimo di 1 secondo tra le istruzioni Modbus consecutive e un timeout di gap tra caratteri di almeno 100 ms. Il timeout di risposta è 1 secondo. Il template TapHome utilizza intervalli di polling individuali per dispositivo (da 2,5 s a 150 s) che soddisfano questi requisiti.
Funzione della porta COM RS-485
Il registro H:0x013E (485CommFunSelect) determina se la porta RS-485 viene utilizzata per la comunicazione Modbus (valore 0) o per la comunicazione del caricabatterie EV (valore 1). Assicurarsi che sia impostato su 0 (Modbus 485) per l’integrazione TapHome.
Funzionalità del dispositivo
Monitoraggio della batteria
- Battery SOC – legge lo stato di carica della batteria (A:0x1C) come percentuale. Il valore grezzo del registro in unità dell'1% viene diviso per 100 per l’intervallo di ingresso analogico TapHome 0–1 (es. 85% diventa 0,85)
- Battery Temperature – legge la temperatura della batteria (A:0x18) in gradi Celsius. Polling ogni 80 secondi
Potenza FV solare
- PV1 Power – potenza DC di uscita dallo string FV 1 (A:0x0A), visualizzata in kW dopo la conversione /1000 da watt
- PV2 Power – potenza DC di uscita dallo string FV 2 (A:0x0B), visualizzata in kW dopo la conversione /1000 da watt
Potenza di rete e misurazione dell’energia
- Grid Feed-in Power – potenza di rete istantanea (A:0x46, LittleEndianInt32) in kW. I valori positivi indicano l’esportazione in rete, i valori negativi indicano il consumo dalla rete
- Daily / Actual Energy – combina l’energia giornaliera prodotta dalla porta AC dell’inverter (A:0x50, risoluzione 0,1 kWh) e la potenza di rete in tempo reale (A:0x02) in kW. Il registro della potenza di rete è specifico per X1 (monofase)
- Total Energy – energia cumulativa totale prodotta dalla porta AC dell’inverter (A:0x52, LittleEndianInt32), visualizzata in MWh
Modalità di ricarica e carica notturna
- Charger Use Mode – legge la modalità del caricabatterie solare attiva (H:0x8B): Self Use Mode (0), Feedin Priority (1), Backup Mode (2) o Manual Mode (3). I valori 4–9 sono riservati. Il registro di scrittura (H:0x1F) esiste nel template ma è commentato, rendendolo in sola lettura
- Self-Use Night Charge SOC – legge il target SOC superiore per la carica notturna in modalità Self-Use (H:0x94) come percentuale. Il registro di scrittura (H:0x63) e il registro di abilitazione (H:0x62) sono entrambi commentati, quindi la configurazione della carica notturna non può essere modificata tramite TapHome
Rilevamento guasti
Lo ReadScript a livello di modulo monitora la modalità di esecuzione dell’inverter (A:0x09) e due registri di errore:
- Run Mode guasti – attiva un errore quando Run Mode è 3 (Guasto) o 4 (Guasto Permanente)
- Codici di errore dell’inverter (A:0x40) – bitmap a 32 bit analizzata per 28 guasti individuali inclusi guasti di tensione/frequenza della rete, guasti di tensione FV, guasti della batteria, guasti di isolamento, sovratemperatura, protezione da sovracorrente, guasti dei relè ed errori di comunicazione
- Codici di errore del gestore (A:0x43) – bitmap a 16 bit analizzata per guasti di tipo di potenza, errori EEPROM, problemi di sensori NTC, avvertimenti di temperatura della batteria, guasti del contatore e guasti della ventola
L’attributo di servizio Run Mode sul modulo visualizza lo stato corrente dell’inverter come testo: Waiting, Checking, Normal, Fault, Permanent Fault, Update, Off-grid waiting, Off-grid, Self Testing, Idle o Standby.
Funzionalità aggiuntive
L’inverter espone una mappa di registri completa con oltre 300 registri holding e 200 registri di ingresso. Le funzionalità notevoli non ancora implementate nel template includono il monitoraggio di tensione e corrente per ogni string FV (A:0x03–0x06), letture di tensione/corrente/potenza della batteria, stato di connessione BMS, stato rete on/off, X3 tensione/corrente/potenza di rete per fase (12 registri a A:0x6A–0x75), energia cumulativa immessa e consumata dalla rete (tramite contatore), produzione totale di energia solare, SOC e SOH utente BMS, e temperatura e tensione minima/massima delle celle della batteria. Le funzionalità di scrittura includono il controllo accensione/spegnimento del sistema, selezione della modalità di ricarica, forza manuale di carica/scarica, SOC minimo di scarica, configurazione della carica notturna e controllo remoto della potenza con target di potenza attiva/reattiva. Questi possono essere aggiunti in un futuro aggiornamento del template.
Il template legge attualmente la potenza di rete X1 (monofase) in A:0x02. Per installazioni X3 (trifase), la potenza di rete per fase è disponibile nei registri A:0x6C, A:0x70 e A:0x74 ma non è inclusa nel template attuale.
Risoluzione dei problemi
Nessuna comunicazione con l’inverter
- Verificare i collegamenti del cavo RS-485: A+ ad A+, B- a B-, GND a GND
- Controllare che il registro H:0x013E sia impostato a 0 (modalità Modbus 485, non EV Charger)
- Confermare che il baud rate corrisponda tra inverter e TapHome – l’inverter ha come default 19200 mentre il template ha come default 9600
- Verificare che lo Slave ID in TapHome corrisponda all’impostazione dell’inverter (default: 1)
- Assicurarsi che nessun altro master Modbus sia collegato allo stesso bus RS-485 – Modbus supporta solo un singolo master
Lettura Battery SOC errata
Il registro Battery SOC (A:0x1C) riporta valori in unità dell'1%. Il template divide per 100 per l’intervallo di ingresso analogico TapHome 0–1. Se il valore visualizzato sembra errato, verificare che il dispositivo TapHome sia configurato come AnalogInput (intervallo 0–1, non 0–100).
Convenzione dei segni della potenza di rete
Grid Feed-in Power (A:0x46) utilizza una convenzione dei segni in cui i valori positivi significano esportazione (generazione/immissione in rete) e i valori negativi significano importazione (consumo dalla rete). Il registro della potenza di rete Daily/Actual Energy (A:0x02) può anche mostrare valori negativi durante il consumo dalla rete.
Differenze tra registri X1 e X3
Alcuni registri sono specifici del modello. Tensione di rete (A:0x00), corrente (A:0x01) e potenza (A:0x02) sono registri X1 monofase. Per i modelli X3 trifase, le corrispondenti letture per fase si trovano in A:0x6A–0x75. Il template utilizza il registro di potenza di rete X1, che potrebbe non riportare correttamente sui modelli X3.
