
SolaX X3 Hybrid Ultra (Gen5) este un invertor hibrid trifazat PV/baterie, cu puteri nominale de la 10 kW la 30 kW. Șablonul TapHome comunică cu invertorul prin Modbus RTU pe portul RS-485 COM 1 (pinii REMOTE_485A / REMOTE_485B) și implementează harta de registre a protocolului SolaX Modbus V3.29. Citește puterea stringurilor PV, starea de încărcare și temperatura bateriei, tensiunea și frecvența trifazată a rețelei, energia zilnică și energia totală produsă pe toată durata de funcționare, puterea injectată de la contorul extern și pune la dispoziție pentru scriere modul de utilizare a încărcătorului, SOC-ul de încărcare de noapte în modul Self Use și limita maximă a puterii injectate.
X3-Ultra nu acceptă nativ Modbus TCP: TCP este disponibil doar printr-un modul de monitorizare SolaX (Pocket WiFi 3.0, Pocket LAN sau DataHub), care face legătura RTU–TCP pe portul 502. Pentru instalațiile la distanță, TapHome poate fi conectat și printr-un gateway RS-485–Ethernet terț (de ex. Waveshare, USR-DR302) configurat ca Modbus RTU-over-TCP.
Modele
Șablonul TapHome acoperă întreaga serie X3-Ultra. Senzorii PV3 și SOC baterie 2 funcționează doar la varianta de 30 kW cu 3 MPPT / două baterii.
| Model | Putere AC nominală | Trackere MPPT | Note |
|---|---|---|---|
| X3-ULT-15K | 15 kW | 2 | Standard, 2 MPPT |
| X3-ULT-15KP | 15 kW | 3 | 3 MPPT (cod model H3BC) |
| X3-ULT-19.9K | 19,9 kW | 2 | Standard, 2 MPPT |
| X3-ULT-20K | 20 kW | 2 | Standard, 2 MPPT (cod model H3BD) |
| X3-ULT-20KP | 20 kW | 3 | 3 MPPT |
| X3-ULT-25K | 25 kW | 3 | Cod model H3BF |
| X3-ULT-25KW | 25 kW | 3 | — |
| X3-ULT-30K | 30 kW | 3 | Două baterii, PV3 activ (cod model H3BG) |
| X3-ULT-10K-GLV | 10 kW | — | Variantă de joasă tensiune (GLV) |
| X3-ULT-15K-GLV | 15 kW | — | Variantă de joasă tensiune (GLV) |
Codul modelului poate fi citit în timpul funcționării prin atributul de modul Model (registrul H:0x000E, șir ASCII de 4 caractere).
Domeniul compatibilității
Șablonul implementează subsetul protocolului SolaX Modbus V3.29 folosit cel mai des pentru managementul energetic al locuinței: 19 dispozitive, 2 atribute de service la nivelul modulului și o acțiune de service. Protocolul complet pune la dispoziție mult mai multe registre; cele mai utile funcții neimplementate (puterea și curentul rețelei pe fiecare fază, tensiunea/curentul/puterea bateriei, starea BMS, timpul de funcționare off-grid, controlul de la distanță al puterii etc.) pot fi adăugate într-o actualizare viitoare a șablonului. Șablonul comunitar corectat din portalul TapHome adaugă deja controlul de la distanță al puterii și scrieri ale setărilor care au loc doar la schimbarea valorii; consultați mai jos Probleme cunoscute ale șablonului oficial și Controlul de la distanță al puterii.
Conectarea hardware
X3-Ultra are un singur port COM 1 multifuncțional (conector de tip RJ45 cu un suport de cablu etichetat). Aceiași pini fizici au funcții diferite, în funcție de poziția etichetată din suportul de cablu în care introduceți cablul. Pentru integrarea prin Modbus cu sisteme terțe folosiți poziția RS485, adică liniile REMOTE_485A și REMOTE_485B.
Alocarea pinilor portului COM 1

Alocarea pinilor pentru poziția RS485 (singura poziție relevantă pentru TapHome):
| Pin | Semnal | Cablare TapHome |
|---|---|---|
| 1 | REMOTE_485A | A+ / D+ |
| 2 | REMOTE_485B | B− / D− |
| 3 | PARALLEL_485AA | nu se folosește (doar accesorii SolaX) |
| 4 | PARALLEL_485AA | nu se folosește (doar accesorii SolaX) |
| 5 | PARALLEL_485BB | nu se folosește (doar accesorii SolaX) |
| 6 | PARALLEL_485BB | nu se folosește (doar accesorii SolaX) |
| 7 | REMOTE_485A | duplicat al pinului 1 (pentru daisy-chain) |
| 8 | REMOTE_485B | duplicat al pinului 2 (pentru daisy-chain) |
Pinii 3–6 aparțin canalului proprietar SolaX PARALLEL_485 și sunt rezervați pentru accesoriile SolaX (Adapter Box G2, EV-Charger, DataHub, invertoare în paralel). Nu conectați un master Modbus terț la acești pini.
Invertoarele SolaX mai vechi (Gen4 X3-Hybrid) foloseau pinul 4 = 485A și pinul 5 = 485B. Alocarea pinilor COM 1 la X3-Ultra este diferită: verificați întotdeauna etichetarea suportului de cablu de pe unitatea dvs. înainte de sertizare. Unele documentații din comunitate fac încă referire la vechea alocare a pinilor Gen4.
Cablarea RS-485

Reguli de cablare din manualul de utilizare X3-Ultra (secțiunea 8.6.4):
- Tip de cablu: cablu UTP standard Cat5 sau Cat6 cu perechi răsucite
- Lungime maximă: 30 m de cablu RS-485 între invertor și TapHome CCU
- Polaritatea contează: dacă nu există comunicare, inversați A și B
- Un singur master Modbus: pe magistrală este permis un singur master. Dacă linia este partajată cu un modul de monitorizare SolaX, vor apărea conflicte
Suportul de cablu COM 1 are poziții etichetate dedicate pentru fiecare canal: introduceți cablul Cat5/Cat6 în slotul etichetat RS485 (nu în Parallel-1, Parallel-2, BMS-1, BMS-2 sau DRM).
Variante de conectare
- CCU Modbus RTU direct: conectați perechea RS485 de la COM 1 direct la TapHome Modbus RTU CCU. Oferă cea mai mică latență și este recomandată pentru controlul în timp real.
- Gateway RS-485–Ethernet (Modbus RTU-over-TCP): pentru instalațiile în care invertorul este departe de TapHome Core, folosiți un gateway Waveshare RS485-to-Ethernet, USR-DR302 sau similar, configurat ca Modbus RTU-over-TCP pe portul 502. Parametrul de import
IpAddressal șablonului permite această variantă. - SolaX Pocket WiFi 3.0 / Pocket LAN / DataHub (Modbus TCP): dacă modulul de monitorizare SolaX este deja instalat, acesta face legătura RTU–TCP pe portul 502 cu un ciclu de interogare de aproximativ 1 secundă, mai lent decât RTU direct și nepotrivit pentru buclele de control în timp real.
Configurare
Activarea comunicației Modbus pe invertor
Pe afișajul LCD al invertorului mergeți la:
| |
Meniul Advanced Settings poate necesita parola de instalator. Verificați sau setați următoarele:
| Parametru | Valoare implicită în șablonul TapHome | Valoare implicită în invertor | Interval |
|---|---|---|---|
| Modbus Address (Slave ID) | 1 | 1 | 1–255 |
| Baud rate | 19200 | 19200 | 9600 / 19200 / 38400 / 57600 / 115200 |
| Paritate | None | None | None / Odd / Even |
| Biți de date | 8 | 8 | — |
| Biți de stop | 1 | 1 | 1 sau 2 |
Baud rate-ul trebuie să coincidă între invertor și TapHome. Protocolul V3.29 specifică 19200 ca valoare implicită pentru X3-Ultra; unele șabloane și documentații SolaX mai vechi menționează încă 9600. Dacă comunicarea eșuează, verificați mai întâi baud rate-ul.
Invertorul poate pune la dispoziție și adresa slave Modbus prin registrul holding H:0x00AC și baud rate-ul prin registrul holding H:0x00AD.
Parametrii de import în TapHome
La importul șablonului în TapHome trebuie setați doi parametri:
| Parametru | Scop |
|---|---|
| IpAddress | Adresa IP a gateway-ului RS-485–TCP (sau a modulului de monitorizare SolaX Pocket WiFi / LAN). Lăsați valoarea implicită dacă invertorul este conectat direct la TapHome Modbus RTU CCU. |
| SlaveId | Adresa slave Modbus a invertorului (implicit 1). Trebuie să corespundă setării Modbus Address a invertorului. |
Temporizarea comunicației
Protocolul SolaX Modbus cere un interval minim între solicitările succesive, iar șablonul folosește intervale de interogare individuale pentru fiecare dispozitiv (de la câteva secunde pentru tensiunea / frecvența rețelei până la 80 s pentru temperatura bateriei). Nu interogați niciun dispozitiv prea frecvent: invertorul limitează intern solicitările.
Funcțiile dispozitivului
Monitorizarea bateriei
- SOC baterie 1 — starea de încărcare a bateriei principale, ca intrare analogică 0–1 (registrul brut în unități de 1 %, împărțit la 100 pentru intervalul TapHome 0–1)
- SOC baterie 2 — starea de încărcare a celei de-a doua baterii, funcțională doar la X3-ULT-30K, varianta cu două baterii; celelalte modele afișează 0
- Temperatura bateriei — temperatura pachetului de baterii, în °C, interogată la fiecare 80 de secunde
Puterea fotovoltaică
- Putere PV1 (Est) — puterea DC a stringului PV 1, în kW
- Putere PV2 (Est) — puterea DC a stringului PV 2, în kW
- Putere PV3 (Vest) — puterea DC a stringului PV 3, în kW, funcțională doar la modelele cu 3 MPPT (vezi tabelul Modele); celelalte modele afișează 0
Sufixele „Est” / „Vest” sunt o convenție de denumire moștenită din șablonul slovac original: numărul stringului PV corespunde intrării MPPT fizice a invertorului, nu orientării reale a panourilor.
Măsurarea rețelei și a energiei
- Tensiune rețea L1 / L2 / L3 — tensiunea rețelei pe fiecare fază, în volți (registrele
A:0x006A,A:0x006E,A:0x0072) - Frecvență rețea L1 / L2 / L3 — frecvența rețelei pe fiecare fază, în herți (registrele
A:0x006D,A:0x0071,A:0x0075) - Putere injectată în rețea (contor) — ar trebui să indice puterea injectată de la contorul extern SolaX / CT, dar șablonul oficial citește registrul
A:0x0046cu ordinea cuvintelor greșită (Int32în loc deLittleEndianInt32), astfel că valoarea nu are sens (de exemplu −7340,033 în loc de −0,117 kW). Nu este un alias pentru Putere import / export rețea: folosiți acel dispozitiv sau corectați scriptul conform secțiunii Probleme cunoscute ale șablonului oficial - Putere import / export rețea — citirea corectă a puterii contorului / CT (
A:0x0046,LittleEndianInt32), în kW; pozitivă = export, negativă = import - Producție invertor zilnică / actuală — în șablonul oficial combină energia invertorului de astăzi (registrul
A:0x0050, un contor zilnic care se resetează în fiecare noapte) cu registrulA:0x0002, pe care SolaX îl documentează doar pentru modelele monofazate X1; la X3-Ultra acesta afișează 0. Scripturile corectate se găsesc în secțiunea Probleme cunoscute ale șablonului oficial - Energie totală produsă — energia cumulată livrată de portul AC al invertorului în rețea pe toată durata de funcționare, în kWh
Controlul încărcătorului și al injectării (cu scriere)
- Mod de utilizare încărcător — modul de funcționare al încărcătorului bateriei: Self Use, Feed-in Priority, Backup sau Manual
- SOC încărcare de noapte (Self Use) — limita superioară a SOC-ului (10–100 %) pentru încărcarea bateriei din rețea în timpul nopții, în modul Self Use
- Limita maximă a puterii injectate — puterea maximă permisă pentru export în rețea, în kW (nu în procente): la modelele X3 registrul numără în pași de 10 W, iar șablonul împarte la 100
Se aplică limita de scriere în EEprom pentru toate cele trei dispozitive cu scriere de mai sus (Mod de utilizare încărcător →
SH:0x001F, SOC încărcare de noapte →SH:0x0063, Limita maximă a puterii injectate →SH:0x0042). Registrele sunt stocate în EEprom, cu un număr limitat de cicluri de scriere: scrierile frecvente (la fiecare câteva secunde într-o buclă de automatizare) vor deteriora permanent EEprom-ul invertorului. Folosiți doar modificări manuale sau scrieri programate rar.
Atribute și acțiuni la nivelul modulului
- Mod de funcționare (atribut de service) — starea de funcționare a invertorului ca text: Waiting, Checking, Normal, Fault, Permanent Fault, Update, Off-grid waiting, Off-grid, Self Testing, Idle, Standby
- Model (atribut de service) — codul modelului invertorului ca șir ASCII de 4 caractere (H3BC = 15K/15KP, H3BD = 19.9K/20K/20KP, H3BF = 25K, H3BG = 30K)
- Deblocare admin (acțiune de service) — scrie constanta
2014înSH:0x0000pentru a debloca setările avansate ale invertorului (necesară rar, doar pentru diagnosticare)
Detectarea defecțiunilor
ReadScript-ul modulului monitorizează registrul Run Mode (A:0x0009) și raportează o eroare de sistem TapHome când invertorul intră în starea 3 (Fault) sau 4 (Permanent Fault). Două registre de eroare sunt analizate bit cu bit:
- Coduri de defecțiune ale invertorului (32 de biți,
A:0x0040–A:0x0041) — 31 de defecțiuni individuale, inclusiv defecțiuni de tensiune / frecvență a rețelei, defecțiuni de tensiune PV, defecțiuni ale bateriei, defecțiuni de izolație, supratemperatură, protecție la supracurent, defecțiuni ale releului și erori de comunicare - Coduri de eroare ale managerului (16 biți,
A:0x0043) — 11 biți de defecțiune, inclusiv defecțiuni de tip putere, erori EEPROM, probleme ale senzorului NTC, avertismente de temperatură a bateriei, defecțiuni ale contorului și defecțiuni ale ventilatorului
Defecțiunile individuale apar ca erori separate în jurnalul de sistem TapHome, astfel încât instalatorii pot identifica subsistemul defect fără să citească afișajul LCD al invertorului.
Probleme cunoscute ale șablonului oficial
Șablonul TapHome oficial pentru X3-Ultra citește greșit mai multe registre și scrie periodic o setare (verificat față de protocolul SolaX Modbus V3.29 și V001.02 și față de valorile din sisteme instalate). Un modul importat din șablonul oficial nu se actualizează singur când șablonul se modifică. Fie corectați manual scripturile modulului existent și ale dispozitivelor sale, fie importați șablonul comunitar corectat din portalul TapHome: SolaX X3-Ultra Hybrid Inverter — monitoring and power control (autentificați-vă, descărcați fișierul XML și importați-l ca modul nou).
| Unde | Script oficial | Script corectat | Efectul erorii |
|---|---|---|---|
| Modul — script de citire | var x3 := MODBUSR(A, 0x0040, Uint32); | var x3 := MODBUSR(A, 0x0040, LittleEndianUint32); | Cele două jumătăți ale codului de defecțiune pe 32 de biți sunt inversate: o defecțiune în bitul 1 (Grid Lost Fault) este raportată ca bitul 17 (Bat Power Low). Parallel Fault (bitul 21) și Hard Limit Fault (bitul 22) nu sunt raportate deloc |
| Putere injectată în rețea (contor) | MODBUSR(A,0x0046, Int32)/1000 | MODBUSR(A, 0x0048, LittleEndianUint32) / 100 — energia totală livrată în rețea, în kWh | Puterea este deja citită corect de Putere import / export rețea; acest dispozitiv afișează un număr fără sens. Energia totală preluată din rețea: MODBUSR(A, 0x004A, LittleEndianUint32) / 100 |
| Producție invertor zilnică / actuală — consumul total | MODBUSR(A, 0x50, UInt16) /10 | MODBUSR(A, 0x0094, LittleEndianUint32) / 10 | 0x0050 este un contor zilnic care scade la 0 în fiecare noapte; 0x0094 este energia PV totală |
| Producție invertor zilnică / actuală — cerere | MODBUSR(A,0x02, Int16)/1000 | (MODBUSR(A, 0x000A, UInt16) + MODBUSR(A, 0x000B, UInt16) + MODBUSR(A, 0x0124, UInt16)) / 1000 | 0x0002 este puterea rețelei la modelele monofazate X1 și la X3-Ultra afișează 0 |
| Temperatura bateriei | MODBUSR(A,0x0018, UInt16) | MODBUSR(A, 0x0018, Int16) | Sub 0 °C șablonul oficial afișează aproximativ 65535 °C |
| SOC încărcare de noapte (Self Use) — script de scriere | MODBUSW(SH, 0x0063, Uint16, Le * 100) cu scrierea periodică activată | IF(MODBUSR(H, 0x0094, UInt16) != ROUND(Le * 100), MODBUSW(SH, 0x0063, Uint16, ROUND(Le * 100))); | Dispozitivul oficial scrie ținta de încărcare de noapte în invertor la fiecare interogare (aproximativ la fiecare 55 s); 0x0063 este un registru EEPROM cu aproximativ 1 milion de cicluri de scriere. Cu scriptul corectat, scrie doar atunci când valoarea se schimbă cu adevărat |
Registrul H:0x0094 este și în protocolul V3.29 starea de încărcare țintă pentru încărcarea de noapte (SelfUse_NightCharge_UpperSoC); încărcarea de noapte din rețea se activează în octetul inferior al H:0x0093 (registrul de scriere 0x0062).
Controlul de la distanță al puterii
Șablonul comunitar corectat adaugă dispozitivul Remote control - AC power target. Acesta folosește modul 1 al controlului de la distanță SolaX (VPP): o țintă pozitivă în kW face ca invertorul să preia putere la portul său AC (încarcă bateria, din rețea dacă PV nu este suficient), iar o țintă negativă îl face să livreze putere (descarcă bateria, iar ceea ce casa nu consumă ajunge în rețea); 0 încheie controlul de la distanță. Când este necesar, șablonul deblochează setările invertorului cu parola implicită 2014 și repetă comanda la fiecare 60 s. Controlul de la distanță nu pornește cât timp invertorul este în modul de lucru Manual.
În protocolul său, SolaX nu marchează registrele de control de la distanță (0x007C–0x0088) ca registre EEPROM, dar nici nu confirmă în scris contrariul. Acest șablon se bazează pe experiența comunităților Home Assistant și openHAB, care scriu aceste registre la intervale de câteva secunde până la câteva minute. Setările de mai sus sunt registre EEPROM (marcate cu ★ de SolaX, aproximativ 1 milion de cicluri de scriere): modificați-le rar și niciodată din automatizări frecvente; pentru încărcarea și descărcarea în funcție de prețurile spot folosiți ținta de putere AC a controlului de la distanță.
Rezolvarea problemelor
Nu există comunicare cu invertorul
- Verificați dacă cablajul RS-485 este pe pinii REMOTE_485A / REMOTE_485B (1+2 sau 7+8 în poziția RS485 a COM 1), nu pe pinii PARALLEL_485 3–6
- Verificați dacă baud rate-ul coincide între invertor (
Menu → Setting → Advance Setting → Modbus) și modulul TapHome: implicit ambele trebuie să fie 19200 - Confirmați că Slave ID-ul coincide (implicit
1) - Verificați dacă la magistrala RS-485 este conectat un singur master Modbus: Modbus nu acceptă mai mulți masteri
- Inversați firele A și B dacă polaritatea cablului este incertă
- Confirmați că lungimea totală a cablului RS-485 nu depășește 30 m
PV3 sau SOC baterie 2 afișează zero
Aceste dispozitive funcționează doar la X3-ULT-30K (varianta cu 3 MPPT / două baterii). La modelele mai mici, registrele A:0x0124 (puterea PV3) și A:0x012D (SOC baterie 2) returnează zero. La instalațiile fără modelul 30K ascundeți dispozitivele neutilizate în interfața TapHome.
Temperatura bateriei afișează o valoare neobișnuit de mare
Registrul Temperatura bateriei (A:0x0018) este citit de șablonul oficial ca UInt16, dar valoarea este cu semn. Temperaturile sub zero (de ex. −1 °C) se transformă în valori pozitive mari (de ex. 65535). Schimbați scriptul în MODBUSR(A, 0x0018, Int16); consultați Probleme cunoscute ale șablonului oficial.
Scrierile pentru Mod de utilizare încărcător / SOC încărcare de noapte / Limita maximă a puterii injectate nu au efect
Aceste registre sunt stocate în EEprom, iar invertorul limitează rata scrierilor pentru a proteja EEprom-ul. Asigurați-vă că scrierile sunt rare (manuale sau programate, nu într-o buclă de automatizare care scrie la fiecare câteva secunde). Unele versiuni de firmware cer și ca Mod de utilizare încărcător să fie setat la Manual (3) înainte ca anumite submoduri de încărcare / descărcare forțată să răspundă.
Modbus TCP prin modulul de monitorizare SolaX este lent
Pocket WiFi 3.0 / Pocket LAN / DataHub fac legătura RTU–TCP cu un ciclu de interogare de aproximativ 1 secundă și gestionează un singur client Modbus TCP la un moment dat. Dacă și monitorizarea SolaX Cloud preia date, vor apărea conflicte. Pentru controlul în timp real (răspuns în frecvență, reducerea vârfurilor de consum – peak shaving) folosiți Modbus RTU direct sau un gateway RS-485–Ethernet terț dedicat.
