TapHome

SolaX Hybrid X1/X3 Gen 4

Modbus RTU
Přidal
Poslední aktualizace: 03. 2026
SolaX Hybrid X1/X3 Gen 4

SolaX X1-HYBRID a X3-HYBRID Gen 4 jsou střídače s akumulací energie, které podporují jednofázové (3–7,5 kW) i třífázové (5–15 kW) konfigurace. Šablona TapHome komunikuje přes Modbus RTU po RS-485 a čte vstupní a holding registry pro stav nabití baterie, výkon FV řetězce, tok výkonu sítě, celkové množství energie, režim nabíječky a SOC nočního nabíjení. Všechny zápisy jsou zakomentovány, šablona je tedy efektivně pouze pro čtení.

Šablona také implementuje komplexní detekci poruch parsováním 32-bitových chybových kódů střídače a 16-bitových chybových kódů správce, které hlásí jako chyby v TapHome.

Zapojení hardwaru

Střídač SolaX Gen 4 poskytuje COM port RS-485 pro komunikaci Modbus RTU na spodním panelu. COM port používá konektor RJ45.

Spodní panel SolaX X3-HYBRID G4 — rozložení terminálů s COM, BMS, Meter/CT, PV, BAT a GRID připojeními

Přiřazení pinů COM terminálu (RJ45):

PinPřiřazeníPopis
1Drycontact_A(in)Připojení systémového spínače
2Drycontact_B(in)Připojení systémového spínače
3+13V
4485ARS-485 data+ (pro TapHome)
5485BRS-485 data− (pro TapHome)
6GNDUzemnění
7Drycontact_A(out)Připojení generátoru
8Drycontact_B(out)Připojení generátoru

Připojte TapHome k COM portu střídače:

  • Pin 4 (485A) na COM portu střídače k A+/D+ na RS-485 TapHome
  • Pin 5 (485B) na COM portu střídače k B-/D- na RS-485 TapHome
  • Pin 6 (GND) — doporučuje se připojit pro spolehlivou komunikaci

Střídač sám o sobě nativně nepodporuje Modbus TCP. Modbus TCP je dostupný pouze přes monitorovací modul SolaX (Wi-Fi dongle) a šablona TapHome jej nepoužívá.

Pro instalace, kde zapojení RS-485 není praktické, šablona SolaX Inverter (Cloud API) poskytuje monitoring přes platformu SolaxCloud prostřednictvím HTTPS — bez fyzického připojení. Podporuje všechny typy invertorů SolaX, nejen Gen 4 Hybrid.

Některé holding registry jsou označeny omezeným počtem zápisových cyklů EEprom. Nadměrné zápisové operace mohou způsobit nenapravitelné poškození hardwaru. Šablona TapHome má všechny zápisové skripty zakázány, takže při aktuální šabloně to není problém.

Konfigurace

Aktivace komunikace Modbus

Modbus RTU je standardně dostupný na COM portu RS-485 střídače. Následující parametry se musí shodovat mezi střídačem a modulem TapHome:

  1. Slave ID – výchozí hodnota je 1, nastavitelné na displeji střídače
  2. Baud rate – střídač má výchozích 19200 baud, ale šablona TapHome používá 9600 baud. Upravte jeden z nich tak, aby se shodoval
  3. Formát dat – 8 datových bitů, bez parity, 1 stop bit

Konfigurace na displeji střídače: Menu > Setting > Advance Setting > Modbus. Nastavte slave adresu a baud rate. Baud rate lze přečíst i z holding registru H:0x00B0 a zapsat přes registr 0x00CA (hodnoty: 0=115200, 1=57600, 2=56000, 3=38400, 4=19200, 5=14400, 6=9600).

Aby jste nemuseli měnit nastavení střídače, upravte baud rate v nastavení modulu TapHome na 19200, čímž se shoduje s výchozí hodnotou střídače.

Časování komunikace

Protokol vyžaduje minimální interval 1 sekundy mezi po sobě jdoucími instrukcemi Modbus a timeout mezery mezi znaky alespoň 100 ms. Timeout odpovědi je 1 sekunda. Šablona TapHome používá individuální intervaly pollingu pro každé zařízení (2,5 s až 150 s), což tyto podmínky splňuje.

Funkce COM portu RS-485

Registr H:0x013E (485CommFunSelect) určuje, zda se port RS-485 používá pro komunikaci Modbus (hodnota 0) nebo komunikaci nabíječky EV (hodnota 1). Pro integraci TapHome musí být nastaven na 0 (Modbus 485).

Možnosti zařízení

Monitorování baterie
  • Battery SOC – čte stav nabití baterie (A:0x1C) v procentech. Hodnota registru v jednotkách 1 % se dělí číslem 100 pro rozsah analogového vstupu TapHome 0–1 (např. 85 % se zobrazí jako 0,85)
  • Battery Temperature – čte teplotu baterie (A:0x18) ve stupních Celsia. Polling každých 80 sekund
Solární výkon FV
  • PV1 Power – stejnosměrný výkon FV řetězce 1 (A:0x0A), zobrazený v kW po dělení 1000 z wattů
  • PV2 Power – stejnosměrný výkon FV řetězce 2 (A:0x0B), zobrazený v kW po dělení 1000 z wattů
Výkon sítě a měření energie
  • Grid Feed-in Power – okamžitý výkon sítě (A:0x46, LittleEndianInt32) v kW. Kladné hodnoty označují export do sítě, záporné hodnoty označují odběr ze sítě
  • Daily / Actual Energy – kombinuje denní výkon energie ze střídače přes AC port (A:0x50, rozlišení 0,1 kWh) a aktuální výkon sítě (A:0x02) v kW. Registr výkonu sítě je specifický pro X1 (jednofázový)
  • Total Energy – celková kumulativní produkce energie ze střídače přes AC port (A:0x52, LittleEndianInt32), zobrazená v MWh
Režim nabíječky a noční nabíjení
  • Charger Use Mode – čte aktivní režim solární nabíječky (H:0x8B): Self Use Mode (0), Feedin Priority (1), Backup Mode (2) nebo Manual Mode (3). Hodnoty 4–9 jsou rezervovány. Zápisový registr (H:0x1F) v šabloně existuje, ale je zakomentován, takže je to pouze pro čtení
  • Self-Use Night Charge SOC – čte horní cílovou hodnotu SOC pro noční nabíjení v režimu Self-Use (H:0x94) v procentech. Zápisový registr (H:0x63) i aktivační registr (H:0x62) jsou zakomentovány, takže konfiguraci nočního nabíjení nelze měnit přes TapHome
Detekce poruch

ReadScript na úrovni modulu monitoruje provozní režim střídače (A:0x09) a dva chybové registry:

  • Run Mode poruchy – vyvolá chybu při Run Mode 3 (Porucha) nebo 4 (Trvalá porucha)
  • Chybové kódy střídače (A:0x40) – 32-bitová bitmapa parsovaná pro 28 individuálních poruch včetně poruch napětí/frekvence sítě, poruch napětí FV, poruch baterie, izolačních poruch, přehřátí, ochrany před přetížením, poruch relé a komunikačních chyb
  • Chybové kódy správce (A:0x43) – 16-bitová bitmapa parsovaná pro poruchy typu výkonu, chyby EEPROM, problémy NTC senzorů, varování teploty baterie, poruchy měřiče a poruchy ventilátoru

Atribut služby Run Mode na modulu zobrazuje aktuální stav střídače jako text: Waiting, Checking, Normal, Fault, Permanent Fault, Update, Off-grid waiting, Off-grid, Self Testing, Idle nebo Standby.

Další možnosti

Střídač poskytuje komplexní mapu registrů s více než 300 holding registry a 200 vstupními registry. Pozoruhodné možnosti, které ještě nejsou implementovány v šabloně, zahrnují monitorování napětí a proudu pro každý FV řetězec (A:0x03–0x06), měření napětí/proudu/výkonu baterie, stav připojení BMS, stav sítě on/off, X3 napětí/proud/výkon sítě pro každou fázi (12 registrů na A:0x6A–0x75), kumulativní energie dodaná do sítě a odebraná ze sítě (přes měřič), celková produkce solární energie, BMS SOC a SOH uživatele a min/max teplota a napětí článků baterie. Možnosti zápisů zahrnují ovládání zapnutí/vypnutí systému, výběr režimu nabíječky, manuální nucené nabíjení/vybíjení, minimální SOC vybíjení, konfiguraci nočního nabíjení a vzdálené řízení výkonu s cílovými hodnotami činného/jalového výkonu. Tyto funkce lze doplnit v budoucí aktualizaci šablony.

Šablona aktuálně čte výkon sítě X1 (jednofázový) na A:0x02. Pro instalace X3 (třífázové) je výkon sítě pro každou fázi dostupný na registrech A:0x6C, A:0x70 a A:0x74, ale v aktuální šabloně není zahrnut.

Řešení problémů

Žádná komunikace se střídačem
  1. Ověřte zapojení kabelu RS-485: A+ na A+, B- na B-, GND na GND
  2. Zkontrolujte, zda je registr H:0x013E nastaven na 0 (režim Modbus 485, ne EV Charger)
  3. Potvrďte, že baud rate se shoduje mezi střídačem a TapHome – střídač má výchozích 19200, šablona má výchozích 9600
  4. Ověřte, že Slave ID v TapHome se shoduje s nastavením střídače (výchozí hodnota: 1)
  5. Ujistěte se, že žádný jiný Modbus master není připojen na stejné sběrnici RS-485 – Modbus podporuje pouze jednoho mastera
Nesprávné čtení Battery SOC

Registr Battery SOC (A:0x1C) hlásí hodnoty v jednotkách 1 %. Šablona dělí číslem 100 pro rozsah analogového vstupu TapHome 0–1. Pokud se zobrazená hodnota zdá nesprávná, ověřte, že zařízení TapHome je nakonfigurováno jako AnalogInput (rozsah 0–1, ne 0–100).

Znaménková konvence výkonu sítě

Grid Feed-in Power (A:0x46) používá znaménkovou konvenci, kde kladné hodnoty označují export (výroba/dodávka do sítě) a záporné hodnoty označují import (odběr ze sítě). Registr výkonu sítě Daily/Actual Energy (A:0x02) může také zobrazovat záporné hodnoty při odběru ze sítě.

Rozdíly registrů X1 vs X3

Některé registry jsou specifické pro model. Napětí sítě (A:0x00), proud (A:0x01) a výkon (A:0x02) jsou registry X1 pro jednofázové modely. Pro třífázové modely X3 jsou ekvivalentní hodnoty pro každou fázi na A:0x6A–0x75. Šablona používá registr výkonu sítě X1, který nemusí správně hlásit na modelech X3.

Dostupná zařízení

SolaX Hybrid Gen 4 Modul
Servisní atributy
Provozní režimProvozní stav střídače — Waiting, Checking, Normal, Fault, Permanent Fault, Update, Off-grid waiting, Off-grid, Self Testing, Idle, Standby

SOLAX Hybrid Gen 4

Čtení (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í atributy
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 baterie Analogový vstup Pouze ke čtení

Stav nabití baterie v procentech (0–100 %) — zobrazený jako analogový vstup 0–1 v TapHome

Registr: A:0x1C UInt16 Jednotka: % numeric

SOC baterie

Čtení vstupní úrovně
MODBUSR(A, 0x1C, UInt16)/100
Teplota baterie Teplotní senzor Pouze ke čtení
Registr: A:0x18 UInt16 Jednotka: °C numeric

Teplota baterie

Čtení teploty
MODBUSR(A,0x0018, UInt16)
Denní / aktuální energie Elektroměr Pouze ke čtení

Kombinuje denní výkon energie do sítě (kWh) a aktuální výkon sítě (kW) — záporný výkon sítě označuje odběr

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

Denní / aktuální energie

Čtení celkové spotřeby
MODBUSR(A, 0x50, UInt16) /10
Čtení odběru
MODBUSR(A,0x02, Int16)/1000
Režim nabíječky Vícestavový přepínač Pouze ke čtení

Aktivní režim solární nabíječky — Self Use, Feedin Priority, Backup nebo Manual (pouze pro čtení)

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

Režim nabíječky

Čtení stavu přepínače
MODBUSR(H, 0x008B, Uint16)
Zápis stavu přepínače
#MODBUSW(H, 0x001F, uint16, Mu)
Výkon dodávky do sítě Proměnná Pouze ke čtení

Okamžitý výkon sítě v kW — kladné hodnoty označují export, záporné hodnoty označují odběr

Registr: A:0x46 LittleEndianInt32 Jednotka: kW numeric

Výkon dodávky do sítě

Čtení
MODBUSR(A, 0x46,LittleEndianInt32)/1000
Výkon PV1 Proměnná Pouze ke čtení
Registr: A:0x0A UInt16 Jednotka: kW numeric

Výkon PV1

Čtení
MODBUSR(A,0x0a, UInt16)/1000
Výkon PV2 Proměnná Pouze ke čtení
Registr: A:0x0B UInt16 Jednotka: kW numeric

Výkon PV2

Čtení
MODBUSR(A,0x0b, UInt16)/1000
SOC nočního nabíjení (vlastní spotřeba) Stmívač Pouze ke čtení

Horní cílová hodnota SOC pro noční nabíjení v režimu vlastní spotřeby (pouze pro čtení, 10–100 %)

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

SOC nočního nabíjení (vlastní spotřeba)

Inicializace
#MODBUSWNE(H, 0x0062, Uint16, 1);
Čtení úrovně
MODBUSR(H, 0x0094, Uint16) / 100
Zápis úrovně
#MODBUSW(H, 0x0063, Uint16, Le * 100)
Celková energie Proměnná Pouze ke čtení

Celková kumulativní produkce energie ze střídače přes AC port v MWh

Registr: A:0x52 LittleEndianInt32 Jednotka: MWh numeric

Celková energie

Čtení
MODBUSR(A, 0x52,LittleEndianInt32) / 1000
Připojení: Modbus RTU • 9600 baud• 8N1 • Slave ID: $[SlaveId]
Možná vylepšení (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