TapHome
Community Beta Energia e misura

SolaX X3-Ultra Hybrid Inverter — monitoring and power control (Modbus RTU)

Template della community per l'inverter ibrido trifase SolaX X3-Ultra tramite Modbus RTU sulla porta COM 1 RS-485: misuratori Energy Dashboard per FV, rete, batteria e consumo, SOC della batteria, tensione di rete e codici di guasto, impostazioni dell'inverter scritte solo quando cambiano e controllo remoto della potenza AC (modalità 1 del controllo remoto SolaX) per caricare e scaricare in base ai prezzi spot. 19200 baud, 8N1, Slave ID 1.

SolaXModbus RTU19 dispositiviRevisione 1.0 Ultimo aggiornamento: 10 novembre 2026

Inviato da Martin Keller

SolaX X3-Ultra Hybrid Inverter — monitoring and power control (Modbus RTU)

Importa nell'app TapHomeHardware › Modbus › Aggiungi da modello

Scarica template
In questa pagina

Guida all'integrazione

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 porta COM 1 SolaX X3-Ultra per tutte e sei le posizioni etichettate (Parallel-1, Parallel-2, BMS-1, BMS-2, RS485, DRM)

Assegnazione pin della posizione RS485 (l’unica posizione rilevante per TapHome):

PinSegnaleCablaggio TapHome
1REMOTE_485AA+ / D+
2REMOTE_485BB− / D−
3PARALLEL_485AAnon utilizzare (solo accessori SolaX)
4PARALLEL_485AAnon utilizzare (solo accessori SolaX)
5PARALLEL_485BBnon utilizzare (solo accessori SolaX)
6PARALLEL_485BBnon utilizzare (solo accessori SolaX)
7REMOTE_485Astesso segnale del pin 1
8REMOTE_485Bstesso 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

Installazione del terminale RJ45 nella posizione RS485 del fissaggio del cavo COM 1

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:

1
Menu → Setting → Advance Setting → Modbus

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:

ParametroDefault del templateDefault dell’inverter (protocollo V3.29)
Indirizzo Modbus (Slave ID)11
Baud rate1920019200
ParitàNoneNone
Bit di dati88
Bit di stop11

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

DispositivoLettura
Produzione fotovoltaicaPotenza 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 reteParte 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 batteriaParte 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).
ConsumoConsumo 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

DispositivoLetturaScrittura
Settings - work modeH:0x008B: Self use, Feed-in priority, Backup, Manual, Peak shaving, Time of use (le ultime due dipendono dal firmware)0x001F
Settings - manual modeH:0x008C: Stop charge and discharge, Force charge, Force discharge (efficace solo nella modalità di lavoro Manual)0x0020
Settings - self-use minimum SOCbyte alto di H:0x00930x0061
Settings - night charge from gridbyte basso di H:0x00930x0062
Settings - night charge target SOCH:0x00940x0063
Settings - export limitH: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–0x0088 in 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 MaxPrefetchGroupSize 32 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 2014 nel registro 0x0000
  • 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

  1. 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
  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
  3. Confermare che il parametro di importazione Modbus Slave ID corrisponda all’indirizzo Modbus dell’inverter (default 1)
  4. Assicurarsi che alla porta sia collegato un solo master Modbus
  5. Scambiare i fili A e B se la polarità del cavo è incerta
  6. 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.

Dispositivi disponibili 19

Questi dispositivi compaiono in TapHome dopo l'importazione.

SolaX X3-Ultra Modulo
Attributi di servizio
Run mode
Machine type
Settings lock
Remote control mode
Remote control - maximum target
Remote control - minimum target
Azioni di servizio
Unlock settings (password 2014)
End remote control

SolaX X3-Ultra

Lettura (modulo)
VAR mode := MODBUSR(A, 0x0009, UInt16);
IF(mode = 3, ADDERROR(1, "Inverter fault (run mode 3)"));
IF(mode = 4, ADDERROR(2, "Inverter permanent fault (run mode 4)"));
VAR inv := MODBUSR(A, 0x0040, LittleEndianUint32);
IF(GETBIT(inv, 0) = 1, ADDERROR(100, "TZ Protect Fault"));
IF(GETBIT(inv, 1) = 1, ADDERROR(101, "Grid Lost Fault"));
IF(GETBIT(inv, 2) = 1, ADDERROR(102, "Grid Volt Fault"));
IF(GETBIT(inv, 3) = 1, ADDERROR(103, "Grid Freq Fault"));
IF(GETBIT(inv, 4) = 1, ADDERROR(104, "PV Volt Fault"));
IF(GETBIT(inv, 5) = 1, ADDERROR(105, "Bus Volt Fault"));
IF(GETBIT(inv, 6) = 1, ADDERROR(106, "Bat Volt Fault"));
IF(GETBIT(inv, 7) = 1, ADDERROR(107, "AC10mins Volt Fault"));
IF(GETBIT(inv, 8) = 1, ADDERROR(108, "DCI OCP Fault"));
IF(GETBIT(inv, 9) = 1, ADDERROR(109, "DCV OCP Fault"));
IF(GETBIT(inv, 10) = 1, ADDERROR(110, "SW OCP Fault"));
IF(GETBIT(inv, 11) = 1, ADDERROR(111, "RC OCP Fault"));
IF(GETBIT(inv, 12) = 1, ADDERROR(112, "Isolation Fault"));
IF(GETBIT(inv, 13) = 1, ADDERROR(113, "Temp Over Fault"));
IF(GETBIT(inv, 14) = 1, ADDERROR(114, "BatConnDir Fault"));
IF(GETBIT(inv, 15) = 1, ADDERROR(115, "Off-grid Overload"));
IF(GETBIT(inv, 16) = 1, ADDERROR(116, "Overload"));
IF(GETBIT(inv, 17) = 1, ADDERROR(117, "Bat Power Low"));
IF(GETBIT(inv, 18) = 1, ADDERROR(118, "BMS Lost"));
IF(GETBIT(inv, 19) = 1, ADDERROR(119, "Fan Fault"));
IF(GETBIT(inv, 20) = 1, ADDERROR(120, "Low Temp Fault"));
IF(GETBIT(inv, 21) = 1, ADDERROR(121, "Parallel Fault"));
IF(GETBIT(inv, 22) = 1, ADDERROR(122, "Hard Limit Fault"));
IF(GETBIT(inv, 23) = 1, ADDERROR(123, "INV Volt Sample Fault"));
IF(GETBIT(inv, 24) = 1, ADDERROR(124, "Inner Comm Fault"));
IF(GETBIT(inv, 25) = 1, ADDERROR(125, "INV EEPROM Fault"));
IF(GETBIT(inv, 26) = 1, ADDERROR(126, "RCD Fault"));
IF(GETBIT(inv, 27) = 1, ADDERROR(127, "Grid Relay Fault"));
IF(GETBIT(inv, 28) = 1, ADDERROR(128, "Off-grid Relay Fault"));
IF(GETBIT(inv, 29) = 1, ADDERROR(129, "PV ConnDir Fault"));
IF(GETBIT(inv, 30) = 1, ADDERROR(130, "Charger Relay Fault"));
IF(GETBIT(inv, 31) = 1, ADDERROR(131, "Earth Relay Fault"));
VAR mgr := MODBUSR(A, 0x0043, UInt16);
IF(GETBIT(mgr, 0) = 1, ADDERROR(200, "Power Type Fault"));
IF(GETBIT(mgr, 1) = 1, ADDWARNING(201, "Port OC Warning"));
IF(GETBIT(mgr, 2) = 1, ADDERROR(202, "Mgr EEPROM Fault"));
IF(GETBIT(mgr, 4) = 1, ADDERROR(204, "NTC Sample Invalid"));
IF(GETBIT(mgr, 5) = 1, ADDERROR(205, "Battery Temperature Low"));
IF(GETBIT(mgr, 6) = 1, ADDERROR(206, "Battery Temperature High"));
IF(GETBIT(mgr, 9) = 1, ADDERROR(209, "Meter Fault"));
IF(GETBIT(mgr, 10) = 1, ADDERROR(210, "Bypass Relay Fault"));
IF(GETBIT(mgr, 11) = 1, ADDERROR(211, "Fan 2 Fault"));
Attributi di servizio
Run mode
SWITCH(MODBUSR(A, 0x0009, UInt16), 0, "Waiting", 1, "Checking", 2, "Normal", 3, "Fault", 4, "Permanent fault", 5, "Update", 6, "Off-grid waiting", 7, "Off-grid", 8, "Self testing", 9, "Idle", 10, "Standby", 20, "Remote control", "Other")
Machine type
SWITCH(MODBUSR(H, 0x0105, UInt16), 1, "X1 (single-phase)", 3, "X3 (three-phase)", "Unknown")
Settings lock
SWITCH(MODBUSR(A, 0x0054, UInt16), 0, "Locked", 1, "Unlocked", "Unknown")
Remote control mode
SWITCH(MODBUSR(A, 0x0100, UInt16), 0, "Off", 1, "Power control", 2, "Energy target", 3, "SOC target", "Other")
Remote control - maximum target
TOSTRING(MODBUSR(A, 0x010A, LittleEndianInt32)) + " W"
Remote control - minimum target
TOSTRING(MODBUSR(A, 0x010C, LittleEndianInt32)) + " W"
Azioni di servizio
Unlock settings (password 2014)
MODBUSW(SH, 0x0000, Uint16, 2014);
End remote control
MODBUSW(H, 0x007C, Uint16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
${deviceType_PVProduction} Contatore elettrico
Attributi di servizio
PV1 power
PV2 power
PV3 power
Inverter AC output - total energy

${deviceType_PVProduction}

Lettura consumo totale
MODBUSR(A, 0x0094, LittleEndianUint32) / 10
Lettura domanda
(MODBUSR(A, 0x000A, UInt16) + MODBUSR(A, 0x000B, UInt16) + MODBUSR(A, 0x0124, UInt16)) / 1000
Attributi di servizio
PV1 power
TOSTRING(MODBUSR(A, 0x000A, UInt16)) + " W"
PV2 power
TOSTRING(MODBUSR(A, 0x000B, UInt16)) + " W"
PV3 power
TOSTRING(MODBUSR(A, 0x0124, UInt16)) + " W"
Inverter AC output - total energy
TOSTRING(MODBUSR(A, 0x0052, LittleEndianUint32) / 10, "F1") + " kWh"
Grid - power balance Contatore elettrico

Grid - power balance

Lettura domanda
MODBUSR(A, 0x0046, LittleEndianInt32) / -1000
${deviceType_PVFromGrid} Contatore elettrico

${deviceType_PVFromGrid}

Lettura consumo totale
MODBUSR(A, 0x004A, LittleEndianUint32) / 100
Lettura domanda
MAX(-MODBUSR(A, 0x0046, LittleEndianInt32), 0) / 1000
${deviceType_PVToGrid} Contatore elettrico

${deviceType_PVToGrid}

Lettura consumo totale
MODBUSR(A, 0x0048, LittleEndianUint32) / 100
Lettura domanda
MAX(MODBUSR(A, 0x0046, LittleEndianInt32), 0) / 1000
${deviceType_PVToBattery} Contatore elettrico

${deviceType_PVToBattery}

Lettura consumo totale
MODBUSR(A, 0x0021, LittleEndianUint32) / 10
Lettura domanda
MAX(MODBUSR(A, 0x0016, Int16), 0) / 1000
${deviceType_PVFromBattery} Contatore elettrico

${deviceType_PVFromBattery}

Lettura consumo totale
MODBUSR(A, 0x001D, LittleEndianUint32) / 10
Lettura domanda
MAX(-MODBUSR(A, 0x0016, Int16), 0) / 1000
${deviceType_PVLoad} Contatore elettrico

${deviceType_PVLoad}

Lettura domanda
((MODBUSR(A, 0x006C, Int16) + MODBUSR(A, 0x0070, Int16) + MODBUSR(A, 0x0074, Int16)) - MODBUSR(A, 0x0046, LittleEndianInt32)) / 1000
${deviceType_BatterySOC} Ingresso analogico
Attributi di servizio
Remaining energy
Chargeable energy

${deviceType_BatterySOC}

Lettura livello ingresso
MODBUSR(A, 0x001C, UInt16) / 100
Attributi di servizio
Remaining energy
TOSTRING(MODBUSR(A, 0x0118, LittleEndianUint32) / 1000, "F2") + " kWh"
Chargeable energy
TOSTRING(MODBUSR(A, 0x0116, LittleEndianUint32) / 1000, "F2") + " kWh"
Battery 2 - state of charge Ingresso analogico
Attributi di servizio
Battery 2 power
Battery 2 temperature

Battery 2 - state of charge

Lettura livello ingresso
MODBUSR(A, 0x012D, UInt16) / 100
Attributi di servizio
Battery 2 power
TOSTRING(MODBUSR(A, 0x0129, Int16)) + " W"
Battery 2 temperature
TOSTRING(MODBUSR(A, 0x0131, Int16)) + " °C"
Battery - temperature Sensore di temperatura

Battery - temperature

Lettura temperatura
MODBUSR(A, 0x0018, Int16)
Inverter - AC power Variabile

Inverter - AC power

Lettura
(MODBUSR(A, 0x006C, Int16) + MODBUSR(A, 0x0070, Int16) + MODBUSR(A, 0x0074, Int16)) / 1000
Grid - voltage L1 Variabile
Attributi di servizio
Grid voltage L2
Grid voltage L3
Grid frequency L1
Grid frequency L2
Grid frequency L3

Grid - voltage L1

Lettura
MODBUSR(A, 0x006A, UInt16) / 10
Attributi di servizio
Grid voltage L2
TOSTRING(MODBUSR(A, 0x006E, UInt16) / 10, "F1") + " V"
Grid voltage L3
TOSTRING(MODBUSR(A, 0x0072, UInt16) / 10, "F1") + " V"
Grid frequency L1
TOSTRING(MODBUSR(A, 0x006D, UInt16) / 100, "F2") + " Hz"
Grid frequency L2
TOSTRING(MODBUSR(A, 0x0071, UInt16) / 100, "F2") + " Hz"
Grid frequency L3
TOSTRING(MODBUSR(A, 0x0075, UInt16) / 100, "F2") + " Hz"
Settings - work mode Interruttore multivalore
Valori / Stati: Self use · Feed-in priority · Backup · Manual · Peak shaving · Time of use

Settings - work mode

Lettura stato interruttore
MODBUSR(H, 0x008B, UInt16)
Scrittura stato interruttore
IF(MODBUSR(H, 0x008B, UInt16) != Mu AND MODBUSR(A, 0x0054, UInt16) = 0, MODBUSW(SH, 0x0000, Uint16, 2014));
IF(MODBUSR(H, 0x008B, UInt16) != Mu, MODBUSW(SH, 0x001F, Uint16, Mu));
Settings - manual mode Interruttore multivalore
Valori / Stati: Stop charge and discharge · Force charge · Force discharge

Settings - manual mode

Lettura stato interruttore
MODBUSR(H, 0x008C, UInt16)
Scrittura stato interruttore
IF(MODBUSR(H, 0x008C, UInt16) != Mu AND MODBUSR(A, 0x0054, UInt16) = 0, MODBUSW(SH, 0x0000, Uint16, 2014));
IF(MODBUSR(H, 0x008C, UInt16) != Mu, MODBUSW(SH, 0x0020, Uint16, Mu));
Settings - self-use minimum SOC Dimmer

Settings - self-use minimum SOC

Lettura livello
GETBYTE(MODBUSR(H, 0x0093, UInt16), 1) / 100
Scrittura livello
VAR v := MAX(ROUND(Le * 100), 10);
IF(GETBYTE(MODBUSR(H, 0x0093, UInt16), 1) != v AND MODBUSR(A, 0x0054, UInt16) = 0, MODBUSW(SH, 0x0000, Uint16, 2014));
IF(GETBYTE(MODBUSR(H, 0x0093, UInt16), 1) != v, MODBUSW(SH, 0x0061, Uint16, v));
Settings - night charge from grid Interruttore
Valori / Stati: ON · OFF

Settings - night charge from grid

Lettura stato interruttore
GETBYTE(MODBUSR(H, 0x0093, UInt16), 0)
Scrittura stato interruttore
IF(GETBYTE(MODBUSR(H, 0x0093, UInt16), 0) != St AND MODBUSR(A, 0x0054, UInt16) = 0, MODBUSW(SH, 0x0000, Uint16, 2014));
IF(GETBYTE(MODBUSR(H, 0x0093, UInt16), 0) != St, MODBUSW(SH, 0x0062, Uint16, St));
Settings - night charge target SOC Dimmer

Settings - night charge target SOC

Lettura livello
MODBUSR(H, 0x0094, UInt16) / 100
Scrittura livello
VAR v := MAX(ROUND(Le * 100), 10);
IF(MODBUSR(H, 0x0094, UInt16) != v AND MODBUSR(A, 0x0054, UInt16) = 0, MODBUSW(SH, 0x0000, Uint16, 2014));
IF(MODBUSR(H, 0x0094, UInt16) != v, MODBUSW(SH, 0x0063, Uint16, v));
Settings - export limit Variabile

Settings - export limit

Lettura
MODBUSR(H, 0x00B6, UInt16) / 100
Scrittura
VAR v := MAX(ROUND(Va * 100), 0);
IF(MODBUSR(H, 0x00B6, UInt16) != v AND MODBUSR(A, 0x0054, UInt16) = 0, MODBUSW(SH, 0x0000, Uint16, 2014));
IF(MODBUSR(H, 0x00B6, UInt16) != v, MODBUSW(SH, 0x0042, Uint16, v));
Remote control - AC power target Variabile
Attributi di servizio
Actual AC power

Remote control - AC power target

Lettura
IF(MODBUSR(A, 0x0100, UInt16) = 1, MODBUSR(A, 0x0102, LittleEndianInt32) / 1000, 0)
Scrittura
VAR w := ROUND(Va * 1000);
VAR u := IF(w < 0, w + 4294967296, w);
IF(w = 0 AND MODBUSR(A, 0x0100, UInt16) != 0, MODBUSW(H, 0x007C, Uint16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
IF(w != 0 AND MODBUSR(A, 0x0054, UInt16) = 0, MODBUSW(SH, 0x0000, Uint16, 2014));
IF(w != 0, MODBUSW(H, 0x007C, Uint16, 1, 1, MOD(u, 65536), FLOOR(u / 65536), 0, 0, 120, 0, 0, 0, 0, 0, 60));
Attributi di servizio
Actual AC power
TOSTRING(MODBUSR(A, 0x0106, LittleEndianInt32)) + " W"
Connessione: Modbus RTU • 19200 baud• 8N1 • Slave ID: $[SlaveId]

Parametri di importazione

Inserisci questi valori quando importi l'XML.

Richiesto nell'appPredefinito
Modbus Slave ID1

Hai trovato un problema con questo template?

Dicci cosa non funziona, cosa manca o come dovrebbe comportarsi il template. Il tuo feedback ci aiuta a mantenere il catalogo accurato.

Modello · portale TapHome SolaX X3-Ultra Hybrid Inverter — monitoring and power control (Modbus RTU) Apri questo template nel Customer Portal per applicarlo a una delle tue case, o crea una proposta di modifica e inviala al catalogo. Modbus RTU Vedi nel portale TapHome