Il SolaX X3-Ultra (X3-ULT-15K, 20K, 25K, 30K) è un inverter ibrido trifase per fotovoltaico e batteria. Questo template della community di Martin Keller lo collega a TapHome tramite Modbus RTU sulla porta COM 1 RS-485 (19200 baud, 8N1) e si basa sui registri di lettura del protocollo SolaX Modbus V3.29 e sul protocollo SolaX Modbus V001.02. Offre un set completo di misuratori per l’Energy Dashboard, il monitoraggio di batteria, rete e guasti, impostazioni dell’inverter scritte solo quando il loro valore cambia davvero e il controllo remoto della potenza AC (modalità 1 del controllo remoto SolaX): carica della batteria dalla rete o scarica in rete su comando, ad esempio in base ai prezzi spot dell’energia elettrica.
Come ottenere il template
I template della community non sono disponibili nell’elenco dei template dell’app TapHome. Accedere a portal.taphome.com, scaricare l’XML di questo template e importarlo nel Core sull’interfaccia Modbus RTU (oppure su un’interfaccia Modbus TCP se si utilizza un gateway RS-485-Ethernet). Per il solo monitoraggio senza controllo remoto della potenza è disponibile il template ufficiale SolaX X3 Hybrid Ultra. Un modulo importato in precedenza dal template ufficiale non si aggiorna da solo: importare questo template come nuovo modulo e rimuovere quello vecchio.
Connessione hardware
L’X3-Ultra ha una sola porta COM 1 multifunzione (connettore RJ45 con fissaggio del cavo etichettato). Gli stessi pin fisici svolgono funzioni diverse a seconda della posizione etichettata del fissaggio del cavo che si utilizza. Per l’integrazione Modbus di terze parti utilizzare la posizione RS485, cioè le linee REMOTE_485A e REMOTE_485B.
Pinout della porta COM 1

Assegnazione pin della posizione RS485 (l’unica posizione rilevante per TapHome):
| Pin | Segnale | Cablaggio TapHome |
|---|---|---|
| 1 | REMOTE_485A | A+ / D+ |
| 2 | REMOTE_485B | B− / D− |
| 3 | PARALLEL_485AA | non utilizzare (solo accessori SolaX) |
| 4 | PARALLEL_485AA | non utilizzare (solo accessori SolaX) |
| 5 | PARALLEL_485BB | non utilizzare (solo accessori SolaX) |
| 6 | PARALLEL_485BB | non utilizzare (solo accessori SolaX) |
| 7 | REMOTE_485A | stesso segnale del pin 1 |
| 8 | REMOTE_485B | stesso segnale del pin 2 |
I pin 3–6 appartengono al canale SolaX PARALLEL_485 e sono riservati ai prodotti SolaX (Adapter Box G2, EV-Charger, DataHub). I pin 1, 2, 7 e 8 sono destinati a dispositivi diversi dai prodotti SolaX. Non collegare un master Modbus di terze parti ai pin 3–6.
Cablaggio RS-485

Regole di cablaggio dal manuale utente dell’X3-Ultra (sezione 8.6.4):
- Tipo di cavo: cavo di rete CAT5E o CAT6
- Lunghezza massima: il cavo di comunicazione RS-485 non deve superare 30 m
- Terminale RJ45: il connettore esistente del cavo si taglia e si crimpa un nuovo terminale RJ45 secondo l’assegnazione dei pin; non tutti i dispositivi accettano un cavo di rete con tutti gli 8 pin cablati
- Posizione nel fissaggio del cavo: il terminale RJ45 va nello slot etichettato RS485 (non in Parallel-1, Parallel-2, BMS-1, BMS-2 o DRM); il connettore si aggancia con un clic nella porta COM 1 e si fissa con il dado girevole
- Un solo master Modbus: la porta può essere utilizzata da un solo master Modbus. Scollegare altri sistemi di monitoraggio Modbus sulla stessa porta, altrimenti l’inverter risponde a entrambi e le letture diventano instabili
Il manuale utente non indica alcuna regola per la terminazione del bus RS-485 sulla posizione RS485 della COM 1.
Contatore o CT per i valori di rete
I dispositivi di rete di questo template (Grid - power balance, Dalla rete, Alla rete, Consumo) leggono la potenza di immissione che l’inverter misura con il proprio contatore o CT. Il contatore o CT si collega alla porta COM 2 (Meter/CT: METER_485A sul pin 4, METER_485B sul pin 5, oppure gli ingressi CT) e si configura sul display dell’inverter in Menu → Setting → Advance Setting → Meter/CT Setting. Si tratta di una linea RS-485 separata: non collegarvi TapHome.
Opzioni di connessione
- Modbus RTU diretto: collegare la coppia RS485 della COM 1 direttamente al bus RS-485 del Core TapHome. Latenza minima, raccomandato per il controllo remoto della potenza.
- Gateway RS-485-Ethernet: se l’inverter è lontano dal Core TapHome, si può utilizzare un gateway RS-485-Ethernet di terze parti sulla coppia RS485 della COM 1; il template si importa quindi su un’interfaccia Modbus TCP.
- Modulo di monitoraggio SolaX: l’inverter stesso non supporta Modbus TCP. Modbus TCP (porta 502) è disponibile solo tramite un modulo di monitoraggio SolaX, con un ciclo di interrogazione di circa 1 secondo (protocollo V3.29).
Configurazione
Abilitazione della comunicazione Modbus sull’inverter
Sul display LCD dell’inverter navigare a:
| |
Il menu Advance Setting richiede la password installatore (inizialmente 2014 secondo il manuale utente, che raccomanda di cambiarla). Nel menu Modbus impostare Baud Rate e Address del protocollo di comunicazione esterno:
| Parametro | Default del template | Default dell’inverter (protocollo V3.29) |
|---|---|---|
| Indirizzo Modbus (Slave ID) | 1 | 1 |
| Baud rate | 19200 | 19200 |
| Parità | None | None |
| Bit di dati | 8 | 8 |
| Bit di stop | 1 | 1 |
Il baud rate deve essere lo stesso sull’inverter e sull’interfaccia Modbus RTU di TapHome. Se la comunicazione non funziona, controllare prima il baud rate.
L’inverter riporta inoltre l’indirizzo Modbus nel registro holding H:0x00AF e il baud rate nel registro holding H:0x00B0 (protocollo V3.29).
Parametro di importazione
Durante l’importazione del template, il parametro di importazione Modbus Slave ID (default 1) deve corrispondere all’indirizzo Modbus impostato sul display dell’inverter.
Funzionalità dei dispositivi
Energy Dashboard
| Dispositivo | Lettura |
|---|---|
| Produzione fotovoltaica | Potenza di ingresso PV1 + PV2 + PV3 (A:0x000A, A:0x000B, A:0x0124) in kW; energia FV totale (A:0x0094–0x0095) in kWh. La potenza PV1–PV3 e l’energia AC totale in uscita dall’inverter (A:0x0052) sono attributi di servizio. |
| Dalla rete / Alla rete | Parte di prelievo e parte di immissione della potenza di rete dal contatore o CT (A:0x0046–0x0047, word bassa per prima) con i rispettivi contatori di energia totale (A:0x004A e A:0x0048, 0,01 kWh). |
| Alla batteria / Dalla batteria | Parte di carica e parte di scarica della potenza della batteria 1 (A:0x0016) con l’energia totale di carica e di scarica (A:0x0021, A:0x001D). |
| Consumo | Consumo della casa calcolato: potenza AC dell’inverter meno l’immissione in rete. SolaX non ha un registro del consumo; i carichi sull’uscita EPS (backup) non sono inclusi. |
| Batteria (SOC) | Stato di carica della batteria 1 (A:0x001C). L’energia residua e l’energia ancora caricabile (A:0x0118, A:0x0116) sono attributi di servizio. |
Gestore energetico
Per la smart rule Gestore energetico selezionare Grid - power balance. Il valore ha segno: positivo quando si preleva dalla rete, negativo quando si immette l’eccedenza. I misuratori Dalla rete e Alla rete non diventano mai negativi e non mostrano l’eccedenza.
Monitoraggio
- Battery 2 - state of charge — il secondo terminale batteria (BAT 2), con potenza e temperatura come attributi di servizio; legge 0 senza una seconda batteria
- Battery - temperature — letta come valore con segno, quindi le temperature sotto 0 °C vengono mostrate correttamente
- Inverter - AC power — somma delle tre potenze di fase sulla porta AC dell’inverter in kW
- Grid - voltage L1 — con le tensioni di rete L2 e L3 e le tre frequenze di rete come attributi di servizio
Impostazioni dell’inverter
| Dispositivo | Lettura | Scrittura |
|---|---|---|
| Settings - work mode | H:0x008B: Self use, Feed-in priority, Backup, Manual, Peak shaving, Time of use (le ultime due dipendono dal firmware) | 0x001F |
| Settings - manual mode | H:0x008C: Stop charge and discharge, Force charge, Force discharge (efficace solo nella modalità di lavoro Manual) | 0x0020 |
| Settings - self-use minimum SOC | byte alto di H:0x0093 | 0x0061 |
| Settings - night charge from grid | byte basso di H:0x0093 | 0x0062 |
| Settings - night charge target SOC | H:0x0094 | 0x0063 |
| Settings - export limit | H:0x00B6, in kW (10 W per unità su X3) | 0x0042 |
SolaX legge queste impostazioni da indirizzi diversi da quelli in cui le scrive, quindi la funzione integrata di TapHome “scrivi solo se diverso” non può essere utilizzata. Per questo ogni script di scrittura legge prima l’impostazione e scrive (funzione 06) solo quando il nuovo valore è diverso; quando l’inverter segnala le impostazioni come bloccate, scrive prima la password delle impostazioni 2014 nel registro 0x0000. Il SOC minimo e il target di carica notturna non scendono mai sotto il 10 % (l’intervallo SolaX). Nessuno di questi dispositivi scrive periodicamente.
Queste impostazioni sono registri EEPROM (contrassegnati con ★ da SolaX, circa 1 milione di cicli di scrittura). Modificarle raramente e mai da automazioni frequenti: per caricare e scaricare in base ai prezzi spot utilizzare Remote control - AC power target.
Remote control - AC power target
Questo dispositivo utilizza la modalità 1 del controllo remoto SolaX (VPP), cioè il controllo della potenza sulla porta AC dell’inverter.
- Segno: un target positivo significa che l’inverter assorbe potenza sulla sua porta AC (carica la batteria, dalla rete se il FV non basta); un target negativo significa che eroga potenza (scarica la batteria e ciò che la casa non consuma va in rete). Valore in kW.
- 0 termina il controllo remoto: il template scrive una volta la modalità 0 e l’inverter torna alla sua modalità di lavoro. I target inferiori a 0,5 W valgono come 0.
- Qualsiasi altro valore: se l’inverter è bloccato, il template scrive prima la password delle impostazioni 2014 (lo sblocco si perde a ogni riavvio dell’inverter), poi scrive i 13 registri
0x007C–0x0088in un’unica richiesta Modbus (funzione 0x10): modalità 1, target, durata 120 s e timeout 60 s. Il comando viene ripetuto ogni 60 s finché il target non è 0. Se TapHome smette di inviarlo, l’inverter mantiene il target per un massimo di 2 minuti, mantiene 0 W sulla sua porta AC per un altro minuto e poi torna da solo alla sua modalità di lavoro. - La modalità di lavoro Manual blocca il controllo remoto. SolaX non avvia il controllo remoto mentre l’inverter è nella modalità di lavoro Manual: passare prima a Self use (o a un’altra modalità).
- L’inverter limita il target all’intervallo mostrato negli attributi del modulo (target minimo e massimo del controllo remoto).
- L’azione del modulo End remote control scrive subito la modalità 0. Finché il target non è 0, la ripetizione successiva riavvia il controllo remoto: impostare il target a 0 per fermarlo definitivamente.
- Non combinare questo dispositivo con il controllo remoto da SolaX Cloud o da un aggregatore energetico: finché il target è 0, il template termina qualsiasi modalità di controllo remoto entro 60 s.
- Il controllo remoto richiede un Core che scriva tutti i 13 registri in un’unica richiesta. È il caso di ogni Core dal 2022 in poi, se il modulo mantiene il valore
MaxPrefetchGroupSize32 di questo template. - L’attributo di servizio Actual AC power mostra la potenza attiva che l’inverter riporta sulla sua porta AC in W (
A:0x0106).
Nel suo protocollo SolaX non contrassegna i registri del controllo remoto (
0x007C–0x0088) come registri EEPROM, ma non conferma per iscritto nemmeno il contrario. Questo template si basa sull’esperienza delle community di Home Assistant e openHAB, che scrivono questi registri a intervalli da pochi secondi a pochi minuti.
Attributi e azioni del modulo
- Run mode (attributo di servizio) — stato dell’inverter come testo: Waiting, Checking, Normal, Fault, Permanent fault, Update, Off-grid waiting, Off-grid, Self testing, Idle, Standby, Remote control (codice 20); gli altri codici vengono mostrati come Other
- Machine type (attributo di servizio) — X1 (single-phase) o X3 (three-phase), registro holding
H:0x0105 - Settings lock (attributo di servizio) — Locked o Unlocked (
A:0x0054) - Remote control mode (attributo di servizio) — modalità di controllo remoto attiva (
A:0x0100): Off, Power control, Energy target, SOC target - Remote control - maximum target / minimum target (attributi di servizio) — intervallo consentito del target di potenza riportato dall’inverter in W (
A:0x010A,A:0x010C) - Unlock settings (password 2014) (azione di servizio) — scrive
2014nel registro0x0000 - End remote control (azione di servizio) — scrive la modalità 0 nei registri del controllo remoto
0x007C–0x0088
Rilevamento dei guasti
Lo script di lettura del modulo segnala un errore TapHome quando la modalità operativa (Run mode, A:0x0009) è 3 (Fault) o 4 (Permanent fault). Inoltre analizza bit per bit due registri di errore, ciascun guasto con il proprio codice di errore:
- Codice guasto inverter (32 bit,
A:0x0040–A:0x0041, letto con la word bassa per prima) — tutti i 32 bit, da TZ Protect Fault, guasti di tensione di rete, FV, bus e batteria, guasti di isolamento e sovratemperatura fino a Parallel Fault, Hard Limit Fault e ai guasti dei relè - Codice errore Manager (16 bit,
A:0x0043) — Power Type Fault, Mgr EEPROM Fault, NTC Sample Invalid, temperatura batteria bassa e alta, Meter Fault, Bypass Relay Fault e Fan 2 Fault come errori, Port OC Warning come avviso
Risoluzione dei problemi
Nessuna comunicazione con l’inverter
- Verificare che i fili RS-485 siano sui pin REMOTE_485A / REMOTE_485B (1 + 2 o 7 + 8 nella posizione RS485 del fissaggio del cavo COM 1), non sui pin PARALLEL_485 3–6 e non sulla linea del contatore della COM 2
- Controllare che il baud rate corrisponda tra l’inverter (
Menu → Setting → Advance Setting → Modbus) e l’interfaccia Modbus RTU di TapHome: 19200 per impostazione predefinita - Confermare che il parametro di importazione Modbus Slave ID corrisponda all’indirizzo Modbus dell’inverter (default
1) - Assicurarsi che alla porta sia collegato un solo master Modbus
- Scambiare i fili A e B se la polarità del cavo è incerta
- Confermare che il cavo RS-485 non superi 30 m
Il target del controllo remoto torna a 0 subito dopo l’impostazione
L’inverter è nella modalità di lavoro Manual, il firmware non supporta la modalità 1 del controllo remoto oppure il target è fuori dall’intervallo tra target minimo e massimo mostrato negli attributi del modulo. Controllare prima la modalità di lavoro.
La scrittura delle impostazioni viene rifiutata
L’inverter è bloccato. Eseguire l’azione del modulo Unlock settings (password 2014); il blocco ritorna dopo ogni riavvio dell’inverter (attributo del modulo Settings lock).
I valori di rete sono 0 o il Consumo sembra errato
Grid - power balance, Dalla rete, Alla rete e Consumo dipendono dal contatore o CT dell’inverter. Verificarne il cablaggio sulla COM 2 e la configurazione in Menu → Setting → Advance Setting → Meter/CT Setting.
La potenza PV3 o Battery 2 mostra 0
PV3 esiste solo sui modelli con tre tracker (ad esempio X3-ULT-25K e X3-ULT-30K, vedere il numero di MPPT nel manuale utente); Battery 2 solo quando una seconda batteria è collegata a BAT 2. Nascondere in TapHome i dispositivi non utilizzati.
SolaX