---
title: "SolaX X3-Ultra Hybrid Inverter — monitoring and power control (Modbus RTU)"
description: "SolaX X3-Ultra přes Modbus RTU (RS-485): měřiče Energy Dashboard, SOC baterie, síť, poruchy a vzdálené řízení AC výkonu pro nabíjení či vybíjení baterie."
url: "https://taphome.com/cs/compatibility/solax-x3-ultra-power-control-modbus-rtu/"
language: cs
lastmod: 2026-11-10
generator: hugo
ai:
  topics: ["modbus-rtu","rs485","inverter","solar","battery-storage","3-phase","hybrid-inverter","energy-monitoring","remote-power-control"]
  questions: ["Jak integrovat hybridní střídač SolaX X3-Ultra s TapHome?","Co měří a ovládá šablona SolaX X3-Ultra pro řízení výkonu?","Jak zapojit RS-485 z portu COM 1 SolaX X3-Ultra k TapHome?","Jak z TapHome nabíjet nebo vybíjet baterii SolaX X3-Ultra podle spotových cen elektřiny?","Proč se cíl vzdáleného ovládání SolaX X3-Ultra hned po nastavení vrátí na 0?","Které zařízení má Energetický manažer TapHome použít se SolaX X3-Ultra?"]
---

# SolaX X3-Ultra Hybrid Inverter — monitoring and power control (Modbus RTU)

Komunikace: Modbus RTU

## Návod na integraci

SolaX X3-Ultra (X3-ULT-15K, 20K, 25K, 30K) je třífázový hybridní střídač pro FV a baterii. Tato komunitní šablona od Martina Kellera jej připojuje k TapHome přes **Modbus RTU na RS-485 portu COM 1** (19200 baud, 8N1) a vychází z čtecích registrů protokolu SolaX Modbus V3.29 a z protokolu SolaX Modbus V001.02. Poskytuje úplnou sadu měřičů pro Energy Dashboard, monitorování baterie, sítě a poruch, nastavení střídače, která se zapisují jen tehdy, když se jejich hodnota skutečně změní, a vzdálené řízení AC výkonu (režim 1 vzdáleného ovládání SolaX) — nabíjení baterie ze sítě nebo její vybíjení do sítě na povel, například podle spotových cen elektřiny.

## 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 jej do Core na rozhraní Modbus RTU (nebo na rozhraní Modbus TCP, pokud se použije brána RS-485-Ethernet). Pro monitorování bez vzdáleného řízení výkonu je k dispozici oficiální šablona [SolaX X3 Hybrid Ultra](https://taphome.com/cs/compatibility/solax-hybrid-ultra-x3/). Modul importovaný dříve z oficiální šablony se sám neaktualizuje — importujte tuto šablonu jako nový modul a starý odstraňte.

## Hardwarové připojení

X3-Ultra má jediný víceúčelový **port COM 1** (konektor RJ45 s označeným kabelovým přípravkem). Tytéž fyzické piny slouží k různým funkcím podle toho, která označená pozice kabelového přípravku se použije. Pro integraci Modbus třetí strany použijte pozici **RS485** — vodiče **REMOTE_485A** a **REMOTE_485B**.

### Pinout portu COM 1

![Přiřazení pinů portu COM 1 SolaX X3-Ultra pro všech šest označených pozic (Parallel-1, Parallel-2, BMS-1, BMS-2, RS485, DRM)](https://taphome.com/images/compatibility/solax-x3-ultra-power-control-modbus-rtu/com1-pinout_hu_4124a3cd9e8bc981.jpg)

Přiřazení pinů **pozice RS485** (jediná pozice relevantní pro TapHome):

| Pin | Signál | Zapojení TapHome |
|-----|--------|------------------|
| **1** | **REMOTE_485A** | A+ / D+ |
| **2** | **REMOTE_485B** | B− / D− |
| 3 | PARALLEL_485AA | nepoužívat (pouze pro příslušenství SolaX) |
| 4 | PARALLEL_485AA | nepoužívat (pouze pro příslušenství SolaX) |
| 5 | PARALLEL_485BB | nepoužívat (pouze pro příslušenství SolaX) |
| 6 | PARALLEL_485BB | nepoužívat (pouze pro příslušenství SolaX) |
| **7** | **REMOTE_485A** | stejný signál jako pin 1 |
| **8** | **REMOTE_485B** | stejný signál jako pin 2 |

> [!WARNING]
> Piny 3–6 patří kanálu SolaX PARALLEL_485 a jsou vyhrazeny pro produkty SolaX (Adapter Box G2, EV-Charger, DataHub). Piny 1, 2, 7 a 8 jsou určeny pro jiná zařízení než produkty SolaX. K pinům 3–6 **nepřipojujte** Modbus master třetí strany.

### Zapojení RS-485

![Instalace RJ45 terminálu do pozice RS485 kabelového přípravku COM 1](https://taphome.com/images/compatibility/solax-x3-ultra-power-control-modbus-rtu/wiring-rs485_hu_ac07cf89af382c1.jpg)

Pravidla zapojení z uživatelského manuálu X3-Ultra (sekce 8.6.4):

- **Typ kabelu:** síťový kabel CAT5E nebo CAT6
- **Maximální délka:** komunikační kabel RS-485 nesmí přesáhnout **30 m**
- **RJ45 terminál:** původní konektor kabelu se odstřihne a podle přiřazení pinů se nakrimpuje nový RJ45 terminál; ne všechna zařízení přijmou plně zapojený 8pinový síťový kabel
- **Pozice v kabelovém přípravku:** RJ45 terminál patří do otvoru označeného **RS485** (ne do Parallel-1, Parallel-2, BMS-1, BMS-2 ani DRM); konektor zacvakne do portu COM 1 a zajistí se převlečnou maticí
- **Jeden Modbus master:** port smí používat jen jeden Modbus master. Jiné monitorování Modbus na stejném portu odpojte, jinak střídač odpovídá oběma a hodnoty jsou nestabilní

Uživatelský manuál neuvádí pravidlo pro zakončení sběrnice RS-485 na pozici RS485 portu COM 1.

### Elektroměr nebo CT pro hodnoty sítě

Zařízení sítě v této šabloně (**Grid - power balance**, **Ze sítě**, **Do sítě**, **Spotřeba**) čtou výkon dodávky do sítě, který střídač měří vlastním elektroměrem nebo CT. Elektroměr nebo CT se zapojuje do portu **COM 2** (Meter/CT: METER_485A na pinu 4, METER_485B na pinu 5, nebo vstupy CT) a nastavuje se na displeji střídače v `Menu → Setting → Advance Setting → Meter/CT Setting`. Je to samostatná linka RS-485 — TapHome k ní nepřipojujte.

### Možnosti připojení

- **Přímé Modbus RTU:** zapojte pár RS485 portu COM 1 přímo na sběrnici RS-485 řídicí jednotky TapHome Core. Nejnižší latence, doporučeno pro vzdálené řízení výkonu.
- **Brána RS-485-Ethernet:** pokud je střídač daleko od TapHome Core, lze na pár RS485 portu COM 1 použít bránu RS-485-Ethernet třetí strany; šablona se pak importuje na rozhraní Modbus TCP.
- **Monitorovací modul SolaX:** samotný střídač Modbus TCP nepodporuje. Modbus TCP (port 502) je dostupný jen přes monitorovací modul SolaX, s dotazovacím cyklem přibližně 1 sekunda (protokol V3.29).

## Konfigurace

### Povolení komunikace Modbus na střídači

Na LCD střídače přejděte na:

```
Menu → Setting → Advance Setting → Modbus
```

Menu Advance Setting vyžaduje heslo instalátora (podle uživatelského manuálu na začátku **2014**; manuál doporučuje heslo změnit). V menu Modbus nastavte **Baud Rate** a **Address** externího komunikačního protokolu:

| Parametr | Výchozí hodnota šablony | Výchozí hodnota střídače (protokol V3.29) |
|----------|-------------------------|-------------------------------------------|
| Modbus adresa (Slave ID) | 1 | 1 |
| Přenosová rychlost | 19200 | 19200 |
| Parita | None | None |
| Datové bity | 8 | 8 |
| Stop bity | 1 | 1 |

> [!WARNING]
> Přenosová rychlost musí být stejná na střídači i na rozhraní Modbus RTU v TapHome. Pokud komunikace selže, nejprve zkontrolujte přenosovou rychlost.

Střídač hlásí Modbus adresu také v holding registru `H:0x00AF` a přenosovou rychlost v holding registru `H:0x00B0` (protokol V3.29).

### Parametr importu

Při importu šablony se parametr importu **Modbus Slave ID** (výchozí `1`) musí shodovat s Modbus adresou nastavenou na displeji střídače.

## Schopnosti zařízení

### Energy Dashboard

| Zařízení | Čtení |
|---|---|
| **FV Výroba** | Výkon vstupů PV1 + PV2 + PV3 (`A:0x000A`, `A:0x000B`, `A:0x0124`) v kW; celková energie z FV (`A:0x0094`–`0x0095`) v kWh. Výkon PV1–PV3 a celková energie na AC výstupu střídače (`A:0x0052`) jsou servisní atributy. |
| **Ze sítě** / **Do sítě** | Odběrová a dodávková část výkonu sítě z elektroměru nebo CT (`A:0x0046`–`0x0047`, nejprve nižší slovo) s počítadly celkové energie (`A:0x004A` a `A:0x0048`, 0,01 kWh). |
| **Do baterie** / **Z baterie** | Nabíjecí a vybíjecí část výkonu baterie 1 (`A:0x0016`) s celkovou nabitou a vybitou energií (`A:0x0021`, `A:0x001D`). |
| **Spotřeba** | Vypočtená spotřeba domu: AC výkon střídače mínus dodávka do sítě. SolaX nemá registr spotřeby; zátěž na výstupu EPS (záložním) se nezapočítává. |
| **Baterie (SOC)** | Stav nabití baterie 1 (`A:0x001C`). Zbývající a dobíjitelná energie (`A:0x0118`, `A:0x0116`) jsou servisní atributy. |

### Energetický manažer

Pro smart rule Energetický manažer vyberte **Grid - power balance**. Hodnota má znaménko: kladná při odběru ze sítě, záporná při dodávce přebytku. Měřiče **Ze sítě** a **Do sítě** nikdy nejsou záporné a přebytek neukazují.

### Monitorování

- **Battery 2 - state of charge** — druhý bateriový vstup (BAT 2), jeho výkon a teplota jsou servisní atributy; bez druhé baterie čte 0
- **Battery - temperature** — čte se jako hodnota se znaménkem, takže teploty pod 0 °C se zobrazují správně
- **Inverter - AC power** — součet výkonů tří fází na AC portu střídače v kW
- **Grid - voltage L1** — napětí sítě L2, L3 a tři frekvence sítě jsou servisní atributy

### Nastavení střídače

| Zařízení | Čtení | Zápis |
|---|---|---|
| **Settings - work mode** | `H:0x008B`: Self use, Feed-in priority, Backup, Manual, Peak shaving, Time of use (poslední dva závisí na firmwaru) | `0x001F` |
| **Settings - manual mode** | `H:0x008C`: Stop charge and discharge, Force charge, Force discharge (účinné jen v pracovním režimu Manual) | `0x0020` |
| **Settings - self-use minimum SOC** | horní bajt `H:0x0093` | `0x0061` |
| **Settings - night charge from grid** | dolní bajt `H:0x0093` | `0x0062` |
| **Settings - night charge target SOC** | `H:0x0094` | `0x0063` |
| **Settings - export limit** | `H:0x00B6`, v kW (na X3 10 W na jednotku) | `0x0042` |

SolaX tato nastavení čte z jiných adres, než na které je zapisuje, proto nelze použít vestavěnou funkci TapHome „zapisovat jen při změně“. Každý zápisový skript proto nastavení nejprve přečte a zapíše je (funkce 06) jen tehdy, když se nová hodnota liší; když střídač hlásí nastavení jako zamčená, nejprve zapíše heslo nastavení 2014 do registru `0x0000`. Minimální SOC a cíl nočního nabíjení nikdy neklesnou pod 10 % (rozsah SolaX). Žádné z těchto zařízení nezapisuje periodicky.

> [!WARNING]
> Tato nastavení jsou registry EEPROM (SolaX je označuje ★, přibližně 1 milion zápisových cyklů). Měňte je zřídka a nikdy z častých automatizací — pro nabíjení a vybíjení podle spotových cen použijte **Remote control - AC power target**.

### Remote control - AC power target

Toto zařízení využívá režim 1 vzdáleného ovládání SolaX (VPP) — řízení výkonu na AC portu střídače.

- **Znaménko:** kladný cíl znamená, že střídač odebírá výkon na svém AC portu (nabíjí baterii, ze sítě, pokud FV nestačí); záporný cíl znamená, že výkon dodává (vybíjí baterii a co dům nespotřebuje, jde do sítě). Hodnota v kW.
- **0** ukončí vzdálené ovládání: šablona jednou zapíše režim 0 a střídač se vrátí do svého pracovního režimu. Cíle pod 0,5 W se počítají jako 0.
- **Jakákoli jiná hodnota:** pokud je střídač zamčený, šablona nejprve zapíše heslo nastavení 2014 (odemčení se ztratí po každém restartu střídače), potom zapíše 13 registrů `0x007C`–`0x0088` jedním požadavkem Modbus (funkce 0x10): režim 1, cíl, trvání 120 s a timeout 60 s. Dokud cíl není 0, příkaz se opakuje každých 60 s. Pokud jej TapHome přestane posílat, střídač drží cíl nejvýše 2 minuty, další 1 minutu drží na AC portu 0 W a potom se sám vrátí do svého pracovního režimu.
- **Pracovní režim Manual blokuje vzdálené ovládání.** SolaX nespustí vzdálené ovládání, dokud je střídač v pracovním režimu Manual — nejprve jej přepněte na Self use (nebo jiný režim).
- Střídač omezí cíl na rozsah zobrazený v atributech modulu (minimální a maximální cíl vzdáleného ovládání).
- Akce modulu **End remote control** okamžitě zapíše režim 0. Dokud cíl není 0, další opakování vzdálené ovládání znovu spustí — pro trvalé zastavení nastavte cíl na 0.
- Toto zařízení nekombinujte se vzdáleným ovládáním ze SolaX Cloud ani od energetického agregátora: dokud je cíl 0, šablona do 60 s ukončí jakýkoli režim vzdáleného ovládání.
- Vzdálené ovládání potřebuje Core, který zapíše všech 13 registrů jedním požadavkem. To platí pro každý Core od roku 2022, pokud modul ponechá `MaxPrefetchGroupSize` 32 z této šablony.
- Servisní atribut **Actual AC power** ukazuje činný výkon, který střídač hlásí na svém AC portu, ve W (`A:0x0106`).

> [!WARNING]
> SolaX v protokolu neoznačuje registry vzdáleného ovládání (`0x007C`–`0x0088`) jako registry EEPROM, ale ani písemně nepotvrzuje opak. Tato šablona se opírá o zkušenosti komunit Home Assistant a openHAB, které tyto registry zapisují každých několik sekund až minut.

### Atributy a akce modulu

- **Run mode** (servisní atribut) — stav střídače jako text: Waiting, Checking, Normal, Fault, Permanent fault, Update, Off-grid waiting, Off-grid, Self testing, Idle, Standby, Remote control (kód 20); ostatní kódy se zobrazí jako Other
- **Machine type** (servisní atribut) — X1 (jednofázový) nebo X3 (třífázový), holding registr `H:0x0105`
- **Settings lock** (servisní atribut) — Locked nebo Unlocked (`A:0x0054`)
- **Remote control mode** (servisní atribut) — aktivní režim vzdáleného ovládání (`A:0x0100`): Off, Power control, Energy target, SOC target
- **Remote control - maximum target** / **minimum target** (servisní atributy) — povolený rozsah cílového výkonu, který hlásí střídač, ve W (`A:0x010A`, `A:0x010C`)
- **Unlock settings (password 2014)** (servisní akce) — zapíše `2014` do registru `0x0000`
- **End remote control** (servisní akce) — zapíše režim 0 do registrů vzdáleného ovládání `0x007C`–`0x0088`

### Detekce poruch

Čtecí skript modulu hlásí chybu TapHome, když je provozní režim (`A:0x0009`) 3 (Fault) nebo 4 (Permanent fault). Kromě toho analyzuje bit po bitu dva chybové registry, každou poruchu s vlastním kódem chyby:

- **Chybový kód střídače** (32bitový, `A:0x0040`–`A:0x0041`, čte se nejprve nižší slovo) — všech 32 bitů, od TZ Protect Fault, poruch napětí sítě, FV, sběrnice a baterie, izolačních poruch a přehřátí až po Parallel Fault, Hard Limit Fault a poruchy relé
- **Chybový kód správce** (16bitový, `A:0x0043`) — Power Type Fault, Mgr EEPROM Fault, NTC Sample Invalid, nízká a vysoká teplota baterie, Meter Fault, Bypass Relay Fault a Fan 2 Fault jako chyby, Port OC Warning jako varování

## Řešení problémů

### Žádná komunikace se střídačem

1. Ověřte, že vodiče RS-485 jsou na pinech **REMOTE_485A / REMOTE_485B** (1 + 2 nebo 7 + 8 v pozici RS485 kabelového přípravku COM 1), ne na pinech PARALLEL_485 3–6 a ne na lince elektroměru portu COM 2
2. Zkontrolujte, zda se přenosová rychlost shoduje mezi střídačem (`Menu → Setting → Advance Setting → Modbus`) a rozhraním Modbus RTU v TapHome — výchozí 19200
3. Ověřte, že parametr importu **Modbus Slave ID** odpovídá Modbus adrese střídače (výchozí `1`)
4. Ujistěte se, že k portu je připojen jen **jeden** Modbus master
5. Pokud si nejste jisti polaritou kabelu, prohoďte vodiče A a B
6. Ověřte, že kabel RS-485 nepřesahuje **30 m**

### Cíl vzdáleného ovládání se hned po nastavení vrátí na 0

Střídač je v pracovním režimu Manual, firmware nepodporuje režim 1 vzdáleného ovládání nebo je cíl mimo minimální a maximální cíl zobrazený v atributech modulu. Nejprve zkontrolujte pracovní režim.

### Zápis nastavení je odmítnut

Střídač je zamčený. Spusťte akci modulu **Unlock settings (password 2014)**; zámek se vrátí po každém restartu střídače (atribut modulu **Settings lock**).

### Hodnoty sítě jsou 0 nebo Spotřeba nesedí

**Grid - power balance**, **Ze sítě**, **Do sítě** a **Spotřeba** závisí na elektroměru nebo CT střídače. Zkontrolujte jeho zapojení na COM 2 a nastavení v `Menu → Setting → Advance Setting → Meter/CT Setting`.

### Výkon PV3 nebo Battery 2 ukazuje 0

PV3 existuje jen na modelech se třemi trackery (například X3-ULT-25K a X3-ULT-30K, počet MPPT viz uživatelský manuál); Battery 2 jen tehdy, když je k BAT 2 připojena druhá baterie. Nepoužívaná zařízení v TapHome skryjte.

## Dostupná zařízení 19

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

SolaX X3-Ultra Modul

Servisní atributy

|                                 |
|---------------------------------|
| Run mode                        |
| Machine type                    |
| Settings lock                   |
| Remote control mode             |
| Remote control - maximum target |
| Remote control - minimum target |

Servisní akce

|                                 |
|---------------------------------|
| Unlock settings (password 2014) |
| End remote control              |

Č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, 21) = 1, ADDERROR(121, "Parallel Fault"));
IF(GETBIT(inv, 22) = 1, ADDERROR(122, "Hard Limit 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", 20, "Remote control", "Other")
```

Machine type

```taphome
SWITCH(MODBUSR(H, 0x0105, UInt16), 1, "X1 (single-phase)", 3, "X3 (three-phase)", "Unknown")
```

Settings lock

```taphome
SWITCH(MODBUSR(A, 0x0054, UInt16), 0, "Locked", 1, "Unlocked", "Unknown")
```

Remote control mode

```taphome
SWITCH(MODBUSR(A, 0x0100, UInt16), 0, "Off", 1, "Power control", 2, "Energy target", 3, "SOC target", "Other")
```

Remote control - maximum target

```taphome
TOSTRING(MODBUSR(A, 0x010A, LittleEndianInt32)) + " W"
```

Remote control - minimum target

```taphome
TOSTRING(MODBUSR(A, 0x010C, LittleEndianInt32)) + " W"
```

Servisní akce

Unlock settings (password 2014)

```taphome
MODBUSW(SH, 0x0000, Uint16, 2014);
```

End remote control

```taphome
MODBUSW(H, 0x007C, Uint16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
```

${deviceType\_PVProduction} Elektroměr

Servisní atributy

|                                   |
|-----------------------------------|
| PV1 power                         |
| PV2 power                         |
| PV3 power                         |
| Inverter AC output - total energy |

Čtení celkové spotřeby

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

Čtení odběru

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

Servisní atributy

PV1 power

```taphome
TOSTRING(MODBUSR(A, 0x000A, UInt16)) + " W"
```

PV2 power

```taphome
TOSTRING(MODBUSR(A, 0x000B, UInt16)) + " W"
```

PV3 power

```taphome
TOSTRING(MODBUSR(A, 0x0124, UInt16)) + " W"
```

Inverter AC output - total energy

```taphome
TOSTRING(MODBUSR(A, 0x0052, LittleEndianUint32) / 10, "F1") + " kWh"
```

Grid - power balance Elektroměr

Čtení odběru

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

${deviceType\_PVFromGrid} Elektroměr

Čtení celkové spotřeby

```taphome
MODBUSR(A, 0x004A, LittleEndianUint32) / 100
```

Čtení odběru

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

${deviceType\_PVToGrid} Elektroměr

Čtení celkové spotřeby

```taphome
MODBUSR(A, 0x0048, LittleEndianUint32) / 100
```

Čtení odběru

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

${deviceType\_PVToBattery} Elektroměr

Čtení celkové spotřeby

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

Čtení odběru

```taphome
MAX(MODBUSR(A, 0x0016, Int16), 0) / 1000
```

${deviceType\_PVFromBattery} Elektroměr

Čtení celkové spotřeby

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

Čtení odběru

```taphome
MAX(-MODBUSR(A, 0x0016, Int16), 0) / 1000
```

${deviceType\_PVLoad} Elektroměr

Čtení odběru

```taphome
((MODBUSR(A, 0x006C, Int16) + MODBUSR(A, 0x0070, Int16) + MODBUSR(A, 0x0074, Int16)) - MODBUSR(A, 0x0046, LittleEndianInt32)) / 1000
```

${deviceType\_BatterySOC} Analogový vstup

Servisní atributy

|                   |
|-------------------|
| Remaining energy  |
| Chargeable energy |

Čtení vstupní úrovně

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

Servisní atributy

Remaining energy

```taphome
TOSTRING(MODBUSR(A, 0x0118, LittleEndianUint32) / 1000, "F2") + " kWh"
```

Chargeable energy

```taphome
TOSTRING(MODBUSR(A, 0x0116, LittleEndianUint32) / 1000, "F2") + " kWh"
```

Battery 2 - state of charge Analogový vstup

Servisní atributy

|                       |
|-----------------------|
| Battery 2 power       |
| Battery 2 temperature |

Čtení vstupní úrovně

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

Servisní atributy

Battery 2 power

```taphome
TOSTRING(MODBUSR(A, 0x0129, Int16)) + " W"
```

Battery 2 temperature

```taphome
TOSTRING(MODBUSR(A, 0x0131, Int16)) + " °C"
```

Battery - temperature Teplotní senzor

Čtení teploty

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

Inverter - AC power Proměnná

Čtení

```taphome
(MODBUSR(A, 0x006C, Int16) + MODBUSR(A, 0x0070, Int16) + MODBUSR(A, 0x0074, Int16)) / 1000
```

Grid - voltage L1 Proměnná

Servisní atributy

|                   |
|-------------------|
| Grid voltage L2   |
| Grid voltage L3   |
| Grid frequency L1 |
| Grid frequency L2 |
| Grid frequency L3 |

Čtení

```taphome
MODBUSR(A, 0x006A, UInt16) / 10
```

Servisní atributy

Grid voltage L2

```taphome
TOSTRING(MODBUSR(A, 0x006E, UInt16) / 10, "F1") + " V"
```

Grid voltage L3

```taphome
TOSTRING(MODBUSR(A, 0x0072, UInt16) / 10, "F1") + " V"
```

Grid frequency L1

```taphome
TOSTRING(MODBUSR(A, 0x006D, UInt16) / 100, "F2") + " Hz"
```

Grid frequency L2

```taphome
TOSTRING(MODBUSR(A, 0x0071, UInt16) / 100, "F2") + " Hz"
```

Grid frequency L3

```taphome
TOSTRING(MODBUSR(A, 0x0075, UInt16) / 100, "F2") + " Hz"
```

Settings - work mode Vícestavový přepínač

Hodnoty / Stavy: Self use · Feed-in priority · Backup · Manual · Peak shaving · Time of use

Čtení stavu přepínače

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

Zápis stavu přepínače

```taphome
IF(MODBUSR(H, 0x008B, UInt16) != Mu AND MODBUSR(A, 0x0054, UInt16) = 0, MODBUSW(SH, 0x0000, Uint16, 2014));
IF(MODBUSR(H, 0x008B, UInt16) != Mu, MODBUSW(SH, 0x001F, Uint16, Mu));
```

Settings - manual mode Vícestavový přepínač

Hodnoty / Stavy: Stop charge and discharge · Force charge · Force discharge

Čtení stavu přepínače

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

Zápis stavu přepínače

```taphome
IF(MODBUSR(H, 0x008C, UInt16) != Mu AND MODBUSR(A, 0x0054, UInt16) = 0, MODBUSW(SH, 0x0000, Uint16, 2014));
IF(MODBUSR(H, 0x008C, UInt16) != Mu, MODBUSW(SH, 0x0020, Uint16, Mu));
```

Settings - self-use minimum SOC Stmívač

Čtení úrovně

```taphome
GETBYTE(MODBUSR(H, 0x0093, UInt16), 1) / 100
```

Zápis úrovně

```taphome
VAR v := MAX(ROUND(Le * 100), 10);
IF(GETBYTE(MODBUSR(H, 0x0093, UInt16), 1) != v AND MODBUSR(A, 0x0054, UInt16) = 0, MODBUSW(SH, 0x0000, Uint16, 2014));
IF(GETBYTE(MODBUSR(H, 0x0093, UInt16), 1) != v, MODBUSW(SH, 0x0061, Uint16, v));
```

Settings - night charge from grid Přepínač

Hodnoty / Stavy: ON · OFF

Čtení stavu přepínače

```taphome
GETBYTE(MODBUSR(H, 0x0093, UInt16), 0)
```

Zápis stavu přepínače

```taphome
IF(GETBYTE(MODBUSR(H, 0x0093, UInt16), 0) != St AND MODBUSR(A, 0x0054, UInt16) = 0, MODBUSW(SH, 0x0000, Uint16, 2014));
IF(GETBYTE(MODBUSR(H, 0x0093, UInt16), 0) != St, MODBUSW(SH, 0x0062, Uint16, St));
```

Settings - night charge target SOC Stmívač

Čtení úrovně

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

Zápis úrovně

```taphome
VAR v := MAX(ROUND(Le * 100), 10);
IF(MODBUSR(H, 0x0094, UInt16) != v AND MODBUSR(A, 0x0054, UInt16) = 0, MODBUSW(SH, 0x0000, Uint16, 2014));
IF(MODBUSR(H, 0x0094, UInt16) != v, MODBUSW(SH, 0x0063, Uint16, v));
```

Settings - export limit Proměnná

Čtení

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

Zápis

```taphome
VAR v := MAX(ROUND(Va * 100), 0);
IF(MODBUSR(H, 0x00B6, UInt16) != v AND MODBUSR(A, 0x0054, UInt16) = 0, MODBUSW(SH, 0x0000, Uint16, 2014));
IF(MODBUSR(H, 0x00B6, UInt16) != v, MODBUSW(SH, 0x0042, Uint16, v));
```

Remote control - AC power target Proměnná

Servisní atributy

|                 |
|-----------------|
| Actual AC power |

Čtení

```taphome
IF(MODBUSR(A, 0x0100, UInt16) = 1, MODBUSR(A, 0x0102, LittleEndianInt32) / 1000, 0)
```

Zápis

```taphome
VAR w := ROUND(Va * 1000);
VAR u := IF(w < 0, w + 4294967296, w);
IF(w = 0 AND MODBUSR(A, 0x0100, UInt16) != 0, MODBUSW(H, 0x007C, Uint16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
IF(w != 0 AND MODBUSR(A, 0x0054, UInt16) = 0, MODBUSW(SH, 0x0000, Uint16, 2014));
IF(w != 0, MODBUSW(H, 0x007C, Uint16, 1, 1, MOD(u, 65536), FLOOR(u / 65536), 0, 0, 120, 0, 0, 0, 0, 0, 60));
```

Servisní atributy

Actual AC power

```taphome
TOSTRING(MODBUSR(A, 0x0106, LittleEndianInt32)) + " W"
```

**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/)

