---
title: "SolaX X1/X3-Hybrid G4 — corrected monitoring (Modbus RTU)"
description: "SolaX X1/X3-Hybrid G4 přes Modbus RTU (RS-485): SOC baterie, výkon FV, dodávka do sítě, energie, chybové kódy. Opravená verze oficiální šablony."
url: "https://taphome.com/cs/compatibility/solax-x3-hybrid-gen4-corrected-modbus-rtu/"
language: cs
lastmod: 2026-11-12
generator: hugo
ai:
  topics: ["modbus-rtu","rs485","inverter","solar","battery-storage","3-phase","energy-monitoring"]
  questions: ["Jak integrovat střídač SolaX X1/X3-Hybrid G4 s TapHome přes Modbus RTU?","Co opravuje komunitní šablona SolaX Gen 4 oproti oficiální šabloně?","Jak připojit COM port střídače SolaX Gen 4 přes RS-485 k TapHome?","Jaký baud rate používá střídač SolaX Gen 4 pro Modbus RTU?","Proč je u oficiální šablony SolaX hodnota Total Energy 100krát menší nebo Battery Temperature 65535 °C?","Jak importovat komunitní šablonu z portal.taphome.com do řídicí jednotky Core?","Může TapHome měnit režim nabíječky SolaX nebo nastavení nočního nabíjení?"]
---

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

Komunikace: Modbus RTU

## Návod na integraci

SolaX X1-HYBRID a X3-HYBRID Gen 4 jsou střídače pro akumulaci energie s FV a baterií, dostupné jako jednofázové (3–7,5 kW) a třífázové (5–15 kW) modely. Tato komunitní šablona je oficiální šablona TapHome pro SolaX Gen 4 se čtením hodnot opraveným podle protokolu SolaX Modbus (V3.21 a V001.02). Komunikuje přes Modbus RTU po RS-485 a čte stav nabití a teplotu baterie, výkon FV řetězců, tok výkonu sítě, celková množství energie, režim nabíječky a SOC nočního nabíjení. Názvy zařízení jsou stejné jako v oficiální šabloně, takže dřívější import lze porovnat zařízení po zařízení. Všechny zápisové skripty zůstávají zakomentované, stejně jako v oficiální šabloně, takže šablona je pouze pro čtení.

Modul také zpracovává 32bitový chybový kód střídače a 16bitový chybový kód správce a každou poruchu hlásí v TapHome s vlastním kódem chyby.

## Jak získat šablonu

Komunitní šablony se v seznamu šablon aplikace TapHome nenabízejí. Přihlaste se na portal.taphome.com, stáhněte XML této šablony a importujte ho do Core. Modul importovaný dříve z oficiální šablony [SolaX Hybrid X1/X3 Gen 4](https://taphome.com/cs/compatibility/solax-hybrid-x3-gen-4/) se sám neaktualizuje — buď importujte tuto šablonu jako nový modul, nebo opravte skripty starého modulu podle tabulky v části „Co tato šablona opravuje“ níže.

## Zapojení hardwaru

Střídač SolaX Gen 4 poskytuje na spodním panelu COM port RS-485 pro komunikaci Modbus RTU. 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](https://taphome.com/images/compatibility/solax-x3-hybrid-gen4-corrected-modbus-rtu/system-overview_hu_369f8976dd0be2fb.jpg)

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

| Pin | Přiřazení | Popis |
|-----|-----------|-------|
| 1 | Drycontact_A(in) | Připojení systémového spínače |
| 2 | Drycontact_B(in) | Připojení systémového spínače |
| 3 | +13V | — |
| 4 | **485A** | RS-485 data+ (pro TapHome) |
| 5 | **485B** | RS-485 data− (pro TapHome) |
| 6 | GND | Uzemnění |
| 7 | Drycontact_A(out) | Připojení generátoru |
| 8 | Drycontact_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

Návod SolaX předepisuje síťový kabel CAT5E zalisovaný do konektoru RJ45, který se dodává se střídačem, a délku kabelu COM nejvýše 30 m.

> [!WARNING]
> Pin 3 (+13V) a pin 6 (GND) se nesmí vzájemně propojit. Nepoužité piny zaizolujte.

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

> [!TIP]
> Pro instalace, kde zapojení RS-485 není praktické, šablona [SolaX Inverter (Cloud API)](https://taphome.com/cs/compatibility/solax-inverter/) poskytuje monitoring přes platformu SolaxCloud prostřednictvím HTTPS — bez fyzického připojení. Podporuje všechny typy střídačů SolaX, nejen Gen 4 Hybrid.

> [!WARNING]
> Režim nabíječky a nastavení nočního nabíjení jsou ve střídači registry EEPROM (SolaX je označuje ★, přibližně 1 milion zápisových cyklů). Nadměrné zápisové operace mohou způsobit nevratné poškození hardwaru — nikdy na nich nezapínejte zápis, který běží periodicky. Tato šablona má všechny zápisové skripty vypnuté.

## Konfigurace

### Aktivace komunikace Modbus

Modbus RTU je na COM portu RS-485 střídače dostupný standardně. 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. Šablona se na něj ptá jako na svůj jediný parametr importu **Modbus Slave ID** (výchozí 1)
2. **Baud rate** – **19200 baud**, tovární nastavení SolaX; šablona používá také 19200. Pokud byl střídač nastaven na jinou rychlost (například 9600), změňte buď nastavení střídače, nebo rychlost rozhraní TapHome tak, aby se obě shodovaly
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. Pokročilá nastavení vyžadují heslo instalátora, které poskytne prodejce. 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).

V TapHome se šablona poté importuje na rozhraní RS-485 Modbus RTU řídicí jednotky Core, nastaveném na stejnou rychlost a formát dat, se Slave ID 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 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 pro komunikaci s nabíječkou EV (hodnota 1). Pro integraci s TapHome musí být nastaven na **0 (Modbus 485)**.

## Možnosti zařízení

### Monitorování baterie

- **Baterie (SOC)** – čte stav nabití baterie (A:0x001C) v procentech, každých 15 sekund. Surová 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:0x0018) ve stupních Celsia jako hodnotu se znaménkem (Int16), takže teploty pod 0 °C se zobrazují správně. Polling každých 80 sekund

### Solární výkon FV

- **PV1** – stejnosměrný výkon FV řetězce 1 (A:0x000A), zobrazený v kW po vydělení 1000 z wattů
- **PV2** – stejnosměrný výkon FV řetězce 2 (A:0x000B), zobrazený v kW po vydělení 1000 z wattů

PV1 a PV2 jsou prosté hodnoty bez typu energie, takže se v přehledu Energy Dashboard nezapočítají dvakrát.

### Výkon sítě a měření energie

- **Purchase/Feed to Grid** – okamžitý výkon sítě (A:0x0046–0x0047, LittleEndianInt32) v kW, prostá hodnota bez typu energie. Kladné hodnoty označují dodávku do sítě, záporné hodnoty odběr ze sítě. Střídač tuto hodnotu přebírá z elektroměru nebo proudového transformátoru (CT), který je k němu připojen
- **Daily/Actual Energy** – měřič výroby FV pro přehled Energy Dashboard. Jeho výkon je PV1 + PV2 (A:0x000A + A:0x000B) v kW a jeho celková hodnota je celková energie FV (A:0x0094–0x0095, SolarEnergyTotal, jednotky 0,1 kWh) v kWh. Navzdory názvu se celková hodnota v noci nenuluje
- **Total Energy** – celková kumulativní energie na výstupu z AC portu střídače (A:0x0052–0x0053, LittleEndianUint32, jednotky 0,1 kWh), zobrazená v kWh

### Režim nabíječky a noční nabíjení

- **Charger Use Mode** – čte aktivní režim solární nabíječky (H:0x008B): Self Use Mode (0), Feedin Priority (1), Backup Mode (2) nebo Manual Mode (3). Zápisový registr (H:0x001F) v šabloně existuje, ale je zakomentován, takže zařízení je pouze pro čtení
- **SelfUse Night Charge** – čte horní cílovou hodnotu SOC pro noční nabíjení v režimu Self Use (H:0x0094) v procentech. Zápisový registr (H:0x0063) i aktivační registr (H:0x0062) jsou zakomentovány, takže konfiguraci nočního nabíjení nelze měnit přes TapHome

### Detekce poruch

Skript pro čtení modulu monitoruje provozní režim střídače (A:0x0009) a dva chybové registry. Každá porucha má vlastní kód chyby:

- Poruchy **provozního režimu** (Run mode) – chyba 1, když je provozní režim 3 (Fault), chyba 2, když je 4 (Permanent Fault)
- **Chybový kód střídače** (A:0x0040–0x0041, LittleEndianUint32) – 30 jednotlivých poruch s kódy 100–131 (100 + číslo bitu) včetně poruch napětí/frekvence sítě, poruch napětí FV, poruch baterie, izolačních poruch, přehřátí, nadproudové ochrany, poruch relé a komunikačních chyb. Názvy poruch odpovídají tabulce X3 v protokolu SolaX
- **Chybový kód správce** (A:0x0043) – kódy 200–211 (200 + číslo bitu) pro poruchy typu výkonu, chyby EEPROM, problémy NTC senzorů, nízkou/vysokou teplotu baterie, poruchy elektroměru, poruchy bypass relé a ventilátoru. **Port OC Warning** (201) se hlásí jako varování, ostatní jako chyby

Servisní atribut 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.

## Co tato šablona opravuje

Oficiální šablona TapHome [SolaX Hybrid X1/X3 Gen 4](https://taphome.com/cs/compatibility/solax-hybrid-x3-gen-4/) čte několik registrů chybně (ověřeno podle protokolu SolaX Modbus V3.21 a V001.02). Tato šablona je opravuje:

| Kde | Oficiální šablona | Tato šablona | Důsledek chyby v oficiální šabloně |
|-----|-------------------|--------------|------------------------------------|
| Modul — skript pro čtení | `var x3 := MODBUSR(A, 0x0040, Uint32);` | `VAR inv := MODBUSR(A, 0x0040, LittleEndianUint32);` | Dvě poloviny 32bitového chybového kódu jsou prohozené: porucha v bitu 1 (Grid Lost Fault) se hlásí jako bit 17 (Bat Power Low) |
| Total Energy | `MODBUSR(A, 0x52, LittleEndianInt32) / 1000` | `MODBUSR(A, 0x0052, LittleEndianUint32) / 10` | Hodnota 100× menší (registr počítá v jednotkách 0,1 kWh) |
| Daily/Actual Energy — celková hodnota | `MODBUSR(A, 0x50, UInt16) /10` | `MODBUSR(A, 0x0094, LittleEndianUint32) / 10` | 0x0050 je denní čítač AC portu střídače, který každou noc klesne na 0; 0x0094 je celková energie FV |
| Daily/Actual Energy — výkon | `MODBUSR(A,0x02, Int16)/1000` | `(MODBUSR(A, 0x000A, UInt16) + MODBUSR(A, 0x000B, UInt16)) / 1000` | 0x0002 je výkon sítě jednofázových modelů X1, ne výroba FV; na mnoha jednotkách X3 čte 0 |
| Battery Temperature | `MODBUSR(A,0x0018, UInt16)` | `MODBUSR(A, 0x0018, Int16)` | Pod 0 °C zobrazuje oficiální šablona přibližně 65535 °C |
| Rychlost rozhraní | 9600 baud | 19200 baud | 19200 je tovární nastavení SolaX |

S opravenými skripty měří měřič Daily/Actual Energy výrobu FV (PV1 + PV2), což odpovídá jeho typu energie v přehledu Energy Dashboard. PV1, PV2 a Purchase/Feed to Grid už nemají typ energie — jsou to prosté hodnoty. Všechny zápisy zůstávají vypnuté, stejně jako v oficiální šabloně.

## Ř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 se baud rate střídače a TapHome shoduje – šablona používá 19200, výchozí hodnotu střídače; u střídače nastaveného na 9600 je třeba změnit jednu ze stran
4. Ověřte, že Modbus Slave ID v TapHome se shoduje s nastavením střídače (výchozí hodnota: 1)
5. Ujistěte se, že na stejné sběrnici RS-485 není připojen žádný jiný Modbus master – Modbus podporuje pouze jednoho mastera

### Hodnoty vypadají jako z oficiální šablony

Když je Total Energy 100× menší, Daily/Actual Energy každou noc klesne na 0 nebo Battery Temperature pod bodem mrazu ukazuje přibližně 65535 °C, modul stále používá skripty oficiální šablony. Modul se z novější šablony sám neaktualizuje — importujte tuto šablonu jako nový modul, nebo opravte skripty podle tabulky výše.

### Nesprávná hodnota Baterie (SOC)

Registr Baterie (SOC) (A:0x001C) hlásí hodnoty v jednotkách 1 %. Šablona je 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 analogový vstup (rozsah 0–1, ne 0–100).

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

Purchase/Feed to Grid (A:0x0046) používá znaménkovou konvenci, kde kladné hodnoty znamenají dodávku (export do sítě) a záporné hodnoty odběr (spotřebu ze sítě). Střídač tuto hodnotu získává ze svého elektroměru nebo CT, takže závisí na správně připojeném elektroměru nebo CT.

### Rozdíly X1 a X3

Šablona čte výkon FV (A:0x000A a A:0x000B) místo registru výkonu sítě X1, takže měřič Daily/Actual Energy funguje stejně na modelech X1 i X3. Názvy poruch odpovídají tabulce X3 v protokolu SolaX. Na střídači X1 znamenají některé bity poruch jiné poruchy — bit 9 a většina bitů od bitu 15 výše (například bit 15 je na X1 Missed CT Fault, ale na X3 Off-grid Overload).

## Dostupná zařízení 9

Tato zařízení se po importu zobrazí v TapHome.

SolaX X3-Hybrid G4 Modul

Servisní atributy

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

Čtení (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í atributy

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} Analogový vstup

Čtení vstupní úrovně

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

Battery Temperature Teplotní senzor

Čtení teploty

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

Daily/Actual Energy Elektroměr

Čtení celkové spotřeby

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

Čtení odběru

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

Charger Use Mode Vícestavový přepínač

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

Čtení stavu přepínače

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

Zápis stavu přepínače

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

Purchase/Feed to Grid Proměnná

Čtení

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

PV1 Proměnná

Čtení

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

PV2 Proměnná

Čtení

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

SelfUse Night Charge Stmívač

Inicializace

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

Čtení úrovně

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

Zápis úrovně

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

Total Energy Proměnná

Čtení

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

**Připojení:** Modbus RTU • 19200 baud• 8N1 • Slave ID: $\[SlaveId]

## Parametry importu

Tyto hodnoty zadáte při importu XML.

| Ptá se v aplikaci | Výchozí |
|-------------------|---------|
| Modbus Slave ID   | `1`     |

## Související dokumentace

- [Modbus Integration](https://taphome.com/cs/compatibility/modbus-guide/)
- [Modbus](https://taphome.com/cs/docs/integration/modbus/)
- [Jednoduché nastavení pomocí šablon](https://taphome.com/cs/docs/integration/modbus/templates/)
- [Skripty Modbus a prefetch](https://taphome.com/cs/docs/script/modbus-scripts/)
- [Funkce Modbus](https://taphome.com/cs/docs/script/modbus/)
- [Datové typy Modbus](https://taphome.com/cs/docs/script/modbus-data-types/)

