TapHome

Sistema Sistema-Home 4..18(T)

Modbus RTU
Eingereicht von
Zuletzt aktualisiert: 04. 2026

Erfordert externes Gateway

TapHome Modbus RTU CCU — Produktseite

Sistema Sistema-Home 4..18(T)

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
  • GNDGND (erforderlich für zuverlässige Kommunikation)

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:

ParameterWert
Baudrate9600
Datenbits8
ParitätGerade
Stoppbits1
Slave-ID1 (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:

WertModusBeschreibung
0Stand byWärmepumpe im Ruhezustand
1CoolNur Kühlung
2HeatNur Heizung
4SanitaryNur Warmwasserbereitung
5Cool+DHWKühlung mit Warmwasser
6Heat+DHWHeizung 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 aller Verdichter in beiden Kältemittelkreisen

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.

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

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)

Sistema-Home 4..18(T) heatpump

Lesen (Modul)
#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
MODBUSR(H, 305, Uint16) + "h"
Compressor 2 runtime
MODBUSR(H, 307, Uint16) + "h"
Compressor 3 runtime
MODBUSR(H, 309, Uint16) + "h"
Compressor 1 runtime (circuit 2)
MODBUSR(H, 313, Uint16) + "h"
Compressor 2 runtime (circuit 2)
MODBUSR(H, 315, Uint16) + "h"
Compressor 3 runtime (circuit 2)
MODBUSR(H, 317, Uint16) + "h"
Aktiver Modus Mehrwertschalter

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

Register: H:200H:7200 Int16 numeric
Werte / Zustände: Stand by · Cool · Heat · Sanitary · Cool+DHW · Heat+DHW
Serviceaktionen
Warmwasser-SollwertWarmwasser-Zieltemperatur einstellen (25–55 °C)

Aktiver Modus

Schaltzustand lesen
MODBUSR(H, 200, Int16)
Schaltzustand schreiben
MODBUSW(H, 7200, int16, Mu)
Serviceaktionen
DHW (sanitary) setpoint
Parameter: Temp setpoint (25–55 ts)
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)

Druckgastemperatur Verdichter

Temperatur lesen
MODBUSR(H, 433, Int16) / 10
Serviceattribute
Compressor discharge 1
var temp := MODBUSR(H, 433, Int16);
if(temp = 32766, "Not configured", temp/10 + "°C");
Compressor discharge 2
var temp := MODBUSR(H, 434, Int16);
if(temp = 32766, "Not configured", temp/10 + "°C");
Compressor discharge 3
var temp := MODBUSR(H, 435, Int16);
if(temp = 32766, "Not configured", temp/10 + "°C");
Compressor inhalation (circuit 2)
var temp := MODBUSR(H, 20422, Int16);
if(temp = 32766, "Not configured", temp/10 + "°C");
Compressor 1 discharge (circuit 2)
var temp := MODBUSR(H, 20433, Int16);
if(temp = 32766, "Not configured", temp/10 + "°C");
Compressor 2 discharge (circuit 2)
var temp := MODBUSR(H, 20434, Int16);
if(temp = 32766, "Not configured", temp/10 + "°C");
Compressor 3 discharge (circuit 2)
var temp := MODBUSR(H, 20435, Int16);
if(temp = 32766, "Not configured", temp/10 + "°C");
Kühlsollwert Thermostat

Kühlsollwert-Thermostat — aktuelle Temperatur vom Mischspeicher

Register: H:1001 Int16 Einheit: °C numeric

Kühlsollwert

Temperatur lesen
MODBUSR(H, 440, Int16)/10
Solltemperatur lesen
MODBUSR(H, 1001, Int16) / 10
Solltemperatur schreiben
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

Warmwassertemperatur

Temperatur lesen
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
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

Ventilatordrehzahl

Level lesen
MODBUSR(H, 7000, Int16)/1000
Heizsollwert Thermostat

Heizsollwert-Thermostat — aktuelle Temperatur vom Mischspeicher

Register: H:1002 Int16 Einheit: °C numeric

Heizsollwert

Temperatur lesen
MODBUSR(H, 440, Int16)/10
Solltemperatur lesen
MODBUSR(H, 1002, Int16) / 10
Solltemperatur schreiben
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

Hochdruck

Lesen
MODBUSR(H, 406, Int16)/100
Serviceattribute
High Pressure Circuit 2
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

Niederdruck

Lesen
MODBUSR(H, 414, Int16)/100
Serviceattribute
Low Pressure Circuit 2
MODBUSR(H, 20414, Int16)/100 + " bar"
Außentemperatur Temperatursensor Nur lesen
Register: H:428 Int16 Einheit: °C numeric

Außentemperatur

Temperatur lesen
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

Anlagentemperatur (Mischspeicher)

Temperatur lesen
MODBUSR(H, 440, Int16)/10
Pumpendrehzahl Dimmer Nur lesen

Umwälzpumpendrehzahl nur lesbar in Prozent

Register: H:7001 Int16 Einheit: % numeric

Pumpendrehzahl

Level lesen
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

Wasserdurchfluss

Lesen
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
SWITCH(MODBUSR(H, 405, Uint16), 32766, "Not configured", 32767, "Fault", "Ok")
Wassereinlasstemperatur Temperatursensor Nur lesen
Register: H:400 Int16 Einheit: °C numeric

Wassereinlasstemperatur

Temperatur lesen
MODBUSR(H, 400, Int16) / 10
Wasserauslasstemperatur Temperatursensor Nur lesen
Register: H:401 Int16 Einheit: °C numeric

Wasserauslasstemperatur

Temperatur lesen
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