---
title: "Sistema Sistema-Home 4..18(T)"
description: "Sterowanie ogrzewaniem/chłodzeniem, CWU i wartościami zadanymi, monitorowanie temperatur, ciśnień, przepływu i 80+ kodów błędów przez Modbus RTU."
url: "https://taphome.com/pl/compatibility/sistema-home-418t/"
language: pl
lastmod: 2026-10-08
generator: hugo
ai:
  topics: ["modbus-rtu","heat-pump","rs485","dual-circuit","dhw"]
  questions: ["Jak zintegrować pompę ciepła Sistema-Home 4..18(T) z TapHome?","Co monitoruje i steruje szablon Sistema-Home 4..18(T) w TapHome?","Jak podłączyć pompę ciepła Sistema-Home przez RS-485 do TapHome?","Jak zmienić tryb pracy pompy ciepła Sistema-Home przez Modbus?","Jakie kody błędów zgłasza szablon Sistema-Home 4..18(T)?","Jak ustawić temperaturę CWU na pompie ciepła Sistema-Home zdalnie?"]
---

# Sistema Sistema-Home 4..18(T)

Komunikacja: Modbus RTU

## Poradnik integracji

Sistema-Home 4..18(T) to dwuobwodowa pompa ciepła komunikująca się przez Modbus RTU (RS-485). Szablon TapHome zapewnia sterowanie trybem pracy z trybami ogrzewania, chłodzenia i CWU, regulację wartości zadanych dla obwodu grzewczego i chłodniczego, wartość zadaną temperatury CWU oraz kompleksowe monitorowanie temperatur wody, ciśnień czynnika chłodniczego, prędkości wentylatora i pompy oraz przepływu wody. Szablon raportuje również 80+ kodów błędów z regulatora pompy ciepła za pośrednictwem rejestrów bitowych.

Regulator jest prawdopodobnie oparty na platformie CAREL pCO (typowej dla włoskich pomp ciepła OEM). Mapa rejestrów jest zastrzeżona, a wszystkie informacje techniczne w tym szablonie pochodzą wyłącznie z szablonu XML — producent nie udostępnia żadnej publicznej dokumentacji.

## Podłączenie sprzętowe

Sistema-Home 4..18(T) łączy się z TapHome przez bramkę Modbus RTU CCU za pomocą magistrali szeregowej RS-485. Domyślne parametry komunikacji to 9600 baud, 8 bitów danych, parzystość parzysta, 1 bit stopu, Slave ID 1.

Podłącz okablowanie RS-485 między portem Modbus pompy ciepła a TapHome Modbus RTU CCU:

- **A+** na pompie ciepła → **A+/D+** na TapHome RS-485
- **B-** na pompie ciepła → **B-/D-** na TapHome RS-485
- **GND** → **GND** (obowiązkowe dla niezawodnej komunikacji)

> [!WARNING]
> Przewód GND musi być połączony między pompą ciepła a bramką TapHome. Bez prawidłowego uziemienia błędy komunikacji Modbus są prawdopodobne, szczególnie przy dłuższych trasach kablowych.

## Konfiguracja

### Włączenie zdalnego zapisu

Szablon automatycznie włącza zdalny dostęp do zapisu przy każdym cyklu odpytywania, ustawiając bit 0 rejestru H:7201. Oznacza to, że pompa ciepła akceptuje zmiany wartości zadanych i trybów z TapHome natychmiast po zaimportowaniu szablonu — ręczna konfiguracja tego rejestru nie jest wymagana.

### Parametry komunikacji

Sprawdź, czy poniższe ustawienia są zgodne między pompą ciepła a TapHome:

| Parametr | Wartość |
|----------|---------|
| Prędkość transmisji | 9600 |
| Bity danych | 8 |
| Parzystość | Parzysta |
| Bity stopu | 1 |
| Slave ID | 1 (domyślny) |

Jeśli Slave ID na pompie ciepła różni się od 1, zaktualizuj parametr importu Slave ID w TapHome.

## Funkcje urządzeń

### Sterowanie trybem pracy

Urządzenie **Active Mode** wybiera tryb pracy pompy ciepła. Dostępne tryby:

| Wartość | Tryb | Opis |
|---------|------|------|
| 0 | Stand by | Pompa ciepła w trybie gotowości |
| 1 | Cool | Tylko chłodzenie |
| 2 | Heat | Tylko ogrzewanie |
| 4 | Sanitary | Tylko produkcja CWU |
| 5 | Cool+DHW | Chłodzenie z CWU |
| 6 | Heat+DHW | Ogrzewanie z CWU |

Wartości trybów 3, 7, 8 i 9 są zdefiniowane w szablonie, ale nie mają znaczących nazw — wyświetlane są jako zastępcze cyfry i mogą być zarezerwowane lub nieużywane w tej wersji regulatora.

Akcja serwisowa **DHW (Sanitary) Setpoint** na urządzeniu Active Mode pozwala ustawić temperaturę docelową ciepłej wody użytkowej (zakres 25–55 °C).

### Regulacja wartości zadanych

Dwa urządzenia termostatowe sterują wartościami zadanymi ogrzewania i chłodzenia:

- **Heat Setpoint** — odczyt/zapis wartości zadanej ogrzewania (H:1002). Referencyjna temperatura bieżąca pochodzi z czujnika zbiornika mieszającego (H:440).
- **Cool Setpoint** — odczyt/zapis wartości zadanej chłodzenia (H:1001). Używa tej samej temperatury zbiornika mieszającego jako wartości bieżącej.

Obie wartości zadane wykorzystują konwersję ×10 (np. wartość rejestru 350 = 35,0 °C).

### Monitorowanie temperatur

Sześć czujników temperatury zapewnia monitorowanie termiczne w całym systemie:

- **Outside Temperature** — temperatura zewnętrzna (H:428, odpytywanie co 30 s)
- **Plant Temperature (Mixing Tank)** — temperatura zbiornika buforowego/mieszającego (H:440), używana również jako referencyjna temperatura bieżąca dla obu termostatów
- **Water Inlet Temperature** — temperatura wody na wlocie wymiennika ciepła (H:400)
- **Water Outlet Temperature** — temperatura wody na wylocie wymiennika ciepła (H:401)
- **DHW Temperature** — temperatura zasobnika ciepłej wody użytkowej (H:405), z wykrywaniem usterek (zgłasza ostrzeżenie, jeśli czujnik odczytuje "Not configured" lub "Fault")
- **Compressor Discharge Temperature** — temperatura tłoczenia sprężarki 1 (H:433), z 7 atrybutami serwisowymi obejmującymi temperatury tłoczenia sprężarek obu obwodów czynnika chłodniczego oraz temperaturę ssania sprężarki obwodu 2

> [!NOTE]
> Urządzenie szablonu o nazwie "Compressor inhalation" w rzeczywistości odczytuje rejestr H:433, który zgodnie z mapą rejestrów odpowiada tłoczeniu sprężarki 1. Rzeczywisty rejestr ssania sprężarki (H:422) nie jest udostępniony jako urządzenie główne. Nazwa wyświetlana w TapHome odzwierciedla skorygowaną funkcję (Compressor Discharge Temperature).

### Monitorowanie ciśnień czynnika chłodniczego

Dwa czujniki ciśnienia monitorują obwody czynnika chłodniczego:

- **High Pressure** — ciśnienie czynnika chłodniczego po stronie wysokiej w bar (H:406), z atrybutem serwisowym dla obwodu 2 (H:20406)
- **Low Pressure** — ciśnienie czynnika chłodniczego po stronie niskiej w bar (H:414), z atrybutem serwisowym dla obwodu 2 (H:20414)

### Prędkość wentylatora i pompy

- **Fan Speed** — prędkość wentylatora tylko do odczytu w procentach (H:7000, konwersja ÷1000)
- **Pump Speed** — prędkość pompy obiegowej tylko do odczytu w procentach (H:7001, konwersja ÷1000)

### Przepływ wody

Czujnik **Water Flow Rate** mierzy przepływ wody w systemie w l/min (H:444). Zawiera wykrywanie usterek — ostrzeżenie jest generowane, gdy czujnik zgłasza "Not configured" (32766) lub "Fault" (32767).

> [!WARNING]
> Atrybut serwisowy stanu Water Flow Rate odczytuje rejestr H:405 (rejestr temperatury CWU) zamiast H:444. Prawdopodobnie jest to błąd szablonu — stan może nie odzwierciedlać dokładnie stanu czujnika przepływu wody.

### Monitorowanie czasu pracy sprężarki

Sześć atrybutów serwisowych na poziomie modułu śledzi godziny pracy sprężarek:

- **Compressor 1/2/3 Runtime** — godziny kumulatywne dla sprężarek obwodu 1 (H:305, H:307, H:309)
- **Compressor 1/2/3 Runtime (Circuit 2)** — godziny kumulatywne dla sprężarek obwodu 2 (H:313, H:315, H:317)

### Monitorowanie błędów

Moduł ReadScript monitoruje rejestry od H:950 do H:956 (7 rejestrów bitowych) i raportuje 80+ różnych kodów błędów i ostrzeżeń. Główne kategorie błędów:

- **Usterki obwodu chłodniczego** — wysokie ciśnienie (E001), niskie ciśnienie (E002), mróz (E005)
- **Ochrona termiczna** — sprężarka (E003, E013, E023), wentylator (E004, E014, E024), pompa (E016, E026)
- **Usterki temperaturowe** — wysoka temperatura tłoczenia (E009, E019, E029), wysoka temperatura (E018), niespójne temperatury (E041)
- **Usterki CWU** — słaba wymiana ciepła (E042), przegrzanie zasobnika akumulacyjnego (E050), status anty-legionella (E060/E061)
- **Błędy czujników** — błędy sond dla do 11 sond w 3 modułach I/O (E611–E713)
- **Usterki falownika** — błędy komunikacji, usterki sprzętowe, nadprąd, przegrzanie, usterki napięciowe, błędy kolejności faz, błędy EEPROM dla do 3 falowników (E801–E973)
- **Usterki modułu I/O** — moduł 1/2 odłączony (E101, E102)

### Dodatkowe funkcje

Regulator pompy ciepła udostępnia również rejestr temperatury ssania sprężarki (H:422) oraz flagę włączenia zdalnego zapisu (H:7201), która jest automatycznie zarządzana przez szablon. Mogą one zostać dodane jako samodzielne urządzenia w przyszłej aktualizacji szablonu, jeśli potrzebne jest bezpośrednie monitorowanie temperatury ssania.

## Rozwiązywanie problemów

### Brak komunikacji Modbus

1. Sprawdź okablowanie RS-485 — A+ do A+, B- do B-, GND podłączony
2. Potwierdź parametry komunikacji: 9600 baud, 8E1, Slave ID 1
3. Sprawdź długość kabla i terminację — przy długich trasach może być wymagany rezystor terminujący 120 ohm na ostatnim urządzeniu na magistrali
4. Upewnij się, że interfejs Modbus na regulatorze pompy ciepła jest włączony (sprawdź menu regulatora na miejscu)

### Czujniki pokazujące ostrzeżenie "Not configured"

Rejestry zwracające wartość specjalną 32766 wskazują czujnik, który nie jest podłączony lub skonfigurowany na regulatorze pompy ciepła. Jest to oczekiwane dla czujników opcjonalnych (np. sonda CWU na jednostkach bez zasobnika CWU). Ostrzeżenie można potwierdzić w TapHome.

### Zmiany trybu nie są stosowane

1. Sprawdź, czy urządzenie Active Mode pokazuje oczekiwany tryb po zapisie — rejestr odczytu (H:200) i rejestr zapisu (H:7200) są oddzielne, więc może wystąpić krótkie opóźnienie
2. Sprawdź, czy na regulatorze pompy ciepła nie jest aktywne lokalne nadpisanie lub blokada
3. Flaga włączenia zdalnego zapisu (H:7201 bit 0) jest ustawiana automatycznie przez szablon — jeśli komunikacja została przerwana, zostanie ponownie włączona w następnym cyklu odpytywania

## Dostępne urządzenia 14

Te urządzenia pojawią się w TapHome po imporcie.

Sistema-Home 4..18(T) Moduł

Atrybuty serwisowe

|                                  |
|----------------------------------|
| Czas pracy sprężarki 1           |
| Czas pracy sprężarki 2           |
| Czas pracy sprężarki 3           |
| Czas pracy sprężarki 1 (obwód 2) |
| Czas pracy sprężarki 2 (obwód 2) |
| Czas pracy sprężarki 3 (obwód 2) |

Odczyt (moduł)

```taphome
#Enablement of writing the machine status remotely
var mod := MODBUSR(H, 7201, UINT16);
if(getbit(mod, 0) = 0, MODBUSW(H, 7201, Uint16, SETBIT(mod, 0, 1)));
#Errors
IF(GETBIT(MODBUSR(H, 950, Uint16),0)=1, ADDERROR("High pressure", "E001"));
IF(GETBIT(MODBUSR(H, 950, Uint16),1)=1, ADDERROR("Low pressure", "E002"));
IF(GETBIT(MODBUSR(H, 950, Uint16),2)=1, ADDERROR("Compressor thermal protection", "E003"));
IF(GETBIT(MODBUSR(H, 950, Uint16),3)=1, ADDERROR("Fan thermal protection", "E004"));
IF(GETBIT(MODBUSR(H, 950, Uint16),4)=1, ADDERROR("Frost", "E005"));
IF(GETBIT(MODBUSR(H, 950, Uint16),5)=1, ADDERROR("Lack of flow", "E006"));
IF(GETBIT(MODBUSR(H, 950, Uint16),6)=1, ADDERROR("DHW preparer low temperature", "E007"));
IF(GETBIT(MODBUSR(H, 950, Uint16),7)=1, ADDERROR("Lack of lubrication", "E008"));
IF(GETBIT(MODBUSR(H, 950, Uint16),8)=1, ADDERROR("High discharge temperature of Cp1", "E009"));
IF(GETBIT(MODBUSR(H, 950, Uint16),9)=1, ADDERROR("Solar collector at high temperature", "E010"));
IF(GETBIT(MODBUSR(H, 950, Uint16),12)=1, ADDERROR("Compressor 2 thermal protection", "E013"));
IF(GETBIT(MODBUSR(H, 950, Uint16),13)=1, ADDERROR("Fan 2 thermal protection", "E014"));
IF(GETBIT(MODBUSR(H, 950, Uint16),15)=1, ADDERROR("Pump thermal protection", "E016"));

IF(GETBIT(MODBUSR(H, 951, Uint16),1)=1, ADDERROR("High temperature", "E018"));
IF(GETBIT(MODBUSR(H, 951, Uint16),2)=1, ADDERROR("High discharge temperature of Cp2", "E019"));
IF(GETBIT(MODBUSR(H, 951, Uint16),3)=1, ADDERROR("Inverted pressure transcuders", "E020"));
IF(GETBIT(MODBUSR(H, 951, Uint16),6)=1, ADDERROR("Compressor 3 thermal protection", "E023"));
IF(GETBIT(MODBUSR(H, 951, Uint16),7)=1, ADDERROR("Fan 3 thermal protection", "E024"));
IF(GETBIT(MODBUSR(H, 951, Uint16),9)=1, ADDERROR("Pump 2 thermal protection", "E026"));
IF(GETBIT(MODBUSR(H, 951, Uint16),11)=1, ADDERROR("Incongruent temperatures", "E041"));
IF(GETBIT(MODBUSR(H, 951, Uint16),12)=1, ADDERROR("Poor heat exchange DHW", "E042"));
IF(GETBIT(MODBUSR(H, 951, Uint16),13)=1, ADDERROR("DHW accumulation tank in high temperature", "E050"));
IF(GETBIT(MODBUSR(H, 951, Uint16),14)=1, ADDERROR("I/O module 1 disconnected", "E101"));
IF(GETBIT(MODBUSR(H, 951, Uint16),15)=1, ADDERROR("I/O module 2 disconnected", "E102"));

IF(GETBIT(MODBUSR(H, 952, Uint16),0)=1, ADDERROR("Probe 1 error", "E611"));
IF(GETBIT(MODBUSR(H, 952, Uint16),1)=1, ADDERROR("Probe 2 error", "E621"));
IF(GETBIT(MODBUSR(H, 952, Uint16),2)=1, ADDERROR("Probe 3 error", "E631"));
IF(GETBIT(MODBUSR(H, 952, Uint16),3)=1, ADDERROR("Probe 4 error", "E641"));
IF(GETBIT(MODBUSR(H, 952, Uint16),4)=1, ADDERROR("Probe 5 error", "E651"));
IF(GETBIT(MODBUSR(H, 952, Uint16),5)=1, ADDERROR("Probe 6 error", "E661"));
IF(GETBIT(MODBUSR(H, 952, Uint16),6)=1, ADDERROR("Probe 7 error", "E671"));
IF(GETBIT(MODBUSR(H, 952, Uint16),7)=1, ADDERROR("Probe 8 error", "E681"));
IF(GETBIT(MODBUSR(H, 952, Uint16),8)=1, ADDERROR("Probe 9 error", "E691"));
IF(GETBIT(MODBUSR(H, 952, Uint16),9)=1, ADDERROR("Probe 10 error", "E701"));
IF(GETBIT(MODBUSR(H, 952, Uint16),10)=1, ADDERROR("Probe 11 error", "E711"));
IF(GETBIT(MODBUSR(H, 952, Uint16),11)=1, ADDERROR("Module 1 probe 1 error", "E612"));
IF(GETBIT(MODBUSR(H, 952, Uint16),12)=1, ADDERROR("Module 1 probe 2 error", "E622"));
IF(GETBIT(MODBUSR(H, 952, Uint16),13)=1, ADDERROR("Module 1 probe 3 error", "E632"));
IF(GETBIT(MODBUSR(H, 952, Uint16),14)=1, ADDERROR("Module 1 probe 4 error", "E642"));
IF(GETBIT(MODBUSR(H, 952, Uint16),15)=1, ADDERROR("Module 1 probe 5 error", "E652"));

IF(GETBIT(MODBUSR(H, 953, Uint16),0)=1, ADDERROR("Module 1 probe 6 error", "E662"));
IF(GETBIT(MODBUSR(H, 953, Uint16),1)=1, ADDERROR("Module 1 probe 7 error", "E672"));
IF(GETBIT(MODBUSR(H, 953, Uint16),2)=1, ADDERROR("Module 1 probe 8 error", "E682"));
IF(GETBIT(MODBUSR(H, 953, Uint16),3)=1, ADDERROR("Module 1 probe 9 error", "E692"));
IF(GETBIT(MODBUSR(H, 953, Uint16),4)=1, ADDERROR("Module 1 probe 10 error", "E702"));
IF(GETBIT(MODBUSR(H, 953, Uint16),5)=1, ADDERROR("Module 1 probe 11 error", "E712"));
IF(GETBIT(MODBUSR(H, 953, Uint16),6)=1, ADDERROR("Module 2 probe 1 error", "E613"));
IF(GETBIT(MODBUSR(H, 953, Uint16),7)=1, ADDERROR("Module 2 probe 2 error", "E623"));
IF(GETBIT(MODBUSR(H, 953, Uint16),8)=1, ADDERROR("Module 2 probe 3 error", "E633"));
IF(GETBIT(MODBUSR(H, 953, Uint16),9)=1, ADDERROR("Module 2 probe 4 error", "E643"));
IF(GETBIT(MODBUSR(H, 953, Uint16),10)=1, ADDERROR("Module 2 probe 5 error", "E653"));
IF(GETBIT(MODBUSR(H, 953, Uint16),11)=1, ADDERROR("Module 2 probe 6 error", "E663"));
IF(GETBIT(MODBUSR(H, 953, Uint16),12)=1, ADDERROR("Module 2 probe 7 error", "E673"));
IF(GETBIT(MODBUSR(H, 953, Uint16),13)=1, ADDERROR("Module 2 probe 8 error", "E683"));
IF(GETBIT(MODBUSR(H, 953, Uint16),14)=1, ADDERROR("Module 2 probe 9 error", "E693"));
IF(GETBIT(MODBUSR(H, 953, Uint16),15)=1, ADDERROR("Module 2 probe 10 error", "E703"));

IF(GETBIT(MODBUSR(H, 954, Uint16),0)=1, ADDERROR("Module 2 probe 11 error", "E713"));
IF(GETBIT(MODBUSR(H, 954, Uint16),1)=1, ADDERROR("Link inverter 1", "E801"));
IF(GETBIT(MODBUSR(H, 954, Uint16),2)=1, ADDERROR("Link inverter 2", "E802"));
IF(GETBIT(MODBUSR(H, 954, Uint16),3)=1, ADDERROR("Link inverter 3", "E803"));
IF(GETBIT(MODBUSR(H, 954, Uint16),4)=1, ADDERROR("Hardware fault inverter 1", "E851"));
IF(GETBIT(MODBUSR(H, 954, Uint16),5)=1, ADDERROR("Hardware fault inverter 2", "E852"));
IF(GETBIT(MODBUSR(H, 954, Uint16),6)=1, ADDERROR("Hardware fault inverter 3", "E853"));
IF(GETBIT(MODBUSR(H, 954, Uint16),7)=1, ADDERROR("Overcurrent inverter 1", "E861"));
IF(GETBIT(MODBUSR(H, 954, Uint16),8)=1, ADDERROR("Overcurrent inverter 2", "E862"));
IF(GETBIT(MODBUSR(H, 954, Uint16),9)=1, ADDERROR("Overcurrent inverter 3", "E863"));
IF(GETBIT(MODBUSR(H, 954, Uint16),10)=1, ADDERROR("High temperature inverter 1", "E871"));
IF(GETBIT(MODBUSR(H, 954, Uint16),11)=1, ADDERROR("High temperature inverter 2", "E872"));
IF(GETBIT(MODBUSR(H, 954, Uint16),12)=1, ADDERROR("High temperature inverter 3", "E873"));
IF(GETBIT(MODBUSR(H, 954, Uint16),13)=1, ADDERROR("Bad voltage inverter 1", "E881"));
IF(GETBIT(MODBUSR(H, 954, Uint16),14)=1, ADDERROR("Bad voltage inverter 2", "E882"));
IF(GETBIT(MODBUSR(H, 954, Uint16),15)=1, ADDERROR("Bad voltage inverter 3", "E883"));

IF(GETBIT(MODBUSR(H, 955, Uint16),0)=1, ADDERROR("Phase sequence inverter 1", "E891"));
IF(GETBIT(MODBUSR(H, 955, Uint16),1)=1, ADDERROR("Phase sequence inverter 2", "E892"));
IF(GETBIT(MODBUSR(H, 955, Uint16),2)=1, ADDERROR("Phase sequence inverter 3", "E893"));
IF(GETBIT(MODBUSR(H, 955, Uint16),3)=1, ADDERROR("Model error inverter 1", "E901"));
IF(GETBIT(MODBUSR(H, 955, Uint16),4)=1, ADDERROR("Model error inverter 2", "E902"));
IF(GETBIT(MODBUSR(H, 955, Uint16),5)=1, ADDERROR("Model error inverter 3", "E903"));
IF(GETBIT(MODBUSR(H, 955, Uint16),6)=1, ADDERROR("Overload error inverter 1", "E911"));
IF(GETBIT(MODBUSR(H, 955, Uint16),7)=1, ADDERROR("Overload error inverter 2", "E912"));
IF(GETBIT(MODBUSR(H, 955, Uint16),8)=1, ADDERROR("Overload error inverter 3", "E913"));
IF(GETBIT(MODBUSR(H, 955, Uint16),9)=1, ADDERROR("Overcurrent PFC inverter 1", "E921"));
IF(GETBIT(MODBUSR(H, 955, Uint16),10)=1, ADDERROR("Overcurrent PFC inverter 2", "E922"));
IF(GETBIT(MODBUSR(H, 955, Uint16),11)=1, ADDERROR("Overcurrent PFC inverter 3", "E923"));
IF(GETBIT(MODBUSR(H, 955, Uint16),12)=1, ADDERROR("Internal communication error inverter 1", "E931"));
IF(GETBIT(MODBUSR(H, 955, Uint16),13)=1, ADDERROR("Internal communication error inverter 2", "E932"));
IF(GETBIT(MODBUSR(H, 955, Uint16),14)=1, ADDERROR("Internal communication error inverter 3", "E933"));
IF(GETBIT(MODBUSR(H, 955, Uint16),15)=1, ADDERROR("Fault PFC inverter 1", "E941"));

IF(GETBIT(MODBUSR(H, 956, Uint16),0)=1, ADDERROR("Fault PFC inverter 2", "E942"));
IF(GETBIT(MODBUSR(H, 956, Uint16),1)=1, ADDERROR("Fault PFC inverter 3", "E943"));
IF(GETBIT(MODBUSR(H, 956, Uint16),2)=1, ADDERROR("Probe error inverter 1", "E951"));
IF(GETBIT(MODBUSR(H, 956, Uint16),3)=1, ADDERROR("Probe error inverter 2", "E952"));
IF(GETBIT(MODBUSR(H, 956, Uint16),4)=1, ADDERROR("Probe error inverter 3", "E953"));
IF(GETBIT(MODBUSR(H, 956, Uint16),5)=1, ADDERROR("Abnormal condition inverter 1", "E961"));
IF(GETBIT(MODBUSR(H, 956, Uint16),6)=1, ADDERROR("Abnormal condition inverter 2", "E962"));
IF(GETBIT(MODBUSR(H, 956, Uint16),7)=1, ADDERROR("Abnormal condition inverter 3", "E963"));
IF(GETBIT(MODBUSR(H, 956, Uint16),8)=1, ADDERROR("Inverter 1 EEPROM error", "E971"));
IF(GETBIT(MODBUSR(H, 956, Uint16),9)=1, ADDERROR("Inverter 2 EEPROM error", "E972"));
IF(GETBIT(MODBUSR(H, 956, Uint16),10)=1, ADDERROR("Inverter 3 EEPROM error", "E973"));
IF(GETBIT(MODBUSR(H, 956, Uint16),11)=1, ADDERROR("High discharge temperature of Cp3", "E029"));
IF(GETBIT(MODBUSR(H, 956, Uint16),12)=1, ADDWARNING("Anti-legionella performed correctly", "E060"));
IF(GETBIT(MODBUSR(H, 956, Uint16),13)=1, ADDERROR("Anti-legionella failed or stopped", "E061"));
```

Atrybuty serwisowe

Compressor 1 runtime

```taphome
MODBUSR(H, 305, Uint16) + "h"
```

Compressor 2 runtime

```taphome
MODBUSR(H, 307, Uint16) + "h"
```

Compressor 3 runtime

```taphome
MODBUSR(H, 309, Uint16) + "h"
```

Compressor 1 runtime (circuit 2)

```taphome
MODBUSR(H, 313, Uint16) + "h"
```

Compressor 2 runtime (circuit 2)

```taphome
MODBUSR(H, 315, Uint16) + "h"
```

Compressor 3 runtime (circuit 2)

```taphome
MODBUSR(H, 317, Uint16) + "h"
```

Tryb aktywny Przełącznik wielowartościowy Odczyt i zapis

Wybór trybu pracy — Stand by, Cool, Heat, Sanitary (CWU), Cool+DHW, Heat+DHW

Rejestr: H:200 → H:7200 Int16 numeric

Wartości / Stany: Stand by · Cool · Heat · Cool+DHW · Heat+DHW

Akcje serwisowe

|                    |                                                                    |
|--------------------|--------------------------------------------------------------------|
| Wartość zadana CWU | Ustawienie temperatury docelowej ciepłej wody użytkowej (25–55 °C) |

Odczyt stanu przełącznika

```taphome
MODBUSR(H, 200, Int16)
```

Zapis stanu przełącznika

```taphome
MODBUSW(H, 7200, int16, Mu)
```

Akcje serwisowe

DHW (sanitary) setpoint

Parametry: Temp setpoint (25–55 ts)

```taphome
MODBUSW(H, 7205, Uint16, ts*10);
```

Temperatura tłoczenia sprężarki Czujnik temperatury Tylko do odczytu

Temperatura tłoczenia sprężarki 1 z atrybutami serwisowymi dla wszystkich czujników tłoczenia sprężarek w obu obwodach

Rejestr: H:433 Int16 Jednostka: °C numeric

Atrybuty serwisowe

|                                 |
|---------------------------------|
| Tłoczenie sprężarki 1           |
| Tłoczenie sprężarki 2           |
| Tłoczenie sprężarki 3           |
| Ssanie sprężarki (obwód 2)      |
| Tłoczenie sprężarki 1 (obwód 2) |
| Tłoczenie sprężarki 2 (obwód 2) |
| Tłoczenie sprężarki 3 (obwód 2) |

Odczyt temperatury

```taphome
MODBUSR(H, 433, Int16) / 10
```

Atrybuty serwisowe

Compressor discharge 1

```taphome
var temp := MODBUSR(H, 433, Int16);
if(temp = 32766, "Not configured", temp/10 + "°C");
```

Compressor discharge 2

```taphome
var temp := MODBUSR(H, 434, Int16);
if(temp = 32766, "Not configured", temp/10 + "°C");
```

Compressor discharge 3

```taphome
var temp := MODBUSR(H, 435, Int16);
if(temp = 32766, "Not configured", temp/10 + "°C");
```

Compressor inhalation (circuit 2)

```taphome
var temp := MODBUSR(H, 20422, Int16);
if(temp = 32766, "Not configured", temp/10 + "°C");
```

Compressor 1 discharge (circuit 2)

```taphome
var temp := MODBUSR(H, 20433, Int16);
if(temp = 32766, "Not configured", temp/10 + "°C");
```

Compressor 2 discharge (circuit 2)

```taphome
var temp := MODBUSR(H, 20434, Int16);
if(temp = 32766, "Not configured", temp/10 + "°C");
```

Compressor 3 discharge (circuit 2)

```taphome
var temp := MODBUSR(H, 20435, Int16);
if(temp = 32766, "Not configured", temp/10 + "°C");
```

Wartość zadana chłodzenia Termostat Odczyt i zapis

Termostat wartości zadanej chłodzenia — temperatura bieżąca ze zbiornika mieszającego

Rejestr: H:1001 Int16 Jednostka: °C numeric

Odczyt temperatury

```taphome
MODBUSR(H, 440, Int16)/10
```

Odczyt temperatury zadanej

```taphome
MODBUSR(H, 1001, Int16) / 10
```

Zapis temperatury zadanej

```taphome
MODBUSW(H, 1001, Int16, Se * 10)
```

Temperatura CWU Czujnik temperatury Tylko do odczytu

Temperatura ciepłej wody użytkowej z wykrywaniem usterek (ostrzeżenia Not configured / Fault)

Rejestr: H:405 Int16 Jednostka: °C numeric

Atrybuty serwisowe

|        |
|--------|
| Status |

Odczyt temperatury

```taphome
var reg := MODBUSR(H, 405, Int16);
SWITCH(reg, 32766, ADDWARNING("DHW temperature not configured"), 32767, ADDWARNING("DHW temperature at fault"), Return(reg/10));
Return (nan);
```

Atrybuty serwisowe

Status

```taphome
SWITCH(MODBUSR(H, 405, Uint16), 32766, "Not configured", 32767, "Fault", "Ok")
```

Prędkość wentylatora Ściemniacz Tylko do odczytu

Prędkość wentylatora tylko do odczytu w procentach

Rejestr: H:7000 Int16 Jednostka: % numeric

Odczyt poziomu

```taphome
MODBUSR(H, 7000, Int16)/1000
```

Wartość zadana ogrzewania Termostat Odczyt i zapis

Termostat wartości zadanej ogrzewania — temperatura bieżąca ze zbiornika mieszającego

Rejestr: H:1002 Int16 Jednostka: °C numeric

Odczyt temperatury

```taphome
MODBUSR(H, 440, Int16)/10
```

Odczyt temperatury zadanej

```taphome
MODBUSR(H, 1002, Int16) / 10
```

Zapis temperatury zadanej

```taphome
MODBUSW(H, 1002, Int16, Se * 10)
```

Wysokie ciśnienie Zmienna Tylko do odczytu

Ciśnienie czynnika chłodniczego po stronie wysokiej w bar z atrybutem serwisowym dla obwodu 2

Rejestr: H:406 Int16 Jednostka: bar numeric

Atrybuty serwisowe

|                           |
|---------------------------|
| Wysokie ciśnienie obwód 2 |

Odczyt

```taphome
MODBUSR(H, 406, Int16)/100
```

Atrybuty serwisowe

High Pressure Circuit 2

```taphome
MODBUSR(H, 20406, Int16)/100 + " bar"
```

Niskie ciśnienie Zmienna Tylko do odczytu

Ciśnienie czynnika chłodniczego po stronie niskiej w bar z atrybutem serwisowym dla obwodu 2

Rejestr: H:414 Int16 Jednostka: bar numeric

Atrybuty serwisowe

|                          |
|--------------------------|
| Niskie ciśnienie obwód 2 |

Odczyt

```taphome
MODBUSR(H, 414, Int16)/100
```

Atrybuty serwisowe

Low Pressure Circuit 2

```taphome
MODBUSR(H, 20414, Int16)/100 + " bar"
```

Temperatura zewnętrzna Czujnik temperatury Tylko do odczytu

Rejestr: H:428 Int16 Jednostka: °C numeric

Odczyt temperatury

```taphome
MODBUSR(H, 428, int16) / 10
```

Temperatura instalacji (zbiornik mieszający) Czujnik temperatury Tylko do odczytu

Temperatura zbiornika buforowego/mieszającego — używana również jako referencyjna temperatura bieżąca dla termostatów ogrzewania i chłodzenia

Rejestr: H:440 Int16 Jednostka: °C numeric

Odczyt temperatury

```taphome
MODBUSR(H, 440, Int16)/10
```

Prędkość pompy Ściemniacz Tylko do odczytu

Prędkość pompy obiegowej tylko do odczytu w procentach

Rejestr: H:7001 Int16 Jednostka: % numeric

Odczyt poziomu

```taphome
MODBUSR(H, 7001, Int16)/1000
```

Przepływ wody Zmienna Tylko do odczytu

Przepływ wody w l/min z wykrywaniem usterek (ostrzeżenia Not configured / Fault)

Rejestr: H:444 Int16 Jednostka: l/min numeric

Atrybuty serwisowe

|        |
|--------|
| Status |

Odczyt

```taphome
var reg := MODBUSR(H, 444, Int16);
SWITCH(reg, 32766, ADDWARNING("Water flow not configured"), 32767, ADDWARNING("Water flow at fault"), Return(reg/10));
Return (nan);
```

Atrybuty serwisowe

Status

```taphome
SWITCH(MODBUSR(H, 405, Uint16), 32766, "Not configured", 32767, "Fault", "Ok")
```

Temperatura wody na wlocie Czujnik temperatury Tylko do odczytu

Rejestr: H:400 Int16 Jednostka: °C numeric

Odczyt temperatury

```taphome
MODBUSR(H, 400, Int16) / 10
```

Temperatura wody na wylocie Czujnik temperatury Tylko do odczytu

Rejestr: H:401 Int16 Jednostka: °C numeric

Odczyt temperatury

```taphome
MODBUSR(H, 401, Int16) / 10
```

**Połączenie:** Modbus RTU • 9600 baud• 8E1 • Slave ID: $\[SlaveId]

Możliwe ulepszenia (2)

- H:422 Compressor Inhalation Temperature — Int16, /10 = °C. Register H:422 is listed in report but template device named 'Compressor inhalation' actually reads H:433 (discharge). True inhalation temp is not exposed as a primary device
- H:7201 Remote Write Enable (direct access) — UInt16 bit 0 — module readscript auto-enables this on every poll. Not exposed as a standalone device but could be useful for manual override

## Parametry importu

Te wartości podajesz podczas importu pliku XML.

| Pytanie w aplikacji | Domyślnie     |
|---------------------|---------------|
| Slave Id            | `1`           |
| IP address          | `192.168.1.0` |

## Powiązana dokumentacja

- [Modbus Integration](https://taphome.com/pl/compatibility/modbus-guide/)
- [Modbus](https://taphome.com/pl/docs/integration/modbus/)
- [Prosta konfiguracja za pomocą szablonów](https://taphome.com/pl/docs/integration/modbus/templates/)
- [Skrypty Modbus i prefetch](https://taphome.com/pl/docs/script/modbus-scripts/)
- [Funkcje Modbus](https://taphome.com/pl/docs/script/modbus/)
- [Typy danych Modbus](https://taphome.com/pl/docs/script/modbus-data-types/)

