---
title: "SolaX X1/X3-Hybrid G4 — corrected monitoring (Modbus RTU)"
description: "SolaX X1/X3-Hybrid G4 cez Modbus RTU (RS-485): SOC batérie, výkon FV, dodávka do siete, energia, chybové kódy. Opravená verzia oficiálnej šablóny."
url: "https://taphome.com/sk/compatibility/solax-x3-hybrid-gen4-corrected-modbus-rtu/"
language: sk
lastmod: 2026-11-12
generator: hugo
ai:
  topics: ["modbus-rtu","rs485","inverter","solar","battery-storage","3-phase","energy-monitoring"]
  questions: ["Ako integrovať striedač SolaX X1/X3-Hybrid G4 s TapHome cez Modbus RTU?","Čo opravuje komunitná šablóna SolaX Gen 4 oproti oficiálnej šablóne?","Ako pripojiť COM port striedača SolaX Gen 4 cez RS-485 k TapHome?","Aký baud rate používa striedač SolaX Gen 4 pre Modbus RTU?","Prečo je pri oficiálnej šablóne SolaX hodnota Total Energy 100-krát menšia alebo Battery Temperature 65535 °C?","Ako importovať komunitnú šablónu z portal.taphome.com do riadiacej jednotky Core?","Môže TapHome meniť režim nabíjačky SolaX alebo nastavenia nočného nabíjania?"]
---

# SolaX X1/X3-Hybrid G4 — corrected monitoring (Modbus RTU)

Komunikácia: Modbus RTU

## Návod na integráciu

SolaX X1-HYBRID a X3-HYBRID Gen 4 sú striedače na akumuláciu energie s FV a batériou, dostupné ako jednofázové (3–7,5 kW) a trojfázové (5–15 kW) modely. Táto komunitná šablóna je oficiálna šablóna TapHome pre SolaX Gen 4 s čítaním hodnôt opraveným podľa protokolu SolaX Modbus (V3.21 a V001.02). Komunikuje cez Modbus RTU po RS-485 a číta stav nabitia a teplotu batérie, výkon FV reťazcov, tok výkonu siete, celkové množstvá energie, režim nabíjačky a SOC nočného nabíjania. Mená zariadení sú rovnaké ako v oficiálnej šablóne, takže skorší import je možné porovnať zariadenie po zariadení. Všetky zápisové skripty zostávajú zakomentované, rovnako ako v oficiálnej šablóne, takže šablóna je iba na čítanie.

Modul tiež spracúva 32-bitový chybový kód striedača a 16-bitový chybový kód správcu a každú poruchu hlási v TapHome s vlastným kódom chyby.

## Ako získať šablónu

Komunitné šablóny sa v zozname šablón aplikácie TapHome neponúkajú. Prihláste sa na portal.taphome.com, stiahnite XML tejto šablóny a importujte ho do Core. Modul importovaný skôr z oficiálnej šablóny [SolaX Hybrid X1/X3 Gen 4](https://taphome.com/sk/compatibility/solax-hybrid-x3-gen-4/) sa sám neaktualizuje — buď importujte túto šablónu ako nový modul, alebo opravte skripty starého modulu podľa tabuľky v časti „Čo táto šablóna opravuje“ nižšie.

## Zapojenie hardvéru

Striedač SolaX Gen 4 poskytuje na spodnom paneli COM port RS-485 pre komunikáciu Modbus RTU. 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](https://taphome.com/images/compatibility/solax-x3-hybrid-gen4-corrected-modbus-rtu/system-overview_hu_369f8976dd0be2fb.jpg)

Priradenie pinov COM terminálu (RJ45):

| Pin | Priradenie | Popis |
|-----|-----------|-------|
| 1 | Drycontact_A(in) | Pripojenie systémového spínača |
| 2 | Drycontact_B(in) | Pripojenie systémového spínača |
| 3 | +13V | — |
| 4 | **485A** | RS-485 data+ (pre TapHome) |
| 5 | **485B** | RS-485 data− (pre TapHome) |
| 6 | GND | Uzemnenie |
| 7 | Drycontact_A(out) | Pripojenie generátora |
| 8 | Drycontact_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

Návod SolaX predpisuje sieťový kábel CAT5E zalisovaný do konektora RJ45, ktorý sa dodáva so striedačom, a dĺžku kábla COM najviac 30 m.

> [!WARNING]
> Pin 3 (+13V) a pin 6 (GND) sa nesmú navzájom spojiť. Nepoužité piny zaizolujte.

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

> [!TIP]
> Pre inštalácie, kde zapojenie RS-485 nie je praktické, šablóna [SolaX Inverter (Cloud API)](https://taphome.com/sk/compatibility/solax-inverter/) poskytuje monitorovanie cez platformu SolaxCloud prostredníctvom HTTPS — bez fyzického pripojenia. Podporuje všetky typy striedačov SolaX, nielen Gen 4 Hybrid.

> [!WARNING]
> Režim nabíjačky a nastavenia nočného nabíjania sú v striedači registre EEPROM (SolaX ich označuje ★, približne 1 milión zápisových cyklov). Nadmerné zápisové operácie môžu spôsobiť nenapraviteľné poškodenie hardvéru — nikdy na nich nezapínajte zápis, ktorý beží periodicky. Táto šablóna má všetky zápisové skripty vypnuté.

## Konfigurácia

### Aktivácia komunikácie Modbus

Modbus RTU je na COM porte RS-485 striedača dostupný štandardne. 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. Šablóna sa naň pýta ako na svoj jediný parameter importu **Modbus Slave ID** (predvolene 1)
2. **Baud rate** – **19200 baud**, výrobné nastavenie SolaX; šablóna tiež používa 19200. Ak bol striedač nastavený na inú rýchlosť (napríklad 9600), zmeňte buď nastavenie striedača, alebo rýchlosť rozhrania TapHome tak, aby sa obe zhodovali
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. Rozšírené nastavenia vyžadujú heslo inštalatéra, ktoré poskytne predajca. 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).

V TapHome sa šablóna potom importuje na rozhraní RS-485 Modbus RTU riadiacej jednotky Core, nastavenom na rovnakú rýchlosť a formát dát, so Slave ID 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 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 na komunikáciu s nabíjačkou EV (hodnota 1). Pre integráciu s TapHome musí byť nastavený na **0 (Modbus 485)**.

## Možnosti zariadenia

### Monitorovanie batérie

- **Batéria (SOC)** – číta stav nabitia batérie (A:0x001C) v percentách, každých 15 sekúnd. Surová 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:0x0018) v stupňoch Celzia ako hodnotu so znamienkom (Int16), takže teploty pod 0 °C sa zobrazujú správne. Polling každých 80 sekúnd

### Solárny výkon FV

- **PV1** – jednosmerný výkon FV reťazca 1 (A:0x000A), zobrazený v kW po vydelení 1000 z wattov
- **PV2** – jednosmerný výkon FV reťazca 2 (A:0x000B), zobrazený v kW po vydelení 1000 z wattov

PV1 a PV2 sú obyčajné hodnoty bez typu energie, takže sa v prehľade Energy Dashboard nezapočítajú dvakrát.

### Výkon siete a meranie energie

- **Purchase/Feed to Grid** – okamžitý výkon siete (A:0x0046–0x0047, LittleEndianInt32) v kW, obyčajná hodnota bez typu energie. Kladné hodnoty označujú dodávku do siete, záporné hodnoty odber zo siete. Striedač túto hodnotu preberá z elektromera alebo prúdového transformátora (CT), ktorý je k nemu pripojený
- **Daily/Actual Energy** – merač výroby FV pre prehľad Energy Dashboard. Jeho výkon je PV1 + PV2 (A:0x000A + A:0x000B) v kW a jeho celková hodnota je celková energia FV (A:0x0094–0x0095, SolarEnergyTotal, jednotky 0,1 kWh) v kWh. Napriek názvu sa celková hodnota v noci nenuluje
- **Total Energy** – celková kumulatívna energia na výstupe z AC portu striedača (A:0x0052–0x0053, LittleEndianUint32, jednotky 0,1 kWh), zobrazená v kWh

### Režim nabíjačky a nočné nabíjanie

- **Charger Use Mode** – číta aktívny režim solárnej nabíjačky (H:0x008B): Self Use Mode (0), Feedin Priority (1), Backup Mode (2) alebo Manual Mode (3). Zápisový register (H:0x001F) v šablóne existuje, ale je zakomentovaný, takže zariadenie je iba na čítanie
- **SelfUse Night Charge** – číta hornú cieľovú hodnotu SOC pre nočné nabíjanie v režime Self Use (H:0x0094) v percentách. Zápisový register (H:0x0063) aj aktivačný register (H:0x0062) sú zakomentované, takže konfiguráciu nočného nabíjania nie je možné meniť cez TapHome

### Detekcia porúch

Skript na čítanie modulu monitoruje prevádzkový režim striedača (A:0x0009) a dva chybové registre. Každá porucha má vlastný kód chyby:

- Poruchy **prevádzkového režimu** (Run mode) – chyba 1, keď je prevádzkový režim 3 (Fault), chyba 2, keď je 4 (Permanent Fault)
- **Chybový kód striedača** (A:0x0040–0x0041, LittleEndianUint32) – 30 individuálnych porúch s kódmi 100–131 (100 + číslo bitu) vrátane porúch napätia/frekvencie siete, porúch napätia FV, porúch batérie, izolačných porúch, prehriatia, nadprúdovej ochrany, porúch relé a komunikačných chýb. Názvy porúch zodpovedajú tabuľke X3 v protokole SolaX
- **Chybový kód správcu** (A:0x0043) – kódy 200–211 (200 + číslo bitu) pre poruchy typu výkonu, chyby EEPROM, problémy NTC senzorov, nízku/vysokú teplotu batérie, poruchy elektromera, poruchy bypass relé a ventilátora. **Port OC Warning** (201) sa hlási ako varovanie, ostatné ako chyby

Servisný atribút 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.

## Čo táto šablóna opravuje

Oficiálna šablóna TapHome [SolaX Hybrid X1/X3 Gen 4](https://taphome.com/sk/compatibility/solax-hybrid-x3-gen-4/) číta niekoľko registrov nesprávne (overené podľa protokolu SolaX Modbus V3.21 a V001.02). Táto šablóna ich opravuje:

| Kde | Oficiálna šablóna | Táto šablóna | Dôsledok chyby v oficiálnej šablóne |
|-----|-------------------|--------------|-------------------------------------|
| Modul — skript na čítanie | `var x3 := MODBUSR(A, 0x0040, Uint32);` | `VAR inv := MODBUSR(A, 0x0040, LittleEndianUint32);` | Dve polovice 32-bitového chybového kódu sú prehodené: porucha v bite 1 (Grid Lost Fault) sa hlási ako bit 17 (Bat Power Low) |
| Total Energy | `MODBUSR(A, 0x52, LittleEndianInt32) / 1000` | `MODBUSR(A, 0x0052, LittleEndianUint32) / 10` | Hodnota 100× menšia (register počíta v jednotkách 0,1 kWh) |
| Daily/Actual Energy — celková hodnota | `MODBUSR(A, 0x50, UInt16) /10` | `MODBUSR(A, 0x0094, LittleEndianUint32) / 10` | 0x0050 je denné počítadlo AC portu striedača, ktoré každú noc klesne na 0; 0x0094 je celková energia FV |
| Daily/Actual Energy — výkon | `MODBUSR(A,0x02, Int16)/1000` | `(MODBUSR(A, 0x000A, UInt16) + MODBUSR(A, 0x000B, UInt16)) / 1000` | 0x0002 je výkon siete jednofázových modelov X1, nie výroba FV; na mnohých jednotkách X3 číta 0 |
| Battery Temperature | `MODBUSR(A,0x0018, UInt16)` | `MODBUSR(A, 0x0018, Int16)` | Pod 0 °C oficiálna šablóna zobrazuje približne 65535 °C |
| Rýchlosť rozhrania | 9600 baud | 19200 baud | 19200 je výrobné nastavenie SolaX |

S opravenými skriptmi meria merač Daily/Actual Energy výrobu FV (PV1 + PV2), čo zodpovedá jeho typu energie v prehľade Energy Dashboard. PV1, PV2 a Purchase/Feed to Grid už nemajú typ energie — sú to obyčajné hodnoty. Všetky zápisy zostávajú vypnuté, rovnako ako v oficiálnej šablóne.

## 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 sa baud rate striedača a TapHome zhoduje – šablóna používa 19200, predvolenú hodnotu striedača; pri striedači nastavenom na 9600 treba zmeniť jednu zo strán
4. Overte, že Modbus Slave ID v TapHome sa zhoduje s nastavením striedača (predvolená hodnota: 1)
5. Uistite sa, že na tej istej zbernici RS-485 nie je pripojený žiadny iný Modbus master – Modbus podporuje iba jedného mastera

### Hodnoty vyzerajú ako z oficiálnej šablóny

Keď je Total Energy 100× menšia, Daily/Actual Energy každú noc klesne na 0 alebo Battery Temperature pod bodom mrazu ukazuje približne 65535 °C, modul stále používa skripty oficiálnej šablóny. Modul sa z novšej šablóny sám neaktualizuje — importujte túto šablónu ako nový modul, alebo opravte skripty podľa tabuľky vyššie.

### Nesprávna hodnota Batéria (SOC)

Register Batéria (SOC) (A:0x001C) hlási hodnoty v jednotkách 1 %. Šablóna ich 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 analógový vstup (rozsah 0–1, nie 0–100).

### Znamienková konvencia výkonu siete

Purchase/Feed to Grid (A:0x0046) používa znamienkovú konvenciu, kde kladné hodnoty znamenajú dodávku (export do siete) a záporné hodnoty odber (spotrebu zo siete). Striedač túto hodnotu získava zo svojho elektromera alebo CT, takže závisí od správne pripojeného elektromera alebo CT.

### Rozdiely X1 a X3

Šablóna číta výkon FV (A:0x000A a A:0x000B) namiesto registra výkonu siete X1, takže merač Daily/Actual Energy funguje rovnako na modeloch X1 aj X3. Názvy porúch zodpovedajú tabuľke X3 v protokole SolaX. Na striedači X1 znamenajú niektoré bity porúch iné poruchy — bit 9 a väčšina bitov od bitu 15 vyššie (napríklad bit 15 je na X1 Missed CT Fault, ale na X3 Off-grid Overload).

## Dostupné zariadenia 9

Tieto zariadenia sa po importe zobrazia v TapHome.

SolaX X3-Hybrid G4 Modul

Servisné atribúty

|          |
|----------|
| Run mode |

Čítanie (modul)

```taphome
VAR mode := MODBUSR(A, 0x0009, UInt16);
IF(mode = 3, ADDERROR(1, "Inverter fault (run mode 3)"));
IF(mode = 4, ADDERROR(2, "Inverter permanent fault (run mode 4)"));
VAR inv := MODBUSR(A, 0x0040, LittleEndianUint32);
IF(GETBIT(inv, 0) = 1, ADDERROR(100, "TZ Protect Fault"));
IF(GETBIT(inv, 1) = 1, ADDERROR(101, "Grid Lost Fault"));
IF(GETBIT(inv, 2) = 1, ADDERROR(102, "Grid Volt Fault"));
IF(GETBIT(inv, 3) = 1, ADDERROR(103, "Grid Freq Fault"));
IF(GETBIT(inv, 4) = 1, ADDERROR(104, "PV Volt Fault"));
IF(GETBIT(inv, 5) = 1, ADDERROR(105, "Bus Volt Fault"));
IF(GETBIT(inv, 6) = 1, ADDERROR(106, "Bat Volt Fault"));
IF(GETBIT(inv, 7) = 1, ADDERROR(107, "AC10mins Volt Fault"));
IF(GETBIT(inv, 8) = 1, ADDERROR(108, "DCI OCP Fault"));
IF(GETBIT(inv, 9) = 1, ADDERROR(109, "DCV OCP Fault"));
IF(GETBIT(inv, 10) = 1, ADDERROR(110, "SW OCP Fault"));
IF(GETBIT(inv, 11) = 1, ADDERROR(111, "RC OCP Fault"));
IF(GETBIT(inv, 12) = 1, ADDERROR(112, "Isolation Fault"));
IF(GETBIT(inv, 13) = 1, ADDERROR(113, "Temp Over Fault"));
IF(GETBIT(inv, 14) = 1, ADDERROR(114, "BatConnDir Fault"));
IF(GETBIT(inv, 15) = 1, ADDERROR(115, "Off-grid Overload"));
IF(GETBIT(inv, 16) = 1, ADDERROR(116, "Overload"));
IF(GETBIT(inv, 17) = 1, ADDERROR(117, "Bat Power Low"));
IF(GETBIT(inv, 18) = 1, ADDERROR(118, "BMS Lost"));
IF(GETBIT(inv, 19) = 1, ADDERROR(119, "Fan Fault"));
IF(GETBIT(inv, 20) = 1, ADDERROR(120, "Low Temp Fault"));
IF(GETBIT(inv, 23) = 1, ADDERROR(123, "INV Volt Sample Fault"));
IF(GETBIT(inv, 24) = 1, ADDERROR(124, "Inner Comm Fault"));
IF(GETBIT(inv, 25) = 1, ADDERROR(125, "INV EEPROM Fault"));
IF(GETBIT(inv, 26) = 1, ADDERROR(126, "RCD Fault"));
IF(GETBIT(inv, 27) = 1, ADDERROR(127, "Grid Relay Fault"));
IF(GETBIT(inv, 28) = 1, ADDERROR(128, "Off-grid Relay Fault"));
IF(GETBIT(inv, 29) = 1, ADDERROR(129, "PV ConnDir Fault"));
IF(GETBIT(inv, 30) = 1, ADDERROR(130, "Charger Relay Fault"));
IF(GETBIT(inv, 31) = 1, ADDERROR(131, "Earth Relay Fault"));
VAR mgr := MODBUSR(A, 0x0043, UInt16);
IF(GETBIT(mgr, 0) = 1, ADDERROR(200, "Power Type Fault"));
IF(GETBIT(mgr, 1) = 1, ADDWARNING(201, "Port OC Warning"));
IF(GETBIT(mgr, 2) = 1, ADDERROR(202, "Mgr EEPROM Fault"));
IF(GETBIT(mgr, 4) = 1, ADDERROR(204, "NTC Sample Invalid"));
IF(GETBIT(mgr, 5) = 1, ADDERROR(205, "Battery Temperature Low"));
IF(GETBIT(mgr, 6) = 1, ADDERROR(206, "Battery Temperature High"));
IF(GETBIT(mgr, 9) = 1, ADDERROR(209, "Meter Fault"));
IF(GETBIT(mgr, 10) = 1, ADDERROR(210, "Bypass Relay Fault"));
IF(GETBIT(mgr, 11) = 1, ADDERROR(211, "Fan 2 Fault"));
```

Servisné atribúty

Run mode

```taphome
SWITCH(MODBUSR(A, 0x0009, 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")
```

${deviceType\_BatterySOC} Analógový vstup

Čítanie vstupnej úrovne

```taphome
MODBUSR(A, 0x001C, UInt16) / 100
```

Battery Temperature Teplotný senzor

Čítanie teploty

```taphome
MODBUSR(A, 0x0018, Int16)
```

Daily/Actual Energy Elektromer

Čítanie celkovej spotreby

```taphome
MODBUSR(A, 0x0094, LittleEndianUint32) / 10
```

Čítanie odberu

```taphome
(MODBUSR(A, 0x000A, UInt16) + MODBUSR(A, 0x000B, UInt16)) / 1000
```

Charger Use Mode Viacstavový prepínač

Hodnoty / Stavy: Self Use Mode · Feedin Priority · Backup Mode · Manual Mode

Čítanie stavu prepínača

```taphome
MODBUSR(H, 0x008B, UInt16)
```

Zápis stavu prepínača

```taphome
#MODBUSW(SH, 0x001F, Uint16, Mu)
```

Purchase/Feed to Grid Premenná

Čítanie

```taphome
MODBUSR(A, 0x0046, LittleEndianInt32) / 1000
```

PV1 Premenná

Čítanie

```taphome
MODBUSR(A, 0x000A, UInt16) / 1000
```

PV2 Premenná

Čítanie

```taphome
MODBUSR(A, 0x000B, UInt16) / 1000
```

SelfUse Night Charge Stmievač

Inicializácia

```taphome
#MODBUSWNE(SH, 0x0062, Uint16, 1);
```

Čítanie úrovne

```taphome
MODBUSR(H, 0x0094, UInt16) / 100
```

Zápis úrovne

```taphome
#MODBUSW(SH, 0x0063, Uint16, Le * 100)
```

Total Energy Premenná

Čítanie

```taphome
MODBUSR(A, 0x0052, LittleEndianUint32) / 10
```

**Pripojenie:** Modbus RTU • 19200 baud• 8N1 • Slave ID: $\[SlaveId]

## Parametre importu

Tieto hodnoty zadáte pri importe XML.

| Pýta sa v aplikácii | Predvolené |
|---------------------|------------|
| Modbus Slave ID     | `1`        |

## Súvisiaca dokumentácia

- [Modbus Integration](https://taphome.com/sk/compatibility/modbus-guide/)
- [Modbus](https://taphome.com/sk/docs/integration/modbus/)
- [Jednoduchá konfigurácia pomocou šablón](https://taphome.com/sk/docs/integration/modbus/templates/)
- [Skripty Modbus a prefetch](https://taphome.com/sk/docs/script/modbus-scripts/)
- [Funkcie Modbus](https://taphome.com/sk/docs/script/modbus/)
- [Dátové typy Modbus](https://taphome.com/sk/docs/script/modbus-data-types/)

