---
title: "SolaX X3-Ultra Hybrid Inverter — monitoring and power control (Modbus RTU)"
description: "SolaX X3-Ultra preko Modbus RTU (RS-485): Energy Dashboard, SOC baterije, mreža, kvarovi i daljinsko upravljanje AC snagom za punjenje i pražnjenje."
url: "https://taphome.com/hr/compatibility/solax-x3-ultra-power-control-modbus-rtu/"
language: hr
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: ["Kako integrirati hibridni izmjenjivač SolaX X3-Ultra sa sustavom TapHome?","Što mjeri i čime upravlja predložak za upravljanje snagom SolaX X3-Ultra?","Kako ožičiti RS-485 s priključka COM 1 izmjenjivača SolaX X3-Ultra na TapHome?","Kako iz sustava TapHome puniti ili prazniti bateriju SolaX X3-Ultra prema spot cijenama električne energije?","Zašto se cilj daljinskog upravljanja SolaX X3-Ultra vraća na 0 odmah nakon postavljanja?","Koji uređaj treba koristiti Energy Manager sustava TapHome sa SolaX X3-Ultra?"]
---

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

Komunikacija: Modbus RTU

## Upute za integraciju

SolaX X3-Ultra (X3-ULT-15K, 20K, 25K, 30K) trofazni je hibridni izmjenjivač (inverter) za fotonaponske panele i baterije. Ovaj predložak zajednice, autora Martina Kellera, povezuje ga sa sustavom TapHome preko **Modbus RTU na priključku RS-485 COM 1** (19200 baud, 8N1), a temelji se na registrima za čitanje protokola SolaX Modbus V3.29 i na protokolu SolaX Modbus V001.02. Nudi cjelovit skup mjernih uređaja za Energy Dashboard, praćenje baterije, mreže i kvarova, postavke izmjenjivača koje se upisuju samo kad se njihova vrijednost stvarno promijeni te daljinsko upravljanje AC snagom (način 1 daljinskog upravljanja SolaX): punjenje baterije iz mreže ili njezino pražnjenje u mrežu na naredbu, na primjer prema spot cijenama električne energije.

## Kako preuzeti predložak

Predlošci zajednice ne nude se na popisu predložaka u aplikaciji TapHome. Prijavite se na portal.taphome.com, preuzmite XML ovog predloška i uvezite ga u centralnu jedinicu Core na sučelju Modbus RTU (ili na sučelju Modbus TCP kada se koristi pristupnik RS-485 na Ethernet). Za praćenje bez daljinskog upravljanja snagom dostupan je službeni predložak [SolaX X3 Hybrid Ultra](https://taphome.com/hr/compatibility/solax-hybrid-ultra-x3/). Modul ranije uvezen iz službenog predloška ne ažurira se sam: uvezite ovaj predložak kao novi modul i uklonite stari.

## Hardversko spajanje

X3-Ultra ima jedan višenamjenski **priključak COM 1** (konektor RJ45 s označenim nosačem kabela). Isti fizički pinovi imaju različite funkcije, ovisno o tome koji se označeni položaj nosača kabela koristi. Za integraciju s Modbus uređajima drugih proizvođača koristite položaj **RS485**, odnosno vodove **REMOTE_485A** i **REMOTE_485B**.

### Raspored pinova priključka COM 1

![Raspored pinova priključka COM 1 na SolaX X3-Ultra za svih šest označenih položaja (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)

Raspored pinova **položaja RS485** (jedini položaj važan za TapHome):

| Pin | Signal | Spajanje na TapHome |
|-----|--------|---------------------|
| **1** | **REMOTE_485A** | A+ / D+ |
| **2** | **REMOTE_485B** | B− / D− |
| 3 | PARALLEL_485AA | ne koristiti (samo za pribor SolaX) |
| 4 | PARALLEL_485AA | ne koristiti (samo za pribor SolaX) |
| 5 | PARALLEL_485BB | ne koristiti (samo za pribor SolaX) |
| 6 | PARALLEL_485BB | ne koristiti (samo za pribor SolaX) |
| **7** | **REMOTE_485A** | isti signal kao pin 1 |
| **8** | **REMOTE_485B** | isti signal kao pin 2 |

> [!WARNING]
> Pinovi 3–6 pripadaju kanalu SolaX PARALLEL_485 i rezervirani su za proizvode SolaX (Adapter Box G2, EV-Charger, DataHub). Pinovi 1, 2, 7 i 8 namijenjeni su uređajima koji nisu proizvodi SolaX. Na pinove 3–6 **nemojte** spajati Modbus master drugog proizvođača.

### Ožičenje RS-485

![Umetanje konektora RJ45 u položaj RS485 nosača kabela COM 1](https://taphome.com/images/compatibility/solax-x3-ultra-power-control-modbus-rtu/wiring-rs485_hu_ac07cf89af382c1.jpg)

Pravila ožičenja iz korisničkog priručnika X3-Ultra (odjeljak 8.6.4):

- **Vrsta kabela:** mrežni kabel CAT5E ili CAT6
- **Najveća duljina:** komunikacijski kabel RS-485 ne smije biti dulji od **30 m**
- **Konektor RJ45:** postojeći konektor kabela odreže se, a novi konektor RJ45 krimpa se prema rasporedu pinova; ne prihvaćaju svi uređaji potpuno ožičen mrežni kabel s 8 pinova
- **Položaj u nosaču kabela:** konektor RJ45 ide u utor s oznakom **RS485** (ne u Parallel-1, Parallel-2, BMS-1, BMS-2 ni DRM); konektor uskoči u priključak COM 1 i osigura se okretnom maticom
- **Samo jedan Modbus master:** priključak smije koristiti samo jedan Modbus master. Odspojite drugi Modbus nadzor na istom priključku, inače izmjenjivač odgovara obojici i očitanja postaju nestabilna

Korisnički priručnik ne navodi pravilo za zaključenje (terminaciju) sabirnice RS-485 na položaju RS485 priključka COM 1.

### Brojilo ili CT za vrijednosti mreže

Uređaji mreže ovog predloška (**Grid - power balance**, **Iz mreže**, **Na mrežu**, **Potrošnja**) očitavaju snagu predaje u mrežu koju izmjenjivač mjeri vlastitim brojilom ili strujnim transformatorom (CT). Brojilo ili CT spaja se na priključak **COM 2** (Meter/CT: METER_485A na pinu 4, METER_485B na pinu 5 ili ulazi CT) i postavlja se na zaslonu izmjenjivača u `Menu → Setting → Advance Setting → Meter/CT Setting`. To je zaseban vod RS-485: na njega ne spajajte TapHome.

### Mogućnosti spajanja

- **Izravno Modbus RTU:** par RS485 priključka COM 1 spojite izravno na sabirnicu RS-485 centralne jedinice Core. Najmanje kašnjenje, preporučeno za daljinsko upravljanje snagom.
- **Pristupnik RS-485 na Ethernet:** kada je izmjenjivač daleko od centralne jedinice Core, na par RS485 priključka COM 1 može se spojiti pristupnik RS-485 na Ethernet drugog proizvođača; predložak se tada uvozi na sučelju Modbus TCP.
- **Modul za nadzor SolaX:** sam izmjenjivač ne podržava Modbus TCP. Modbus TCP (port 502) dostupan je samo preko modula za nadzor SolaX, s ciklusom upita od približno 1 sekunde (protokol V3.29).

## Konfiguracija

### Uključivanje komunikacije Modbus na izmjenjivaču

Na zaslonu LCD izmjenjivača otvorite:

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

Izbornik Advance Setting traži lozinku instalatera (prema korisničkom priručniku početno **2014**; priručnik preporučuje da je promijenite). U izborniku Modbus postavite **Baud Rate** i **Address** vanjskog komunikacijskog protokola:

| Parametar | Zadano u predlošku | Zadano na izmjenjivaču (protokol V3.29) |
|-----------|--------------------|-----------------------------------------|
| Modbus adresa (Slave ID) | 1 | 1 |
| Brzina prijenosa | 19200 | 19200 |
| Paritet | None | None |
| Podatkovni bitovi | 8 | 8 |
| Stop bitovi | 1 | 1 |

> [!WARNING]
> Brzina prijenosa na izmjenjivaču i na sučelju Modbus RTU sustava TapHome mora biti ista. Ako komunikacija ne radi, najprije provjerite brzinu prijenosa.

Izmjenjivač Modbus adresu javlja i u holding registru `H:0x00AF`, a brzinu prijenosa u holding registru `H:0x00B0` (protokol V3.29).

### Parametar uvoza

Pri uvozu predloška parametar uvoza **Modbus Slave ID** (zadano `1`) mora odgovarati Modbus adresi postavljenoj na zaslonu izmjenjivača.

## Mogućnosti uređaja

### Energy Dashboard

| Uređaj | Očitanje |
|---|---|
| **PV proizvodnja** | Ulazna snaga PV1 + PV2 + PV3 (`A:0x000A`, `A:0x000B`, `A:0x0124`) u kW; ukupna fotonaponska energija (`A:0x0094`–`0x0095`) u kWh. Snaga PV1–PV3 i ukupna AC izlazna energija izmjenjivača (`A:0x0052`) servisni su atributi. |
| **Iz mreže** / **Na mrežu** | Dio snage mreže koji se preuzima i dio koji se predaje, s brojila ili CT-a (`A:0x0046`–`0x0047`, niža riječ prva), s ukupnim brojačima energije (`A:0x004A` i `A:0x0048`, 0,01 kWh). |
| **Na bateriju** / **Od baterije** | Dio snage baterije 1 pri punjenju i pri pražnjenju (`A:0x0016`), s ukupnom energijom punjenja i pražnjenja (`A:0x0021`, `A:0x001D`). |
| **Potrošnja** | Izračunata potrošnja kuće: AC snaga izmjenjivača umanjena za predaju u mrežu. SolaX nema registar potrošnje; trošila na izlazu EPS (rezervno napajanje) nisu uključena. |
| **Baterija (SOC)** | Stanje napunjenosti baterije 1 (`A:0x001C`). Preostala energija i energija koja se još može napuniti (`A:0x0118`, `A:0x0116`) servisni su atributi. |

### Energy Manager

Za smart rule Energy Manager odaberite **Grid - power balance**. Vrijednost ima predznak: pozitivna je pri preuzimanju iz mreže, negativna pri predaji viška. Uređaji **Iz mreže** i **Na mrežu** nikad nisu negativni i ne prikazuju višak.

### Praćenje

- **Battery 2 - state of charge** — drugi priključak baterije (BAT 2), sa snagom i temperaturom kao servisnim atributima; bez druge baterije očitava 0
- **Battery - temperature** — očitava se kao vrijednost s predznakom, pa se temperature ispod 0 °C prikazuju ispravno
- **Inverter - AC power** — zbroj triju faznih snaga na AC priključku izmjenjivača u kW
- **Grid - voltage L1** — s naponima mreže L2 i L3 te trima frekvencijama mreže kao servisnim atributima

### Postavke izmjenjivača

| Uređaj | Čitanje | Upis |
|---|---|---|
| **Settings - work mode** | `H:0x008B`: Self use, Feed-in priority, Backup, Manual, Peak shaving, Time of use (posljednja dva ovise o firmveru) | `0x001F` |
| **Settings - manual mode** | `H:0x008C`: Stop charge and discharge, Force charge, Force discharge (djeluje samo u radnom načinu Manual) | `0x0020` |
| **Settings - self-use minimum SOC** | viši bajt registra `H:0x0093` | `0x0061` |
| **Settings - night charge from grid** | niži bajt registra `H:0x0093` | `0x0062` |
| **Settings - night charge target SOC** | `H:0x0094` | `0x0063` |
| **Settings - export limit** | `H:0x00B6`, u kW (10 W po koraku na X3) | `0x0042` |

SolaX ove postavke čita s drugih adresa od onih na koje ih upisuje, pa se ugrađena funkcija sustava TapHome „upiši samo ako je različito” ne može koristiti. Zato svaka skripta za upis najprije pročita postavku i upisuje (funkcija 06) samo kad se nova vrijednost razlikuje; kad izmjenjivač javlja da su postavke zaključane, najprije upiše lozinku postavki 2014 u registar `0x0000`. Najmanji SOC i cilj noćnog punjenja nikad ne padaju ispod 10 % (raspon SolaX). Nijedan od ovih uređaja ne upisuje periodično.

> [!WARNING]
> Ove postavke su registri EEPROM (SolaX ih označava sa ★, približno 1 milijun ciklusa upisa). Mijenjajte ih rijetko i nikad iz čestih automatizacija: za punjenje i pražnjenje prema spot cijenama koristite **Remote control - AC power target**.

### Remote control - AC power target

Ovaj uređaj koristi način 1 daljinskog upravljanja SolaX (VPP), odnosno upravljanje snagom na AC priključku izmjenjivača.

- **Predznak:** pozitivan cilj znači da izmjenjivač preuzima snagu na svojem AC priključku (puni bateriju, iz mreže ako fotonaponska snaga nije dovoljna); negativan cilj znači da snagu predaje (prazni bateriju, a ono što kuća ne potroši odlazi u mrežu). Vrijednost u kW.
- **0** završava daljinsko upravljanje: predložak jednom upiše način 0 i izmjenjivač se vraća u svoj radni način. Ciljevi manji od 0,5 W računaju se kao 0.
- **Bilo koja druga vrijednost:** ako je izmjenjivač zaključan, predložak najprije upiše lozinku postavki 2014 (otključavanje se gubi nakon svakog ponovnog pokretanja izmjenjivača), a zatim jednim Modbus zahtjevom (funkcija 0x10) upiše 13 registara `0x007C`–`0x0088`: način 1, cilj, trajanje 120 s i vremensko ograničenje 60 s. Naredba se ponavlja svakih 60 s dok cilj nije 0. Ako je TapHome prestane slati, izmjenjivač zadržava cilj najviše 2 minute, još 1 minutu drži 0 W na svojem AC priključku, a zatim se sam vraća u svoj radni način.
- **Radni način Manual blokira daljinsko upravljanje.** SolaX ne pokreće daljinsko upravljanje dok je izmjenjivač u radnom načinu Manual: najprije ga prebacite na Self use (ili drugi način).
- Izmjenjivač ograničava cilj na raspon prikazan u atributima modula (najmanji i najveći cilj daljinskog upravljanja).
- Radnja modula **End remote control** odmah upisuje način 0. Dok cilj nije 0, sljedeće ponavljanje ponovno pokreće daljinsko upravljanje: za trajno zaustavljanje postavite cilj na 0.
- Ovaj uređaj nemojte kombinirati s daljinskim upravljanjem iz oblaka SolaX Cloud ili od agregatora energije: dok je cilj 0, predložak u roku od 60 s završava svaki način daljinskog upravljanja.
- Daljinsko upravljanje treba centralnu jedinicu Core koja svih 13 registara upisuje jednim zahtjevom. To vrijedi za svaku centralnu jedinicu Core od 2022. ako modul zadrži `MaxPrefetchGroupSize` 32 iz ovog predloška.
- Servisni atribut **Actual AC power** prikazuje djelatnu snagu koju izmjenjivač javlja na svojem AC priključku, u W (`A:0x0106`).

> [!WARNING]
> SolaX u svojem protokolu ne označava registre daljinskog upravljanja (`0x007C`–`0x0088`) kao registre EEPROM, ali ni pisanim putem ne potvrđuje suprotno. Ovaj se predložak oslanja na iskustvo zajednica Home Assistant i openHAB, koje te registre upisuju svakih nekoliko sekundi do nekoliko minuta.

### Atributi i radnje modula

- **Run mode** (servisni atribut) — stanje izmjenjivača kao tekst: Waiting, Checking, Normal, Fault, Permanent fault, Update, Off-grid waiting, Off-grid, Self testing, Idle, Standby, Remote control (kod 20); ostali kodovi prikazuju se kao Other
- **Machine type** (servisni atribut) — X1 (single-phase) ili X3 (three-phase), holding registar `H:0x0105`
- **Settings lock** (servisni atribut) — Locked ili Unlocked (`A:0x0054`)
- **Remote control mode** (servisni atribut) — aktivni način daljinskog upravljanja (`A:0x0100`): Off, Power control, Energy target, SOC target
- **Remote control - maximum target** / **minimum target** (servisni atributi) — dopušteni raspon ciljne snage koji javlja izmjenjivač, u W (`A:0x010A`, `A:0x010C`)
- **Unlock settings (password 2014)** (servisna radnja) — upisuje `2014` u registar `0x0000`
- **End remote control** (servisna radnja) — upisuje način 0 u registre daljinskog upravljanja `0x007C`–`0x0088`

### Otkrivanje kvarova

Skripta za čitanje modula javlja pogrešku sustava TapHome kada je način rada (Run mode, `A:0x0009`) 3 (Fault) ili 4 (Permanent fault). Osim toga bit po bit raščlanjuje dva registra pogrešaka, svaki kvar s vlastitim kodom pogreške:

- **Kod kvara izmjenjivača** (32-bitni, `A:0x0040`–`A:0x0041`, čita se niža riječ prva) — sva 32 bita, od TZ Protect Fault, kvarova napona mreže, fotonaponskog napona, napona sabirnice i napona baterije, kvarova izolacije i pregrijavanja do Parallel Fault, Hard Limit Fault i kvarova releja
- **Kod pogreške upravljača (Manager)** (16-bitni, `A:0x0043`) — Power Type Fault, Mgr EEPROM Fault, NTC Sample Invalid, niska i visoka temperatura baterije, Meter Fault, Bypass Relay Fault i Fan 2 Fault kao pogreške, Port OC Warning kao upozorenje

## Rješavanje problema

### Nema komunikacije s izmjenjivačem

1. Provjerite jesu li vodiči RS-485 na pinovima **REMOTE_485A / REMOTE_485B** (1 + 2 ili 7 + 8 u položaju RS485 nosača kabela COM 1), a ne na pinovima PARALLEL_485 3–6 ni na vodu brojila na COM 2
2. Provjerite podudara li se brzina prijenosa na izmjenjivaču (`Menu → Setting → Advance Setting → Modbus`) i na sučelju Modbus RTU sustava TapHome: zadano je 19200
3. Provjerite odgovara li parametar uvoza **Modbus Slave ID** Modbus adresi izmjenjivača (zadano `1`)
4. Provjerite je li na priključak spojen samo **jedan** Modbus master
5. Ako polaritet kabela nije siguran, zamijenite vodiče A i B
6. Provjerite da kabel RS-485 nije dulji od **30 m**

### Cilj daljinskog upravljanja vraća se na 0 odmah nakon postavljanja

Izmjenjivač je u radnom načinu Manual, firmver ne podržava način 1 daljinskog upravljanja ili je cilj izvan najmanjeg i najvećeg cilja prikazanog u atributima modula. Najprije provjerite radni način.

### Upis postavki se odbija

Izmjenjivač je zaključan. Pokrenite radnju modula **Unlock settings (password 2014)**; zaključavanje se vraća nakon svakog ponovnog pokretanja izmjenjivača (atribut modula **Settings lock**).

### Vrijednosti mreže su 0 ili Potrošnja izgleda pogrešno

**Grid - power balance**, **Iz mreže**, **Na mrežu** i **Potrošnja** ovise o brojilu ili CT-u izmjenjivača. Provjerite njegovo ožičenje na COM 2 i postavke u `Menu → Setting → Advance Setting → Meter/CT Setting`.

### Snaga PV3 ili Battery 2 pokazuje 0

PV3 postoji samo na modelima s tri MPPT ulaza (na primjer X3-ULT-25K i X3-ULT-30K, broj MPPT ulaza pogledajte u korisničkom priručniku); Battery 2 samo kada je druga baterija spojena na BAT 2. Nekorištene uređaje sakrijte u sustavu TapHome.

## Dostupni uređaji 19

Ovi se uređaji pojavljuju u TapHomeu nakon uvoza.

SolaX X3-Ultra Modul

Servisni atributi

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

Servisne radnje

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

Čitanje (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"));
```

Servisni atributi

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"
```

Servisne radnje

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} Brojilo električne energije

Servisni atributi

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

Čitanje ukupne potrošnje

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

Čitanje zahtjeva

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

Servisni atributi

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 Brojilo električne energije

Čitanje zahtjeva

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

${deviceType\_PVFromGrid} Brojilo električne energije

Čitanje ukupne potrošnje

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

Čitanje zahtjeva

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

${deviceType\_PVToGrid} Brojilo električne energije

Čitanje ukupne potrošnje

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

Čitanje zahtjeva

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

${deviceType\_PVToBattery} Brojilo električne energije

Čitanje ukupne potrošnje

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

Čitanje zahtjeva

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

${deviceType\_PVFromBattery} Brojilo električne energije

Čitanje ukupne potrošnje

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

Čitanje zahtjeva

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

${deviceType\_PVLoad} Brojilo električne energije

Čitanje zahtjeva

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

${deviceType\_BatterySOC} Analogni ulaz

Servisni atributi

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

Čitanje razine ulaza

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

Servisni atributi

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 Analogni ulaz

Servisni atributi

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

Čitanje razine ulaza

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

Servisni atributi

Battery 2 power

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

Battery 2 temperature

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

Battery - temperature Senzor temperature

Čitanje temperature

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

Inverter - AC power Varijabla

Čitanje

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

Grid - voltage L1 Varijabla

Servisni atributi

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

Čitanje

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

Servisni atributi

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 Prekidač s više vrijednosti

Vrijednosti / stanja: Self use · Feed-in priority · Backup · Manual · Peak shaving · Time of use

Čitanje stanja sklopke

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

Zapis stanja sklopke

```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 Prekidač s više vrijednosti

Vrijednosti / stanja: Stop charge and discharge · Force charge · Force discharge

Čitanje stanja sklopke

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

Zapis stanja sklopke

```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 Dimer

Čitanje razine

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

Zapis razine

```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 Sklopka

Vrijednosti / stanja: ON · OFF

Čitanje stanja sklopke

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

Zapis stanja sklopke

```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 Dimer

Čitanje razine

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

Zapis razine

```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 Varijabla

Čitanje

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

Zapis

```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 Varijabla

Servisni atributi

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

Čitanje

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

Zapis

```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));
```

Servisni atributi

Actual AC power

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

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

## Parametri uvoza

Ove vrijednosti unosite pri uvozu XML-a.

| Pitanje u aplikaciji | Zadano |
|----------------------|--------|
| Modbus Slave ID      | `1`    |

## Povezana dokumentacija

- [Modbus Integration](https://taphome.com/hr/compatibility/modbus-guide/)
- [Modbus](https://taphome.com/hr/docs/integration/modbus/)
- [Jednostavna konfiguracija pomoću predložaka](https://taphome.com/hr/docs/integration/modbus/templates/)
- [Skripte Modbus i prefetch](https://taphome.com/hr/docs/script/modbus-scripts/)
- [Funkcije Modbus](https://taphome.com/hr/docs/script/modbus/)
- [Tipovi podataka Modbus](https://taphome.com/hr/docs/script/modbus-data-types/)

