TapHome

SolaX X3 Hybrid Ultra

Modbus RTU
Dodane przez
Ostatnia aktualizacja: 10. 2026
SolaX X3 Hybrid Ultra

SolaX X3 Hybrid Ultra (Gen5) to trójfazowy hybrydowy falownik PV/bateryjny o mocy znamionowej od 10 kW do 30 kW. Szablon TapHome komunikuje się z falownikiem przez Modbus RTU na porcie COM 1 RS-485 (piny REMOTE_485A / REMOTE_485B) i implementuje mapę rejestrów protokołu SolaX Modbus V3.29. Odczytuje moc stringów PV, stan naładowania i temperaturę baterii, trójfazowe napięcie i częstotliwość sieci, sumaryczne i dzienne sumy energii, moc oddawania ze zewnętrznego licznika oraz udostępnia do zapisu Tryb ładowania, SOC ładowania nocnego (autokonsumpcja) i limit maks. mocy oddawania.

X3-Ultra nie obsługuje natywnie Modbus TCP — TCP jest dostępne tylko przez moduł monitorujący SolaX (Pocket WiFi 3.0, Pocket LAN lub DataHub), który mostkuje RTU na TCP na porcie 502. Do instalacji zdalnych TapHome można również podłączyć przez bramę RS-485-Ethernet innej firmy (np. Waveshare, USR-DR302) skonfigurowaną jako Modbus RTU-over-TCP.

Modele

Szablon TapHome obejmuje całą serię X3-Ultra. Czujniki PV3 i SOC baterii 2 są funkcjonalne tylko w wariancie z 3 MPPT / dwiema bateriami 30 kW.

ModelZnamionowa moc ACTrackery MPPTUwagi
X3-ULT-15K15 kW2Standardowy 2-MPPT
X3-ULT-15KP15 kW33-MPPT (kod modelu H3BC)
X3-ULT-19.9K19,9 kW2Standardowy 2-MPPT
X3-ULT-20K20 kW2Standardowy 2-MPPT (kod modelu H3BD)
X3-ULT-20KP20 kW33-MPPT
X3-ULT-25K25 kW3Kod modelu H3BF
X3-ULT-25KW25 kW3—
X3-ULT-30K30 kW3Podwójna bateria, PV3 aktywny (kod modelu H3BG)
X3-ULT-10K-GLV10 kW—Wariant niskonapięciowy (GLV)
X3-ULT-15K-GLV15 kW—Wariant niskonapięciowy (GLV)

Kod modelu można odczytać w czasie wykonywania przez atrybut modułu Model (rejestr H:0x000E, 4-znakowy ciąg ASCII).

Zakres kompatybilności

Szablon implementuje podzbiór protokołu SolaX Modbus V3.29, który jest najczęściej używany do domowego zarządzania energią — 19 urządzeń, 2 atrybuty usługi na poziomie modułu i jedna akcja usługi. Pełny protokół udostępnia znacznie więcej rejestrów; najużyteczniejsze niezaimplementowane funkcje (moc i prąd sieci na fazę, napięcie/prąd/moc baterii, stan BMS, czas pracy off-grid, zdalne sterowanie mocą itp.) mogą zostać dodane w przyszłej aktualizacji szablonu. Poprawiony szablon społecznościowy w portalu TapHome już dodaje zdalne sterowanie mocą oraz zapisy ustawień wykonywane tylko przy zmianie wartości — patrz Znane błędy oficjalnego szablonu i Zdalne sterowanie mocą poniżej.

Połączenie sprzętowe

X3-Ultra ma jeden wielofunkcyjny port COM 1 (złącze w stylu RJ45 z oznakowanym mocowaniem kabla). Te same fizyczne piny pełnią różne funkcje w zależności od oznakowanej pozycji na mocowaniu kabla, do której się okablowuje. Do integracji Modbus innej firmy użyj pozycji RS485 — linii REMOTE_485A i REMOTE_485B.

Pinout portu COM 1
Przypisanie pinów portu COM 1 SolaX X3-Ultra dla wszystkich sześciu oznakowanych pozycji (Parallel-1, Parallel-2, BMS-1, BMS-2, RS485, DRM)

Przypisanie pinów dla pozycji RS485 (jedyna pozycja istotna dla TapHome):

PinSygnałOkablowanie TapHome
1REMOTE_485AA+ / D+
2REMOTE_485BB− / D−
3PARALLEL_485AAnie używać (tylko akcesoria SolaX)
4PARALLEL_485AAnie używać (tylko akcesoria SolaX)
5PARALLEL_485BBnie używać (tylko akcesoria SolaX)
6PARALLEL_485BBnie używać (tylko akcesoria SolaX)
7REMOTE_485Aduplikat pinu 1 (dla daisy-chain)
8REMOTE_485Bduplikat pinu 2 (dla daisy-chain)

Piny 3–6 należą do firmowego kanału SolaX PARALLEL_485 i są zarezerwowane dla akcesoriów SolaX (Adapter Box G2, EV-Charger, DataHub, równoległe falowniki). Nie podłączaj master Modbus innej firmy do tych pinów.

Starsze falowniki SolaX (Gen4 X3-Hybrid) używały pin 4 = 485A i pin 5 = 485B. Pinout portu COM 1 X3-Ultra jest inny — przed zaciśnięciem zawsze sprawdź oznakowanie mocowania kabla na swoim urządzeniu. Niektóre dokumentacje społecznościowe nadal odnoszą się do starszego pinoutu Gen4.

Okablowanie RS-485
Instalacja terminala RJ45 w pozycji RS485 mocowania kabla COM 1

Zasady okablowania z instrukcji obsługi X3-Ultra (sekcja 8.6.4):

  • Typ kabla: standardowy skrętka Cat5 lub Cat6 UTP
  • Maksymalna długość: 30 m kabla RS-485 między falownikiem a TapHome CCU
  • Polaryzacja ma znaczenie: jeśli nie ma komunikacji, zamień A i B
  • Jeden master Modbus: na magistrali dozwolony jest tylko jeden master. Jeśli moduł monitorujący SolaX dzieli linię, oczekuj konfliktów

Mocowanie kabla COM 1 ma dedykowane oznakowane pozycje dla każdego kanału — podłącz kabel Cat5/Cat6 do gniazda oznaczonego RS485 (nie do Parallel-1, Parallel-2, BMS-1, BMS-2 lub DRM).

Opcje połączenia
  • Bezpośrednie Modbus RTU CCU: podłącz parę RS485 portu COM 1 bezpośrednio do TapHome Modbus RTU CCU. Najniższe opóźnienia, zalecane do sterowania w czasie rzeczywistym.
  • Brama RS-485-Ethernet (Modbus RTU-over-TCP): dla instalacji, w których falownik jest daleko od TapHome Core, użyj bramy Waveshare RS485-Ethernet, USR-DR302 lub podobnej skonfigurowanej jako Modbus RTU-over-TCP na porcie 502. Parametr importu szablonu IpAddress to umożliwia.
  • SolaX Pocket WiFi 3.0 / Pocket LAN / DataHub (Modbus TCP): jeśli moduł monitorujący SolaX jest już zainstalowany, mostkuje RTU na TCP na porcie 502 z cyklem zapytań około 1 sekundy — wolniejsze niż bezpośrednie RTU i niezalecane do pętli sterowania w czasie rzeczywistym.

Konfiguracja

Włączanie komunikacji Modbus na falowniku

Na wyświetlaczu LCD falownika przejdź do:

1
Menu → Setting → Advance Setting → Modbus

Menu Advanced Settings może wymagać hasła instalatora. Sprawdź lub ustaw poniższe:

ParametrDomyślne szablonu TapHomeDomyślne falownikaZakres
Adres Modbus (Slave ID)111–255
Prędkość transmisji19200192009600 / 19200 / 38400 / 57600 / 115200
ParzystośćNoneNoneNone / Odd / Even
Bity danych88—
Bity stopu111 lub 2

Prędkość transmisji musi się zgadzać między falownikiem a TapHome. Protokół V3.29 określa 19200 jako domyślną dla X3-Ultra; niektóre starsze szablony i dokumentacja SolaX nadal podają 9600. Jeśli komunikacja zawodzi, najpierw sprawdź prędkość transmisji.

Falownik może również udostępnić adres slave Modbus przez rejestr holding H:0x00AC i prędkość transmisji przez rejestr holding H:0x00AD.

Parametry importu w TapHome

Podczas importowania szablonu do TapHome należy ustawić dwa parametry:

ParametrCel
IpAddressAdres IP bramy RS-485-TCP (lub modułu monitorującego SolaX Pocket WiFi / LAN). Pozostaw wartość domyślną, jeśli falownik jest podłączony bezpośrednio do TapHome Modbus RTU CCU.
SlaveIdAdres slave Modbus falownika (domyślnie 1). Musi się zgadzać z ustawieniem Modbus Address falownika.
Czasowanie komunikacji

Protokół SolaX Modbus wymaga minimalnego odstępu między kolejnymi żądaniami i używa indywidualnych odstępów odpytywania dla każdego urządzenia w szablonie (od kilku sekund dla napięcia/częstotliwości sieci do 80 s dla temperatury baterii). Nie odpytuj agresywnie żadnego urządzenia — falownik wewnętrznie ogranicza żądania.

Możliwości urządzenia

Monitorowanie baterii
  • SOC baterii 1 — stan naładowania głównej baterii jako wejście analogowe 0–1 (surowy rejestr w jednostkach 1%, dzielony przez 100 dla zakresu TapHome 0–1)
  • SOC baterii 2 — stan naładowania drugiej baterii, działa tylko na X3-ULT-30K wariancie z podwójną baterią; pozostałe modele odczytują 0
  • Temperatura baterii — temperatura pakietu baterii w °C, odpytywana co 80 sekund
Moc PV solarne
  • Moc PV1 (wschód) — moc DC ze stringa PV 1 w kW
  • Moc PV2 (wschód) — moc DC ze stringa PV 2 w kW
  • Moc PV3 (zachód) — moc DC ze stringa PV 3 w kW, działa tylko na modelach z 3 MPPT (patrz tabela modeli); pozostałe modele odczytują 0

Sufiksy „wschód" / „zachód" są konwencją nazewnictwa kierunkowego odziedziczoną z oryginalnego słowackiego szablonu — numer stringa PV odpowiada fizycznemu wejściu MPPT na falowniku, a nie rzeczywistej orientacji macierzy.

Pomiar sieci i energii
  • Napięcie sieci L1 / L2 / L3 — napięcie sieci na fazę w woltach (rejestry A:0x006A, A:0x006E, A:0x0072)
  • Częstotliwość sieci L1 / L2 / L3 — częstotliwość sieci na fazę w hercach (rejestry A:0x006D, A:0x0071, A:0x0075)
  • Moc oddawania do sieci (licznik) — w założeniu moc oddawania z zewnętrznego licznika SolaX / CT, ale oficjalny szablon odczytuje rejestr A:0x0046 z błędną kolejnością słów (Int32 zamiast LittleEndianInt32), więc wartość jest bezsensowna (na przykład −7340,033 zamiast −0,117 kW). Nie jest to alias mocy pobieranej / oddawanej do sieci — użyj tamtego urządzenia albo popraw skrypt zgodnie z sekcją Znane błędy oficjalnego szablonu
  • Moc pobierana / oddawana do sieci — poprawny odczyt mocy licznika / CT (A:0x0046, LittleEndianInt32) w kW; dodatnie = eksport, ujemne = pobór
  • Produkcja falownika dzienna / aktualna — w oficjalnym szablonie łączy dzisiejszą energię falownika (rejestr A:0x0050, licznik dzienny zerowany każdej nocy) z rejestrem A:0x0002, który SolaX dokumentuje tylko dla jednofazowych modeli X1 — na X3-Ultra odczytuje 0. Poprawione skrypty znajdziesz w sekcji Znane błędy oficjalnego szablonu
  • Całkowita wyprodukowana energia — całkowita skumulowana energia dostarczona z portu AC falownika do sieci w kWh
Sterowanie ładowaniem i oddawaniem (zapisywalne)
  • Tryb ładowania — tryb pracy ładowarki baterii: Self Use, Feed-in Priority, Backup lub Manual
  • SOC ładowania nocnego (autokonsumpcja) — górna docelowa wartość SOC (10–100%) dla ładowania baterii z sieci w nocy w trybie autokonsumpcji
  • Limit maks. mocy oddawania — maksymalna dozwolona moc eksportu do sieci w kW (nie w procentach): na modelach X3 rejestr liczy w krokach po 10 W, a szablon dzieli przez 100

Limit zapisów do EEprom dotyczy wszystkich trzech zapisywalnych urządzeń powyżej (Tryb ładowania → SH:0x001F, SOC ładowania nocnego → SH:0x0063, Maks. moc oddawania → SH:0x0042). Rejestry podstawowe są oparte na EEprom z ograniczoną liczbą cykli zapisu — częste zapisy (co kilka sekund w pętli automatyzacji) trwale uszkodzą EEprom falownika. Używaj tylko zmian ręcznych lub niskoczęstotliwościowych zaplanowanych zapisów.

Atrybuty i akcje na poziomie modułu
  • Tryb pracy (atrybut usługi) — stan pracy falownika jako tekst: Waiting, Checking, Normal, Fault, Permanent Fault, Update, Off-grid waiting, Off-grid, Self Testing, Idle, Standby
  • Model (atrybut usługi) — kod modelu falownika jako 4-znakowy ciąg ASCII (H3BC = 15K/15KP, H3BD = 19,9K/20K/20KP, H3BF = 25K, H3BG = 30K)
  • Odblokuj administratora (akcja usługi) — zapisuje stałą 2014 do SH:0x0000 w celu odblokowania zaawansowanych ustawień falownika (rzadko potrzebne, tylko do diagnostyki)
Wykrywanie błędów

ReadScript modułu monitoruje rejestr Tryb pracy (A:0x0009) i zgłasza błąd systemowy TapHome, gdy falownik wchodzi w stan 3 (Fault) lub 4 (Permanent Fault). Dwa rejestry błędów są analizowane bit po bicie:

  • Kody błędów falownika (32-bitowe, A:0x0040–A:0x0041) — 31 indywidualnych błędów, w tym błędy napięcia/częstotliwości sieci, błędy napięcia PV, błędy baterii, błędy izolacji, przegrzanie, ochrona nadprądowa, błędy przekaźników i błędy komunikacji
  • Kody błędów Managera (16-bitowe, A:0x0043) — 11 bitów błędów, w tym błędy typu zasilania, błędy EEPROM, problemy czujnika NTC, ostrzeżenia o temperaturze baterii, błędy licznika i błędy wentylatora

Poszczególne błędy pojawiają się jako dyskretne błędy w dzienniku systemowym TapHome, dzięki czemu instalatorzy mogą zidentyfikować zawodzący podsystem bez odczytywania wyświetlacza LCD falownika.

Znane błędy oficjalnego szablonu

Oficjalny szablon TapHome dla X3-Ultra błędnie odczytuje kilka rejestrów i okresowo zapisuje jedno ustawienie (sprawdzone z protokołem SolaX Modbus V3.29 i V001.02 oraz z wartościami w zainstalowanych systemach). Moduł zaimportowany z oficjalnego szablonu nie aktualizuje się sam, gdy szablon się zmieni. Popraw ręcznie skrypty istniejącego modułu i jego urządzeń albo zaimportuj poprawiony szablon społecznościowy z portalu TapHome: SolaX X3-Ultra Hybrid Inverter — monitoring and power control (zaloguj się, pobierz XML i zaimportuj go jako nowy moduł).

GdzieOficjalny skryptPoprawiony skryptSkutek błędu
Moduł — skrypt odczytuvar x3 := MODBUSR(A, 0x0040, Uint32);var x3 := MODBUSR(A, 0x0040, LittleEndianUint32);Dwie połowy 32-bitowego kodu błędu są zamienione: błąd w bicie 1 (Grid Lost Fault) jest zgłaszany jako bit 17 (Bat Power Low). Parallel Fault (bit 21) i Hard Limit Fault (bit 22) nie są zgłaszane wcale
Moc oddawania do sieci (licznik)MODBUSR(A,0x0046, Int32)/1000MODBUSR(A, 0x0048, LittleEndianUint32) / 100 — całkowita energia oddana do sieci w kWhMoc poprawnie odczytuje już Moc pobierana / oddawana do sieci; to urządzenie pokazuje bezsensowną liczbę. Całkowita energia pobrana z sieci: MODBUSR(A, 0x004A, LittleEndianUint32) / 100
Produkcja falownika dzienna / aktualna — całkowite zużycieMODBUSR(A, 0x50, UInt16) /10MODBUSR(A, 0x0094, LittleEndianUint32) / 100x0050 to licznik dzienny, który każdej nocy spada do 0; 0x0094 to całkowita energia PV
Produkcja falownika dzienna / aktualna — zapotrzebowanieMODBUSR(A,0x02, Int16)/1000(MODBUSR(A, 0x000A, UInt16) + MODBUSR(A, 0x000B, UInt16) + MODBUSR(A, 0x0124, UInt16)) / 10000x0002 to moc sieci jednofazowych modeli X1, na X3-Ultra odczytuje 0
Temperatura bateriiMODBUSR(A,0x0018, UInt16)MODBUSR(A, 0x0018, Int16)Poniżej 0 °C oficjalny szablon pokazuje około 65535 °C
SOC ładowania nocnego (autokonsumpcja) — skrypt zapisuMODBUSW(SH, 0x0063, Uint16, Le * 100) z włączonym zapisem okresowymIF(MODBUSR(H, 0x0094, UInt16) != ROUND(Le * 100), MODBUSW(SH, 0x0063, Uint16, ROUND(Le * 100)));Oficjalne urządzenie zapisuje cel ładowania nocnego do falownika przy każdym odpytaniu (około co 55 s) — 0x0063 to rejestr EEPROM z około 1 milionem cykli zapisu. Z poprawionym skryptem zapisuje tylko wtedy, gdy wartość naprawdę się zmieni

Rejestr H:0x0094 również w protokole V3.29 jest docelowym stanem naładowania dla ładowania nocnego (SelfUse_NightCharge_UpperSoC); ładowanie nocne z sieci włącza się w młodszym bajcie H:0x0093 (rejestr zapisu 0x0062).

Zdalne sterowanie mocą

Poprawiony szablon społecznościowy dodaje urządzenie Remote control - AC power target. Korzysta z trybu 1 zdalnego sterowania SolaX (VPP): dodatni cel w kW sprawia, że falownik pobiera moc na swoim porcie AC (ładuje baterię, z sieci, jeśli PV nie wystarcza), ujemny cel sprawia, że oddaje moc (rozładowuje baterię, a to, czego dom nie zużyje, trafia do sieci); 0 kończy zdalne sterowanie. W razie potrzeby szablon odblokowuje ustawienia falownika domyślnym hasłem 2014 i powtarza polecenie co 60 s. Zdalne sterowanie nie uruchomi się, dopóki falownik jest w trybie pracy Manual.

SolaX w swoim protokole nie oznacza rejestrów zdalnego sterowania (0x007C–0x0088) jako rejestrów EEPROM, ale też nie potwierdza na piśmie, że nimi nie są. Ten szablon opiera się na doświadczeniach społeczności Home Assistant i openHAB, które zapisują te rejestry co kilka sekund do kilku minut. Powyższe ustawienia to rejestry EEPROM (SolaX oznacza je ★, około 1 miliona cykli zapisu): zmieniaj je rzadko i nigdy z częstych automatyzacji — do ładowania i rozładowania według cen spot używaj celu mocy AC zdalnego sterowania.

Rozwiązywanie problemów

Brak komunikacji z falownikiem
  1. Sprawdź, czy okablowanie RS-485 jest na pinach REMOTE_485A / REMOTE_485B (1+2 lub 7+8 na pozycji COM 1 RS485), a nie na pinach PARALLEL_485 3–6
  2. Sprawdź, czy prędkość transmisji jest zgodna między falownikiem (Menu → Setting → Advance Setting → Modbus) a modułem TapHome — oba muszą domyślnie wynosić 19200
  3. Potwierdź, że Slave ID jest zgodne (domyślnie 1)
  4. Sprawdź, czy do magistrali RS-485 podłączony jest tylko jeden master Modbus — Modbus nie obsługuje multi-master
  5. Zamień przewody A i B, jeśli polaryzacja kabla jest niepewna
  6. Potwierdź, że kabel nie przekracza 30 m całkowitej długości trasy RS-485
PV3 lub SOC baterii 2 odczytuje zero

Te urządzenia są funkcjonalne tylko na X3-ULT-30K (wariant 3-MPPT / podwójna bateria). Na mniejszych modelach rejestry A:0x0124 (moc PV3) i A:0x012D (SOC baterii 2) zwracają zero. Dla instalacji bez 30K ukryj nieużywane urządzenia w UI TapHome.

Temperatura baterii odczytuje nieoczekiwanie wysoką wartość

Rejestr temperatury baterii (A:0x0018) jest odczytywany przez oficjalny szablon jako UInt16, ale wartość jest ze znakiem. Temperatury poniżej zera (np. −1 °C) zawijają się do dużych wartości dodatnich (np. 65535). Zmień skrypt na MODBUSR(A, 0x0018, Int16) — patrz Znane błędy oficjalnego szablonu.

Zapisy do trybu ładowania / SOC ładowania nocnego / maks. mocy oddawania nie odnoszą skutku

Te rejestry są oparte na EEprom, a falownik ogranicza zapisy w celu ochrony EEprom. Upewnij się, że zapisy są rzadkie (ręczne lub zaplanowane, nie w ścisłej pętli automatyzacji). Niektóre wersje firmware wymagają również ustawienia trybu ładowania na Manual (3), zanim niektóre wymuszone podtryby ładowania / rozładowania odpowiedzą.

Modbus TCP przez moduł monitorujący SolaX jest wolny

Pocket WiFi 3.0 / Pocket LAN / DataHub mostkuje RTU na TCP z cyklem zapytań około 1 sekundy i obsługuje tylko jednego klienta Modbus TCP naraz. Jeśli monitorowanie SolaX Cloud również pobiera dane, oczekuj konfliktów. Do sterowania w czasie rzeczywistym (odpowiedź częstotliwościowa, peak shaving) użyj bezpośredniego Modbus RTU lub dedykowanej bramy RS-485-Ethernet innej firmy.

Dostępne urządzenia

SolaX X3 Hybrid Ultra Moduł
Atrybuty serwisowe
Tryb pracyStan pracy falownika — Waiting, Checking, Normal, Fault, Permanent Fault, Update, Off-grid waiting, Off-grid, Self Testing, Idle, Standby
ModelKod modelu falownika jako 4-znakowy ciąg ASCII (H3BC = 15K/15KP, H3BD = 19,9K/20K/20KP, H3BF = 25K, H3BG = 30K)
Akcje serwisowe
Odblokuj administratoraZapisuje stałą 2014 do rejestru SH:0x0000 w celu odblokowania zaawansowanych ustawień falownika — rzadko potrzebne, tylko do diagnostyki

FVE SOLAX Hybrid Ultra

Odczyt (moduł)
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"));
Atrybuty serwisowe
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"
);
Model
MODBUSR(H, 14, String, 4)
Akcje serwisowe
Unlock admin
MODBUSW(SH, 0x0000, Uint16, 2014);
SOC baterii 1 Wejście analogowe Tylko do odczytu

Stan naładowania głównej baterii w procentach (0–100%), w TapHome wyświetlany jako wejście analogowe 0–1

Rejestr: A:0x001C UInt16 Jednostka: % numeric

SOC baterii 1

Odczyt poziomu wejściowego
MODBUSR(A, 0x1C, UInt16)/100
SOC baterii 2 Wejście analogowe Tylko do odczytu

Stan naładowania drugiej baterii w procentach — działa tylko na wariancie X3-ULT-30K z dwiema bateriami; pozostałe modele odczytują 0

Rejestr: A:0x012D UInt16 Jednostka: % numeric

SOC baterii 2

Odczyt poziomu wejściowego
MODBUSR(A, 0x012D, Uint16) / 100
Całkowita wyprodukowana energia Zmienna Tylko do odczytu

Całkowita skumulowana energia dostarczona z portu AC falownika do sieci, w kWh

Rejestr: A:0x0052 LittleEndianInt32 Jednostka: kWh numeric

Całkowita wyprodukowana energia

Odczyt
MODBUSR(A, 0x52,LittleEndianInt32) / 10
Produkcja falownika dzienna / aktualna Licznik energii Tylko do odczytu

Oficjalny szablon: dzisiejsza energia falownika (0x0050, zerowana każdej nocy) i rejestr 0x0002, udokumentowany tylko dla modeli X1, który na X3-Ultra odczytuje 0; poprawione skrypty odczytują całkowitą energię PV (0x0094) i moc PV1 + PV2 + PV3

Rejestr: A:0x0050, A:0x0002 UInt16, Int16 Jednostka: kWh / kW numeric

Produkcja falownika dzienna / aktualna

Odczyt całkowitego zużycia
MODBUSR(A, 0x50, UInt16) /10
Odczyt zapotrzebowania
MODBUSR(A,0x02, Int16)/1000
Moc oddawana do sieci (licznik) Zmienna Tylko do odczytu

Oficjalny szablon odczytuje rejestr mocy licznika / CT 0x0046 z błędną kolejnością słów (Int32), więc wartość jest bezsensowna; użyj Moc pobierana / oddawana do sieci albo zmień skrypt na energię oddaną do sieci (0x0048, LittleEndianUint32, / 100)

Rejestr: A:0x0046 Int32 Jednostka: kW numeric

Moc oddawana do sieci (licznik)

Odczyt
MODBUSR(A,0x0046, Int32)/1000
Częstotliwość sieci L1 Zmienna Tylko do odczytu
Rejestr: A:0x006D Int16 Jednostka: Hz numeric

Częstotliwość sieci L1

Odczyt
MODBUSR(A, 0x006D, Int16)/100
Częstotliwość sieci L2 Zmienna Tylko do odczytu
Rejestr: A:0x0071 Int16 Jednostka: Hz numeric

Częstotliwość sieci L2

Odczyt
MODBUSR(A,0x0071, Int16)/100
Częstotliwość sieci L3 Zmienna Tylko do odczytu
Rejestr: A:0x0075 Int16 Jednostka: Hz numeric

Częstotliwość sieci L3

Odczyt
MODBUSR(A,0x0075, Int16)/100
Tryb ładowania Przełącznik wielowartościowy

Tryb pracy ładowarki baterii — Self Use, Feed-in Priority, Backup lub Manual. Zapis jest oparty na EEprom: nie zmieniaj często z automatyzacji

Rejestr: H:0x008B → SH:0x001F UInt16 numeric
Wartości / Stany: ON · OFF

Tryb ładowania

Odczyt stanu przełącznika
MODBUSR(H, 0x008B, Uint16)
Zapis stanu przełącznika
MODBUSW(SH, 0x001F, uint16, Mu)
Napięcie sieci L1 Zmienna Tylko do odczytu
Rejestr: A:0x006A Int16 Jednostka: V numeric

Napięcie sieci L1

Odczyt
MODBUSR(A,0x006A, Int16)/10
Napięcie sieci L2 Zmienna Tylko do odczytu
Rejestr: A:0x006E Int16 Jednostka: V numeric

Napięcie sieci L2

Odczyt
MODBUSR(A, 0x006E, Int16)/10
Napięcie sieci L3 Zmienna Tylko do odczytu
Rejestr: A:0x0072 Int16 Jednostka: V numeric

Napięcie sieci L3

Odczyt
MODBUSR(A,0x0072, Int16)/10
Moc pobierana / oddawana do sieci Zmienna Tylko do odczytu

Moc oddawania / poboru z sieci w czasie rzeczywistym z licznika zewnętrznego (0x0046, poprawnie odczytywany jako LittleEndianInt32); wartości dodatnie to eksport, ujemne to pobór

Rejestr: A:0x0046 LittleEndianInt32 Jednostka: kW numeric

Moc pobierana / oddawana do sieci

Odczyt
MODBUSR(A, 0x46,LittleEndianInt32)/1000
Moc PV1 (wschód) Zmienna Tylko do odczytu

Moc DC ze stringa PV 1, zazwyczaj pole skierowane na wschód w oryginalnym słowackim nazewnictwie szablonu

Rejestr: A:0x000A UInt16 Jednostka: kW numeric

Moc PV1 (wschód)

Odczyt
MODBUSR(A,0x0a, UInt16)/1000
Moc PV2 (wschód) Zmienna Tylko do odczytu

Moc DC ze stringa PV 2, zazwyczaj pole skierowane na wschód w oryginalnym słowackim nazewnictwie szablonu

Rejestr: A:0x000B UInt16 Jednostka: kW numeric

Moc PV2 (wschód)

Odczyt
MODBUSR(A,0x0b, UInt16)/1000
Moc PV3 (zachód) Zmienna Tylko do odczytu

Moc DC ze stringa PV 3 — działa tylko na wariancie X3-ULT-30K z 3 MPPT; pozostałe modele odczytują 0

Rejestr: A:0x0124 UInt16 Jednostka: kW numeric

Moc PV3 (zachód)

Odczyt
MODBUSR(A, 0x0124, Uint16)/1000
SOC ładowania nocnego (autokonsumpcja) Ściemniacz

Górna docelowa wartość SOC (10–100%) dla ładowania baterii z sieci w nocy w trybie autokonsumpcji. Zapis jest oparty na EEprom; oficjalny szablon zapisuje ją przy każdym odpytaniu (około co 55 s) — użyj skryptu zapisu, który najpierw porównuje wartość z 0x0094

Rejestr: H:0x0094 → SH:0x0063 UInt16 Jednostka: % numeric

SOC ładowania nocnego (autokonsumpcja)

Odczyt poziomu
MODBUSR(H, 0x0094, Uint16) / 100
Zapis poziomu
MODBUSW(SH, 0x0063,  Uint16, Le * 100)
Temperatura baterii Czujnik temperatury Tylko do odczytu
Rejestr: A:0x0018 UInt16 Jednostka: °C numeric

Temperatura baterii

Odczyt temperatury
MODBUSR(A,0x0018, UInt16)
Limit maks. mocy oddawania Zmienna

Maksymalna dozwolona moc eksportu do sieci w kW (na modelach X3 rejestr liczy w krokach po 10 W). Zapis jest oparty na EEprom: nie zmieniaj często z automatyzacji

Rejestr: H:0x00B6 → SH:0x0042 UInt16 Jednostka: kW numeric

Limit maks. mocy oddawania

Odczyt
MODBUSR(H, 0x00B6, Uint16)/100
Zapis
MODBUSW(SH, 0x0042, Uint16, Va*100)
Połączenie: Modbus RTU • 19200 baud• 8N1 • Slave ID: $[SlaveId]
Możliwe ulepszenia (40)
  • A:0x0017 BMS Connect State — 0=Disconnected, 1=Connected. Critical for battery health monitoring
  • A:0x001A Grid Status — 0=On-grid, 1=Off-grid. Important for backup/off-grid scenarios
  • A:0x0014, A:0x0015, A:0x0016 Battery Voltage / Current / Power — Battery 1 pack telemetry: 0.1V int16, 0.1A int16, 1W int16. Positive current/power = charge, negative = discharge
  • A:0x0127, A:0x0128, A:0x0129 Battery 2 Voltage / Current / Power — Battery 2 pack telemetry. X3-ULT-30K only
  • A:0x0131 Battery 2 Temperature — 1°C, int16. Battery 2 temperature. X3-ULT-30K only
  • A:0x0008 Radiator Temperature — 1°C, int16. Inverter internal radiator/heatsink temperature
  • A:0x0003, A:0x0004 PV1 / PV2 Voltage — 0.1V, uint16. Useful for string-level diagnostics
  • A:0x0005, A:0x0006 PV1 / PV2 Current — 0.1A, uint16. Useful for string-level diagnostics
  • A:0x0122, A:0x0123 PV3 Voltage / Current — 0.1V uint16 / 0.1A uint16. X3-ULT-30K only
  • A:0x006B, A:0x006F, A:0x0073 Per-Phase Grid Current L1/L2/L3 — 0.1A, int16 each. Per-phase current for 3-phase monitoring
  • A:0x006C, A:0x0070, A:0x0074 Per-Phase Grid Power L1/L2/L3 — 1W, int16 each. Per-phase grid power — essential for 3-phase load balancing
  • A:0x0082–0x0087 Per-Phase Feed-in Power L1/L2/L3 (Meter) — 1W, int32 LE × 3 phases. Per-phase feed-in from meter/CT
  • A:0x0048–0x0049 Feed-in Energy Total (Meter) — 0.01kWh, uint32 LE. Lifetime energy exported via meter
  • A:0x004A–0x004B Consumed Energy Total (Meter) — 0.01kWh, uint32 LE. Lifetime energy consumed from grid via meter
  • A:0x0094–0x0095 Solar Energy Total — 0.1kWh, uint32 LE. Cumulative PV production (all strings combined)
  • A:0x0096 Solar Energy Today — 0.1kWh, uint16. Today's PV production
  • A:0x0091, A:0x0092–0x0093 Charged Energy Today / Total — 0.1kWh, uint16 / uint32 LE. Energy charged to battery via inverter AC port
  • A:0x001D–0x001E, A:0x0020 Battery Discharge Energy Today / Total — 0.1kWh, uint32 LE / uint16. Battery discharge energy
  • A:0x0021–0x0022, A:0x0023 Battery Charge Energy Today / Total — 0.1kWh, uint32 LE / uint16. Battery charge energy
  • A:0x00BA, A:0x00BB Battery Temp High / Low — 0.1°C, int16. Min/max battery cell temperatures
  • A:0x00BC, A:0x00BD Cell Voltage High / Low — 0.001V, uint16. Min/max individual cell voltages — important for battery health
  • A:0x00BE, A:0x00BF BMS User SOC / SOH — 1%, uint16. SOC and state-of-health as reported by BMS (may differ from A:0x001C)
  • A:0x00B8, A:0x00B9 Meter 1 / Meter 2 Communication State — 0=Com Error, 1=Normal. Diagnostic for meter/CT connectivity
  • A:0x0019 BDC Status — 0=discharge, 1=charge, 2=stop. Battery DC converter status
  • A:0x008E–0x008F, A:0x0090 Off-grid Yield Total / Today — 0.1kWh, uint32 LE / uint16. Energy delivered in off-grid mode
  • A:0x0088–0x008B On-grid / Off-grid Running Time — 0.1h, uint32 LE each. Lifetime runtime counters
  • A:0x012F–0x0130 Inverter Total AC Power — 1W, int32. Sum of all 3 phases AC output. X3-ULT-30K only
  • A:0x0042 Manager Error Code (as Value) — Note: register A:0x0043 is parsed in module readscript for bit-level fault decoding (11 manager fault bits). V3.29 protocol places Manager error at A:0x0042 and BMS error at A:0x0043 — template uses A:0x0043 as 'Manager error code' which may actually be BMS Warning Code (Table 2-6). Potential mismatch — verify
  • Write SH:0x0020 Manual Mode — 0=Stop charge & discharge, 1=Force charge, 2=Force discharge. Requires Charger Use Mode = 3 (Manual)
  • Write SH:0x0061 Self-Use Discharge Min SOC — 10–100%. Minimum SOC before discharge stops in Self-Use mode
  • Write SH:0x0062 Self-Use Night Charge Enable — 0=Disable, 1=Enable night charging from grid. Currently always-on assumption in template — explicit enable would allow user toggle
  • H:0x0093 Self-Use Discharge Min SOC (Read) — Readback of discharge min SOC limit
  • H:0x008C Manual Mode Readback — 0=Stop, 1=Force charge, 2=Force discharge. Readback of current manual sub-mode
  • H:0x008D Battery Type — 0=Lead Acid, 1=Lithium. Battery chemistry diagnostic
  • H:0x0100–0x011F Modbus Power Control (Remote) — Active/reactive power targets, SOC targets, time-of-duration. Enables advanced energy management and grid services (peak shaving, FCR, etc.)
  • A:0x0120, A:0x0121 BMS Relay State / Restart Flag — 0/1 each. BMS relay status and restart indicator
  • H:0x001D Safety Code (Country Standard) — 0–39 enum. Grid safety standard (VDE0126, VDE4105, AS4777, G98/G99, EN50549, etc.) — useful for installation diagnostics
  • H:0x0023 Power Limits Percent — 0–100%, uint16. Inverter output power limit
  • H:0x00BA Inverter Power Type — Model variant code (15K/20K/25K/30K). Useful for runtime model detection
  • H:0x0000–0x0006 Inverter Serial Number — 14-character ASCII string across 7 registers. Service attribute candidate

Źródła

Znalazłeś problem z tym szablonem urządzenia?

Napisz nam, co nie działa, czego brakuje lub jak powinien zachowywać się szablon. Twoja opinia pomaga nam utrzymać katalog dokładnym.

Zweryfikowane przez TapHome

Chcesz tego użyć w swoim TapHome Core?

Otwórz ten szablon w portalu klienta, aby zastosować go w swoim domu, lub zaproponuj modyfikację i wyślij ją z powrotem do katalogu.

Otwórz w portalu