TapHome

SolaX Hybrid X1/X3 Gen 4

Modbus RTU
Pridal
Posledná aktualizácia: 03. 2026
SolaX Hybrid X1/X3 Gen 4

SolaX X1-HYBRID a X3-HYBRID Gen 4 sú striedače s akumuláciou energie, ktoré podporujú jednofázové (3–7,5 kW) aj trojfázové (5–15 kW) konfigurácie. Šablóna TapHome komunikuje cez Modbus RTU po RS-485 a číta vstupné a holding registre pre stav nabitia batérie, výkon FV reťazca, tok výkonu siete, celkové množstvo energie, režim nabíjačky a SOC nočného nabíjania. Všetky zápisy sú zakomentované, takže šablóna je efektívne len na čítanie.

Šablóna tiež implementuje komplexnú detekciu porúch parsovaním 32-bitových chybových kódov striedača a 16-bitových chybových kódov správcu, ktoré hlási ako chyby v TapHome.

Zapojenie hardvéru

Striedač SolaX Gen 4 poskytuje COM port RS-485 pre komunikáciu Modbus RTU na spodnom paneli. COM port používa konektor RJ45.

Spodný panel SolaX X3-HYBRID G4 — rozloženie terminálov s COM, BMS, Meter/CT, PV, BAT a GRID pripojeniami

Priradenie pinov COM terminálu (RJ45):

PinPriradeniePopis
1Drycontact_A(in)Pripojenie systémového spínača
2Drycontact_B(in)Pripojenie systémového spínača
3+13V
4485ARS-485 data+ (pre TapHome)
5485BRS-485 data− (pre TapHome)
6GNDUzemnenie
7Drycontact_A(out)Pripojenie generátora
8Drycontact_B(out)Pripojenie generátora

Pripojte TapHome k COM portu striedača:

  • Pin 4 (485A) na COM porte striedača k A+/D+ na RS-485 TapHome
  • Pin 5 (485B) na COM porte striedača k B-/D- na RS-485 TapHome
  • Pin 6 (GND) — odporúča sa pripojiť pre spoľahlivú komunikáciu

Striedač sám o sebe natívne nepodporuje Modbus TCP. Modbus TCP je dostupný iba cez monitorovací modul SolaX (Wi-Fi dongle) a šablóna TapHome ho nepoužíva.

Pre inštalácie, kde zapojenie RS-485 nie je praktické, šablóna SolaX Inverter (Cloud API) poskytuje monitorovanie cez platformu SolaxCloud prostredníctvom HTTPS — bez fyzického pripojenia. Podporuje všetky typy invertorov SolaX, nielen Gen 4 Hybrid.

Niektoré holding registre sú označené obmedzeným počtom zápisových cyklov EEprom. Nadmerné zápisové operácie môžu spôsobiť nenapraviteľné poškodenie hardvéru. Šablóna TapHome má všetky zápisové skripty zakázané, takže pri aktuálnej šablóne to nie je problém.

Konfigurácia

Aktivácia komunikácie Modbus

Modbus RTU je štandardne dostupný na COM porte RS-485 striedača. Nasledujúce parametre sa musia zhodovať medzi striedačom a modulom TapHome:

  1. Slave ID – predvolená hodnota je 1, nastaviteľné na displeji striedača
  2. Baud rate – striedač má predvolených 19200 baud, ale šablóna TapHome používa 9600 baud. Upravte jeden z nich tak, aby sa zhodoval
  3. Formát dát – 8 dátových bitov, bez parity, 1 stop bit

Konfigurácia na displeji striedača: Menu > Setting > Advance Setting > Modbus. Nastavte slave adresu a baud rate. Baud rate je možné prečítať aj z holding registra H:0x00B0 a zapísať cez register 0x00CA (hodnoty: 0=115200, 1=57600, 2=56000, 3=38400, 4=19200, 5=14400, 6=9600).

Aby ste nemuseli meniť nastavenia striedača, upravte baud rate v nastaveniach modulu TapHome na 19200, čím sa zhoduje s predvolenou hodnotou striedača.

Časovanie komunikácie

Protokol vyžaduje minimálny interval 1 sekundy medzi po sebe idúcimi inštrukciami Modbus a timeout medzery medzi znakmi aspoň 100 ms. Timeout odpovede je 1 sekunda. Šablóna TapHome používa individuálne intervaly pollingu pre každé zariadenie (2,5 s až 150 s), čo tieto podmienky spĺňa.

Funkcia COM portu RS-485

Register H:0x013E (485CommFunSelect) určuje, či sa port RS-485 používa na komunikáciu Modbus (hodnota 0) alebo komunikáciu nabíjačky EV (hodnota 1). Pre integráciu TapHome musí byť nastavený na 0 (Modbus 485).

Možnosti zariadenia

Monitorovanie batérie
  • Battery SOC – číta stav nabitia batérie (A:0x1C) v percentách. Hodnota registra v jednotkách 1 % sa delí číslom 100 pre rozsah analógového vstupu TapHome 0–1 (napr. 85 % sa zobrazí ako 0,85)
  • Battery Temperature – číta teplotu batérie (A:0x18) v stupňoch Celzia. Polling každých 80 sekúnd
Solárny výkon FV
  • PV1 Power – jednosmerný výkon FV reťazca 1 (A:0x0A), zobrazený v kW po vydelení 1000 z wattov
  • PV2 Power – jednosmerný výkon FV reťazca 2 (A:0x0B), zobrazený v kW po vydelení 1000 z wattov
Výkon siete a meranie energie
  • Grid Feed-in Power – okamžitý výkon siete (A:0x46, LittleEndianInt32) v kW. Kladné hodnoty označujú export do siete, záporné hodnoty označujú odber zo siete
  • Daily / Actual Energy – kombinuje denný výkon energie zo striedača cez AC port (A:0x50, rozlíšenie 0,1 kWh) a aktuálny výkon siete (A:0x02) v kW. Register výkonu siete je špecifický pre X1 (jednofázový)
  • Total Energy – celková kumulatívna produkcia energie zo striedača cez AC port (A:0x52, LittleEndianInt32), zobrazená v MWh
Režim nabíjačky a nočné nabíjanie
  • Charger Use Mode – číta aktívny režim solárnej nabíjačky (H:0x8B): Self Use Mode (0), Feedin Priority (1), Backup Mode (2) alebo Manual Mode (3). Hodnoty 4–9 sú rezervované. Zápisový register (H:0x1F) v šablóne existuje, ale je zakomentovaný, takže je to len na čítanie
  • Self-Use Night Charge SOC – číta hornú cieľovú hodnotu SOC pre nočné nabíjanie v režime Self-Use (H:0x94) v percentách. Zápisový register (H:0x63) aj aktivačný register (H:0x62) sú zakomentované, takže konfiguráciu nočného nabíjania nie je možné meniť cez TapHome
Detekcia porúch

ReadScript na úrovni modulu monitoruje prevádzkový režim striedača (A:0x09) a dva chybové registre:

  • Run Mode poruchy – vyvolá chybu pri Run Mode 3 (Porucha) alebo 4 (Trvalá porucha)
  • Chybové kódy striedača (A:0x40) – 32-bitová bitmapa parsovaná pre 28 individuálnych porúch vrátane porúch napätia/frekvencie siete, porúch napätia FV, porúch batérie, izolačných porúch, prehriatia, ochrany pred preťažením, porúch relé a komunikačných chýb
  • Chybové kódy správcu (A:0x43) – 16-bitová bitmapa parsovaná pre poruchy typu výkonu, chyby EEPROM, problémy NTC senzorov, varovania teploty batérie, poruchy meradla a poruchy ventilátora

Atribút služby Run Mode na module zobrazuje aktuálny stav striedača ako text: Waiting, Checking, Normal, Fault, Permanent Fault, Update, Off-grid waiting, Off-grid, Self Testing, Idle alebo Standby.

Ďalšie možnosti

Striedač poskytuje komplexnú mapu registrov s viac ako 300 holding registrami a 200 vstupnými registrami. Pozoruhodné možnosti, ktoré ešte nie sú implementované v šablóne, zahŕňajú monitorovanie napätia a prúdu pre každý FV reťazec (A:0x03–0x06), merania napätia/prúdu/výkonu batérie, stav pripojenia BMS, stav siete on/off, X3 napätie/prúd/výkon siete pre každú fázu (12 registrov na A:0x6A–0x75), kumulatívna energia dodaná do siete a odobraná zo siete (cez merač), celková produkcia solárnej energie, BMS SOC a SOH používateľa a min/max teplota a napätie článkov batérie. Možnosti zápisov zahŕňajú ovládanie zapnutia/vypnutia systému, výber režimu nabíjačky, manuálne nútené nabíjanie/vybíjanie, minimálny SOC vybíjania, konfiguráciu nočného nabíjania a vzdialené riadenie výkonu s cieľovými hodnotami činného/jalového výkonu. Tieto funkcie je možné doplniť v budúcej aktualizácii šablóny.

Šablóna aktuálne číta výkon siete X1 (jednofázový) na A:0x02. Pre inštalácie X3 (trojfázové) je výkon siete pre každú fázu dostupný na registroch A:0x6C, A:0x70 a A:0x74, ale v aktuálnej šablóne nie je zahrnutý.

Riešenie problémov

Žiadna komunikácia so striedačom
  1. Overte zapojenie kábla RS-485: A+ na A+, B- na B-, GND na GND
  2. Skontrolujte, či je register H:0x013E nastavený na 0 (režim Modbus 485, nie EV Charger)
  3. Potvrďte, že baud rate sa zhoduje medzi striedačom a TapHome – striedač má predvolených 19200, šablóna má predvolených 9600
  4. Overte, že Slave ID v TapHome sa zhoduje s nastavením striedača (predvolená hodnota: 1)
  5. Uistite sa, že žiadny iný Modbus master nie je pripojený na rovnakej zbernici RS-485 – Modbus podporuje iba jedného mastera
Nesprávne čítanie Battery SOC

Register Battery SOC (A:0x1C) hlási hodnoty v jednotkách 1 %. Šablóna delí číslom 100 pre rozsah analógového vstupu TapHome 0–1. Ak sa zobrazená hodnota zdá nesprávna, overte, že zariadenie TapHome je nakonfigurované ako AnalogInput (rozsah 0–1, nie 0–100).

Znamienkova konvencia výkonu siete

Grid Feed-in Power (A:0x46) používa znamienkovú konvenciu, kde kladné hodnoty označujú export (výroba/dodávka do siete) a záporné hodnoty označujú import (odber zo siete). Register výkonu siete Daily/Actual Energy (A:0x02) môže tiež zobrazovať záporné hodnoty pri odbere zo siete.

Rozdiely registrov X1 vs X3

Niektoré registre sú špecifické pre model. Napätie siete (A:0x00), prúd (A:0x01) a výkon (A:0x02) sú registre X1 pre jednofázové modely. Pre trojfázové modely X3 sú ekvivalentné hodnoty pre každú fázu na A:0x6A–0x75. Šablóna používa register výkonu siete X1, čo nemusí správne hlásiť na modeloch X3.

Dostupné zariadenia

SolaX Hybrid Gen 4 Modul
Servisné atribúty
Prevádzkový režimPrevádzkový stav striedača — Waiting, Checking, Normal, Fault, Permanent Fault, Update, Off-grid waiting, Off-grid, Self Testing, Idle, Standby

SOLAX Hybrid Gen 4

Čítanie (modul)
var reg := MODBUSR(A, 0x09, UInt16);
IF(reg = 3, ADDERROR("Run Mode Fault"));
IF(reg = 4, ADDERROR("Run Mode Permanent Fault"));
#error table  2-3 for x3
var x3 := MODBUSR(A, 0x0040, Uint32);
IF(GETBIT(x3, 0) = 1, ADDERROR("TZ Protect Fault"));
IF(GETBIT(x3, 1) = 1, ADDERROR("Grid Lost Fault"));
IF(GETBIT(x3, 2) = 1, ADDERROR("Grid Volt Fault"));
IF(GETBIT(x3, 3) = 1, ADDERROR("Grid Freq Fault"));
IF(GETBIT(x3, 4) = 1, ADDERROR("PV Volt Fault"));
IF(GETBIT(x3, 5) = 1, ADDERROR("Bus Volt Fault"));
IF(GETBIT(x3, 6) = 1, ADDERROR("Bat Volt Fault"));
IF(GETBIT(x3, 7) = 1, ADDERROR("AC10mins Volt Fault"));
IF(GETBIT(x3, 8) = 1, ADDERROR("DCI OCP Fault"));
IF(GETBIT(x3, 9) = 1, ADDERROR("DCV OCP Fault"));
IF(GETBIT(x3, 10) = 1, ADDERROR("SW OCP Fault"));
IF(GETBIT(x3, 11) = 1, ADDERROR("RC OCP Fault"));
IF(GETBIT(x3, 12) = 1, ADDERROR("Isolation Fault"));
IF(GETBIT(x3, 13) = 1, ADDERROR("Temp Over Fault"));
IF(GETBIT(x3, 14) = 1, ADDERROR("BatConnDir Fault"));
IF(GETBIT(x3, 15) = 1, ADDERROR("Off-grid Overload"));
IF(GETBIT(x3, 16) = 1, ADDERROR("Overload"));
IF(GETBIT(x3, 17) = 1, ADDERROR("Bat Power Low"));
IF(GETBIT(x3, 18) = 1, ADDERROR("BMS Lost"));
IF(GETBIT(x3, 19) = 1, ADDERROR("Fan Fault"));
IF(GETBIT(x3, 20) = 1, ADDERROR("Low Temp Fault"));
IF(GETBIT(x3, 23) = 1, ADDERROR("INV Volt Sample Fault"));
IF(GETBIT(x3, 24) = 1, ADDERROR("Inner Comm Fault"));
IF(GETBIT(x3, 25) = 1, ADDERROR("INV EEPROM Fault"));
IF(GETBIT(x3, 26) = 1, ADDERROR("RCD Fault"));
IF(GETBIT(x3, 27) = 1, ADDERROR("Grid Relay Fault"));
IF(GETBIT(x3, 28) = 1, ADDERROR("Off-grid Relay Fault"));
IF(GETBIT(x3, 29) = 1, ADDERROR("PV ConnDir Fault"));
IF(GETBIT(x3, 30) = 1, ADDERROR("Charger Relay Fault"));
IF(GETBIT(x3, 31) = 1, ADDERROR("Earth Relay Fault"));

#error 2-5 Manager error code
var err := MODBUSR(A, 0x0043, Uint16);
IF(GETBIT(err, 0) = 1, ADDERROR("Power Type Fault"));
IF(GETBIT(err, 1) = 1, ADDERROR("Port OC Warning"));
IF(GETBIT(err, 2) = 1, ADDERROR("Mgr EEPROM Fault"));
IF(GETBIT(err, 4) = 1, ADDERROR("NTC Sample Invalid"));
IF(GETBIT(err, 5) = 1, ADDERROR("Battery Temperature Low"));
IF(GETBIT(err, 6) = 1, ADDERROR("Battery Temperature High"));
IF(GETBIT(err, 9) = 1, ADDERROR("Meter Fault"));
IF(GETBIT(err, 10) = 1, ADDERROR("Bypass Relay Fault"));
IF(GETBIT(err, 11) = 1, ADDERROR("Fan 2 Fault"));
Servisné atribúty
Run Mode
SWITCH(MODBUSR(A, 0x09, 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",
"Other"
);
SOC batérie Analógový vstup Len na čítanie

Stav nabitia batérie v percentách (0–100 %) — zobrazený ako analógový vstup 0–1 v TapHome

Register: A:0x1C UInt16 Jednotka: % numeric

SOC batérie

Čítanie vstupnej úrovne
MODBUSR(A, 0x1C, UInt16)/100
Teplota batérie Teplotný senzor Len na čítanie
Register: A:0x18 UInt16 Jednotka: °C numeric

Teplota batérie

Čítanie teploty
MODBUSR(A,0x0018, UInt16)
Denná / aktuálna energia Elektromer Len na čítanie

Kombinuje denný výkon energie do siete (kWh) a aktuálny výkon siete (kW) — záporný výkon siete označuje odber

Register: A:0x50, A:0x02 UInt16, Int16 Jednotka: kWh / kW numeric

Denná / aktuálna energia

Čítanie celkovej spotreby
MODBUSR(A, 0x50, UInt16) /10
Čítanie odberu
MODBUSR(A,0x02, Int16)/1000
Režim nabíjačky Viacstavový prepínač Len na čítanie

Aktívny režim solárnej nabíjačky — Self Use, Feedin Priority, Backup alebo Manual (len na čítanie)

Register: H:0x8BH:0x1F UInt16 numeric
Hodnoty / Stavy: Self Use Mode · Feedin Priority · Backup Mode · Manual Mode

Režim nabíjačky

Čítanie stavu prepínača
MODBUSR(H, 0x008B, Uint16)
Zápis stavu prepínača
#MODBUSW(H, 0x001F, uint16, Mu)
Výkon dodávky do siete Premenná Len na čítanie

Okamžitý výkon siete v kW — kladné hodnoty označujú export, záporné hodnoty označujú odber

Register: A:0x46 LittleEndianInt32 Jednotka: kW numeric

Výkon dodávky do siete

Čítanie
MODBUSR(A, 0x46,LittleEndianInt32)/1000
Výkon PV1 Premenná Len na čítanie
Register: A:0x0A UInt16 Jednotka: kW numeric

Výkon PV1

Čítanie
MODBUSR(A,0x0a, UInt16)/1000
Výkon PV2 Premenná Len na čítanie
Register: A:0x0B UInt16 Jednotka: kW numeric

Výkon PV2

Čítanie
MODBUSR(A,0x0b, UInt16)/1000
SOC nočného nabíjania (vlastná spotreba) Stmievač Len na čítanie

Horná cieľová hodnota SOC pre nočné nabíjanie v režime vlastnej spotreby (len na čítanie, 10–100 %)

Register: H:0x94H:0x63 UInt16 Jednotka: % numeric

SOC nočného nabíjania (vlastná spotreba)

Inicializácia
#MODBUSWNE(H, 0x0062, Uint16, 1);
Čítanie úrovne
MODBUSR(H, 0x0094, Uint16) / 100
Zápis úrovne
#MODBUSW(H, 0x0063, Uint16, Le * 100)
Celková energia Premenná Len na čítanie

Celková kumulatívna produkcia energie zo striedača cez AC port v MWh

Register: A:0x52 LittleEndianInt32 Jednotka: MWh numeric

Celková energia

Čítanie
MODBUSR(A, 0x52,LittleEndianInt32) / 1000
Pripojenie: Modbus RTU • 9600 baud• 8N1 • Slave ID: $[SlaveId]
Možné vylepšenia (25)
  • A:0x00 Grid Voltage (X1) — 0.1V, UInt16. X3 per-phase voltages at A:0x6A/0x6E/0x72
  • A:0x01 Grid Current (X1) — 0.1A, Int16. X3 per-phase currents at A:0x6B/0x6F/0x73
  • A:0x03, A:0x04 PV Voltage 1 & 2 — 0.1V, UInt16. Useful for string-level diagnostics
  • A:0x05, A:0x06 PV Current 1 & 2 — 0.1A, UInt16. Useful for string-level diagnostics
  • A:0x08 Radiator Temperature — 1°C, Int16. Inverter internal radiator/heatsink temperature
  • A:0x14 Battery Voltage — 0.1V, Int16. Battery pack voltage
  • A:0x15 Battery Current — 0.1A, Int16. Positive=charge, negative=discharge
  • A:0x16 Battery Power — 1W, Int16. Positive=charging, negative=discharging
  • A:0x17 BMS Connect State — 0=Disconnected, 1=Connected. Critical for battery health monitoring
  • A:0x1A Grid Status — 0=OnGrid, 1=OffGrid. Important for backup/off-grid scenarios
  • A:0x48–0x49 Feed-in Energy Total (Meter) — 0.01kWh, UInt32 LE. Cumulative energy exported to grid via meter
  • A:0x4A–0x4B Consumed Energy Total (Meter) — 0.01kWh, UInt32 LE. Cumulative energy consumed from grid via meter
  • A:0x6A–0x75 X3 Per-Phase Grid Readings — Voltage/current/power/frequency per phase R/S/T. 12 registers total. Essential for 3-phase monitoring
  • A:0x94–0x95 Solar Energy Total — 0.1kWh, UInt32 LE. Cumulative PV production (both strings combined)
  • A:0x96 Solar Energy Today — 0.1kWh, UInt16. Today PV production
  • A:0xBE BMS User SOC — 1%, UInt16. SOC as reported by BMS (may differ from A:0x1C)
  • A:0xBF BMS User SOH — 1%, UInt16. Battery state of health
  • Write 0x001C System ON/OFF — 0=OFF, 1=ON. Remote system power control
  • Write 0x001F Charger Use Mode (write) — Write register exists in template but is COMMENTED OUT. 0=Self Use, 1=Feed-in, 2=Backup, 3=Manual
  • Write 0x0020 Manual Mode — 0=Stop, 1=Force charge, 2=Force discharge. Requires Charger Use Mode = 3 (Manual)
  • Write 0x0061 SelfUse Discharge Min SOC — 10%–100%. Minimum SOC before discharge stops in Self-Use mode
  • H:0x8C Manual Mode Readback — 0=Stop, 1=Force charge, 2=Force discharge. Readback of current manual mode setting
  • A:0xBA, A:0xBB Battery Temp High/Low — 0.1°C, Int16. Min/max battery cell temperatures
  • A:0xBC, A:0xBD Cell Voltage High/Low — 0.001V, UInt16. Min/max individual cell voltages. Important for battery health
  • Write 0x007C–0x0082 Remote Power Control — Active/reactive power targets, duration. Enables advanced energy management and grid services

Zdroje