TapHome

Sofar Solar HYD KTL-3PH

Modbus RTU
Inviato da
Ultimo aggiornamento: 03. 2026
Sofar Solar HYD KTL-3PH

Il Sofar Solar HYD 5/6/8/10/15/20KTL-3PH è una serie di inverter ibridi trifase che combinano la produzione fotovoltaica con l’accumulo di energia a batteria. TapHome si connette tramite Modbus RTU su RS-485 utilizzando il connettore COM a 16 pin dell’inverter, leggendo i registri holding per la potenza FV in tempo reale, lo stato della batteria, la potenza di rete, le tensioni per fase e i contatori energetici.

L’inverter supporta fino a 31 dispositivi su un singolo bus RS-485 con cablaggio daisy-chain. Ogni inverter richiede un Modbus Slave ID univoco (configurabile, predefinito 1). I parametri di comunicazione sono fissi: 9600 baud, 8N1.

Connessione hardware

Interfacce di comunicazione
Posizione delle interfacce di comunicazione Sofar Solar HYD KTL-3PH

La connessione RS-485 per il monitoraggio TapHome utilizza la porta COM — un connettore multifunzionale a 16 pin nella parte inferiore dell’inverter.

Pinout della porta COM
Pinout del connettore COM a 16 pin del Sofar Solar HYD KTL-3PH

Pin rilevanti per la connessione TapHome:

PinFunzioneNota
1RS485A1-1 (+)Segnale RS-485 A di monitoraggio/controllo
2RS485A1-2 (+)Secondo connettore per daisy-chain
3RS485B1-1 (-)Segnale RS-485 B
4RS485B1-2 (-)Secondo connettore per daisy-chain
5RS485A2 (+)Smart meter — bus separato
6RS485B2 (-)Smart meter — bus separato
7CAN0_HComunicazione BMS (CAN)
8CAN0_LComunicazione BMS (CAN)

Collega TapHome ai pin 1+3 (o 2+4):

  • Pin 1 (RS485A1) → A+/D+ sull’RS-485 di TapHome
  • Pin 3 (RS485B1) → B-/D- sull’RS-485 di TapHome

Non utilizzare i pin 5+6 — sono dedicati allo smart meter su un bus RS-485 separato. TapHome deve essere collegato ai pin 1+3 (o 2+4) per il monitoraggio Modbus.

Cablaggio RS-485 daisy-chain
Cablaggio RS-485 daisy-chain per più inverter Sofar Solar

Quando si collegano più inverter, cablarli in daisy-chain sul bus RS-485. Posizionare un resistore di terminazione da 120 Ohm tra il Pin 1 e il Pin 4 sul primo e sull’ultimo dispositivo del bus.

Specifiche del cavo:

  • Tipo: Doppino intrecciato schermato, diametro rame > 0,5 mm²
  • Lunghezza massima: 1200 m
  • Mantenere i cavi lontano dai cavi di potenza e dai campi elettrici

Configurazione

Parametri di comunicazione Modbus

I parametri di comunicazione RS-485 sono fissi e non richiedono configurazione sul lato inverter:

ParametroValore
Baud rate9600 bps
Bit di dati8
ParitàNessuna
Bit di stop1
Slave ID1 (predefinito, configurabile 1–31)

Con più inverter sullo stesso bus, ciascuno deve avere uno Slave ID univoco. Lo Slave ID può essere configurato tramite il menu LCD dell’inverter o l’app SolarMAN.

Funzionalità del dispositivo

Monitoraggio batteria

Il template fornisce il monitoraggio dello stato di carica (SOC) per un massimo di due pacchi batteria. Il SOC Batteria 1 è disponibile su tutti i modelli HYD KTL-3PH, il SOC Batteria 2 sui modelli HYD 10–20KTL-3PH con ingresso batteria duale.

Ogni dispositivo SOC batteria include cinque attributi di servizio per la diagnostica dettagliata: temperatura, tensione, corrente di carica/scarica, potenza di carica/scarica e stato di salute (SOH).

Due dispositivi contatore energia tracciano la carica e la scarica giornaliera della batteria in kWh, ciascuno con un attributo di servizio per il totale a vita.

Monitoraggio produzione FV

Il template legge la potenza da un massimo di tre stringhe FV individuali (PV1, PV2, PV3), ciascuna con attributi di servizio per tensione e corrente della stringa. Un dispositivo combinato PV Power Total mostra la potenza aggregata di tutte le stringhe.

Due dispositivi contatore energia tracciano la produzione FV — totali giornalieri e a vita in kWh.

Energia di rete e carico

Quattro dispositivi contatore energia forniscono letture giornaliere per l’interazione con la rete e il consumo del carico:

  • Energy Purchase Today — energia acquistata dalla rete (kWh)
  • Energy Selling Today — energia venduta alla rete (kWh)
  • Load Consumption Today — consumo totale del carico (kWh)

Ogni contatore giornaliero include un attributo di servizio con il totale a vita.

Monitoraggio uscita AC

Il template fornisce tre dispositivi di tensione per fase (fase R/S/T, corrispondenti a L1/L2/L3), ciascuno con un attributo di servizio per la corrente di fase. La frequenza di rete è riportata in Hz.

Due dispositivi di potenza monitorano l’uscita dell’inverter in diversi punti di misura:

  • Total Active Power Output — potenza attiva in uscita dall’inverter in kW, con attributi di servizio per la potenza reattiva (kVAR) e la potenza apparente (kVA)
  • Total Active Power PPC — potenza al punto di connessione comune (punto di connessione alla rete) in kW, con attributi di servizio per potenza reattiva e apparente. Questa misura viene utilizzata per la limitazione dell’immissione in rete e le funzioni del regolatore di centrale.
Attributi di servizio del modulo

Il modulo espone tre attributi di servizio per la diagnostica dell’inverter:

  • Product Code — identificazione del prodotto inverter
  • System State — stato operativo corrente: In attesa, Rilevamento, Connesso alla rete, Alimentazione di emergenza, Guasto recuperabile, Guasto permanente, Aggiornamento o Auto-ricarica
  • Ambient Temperature — temperatura interna dell’inverter in °C

Il modulo ReadScript monitora anche tre registri bitmask di errore (H:0x0405–H:0x0407), che riportano guasti di protezione della rete, errori di campionamento e guasti hardware come errori in TapHome.

Funzionalità aggiuntive

Gli inverter HYD KTL-3PH espongono anche registri per l’accensione/spegnimento remoto, la selezione della modalità di accumulo energia (Autoconsumo, Fasce orarie, Temporizzazione, Passivo, Taglio dei picchi, Isola) e il controllo passivo di carica/scarica batteria per sistemi di gestione energetica esterni. Potenza attiva per fase e fattore di potenza, monitoraggio uscita isola/EPS, ingressi stringa FV aggiuntivi (PV4+), conteggi cicli batteria, temperatura del dissipatore e parametri per le batterie 3–6 sono anch’essi disponibili tramite Modbus. Questi possono essere aggiunti in un futuro aggiornamento del template.

I registri della modalità passiva (H:0x1110 e H:0x1187) consentono il controllo Modbus esterno della potenza di carica/scarica della batteria. Questo è particolarmente utile per le smart rule di TapHome per implementare strategie di gestione energetica come la ricarica delle batterie durante i periodi a tariffa bassa.

Risoluzione dei problemi

Nessuna comunicazione Modbus
  1. Verificare che il cavo RS-485 sia collegato ai pin 1+3 (o 2+4) sulla porta COM — non ai pin 5+6 (bus smart meter)
  2. Controllare la polarità del cavo: Pin 1 (A+) a TapHome A+, Pin 3 (B-) a TapHome B-
  3. Confermare che TapHome è configurato per 9600 baud, nessuna parità, 1 bit di stop
  4. Verificare che lo Slave ID corrisponda tra inverter e TapHome
  5. Controllare il resistore di terminazione da 120 Ohm sul primo e ultimo dispositivo del bus
Errori di comunicazione intermittenti
  1. Assicurarsi che il cavo RS-485 sia un doppino intrecciato schermato con diametro rame > 0,5 mm²
  2. Mantenere i cavi RS-485 lontano dai cavi di potenza e dal cablaggio DC
  3. Verificare che la lunghezza totale del bus non superi 1200 m
  4. Assicurarsi che non ci siano Slave ID duplicati sul bus
System State mostra un guasto
  1. Controllare l’attributo di servizio System State per il codice di stato specifico (4 = Guasto recuperabile, 5 = Guasto permanente)
  2. Esaminare i dettagli dei registri di errore nella diagnostica di servizio TapHome — il template legge tre registri bitmask di errore che coprono protezione della rete, errori di campionamento e guasti hardware
  3. Consultare il display LCD dell’inverter o l’app SolarMAN per i codici di errore dettagliati

Dispositivi disponibili

Sofar Solar HYD KTL-3PH Modulo
Attributi di servizio
Codice prodotto
Stato del sistemaStato operativo dell'inverter — In attesa, Rilevamento, Connesso alla rete, Alimentazione di emergenza, Guasto recuperabile, Guasto permanente, Aggiornamento, Auto-ricarica
Temperatura ambienteTemperatura interna dell'inverter in °C

SofarSolar

Lettura (modulo)
#fault 1
var fault :=MODBUSR(H, 0x0405, Uint16);
IF fault !=0 
IF(GETBIT(fault, 0) != 0, ADDERROR("Grid over-voltage"));
IF(GETBIT(fault, 1) != 0, ADDERROR("Grid undervoltage"));
IF(GETBIT(fault, 2) != 0, ADDERROR("Grid overfrequency"));
IF(GETBIT(fault, 3) != 0, ADDERROR("Grid underfrequency"));
IF(GETBIT(fault, 4) != 0, ADDERROR("Leakage current fault"));
IF(GETBIT(fault, 5) != 0, ADDERROR("High penetration error"));
IF(GETBIT(fault, 6) != 0, ADDERROR("Low penetration error"));
IF(GETBIT(fault, 7) != 0, ADDERROR("Islanding error"));
IF(GETBIT(fault, 8) != 0, ADDERROR("Grid voltage transient value overvoltage 1"));
IF(GETBIT(fault, 9) != 0, ADDERROR("Grid voltage transient value overvoltage 2"));
IF(GETBIT(fault, 10) != 0, ADDERROR("Grid line voltage error"));
IF(GETBIT(fault, 11) != 0, ADDERROR("Inverter voltage error"));
IF(GETBIT(fault, 12) != 0, ADDERROR("Anti-backflow overload"));
END

#fault 2
fault :=MODBUSR(H, 0x0406, Uint16);
IF fault !=0 
IF(GETBIT(fault, 0) != 0, ADDERROR("Grid current sampling error"));
IF(GETBIT(fault, 1) != 0, ADDERROR("Grid current DC component sampling error (AC side)"));
IF(GETBIT(fault, 2) != 0, ADDERROR("Grid voltage sampling error (DC side)"));
IF(GETBIT(fault, 3) != 0, ADDERROR("Grid voltage sampling error (AC side)"));
IF(GETBIT(fault, 4) != 0, ADDERROR("Leakage current sampling error (DC side)"));
IF(GETBIT(fault, 5) != 0, ADDERROR("Leakage current sampling error (AC side)"));
IF(GETBIT(fault, 6) != 0, ADDERROR("Load voltage DC component sampling error"));
IF(GETBIT(fault, 7) != 0, ADDERROR("DC input current sampling error"));
IF(GETBIT(fault, 8) != 0, ADDERROR("DC component sampling error of grid current (DC side)"));
IF(GETBIT(fault, 9) != 0, ADDERROR("DC input branch current sampling error"));
IF(GETBIT(fault, 12) != 0, ADDERROR("Leakage current consistency error"));
IF(GETBIT(fault, 13) != 0, ADDERROR("Grid voltage consistency error"));
IF(GETBIT(fault, 14) != 0, ADDERROR("DCI consistency error"));
END

#fault 3
fault :=MODBUSR(H, 0x0407, Uint16);
IF fault !=0 
IF(GETBIT(fault, 0) != 0, ADDERROR("SPI communication error (DC side)"));
IF(GETBIT(fault, 1) != 0, ADDERROR("SPI communication error (AC side)"));
IF(GETBIT(fault, 2) != 0, ADDERROR("Chip error (DC side)"));
IF(GETBIT(fault, 3) != 0, ADDERROR("Chip error (AC side)"));
IF(GETBIT(fault, 4) != 0, ADDERROR("Auxiliary power error"));
IF(GETBIT(fault, 5) != 0, ADDERROR("Inverter soft start failure"));
IF(GETBIT(fault, 8) != 0, ADDERROR("Relay detection failure"));
IF(GETBIT(fault, 9) != 0, ADDERROR("Low insulation impedance"));
IF(GETBIT(fault, 10) != 0, ADDERROR("Grounding error"));
IF(GETBIT(fault, 11) != 0, ADDERROR("Input mode setting error"));
IF(GETBIT(fault, 12) != 0, ADDERROR("CT error"));
IF(GETBIT(fault, 13) != 0, ADDERROR("Input reversal error"));
IF(GETBIT(fault, 14) != 0, ADDERROR("Parallel error"));
IF(GETBIT(fault, 15) != 0, ADDERROR("Serial number error"));
END
Attributi di servizio
Product Code
MODBUSR(H, 0x2000, Uint16);
System State
SWITCH(MODBUSR(H, 0x0404, Uint16),
0, "Waiting",
1, "Detection",
2, "Grid-connected",
3, "Emergency power supply",
4, "Recoverable fault",
5, "Permanent fault",
6, "Upgrade",
7, "Self-charging",
"Fault")
Ambient Temperature
MODBUSR(H, 0x0418, Int16) + "°C";
Batteria 1 SOC Ingresso analogico Solo lettura

Stato di carica batteria 1 in percentuale — include attributi di servizio per temperatura, tensione, corrente, potenza e SOH

Registro: H:0x0608 Uint16 Unità: % numeric
Attributi di servizio
Temperatura
Tensione
Corrente
Potenza
SOH

Batteria 1 SOC

Lettura livello ingresso
MODBUSR(H, 0x0608, Uint16)
Attributi di servizio
Temperature
MODBUSR(H, 0x0607, Int16) + "°C";
Voltage
MODBUSR(H, 0x0604, Uint16) + " V";
Current
MODBUSR(H, 0x0605, Int16)/100 + " A";
Power
MODBUSR(H, 0x0606, Int16)/100 + " kW";
SOH
MODBUSR(H, 0x0609, Uint16) + " %";
Batteria 2 SOC Ingresso analogico Solo lettura

Stato di carica batteria 2 in percentuale — disponibile sui modelli HYD 10–20KTL-3PH con ingresso batteria duale

Registro: H:0x060F Uint16 Unità: % numeric
Attributi di servizio
Temperatura
Tensione
Corrente
Potenza
SOH

Batteria 2 SOC

Lettura livello ingresso
MODBUSR(H, 0x060F, uint16)
Attributi di servizio
Temperature
MODBUSR(H, 0x060E, Int16) + " °C";
Voltage
MODBUSR(H, 0x060B, Uint16) + " V";
Current
MODBUSR(H, 0x060C, Int16) + " A";
Power
MODBUSR(H, 0x060D, Int16) + " kW";
SOH
MODBUSR(H, 0x0610, Uint16) + " %";
Scarica batteria oggi Variabile Solo lettura

Energia giornaliera di scarica batteria in kWh — include il totale a vita

Registro: H:0x0698 Uint32 Unità: kWh numeric
Attributi di servizio
Scarica batteria totale

Scarica batteria oggi

Lettura
MODBUSR(H, 0x0698, Uint32)/100
Attributi di servizio
Battery Discharge Total
MODBUSR(H, 0x069A, Uint32)/10
Carica batteria oggi Variabile Solo lettura

Energia giornaliera di carica batteria in kWh — include il totale a vita

Registro: H:0x0694 Uint32 Unità: kWh numeric
Attributi di servizio
Carica batteria totale

Carica batteria oggi

Lettura
MODBUSR(H, 0x0694, Uint32)/100
Attributi di servizio
Battery Charge Total
MODBUSR(H, 0x0696, Uint32)/10
Acquisto energia oggi Variabile Solo lettura

Energia giornaliera acquistata dalla rete in kWh — include il totale a vita

Registro: H:0x068C Uint32 Unità: kWh numeric
Attributi di servizio
Acquisto energia totale

Acquisto energia oggi

Lettura
MODBUSR(H, 0x068C, Uint32)/100
Attributi di servizio
Energy Purchase Total
MODBUSR(H, 0x068E, Uint32)/10 + " kWh"
Vendita energia oggi Variabile Solo lettura

Energia giornaliera venduta alla rete in kWh — include il totale a vita

Registro: H:0x0690 Uint32 Unità: kWh numeric
Attributi di servizio
Vendita energia totale

Vendita energia oggi

Lettura
MODBUSR(H, 0x0690, Uint32)/100
Attributi di servizio
Energy Selling Total
MODBUSR(H, 0x0692, Uint32)/10
Frequenza di rete Variabile Solo lettura
Registro: H:0x0484 UInt16 Unità: Hz numeric

Frequenza di rete

Lettura
MODBUSR(H, 0x484, UInt16)/100
Consumo carico oggi Variabile Solo lettura

Consumo giornaliero del carico in kWh — include il totale a vita

Registro: H:0x0688 Int32 Unità: kWh numeric
Attributi di servizio
Consumo carico totale

Consumo carico oggi

Lettura
MODBUSR(H, 0x0688, Int32)/100
Attributi di servizio
Load Consumption Total
MODBUSR(H, 0x068A, Int32)/100 + "kWh"
Potenza FV totale Variabile Solo lettura

Potenza combinata di tutte le stringhe FV in kW

Registro: H:0x05C4 Uint16 Unità: kW numeric

Potenza FV totale

Lettura
MODBUSR(H, 0x05C4, Uint16)/10
PV1 potenza Variabile Solo lettura
Registro: H:0x0586 Uint16 Unità: kW numeric
Attributi di servizio
Tensione
Corrente

PV1 potenza

Lettura
MODBUSR(H, 0x0586, Uint16)/100
Attributi di servizio
Voltage
MODBUSR(H, 0x0584, Uint16)/10 + " V";
Current
MODBUSR(H, 0x0585, Uint16)/100 + " A";
PV2 potenza Variabile Solo lettura
Registro: H:0x0589 Uint16 Unità: kW numeric
Attributi di servizio
Tensione
Corrente

PV2 potenza

Lettura
MODBUSR(H, 0x0589, Uint16)/100
Attributi di servizio
Voltage
MODBUSR(H, 0x0587, Uint16)/10 + " V";
Current
MODBUSR(H, 0x0588, Uint16)/100 + " A";
PV3 potenza Variabile Solo lettura
Registro: H:0x058A Uint16 Unità: kW numeric
Attributi di servizio
Tensione
Corrente

PV3 potenza

Lettura
MODBUSR(H, 0x058A, Uint16)/100
Attributi di servizio
Voltage
MODBUSR(H, 0x058A, Uint16)/10 + " V";
Current
MODBUSR(H, 0x058B, Uint16)/100 + " A"
Produzione FV oggi Variabile Solo lettura

Produzione FV giornaliera in kWh

Registro: H:0x0684 Int32 Unità: kWh numeric

Produzione FV oggi

Lettura
MODBUSR(H, 0x0684, Int32)/100
Produzione FV totale Variabile Solo lettura

Produzione FV totale a vita in kWh

Registro: H:0x0686 Int32 Unità: kWh numeric

Produzione FV totale

Lettura
MODBUSR(H, 0x0686, Int32)/100
Tensione fase R Variabile Solo lettura

Tensione di rete fase L1/R in V — include attributo di servizio per la corrente di fase

Registro: H:0x048D Uint16 Unità: V numeric
Attributi di servizio
Corrente R

Tensione fase R

Lettura
MODBUSR(H, 0x048D, Uint16)/10
Attributi di servizio
Current R
MODBUSR(H, 0x048E, Uint16)/100 + " A";
Tensione fase S Variabile Solo lettura

Tensione di rete fase L2/S in V — include attributo di servizio per la corrente di fase

Registro: H:0x0498 Uint16 Unità: V numeric
Attributi di servizio
Corrente S

Tensione fase S

Lettura
MODBUSR(H, 0x0498, Uint16)/10
Attributi di servizio
Current S
MODBUSR(H, 0x0499, Uint16)/100 + " A"
Tensione fase T Variabile Solo lettura

Tensione di rete fase L3/T in V — include attributo di servizio per la corrente di fase

Registro: H:0x04A3 Uint16 Unità: V numeric
Attributi di servizio
Corrente T

Tensione fase T

Lettura
MODBUSR(H, 0x04A3, Uint16)/10
Attributi di servizio
Current T
MODBUSR(H, 0x04A4, Uint16)/100 + " A"
Potenza attiva totale in uscita Variabile Solo lettura

Potenza attiva totale in uscita dall'inverter in kW — include potenza reattiva e apparente

Registro: H:0x0485 Int16 Unità: kW numeric
Attributi di servizio
Potenza reattiva in uscita
Potenza apparente in uscita

Potenza attiva totale in uscita

Lettura
MODBUSR(H, 0x0485, Int16)/100
Attributi di servizio
Reactive Power Output
MODBUSR(H, 0x0486, Int16)/100 + " kW" ;
Apparent Power Output
MODBUSR(H, 0x0487, Int16)/100 + " kW" ;
Potenza attiva totale PPC Variabile Solo lettura

Potenza attiva al punto di connessione comune (punto di connessione alla rete) in kW — utilizzata per la limitazione dell'immissione

Registro: H:0x0488 Int16 Unità: kW numeric
Attributi di servizio
Potenza reattiva PPC
Potenza apparente PPC

Potenza attiva totale PPC

Lettura
MODBUSR(H, 0x0488, Int16)/100
Attributi di servizio
Reactive Power PPC
MODBUSR(H, 0x0489, Int16)/100 + " kW" ;
Apparent Power PPC
MODBUSR(H, 0x048A, Int16)/100 + " kW" ;
Connessione: Modbus RTU • 9600 baud• 8N1 • Slave ID: $[SlaveId]
Possibili miglioramenti (12)
  • H:0x1104 Remote Switch On/Off — Remote inverter on/off control — useful for TapHome automation
  • H:0x1110 Energy Storage Mode — Operating mode selection: Self-use, Time-of-Use, Timing, Passive, Peak Shaving, Off-grid
  • H:0x1187 Passive Battery Charge/Discharge — S32, external Modbus control of battery charge/discharge power — enables TapHome smart rule energy management
  • H:0x0200 Running State — 0=Wait, 1=CheckState, 2=Normal, 3=CheckDischarge, 4=Discharge, 5=EPS, 6=Fault, 7=Permanent — older register range, covered by H:0x0404 System State in module
  • H:0x0504 Off-Grid Active Power — EPS/backup output power (S16, 0.01 kW) — relevant for off-grid/backup scenarios
  • H:0x050A-0x0522 Off-Grid Per-Phase Voltage/Current/Power — L1/L2/L3 off-grid output monitoring — 9 registers for 3-phase EPS output
  • H:0x0507 Off-Grid Frequency — EPS output frequency (U16, 0.01 Hz)
  • H:0x048F-0x04A7 Per-Phase Active/Reactive Power and Power Factor — L1/L2/L3 individual active power, reactive power, and power factor — template only reads voltage+current per phase
  • H:0x058D-0x058F PV4 Voltage/Current/Power — PV string 4 input — template supports up to PV3. HA integration supports up to PV10
  • H:0x0612-0x0627 Battery 3–6 Parameters — Additional battery packs (voltage, current, power, temperature, SOC, SOH, cycles) — template supports battery 1–2 only
  • H:0x022C Battery Cycle Count — Battery cycle times (Uint16, 0–65536) — available at 0x060A per battery in HA integration
  • H:0x0419 Heatsink Temperature — Inverter heatsink temperature (S16, °C) — template reads inner temperature (0x0418) only

Fonti