---
title: "Sistema Sistema-Home 4..18(T)"
description: "Heiz-/Kühlmodi, Warmwasser und Sollwerte steuern, Temperaturen, Drücke, Durchfluss und 80+ Fehlercodes über Modbus RTU überwachen."
url: "https://taphome.com/de/compatibility/sistema-home-418t/"
language: de
lastmod: 2026-10-08
generator: hugo
ai:
  topics: ["modbus-rtu","heat-pump","rs485","dual-circuit","dhw"]
  questions: ["Wie integriere ich die Wärmepumpe Sistema-Home 4..18(T) mit TapHome?","Was überwacht und steuert die Sistema-Home 4..18(T) TapHome-Vorlage?","Wie verbinde ich die Sistema-Home Wärmepumpe über RS-485 mit TapHome?","Wie ändere ich den Betriebsmodus der Sistema-Home Wärmepumpe über Modbus?","Welche Fehlercodes meldet die Sistema-Home 4..18(T) Vorlage?","Wie stelle ich die Warmwassertemperatur der Sistema-Home Wärmepumpe aus der Ferne ein?"]
---

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

Kommunikation: Modbus RTU

## Integrationsanleitung

Die Sistema-Home 4..18(T) ist eine Zweikreis-Wärmepumpe, die über Modbus RTU (RS-485) kommuniziert. Die TapHome-Vorlage bietet Betriebsmodussteuerung mit Heiz-, Kühl- und Warmwassermodi, Sollwertregelung für Heiz- und Kühlkreis, Warmwasser-Sollwert und umfassende Überwachung von Wassertemperaturen, Kältemitteldrücken, Ventilator- und Pumpendrehzahlen sowie Wasserdurchfluss. Die Vorlage meldet außerdem 80+ Fehlercodes vom Wärmepumpenregler über Bitfeld-Register.

Der Regler basiert wahrscheinlich auf einer CAREL pCO-Plattform (typisch für italienische OEM-Wärmepumpen). Die Registerkarte ist proprietär und alle technischen Informationen in dieser Vorlage stammen ausschließlich aus der XML-Vorlage — vom Hersteller ist keine öffentliche Dokumentation verfügbar.

## Hardwareverbindung

Die Sistema-Home 4..18(T) wird über ein Modbus RTU CCU Gateway per RS-485 Serienbus mit TapHome verbunden. Die Standard-Kommunikationsparameter sind 9600 Baud, 8 Datenbits, gerade Parität, 1 Stoppbit, Slave-ID 1.

Verbinden Sie die RS-485-Verkabelung zwischen dem Modbus-Port der Wärmepumpe und dem TapHome Modbus RTU CCU:

- **A+** an der Wärmepumpe → **A+/D+** am TapHome RS-485
- **B-** an der Wärmepumpe → **B-/D-** am TapHome RS-485
- **GND** → **GND** (erforderlich für zuverlässige Kommunikation)

> [!WARNING]
> Die GND-Leitung muss zwischen der Wärmepumpe und dem TapHome-Gateway verbunden sein. Ohne ordnungsgemäße Erdung sind Modbus-Kommunikationsfehler wahrscheinlich, besonders bei längeren Kabelstrecken.

## Konfiguration

### Fernschreibfreigabe

Die Vorlage aktiviert automatisch den Fernschreibzugriff bei jedem Abfragezyklus durch Setzen von Bit 0 des Registers H:7201. Das bedeutet, dass die Wärmepumpe Sollwert- und Modusänderungen von TapHome akzeptiert, sobald die Vorlage importiert ist — eine manuelle Konfiguration dieses Registers ist nicht erforderlich.

### Kommunikationsparameter

Überprüfen Sie, dass die folgenden Einstellungen zwischen Wärmepumpe und TapHome übereinstimmen:

| Parameter | Wert |
|-----------|------|
| Baudrate | 9600 |
| Datenbits | 8 |
| Parität | Gerade |
| Stoppbits | 1 |
| Slave-ID | 1 (Standard) |

Wenn die Slave-ID an der Wärmepumpe von 1 abweicht, aktualisieren Sie den Slave-ID-Importparameter in TapHome entsprechend.

## Gerätefunktionen

### Betriebsmodussteuerung

Das Gerät **Active Mode** wählt den Betriebsmodus der Wärmepumpe. Verfügbare Modi:

| Wert | Modus | Beschreibung |
|------|-------|--------------|
| 0 | Stand by | Wärmepumpe im Ruhezustand |
| 1 | Cool | Nur Kühlung |
| 2 | Heat | Nur Heizung |
| 4 | Sanitary | Nur Warmwasserbereitung |
| 5 | Cool+DHW | Kühlung mit Warmwasser |
| 6 | Heat+DHW | Heizung mit Warmwasser |

Die Moduswerte 3, 7, 8 und 9 sind in der Vorlage definiert, haben aber keine aussagekräftigen Namen — sie erscheinen als Platzhalterziffern und sind möglicherweise reserviert oder bei dieser Reglervariante ungenutzt.

Eine Service-Aktion **DHW (Sanitary) Setpoint** am Gerät Active Mode ermöglicht das Einstellen der Warmwasser-Zieltemperatur (Bereich 25–55 °C).

### Sollwertregelung

Zwei Thermostatgeräte steuern die Heiz- und Kühlsollwerte:

- **Heat Setpoint** — Lesen/Schreiben des Heizsollwerts (H:1002). Die aktuelle Referenztemperatur ist der Mischspeicherfühler (H:440).
- **Cool Setpoint** — Lesen/Schreiben des Kühlsollwerts (H:1001). Verwendet dieselbe Mischspeichertemperatur als aktuellen Wert.

Beide Sollwerte verwenden eine ×10-Konvertierung (z. B. Registerwert 350 = 35,0 °C).

### Temperaturüberwachung

Sechs Temperatursensoren bieten thermische Überwachung im gesamten System:

- **Outside Temperature** — Außentemperatur (H:428, Abfrage alle 30 s)
- **Plant Temperature (Mixing Tank)** — Puffer-/Mischspeichertemperatur (H:440), wird auch als aktuelle Referenztemperatur für beide Thermostate verwendet
- **Water Inlet Temperature** — Wärmetauscher-Wassereinlasstemperatur (H:400)
- **Water Outlet Temperature** — Wärmetauscher-Wasserauslasstemperatur (H:401)
- **DHW Temperature** — Warmwasserspeichertemperatur (H:405), mit Fehlererkennung (meldet eine Warnung, wenn der Sensor "Not configured" oder "Fault" liest)
- **Compressor Discharge Temperature** — Druckgastemperatur Verdichter 1 (H:433), mit 7 Serviceattributen für die Druckgastemperaturen der Verdichter beider Kältemittelkreise und die Sauggastemperatur des Verdichters in Kreis 2

> [!NOTE]
> Das Vorlagengerät mit dem Namen "Compressor inhalation" liest tatsächlich Register H:433, was laut Registerkarte dem Druckgas des Verdichters 1 entspricht. Das tatsächliche Sauggasregister des Verdichters (H:422) wird nicht als primäres Gerät bereitgestellt. Der Anzeigename in TapHome spiegelt die korrigierte Funktion wider (Compressor Discharge Temperature).

### Kältemitteldrucküberwachung

Zwei Drucksensoren überwachen die Kältemittelkreise:

- **High Pressure** — Kältemittel-Hochdruck in bar (H:406), mit Serviceattribut für Kreis 2 (H:20406)
- **Low Pressure** — Kältemittel-Niederdruck in bar (H:414), mit Serviceattribut für Kreis 2 (H:20414)

### Ventilator- und Pumpendrehzahl

- **Fan Speed** — Ventilatordrehzahl nur lesbar in Prozent (H:7000, ÷1000-Konvertierung)
- **Pump Speed** — Umwälzpumpendrehzahl nur lesbar in Prozent (H:7001, ÷1000-Konvertierung)

### Wasserdurchfluss

Der Sensor **Water Flow Rate** misst den Systemwasserdurchfluss in l/min (H:444). Er enthält Fehlererkennung — eine Warnung wird ausgelöst, wenn der Sensor "Not configured" (32766) oder "Fault" (32767) meldet.

> [!WARNING]
> Das Serviceattribut des Water Flow Rate-Status liest Register H:405 (das Warmwassertemperatur-Register) statt H:444. Dies scheint ein Vorlagenfehler zu sein — der Status spiegelt möglicherweise nicht genau den Zustand des Durchflusssensors wider.

### Verdichter-Laufzeitüberwachung

Sechs Serviceattribute auf Modulebene erfassen die Betriebsstunden der Verdichter:

- **Compressor 1/2/3 Runtime** — kumulative Stunden für Verdichter in Kreis 1 (H:305, H:307, H:309)
- **Compressor 1/2/3 Runtime (Circuit 2)** — kumulative Stunden für Verdichter in Kreis 2 (H:313, H:315, H:317)

### Fehlerüberwachung

Das Modul-ReadScript überwacht Register H:950 bis H:956 (7 Bitfeld-Register) und meldet 80+ verschiedene Fehler- und Warncodes. Wichtige Fehlerkategorien:

- **Kältekreisstörungen** — Hochdruck (E001), Niederdruck (E002), Frost (E005)
- **Thermischer Schutz** — Verdichter (E003, E013, E023), Ventilator (E004, E014, E024), Pumpe (E016, E026)
- **Temperaturstörungen** — hohe Druckgastemperatur (E009, E019, E029), Übertemperatur (E018), inkonsistente Temperaturen (E041)
- **Warmwasserstörungen** — schlechter Wärmeaustausch (E042), Speicherüberhitzung (E050), Anti-Legionellen-Status (E060/E061)
- **Sensorfehler** — Sondenfehler für bis zu 11 Sonden über 3 I/O-Module (E611–E713)
- **Wechselrichterstörungen** — Kommunikationsfehler, Hardwarefehler, Überstrom, Überhitzung, Spannungsfehler, Phasenfolge-Fehler, EEPROM-Fehler für bis zu 3 Wechselrichter (E801–E973)
- **I/O-Modulstörungen** — Modul 1/2 getrennt (E101, E102)

### Weitere Funktionen

Der Wärmepumpenregler stellt außerdem ein Sauggastemperatur-Register (H:422) und ein Fernschreibfreigabe-Flag (H:7201) bereit, das automatisch von der Vorlage verwaltet wird. Diese können in einem zukünftigen Vorlagen-Update als eigenständige Geräte hinzugefügt werden, wenn eine direkte Überwachung der Sauggastemperatur benötigt wird.

## Fehlerbehebung

### Keine Modbus-Kommunikation

1. RS-485-Verkabelung prüfen — A+ auf A+, B- auf B-, GND verbunden
2. Kommunikationsparameter bestätigen: 9600 Baud, 8E1, Slave-ID 1
3. Kabellänge und Terminierung prüfen — bei langen Strecken kann ein 120-Ohm-Abschlusswiderstand am letzten Gerät auf dem Bus erforderlich sein
4. Sicherstellen, dass die Modbus-Schnittstelle am Wärmepumpenregler aktiviert ist (Reglermenü vor Ort konsultieren)

### Sensoren zeigen "Not configured"-Warnung

Register, die den Spezialwert 32766 zurückgeben, zeigen einen Sensor an, der am Wärmepumpenregler nicht angeschlossen oder konfiguriert ist. Dies ist bei optionalen Sensoren zu erwarten (z. B. Warmwasserfühler an Geräten ohne Warmwasserspeicher). Die Warnung kann in TapHome bestätigt werden.

### Modusänderungen werden nicht wirksam

1. Überprüfen, dass das Gerät Active Mode nach dem Schreiben den erwarteten Modus anzeigt — Leseregister (H:200) und Schreibregister (H:7200) sind getrennt, daher kann eine kurze Verzögerung auftreten
2. Prüfen, ob am Wärmepumpenregler eine lokale Übersteuerung oder Sperrung aktiv ist
3. Das Fernschreibfreigabe-Flag (H:7201 Bit 0) wird automatisch von der Vorlage gesetzt — bei Kommunikationsunterbrechung wird es beim nächsten Abfragezyklus erneut aktiviert

## Verfügbare Geräte 14

Diese Geräte erscheinen nach dem Import in TapHome.

Sistema-Home 4..18(T) Modul

Serviceattribute

|                                 |
|---------------------------------|
| Verdichter 1 Laufzeit           |
| Verdichter 2 Laufzeit           |
| Verdichter 3 Laufzeit           |
| Verdichter 1 Laufzeit (Kreis 2) |
| Verdichter 2 Laufzeit (Kreis 2) |
| Verdichter 3 Laufzeit (Kreis 2) |

Lesen (Modul)

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

Serviceattribute

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

Aktiver Modus Mehrwertschalter Lesen und Schreiben

Betriebsmodusauswahl — Stand by, Cool, Heat, Sanitary (Warmwasser), Cool+DHW, Heat+DHW

Register: H:200 → H:7200 Int16 numeric

Werte / Zustände: Stand by · Cool · Heat · Cool+DHW · Heat+DHW

Serviceaktionen

|                     |                                                 |
|---------------------|-------------------------------------------------|
| Warmwasser-Sollwert | Warmwasser-Zieltemperatur einstellen (25–55 °C) |

Schaltzustand lesen

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

Schaltzustand schreiben

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

Serviceaktionen

DHW (sanitary) setpoint

Parameter: Temp setpoint (25–55 ts)

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

Druckgastemperatur Verdichter Temperatursensor Nur lesen

Druckgastemperatur Verdichter 1 mit Serviceattributen für alle Verdichter-Druckgassensoren in beiden Kreisen

Register: H:433 Int16 Einheit: °C numeric

Serviceattribute

|                                 |
|---------------------------------|
| Druckgas Verdichter 1           |
| Druckgas Verdichter 2           |
| Druckgas Verdichter 3           |
| Sauggas Verdichter (Kreis 2)    |
| Druckgas Verdichter 1 (Kreis 2) |
| Druckgas Verdichter 2 (Kreis 2) |
| Druckgas Verdichter 3 (Kreis 2) |

Temperatur lesen

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

Serviceattribute

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

Kühlsollwert Thermostat Lesen und Schreiben

Kühlsollwert-Thermostat — aktuelle Temperatur vom Mischspeicher

Register: H:1001 Int16 Einheit: °C numeric

Temperatur lesen

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

Solltemperatur lesen

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

Solltemperatur schreiben

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

Warmwassertemperatur Temperatursensor Nur lesen

Warmwassertemperatur mit Fehlererkennung (Warnungen Not configured / Fault)

Register: H:405 Int16 Einheit: °C numeric

Serviceattribute

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

Temperatur lesen

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

Serviceattribute

Status

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

Ventilatordrehzahl Dimmer Nur lesen

Ventilatordrehzahl nur lesbar in Prozent

Register: H:7000 Int16 Einheit: % numeric

Level lesen

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

Heizsollwert Thermostat Lesen und Schreiben

Heizsollwert-Thermostat — aktuelle Temperatur vom Mischspeicher

Register: H:1002 Int16 Einheit: °C numeric

Temperatur lesen

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

Solltemperatur lesen

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

Solltemperatur schreiben

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

Hochdruck Variable Nur lesen

Kältemittel-Hochdruck in bar mit Serviceattribut für Kreis 2

Register: H:406 Int16 Einheit: bar numeric

Serviceattribute

|                   |
|-------------------|
| Hochdruck Kreis 2 |

Lesen

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

Serviceattribute

High Pressure Circuit 2

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

Niederdruck Variable Nur lesen

Kältemittel-Niederdruck in bar mit Serviceattribut für Kreis 2

Register: H:414 Int16 Einheit: bar numeric

Serviceattribute

|                     |
|---------------------|
| Niederdruck Kreis 2 |

Lesen

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

Serviceattribute

Low Pressure Circuit 2

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

Außentemperatur Temperatursensor Nur lesen

Register: H:428 Int16 Einheit: °C numeric

Temperatur lesen

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

Anlagentemperatur (Mischspeicher) Temperatursensor Nur lesen

Puffer-/Mischspeichertemperatur — wird auch als aktuelle Referenztemperatur für Heiz- und Kühlthermostate verwendet

Register: H:440 Int16 Einheit: °C numeric

Temperatur lesen

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

Pumpendrehzahl Dimmer Nur lesen

Umwälzpumpendrehzahl nur lesbar in Prozent

Register: H:7001 Int16 Einheit: % numeric

Level lesen

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

Wasserdurchfluss Variable Nur lesen

Wasserdurchfluss in l/min mit Fehlererkennung (Warnungen Not configured / Fault)

Register: H:444 Int16 Einheit: l/min numeric

Serviceattribute

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

Lesen

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

Serviceattribute

Status

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

Wassereinlasstemperatur Temperatursensor Nur lesen

Register: H:400 Int16 Einheit: °C numeric

Temperatur lesen

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

Wasserauslasstemperatur Temperatursensor Nur lesen

Register: H:401 Int16 Einheit: °C numeric

Temperatur lesen

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

**Verbindung:** Modbus RTU • 9600 baud• 8E1 • Slave ID: $\[SlaveId]

Mögliche Verbesserungen (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

## Importparameter

Diese Werte geben Sie beim Import des XML ein.

| In der App abgefragt | Standard      |
|----------------------|---------------|
| Slave Id             | `1`           |
| IP address           | `192.168.1.0` |

## Verwandte Dokumentation

- [Modbus Integration](https://taphome.com/de/compatibility/modbus-guide/)
- [Modbus](https://taphome.com/de/docs/integration/modbus/)
- [Einfache Konfiguration mit Vorlagen](https://taphome.com/de/docs/integration/modbus/templates/)
- [Modbus-Skripte und Prefetch](https://taphome.com/de/docs/script/modbus-scripts/)
- [Modbus-Funktionen](https://taphome.com/de/docs/script/modbus/)
- [Modbus-Datentypen](https://taphome.com/de/docs/script/modbus-data-types/)

