
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.
| Model | Znamionowa moc AC | Trackery MPPT | Uwagi |
|---|---|---|---|
| X3-ULT-15K | 15 kW | 2 | Standardowy 2-MPPT |
| X3-ULT-15KP | 15 kW | 3 | 3-MPPT (kod modelu H3BC) |
| X3-ULT-19.9K | 19,9 kW | 2 | Standardowy 2-MPPT |
| X3-ULT-20K | 20 kW | 2 | Standardowy 2-MPPT (kod modelu H3BD) |
| X3-ULT-20KP | 20 kW | 3 | 3-MPPT |
| X3-ULT-25K | 25 kW | 3 | Kod modelu H3BF |
| X3-ULT-25KW | 25 kW | 3 | — |
| X3-ULT-30K | 30 kW | 3 | Podwójna bateria, PV3 aktywny (kod modelu H3BG) |
| X3-ULT-10K-GLV | 10 kW | — | Wariant niskonapięciowy (GLV) |
| X3-ULT-15K-GLV | 15 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 dla pozycji RS485 (jedyna pozycja istotna dla TapHome):
| Pin | Sygnał | Okablowanie TapHome |
|---|---|---|
| 1 | REMOTE_485A | A+ / D+ |
| 2 | REMOTE_485B | B− / D− |
| 3 | PARALLEL_485AA | nie używać (tylko akcesoria SolaX) |
| 4 | PARALLEL_485AA | nie używać (tylko akcesoria SolaX) |
| 5 | PARALLEL_485BB | nie używać (tylko akcesoria SolaX) |
| 6 | PARALLEL_485BB | nie używać (tylko akcesoria SolaX) |
| 7 | REMOTE_485A | duplikat pinu 1 (dla daisy-chain) |
| 8 | REMOTE_485B | duplikat 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

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
IpAddressto 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:
| |
Menu Advanced Settings może wymagać hasła instalatora. Sprawdź lub ustaw poniższe:
| Parametr | Domyślne szablonu TapHome | Domyślne falownika | Zakres |
|---|---|---|---|
| Adres Modbus (Slave ID) | 1 | 1 | 1–255 |
| Prędkość transmisji | 19200 | 19200 | 9600 / 19200 / 38400 / 57600 / 115200 |
| Parzystość | None | None | None / Odd / Even |
| Bity danych | 8 | 8 | — |
| Bity stopu | 1 | 1 | 1 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:
| Parametr | Cel |
|---|---|
| IpAddress | Adres 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. |
| SlaveId | Adres 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:0x0046z błędną kolejnością słów (Int32zamiastLittleEndianInt32), 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 rejestremA: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łą
2014doSH:0x0000w 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ł).
| Gdzie | Oficjalny skrypt | Poprawiony skrypt | Skutek błędu |
|---|---|---|---|
| Moduł — skrypt odczytu | var 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)/1000 | MODBUSR(A, 0x0048, LittleEndianUint32) / 100 — całkowita energia oddana do sieci w kWh | Moc 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życie | MODBUSR(A, 0x50, UInt16) /10 | MODBUSR(A, 0x0094, LittleEndianUint32) / 10 | 0x0050 to licznik dzienny, który każdej nocy spada do 0; 0x0094 to całkowita energia PV |
| Produkcja falownika dzienna / aktualna — zapotrzebowanie | MODBUSR(A,0x02, Int16)/1000 | (MODBUSR(A, 0x000A, UInt16) + MODBUSR(A, 0x000B, UInt16) + MODBUSR(A, 0x0124, UInt16)) / 1000 | 0x0002 to moc sieci jednofazowych modeli X1, na X3-Ultra odczytuje 0 |
| Temperatura baterii | MODBUSR(A,0x0018, UInt16) | MODBUSR(A, 0x0018, Int16) | Poniżej 0 °C oficjalny szablon pokazuje około 65535 °C |
| SOC ładowania nocnego (autokonsumpcja) — skrypt zapisu | MODBUSW(SH, 0x0063, Uint16, Le * 100) z włączonym zapisem okresowym | IF(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
- 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
- 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 - Potwierdź, że Slave ID jest zgodne (domyślnie
1) - Sprawdź, czy do magistrali RS-485 podłączony jest tylko jeden master Modbus — Modbus nie obsługuje multi-master
- Zamień przewody A i B, jeśli polaryzacja kabla jest niepewna
- 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.
