Dieser Beitrag bezieht sich auf die Steuerung einer Waterkotte Wärmepumpe über Modbus und Home Assistant. Dies ist in diesem Artikel beschrieben. Den du zuerst lesen solltest. Hier findest du nur eine Reaktion darauf zur weiterführenden Lektüre….
Ich habe eine Zuschrift erhalten, von einem Bastler, der Probleme hat die WP mit dem Home Assistant zu verbinden. Hier stelle ich meine Versuche online zu helfen.
Das Mail :
Sehr geehrter Betreiber der Internetseite Losmuchachos.at!
Ich habe auch eine Waterkotte Wärmepumpe DS5011.3 mit dem WPCU.C Regler und möchte diese über Modbus regeln.Über das Programm CAS Modbus Scanner bekomme ich Werte,nur leider mit ihrer NodeRed und Homeassistant Programmierung geht nichts. Könnten Sie mir bitte weiterhelfen? Ich wäre Ihnen sehr dankbar!
Mit freundlichen Grüßen ….
Nach einiger gemeinsamer Tüftelei sind wir auf den Fehler gekommen. Die Verbindung wurde nicht durch ein Nullmodemkabel, sondern durch Kreuzen der RX/TX Kabel, sowie Verbinung von GND hergestellt. Dies reicht um das Gerät als „connected“ anzuzeigen, es kommen aber keine Werte. Nach Kauf des von mir empfohlenen RS232/TCP Converters mit Nullmodemkabel, hat es funktioniert.
Hallo, deine Wärmepumpen Integration ist 100% was ich gerade umsetze. Echt genial. Soweit hab ich alles ident zu deiner Anleitung umgesetzt und funktioniert auch gut. Dein Dashboard speziell die Display Anzeige wäre noch super hilfreich für Anfänger wie mich. Wenn Du hier noch was teilen könntest wäre echt MEGA.
Hmm. Ich versuche es gerne. Das ist meine Seite, die nur WP-Daten ausgibt. Ich hab noch eine Übersichtsseite, die die wichtigen Werte darstellt, aber da verwende ich sehr viele Werte, die von Logiken berechnet sind etc. Die hat man nicht direkt aus der Wärmepumpe. Da ist diese Seite besser geeignet. Viel Erfolg damit! Ich weiß nicht wie gut das funktioniert.
views:
– type: sections
max_columns: 4
icon: mdi:eye-outline
path: wp-main
title: WP_main
sections:
– type: grid
cards:
– type: tile
entity: switch.increaseoff_waterkotte
name: Turbo Deaktiviert
state_content: state
icon: mdi:car-turbocharger
icon_tap_action:
action: more-info
tap_action:
action: more-info
– type: tile
entity: switch.wateroff_waterkotte
name: WW Deaktiviert
state_content: state
icon: mdi:water
icon_tap_action:
action: more-info
tap_action:
action: more-info
– type: tile
entity: switch.heatoff_waterkotte
name: Heizung Deaktiviert
state_content: state
icon: mdi:heat-wave
icon_tap_action:
action: more-info
tap_action:
action: more-info
– type: tile
entity: binary_sensor.warmepumpeaktiv_waterkotte
– type: entities
entities:
– entity: sensor.returnreal_waterkotte
name: Rücklauf Ist
– entity: sensor.returnnominal_waterkotte
name: Rücklauf Soll
– entity: sensor.domesticwatertemp_waterkotte
name: WW ist
– entity: number.watertempnominal_waterkotte
name: WW soll
icon: mdi:thermometer-check
show_header_toggle: false
– type: entities
entities:
– entity: sensor.cop_waterkotte
name: COP
icon: mdi:exponent
– entity: sensor.pelectric_waterkotte
name: Leistung Elektrisch
secondary_info: none
– entity: sensor.flowtemp_waterkotte
name: Ausgangstemperatur
show_header_toggle: false
title: Leistungswerte
– type: entities
entities:
– entity: sensor.sensor_outsidetemp_waterkotte
name: Außentemperatur
icon: mdi:home-thermometer-outline
– entity: sensor.outsidetemp1h_waterkotte
name: Außentemperatur 1h
icon: mdi:home-thermometer-outline
– entity: sensor.outsidetemp24h_waterkotte
name: Außentemperatur 24h
icon: mdi:home-thermometer-outline
title: Sensoren
show_header_toggle: false
– type: heading
icon: mdi:sun-angle-outline
heading: Solaranteil
heading_style: title
– type: horizontal-stack
cards:
– type: gauge
name: Momentan
min: 0
needle: true
severity:
green: 75
yellow: 25
red: 0
max: 100
entity: sensor.wp_pvprozent_nodered
– type: gauge
min: 0
needle: true
severity:
green: 75
yellow: 25
red: 0
max: 100
entity: sensor.wp_anteil_pv_gesamt_prozent
name: Gesamt
– type: entity
entity: text.displaytext_waterkotte
grid_options:
columns: full
name: WW-Text
– type: entity
entity: text.heizung_displaytext_waterkotte
grid_options:
columns: full
name: Heizung Text
– type: grid
cards:
– type: custom:apexcharts-card
graph_span: 8h
header:
show: true
title: Leistung & COP
show_states: true
colorize_states: true
series:
– entity: sensor.pelectric_waterkotte
name: Leistung
curve: straight
type: line
yaxis_id: primary
stroke_width: 2
unit: W
– entity: sensor.cop_waterkotte
name: COP
unit: ‚ ‚
curve: straight
type: column
yaxis_id: secondary
fill_raw: zero
yaxis:
– id: primary
min: 0
max: auto
– id: secondary
min: 0
max: auto
opposite: true
– type: history-graph
hours_to_show: 12
entities:
– entity: binary_sensor.wp_heizzeit_nodered
name: Heizzeit
– entity: switch.heatoff_waterkotte
name: HeatOFF
– entity: binary_sensor.wp_turbozeit_nodered
name: Turbozeit
– entity: switch.increaseoff_waterkotte
name: TurboOFF
– entity: binary_sensor.wp_wasserzeit_nodered
name: Wasserzeit
– entity: switch.wateroff_waterkotte
name: Wasser OFF
– entity: sensor.returnreal_waterkotte
name: Rücklauf ist
– entity: sensor.returnnominal_waterkotte
name: RL soll
– entity: sensor.temperatur_buro
name: Temp Büro
– entity: sensor.pelectric_waterkotte
name: Leistung WP
– entity: counter.warmepumpe_starts
name: Kompressor Starts
– entity: binary_sensor.warmepumpeaktiv_waterkotte
name: Aktiv
– entity: sensor.domesticwatertemp_waterkotte
name: Wasser Ist
– entity: number.watertempnominal_waterkotte
name: Wasser Soll
– entity: binary_sensor.heizeninkuerze_nodered
name: bald Heizen
– entity: binary_sensor.wwinkuerze_nodered
name: bald WW
– entity: binary_sensor.wp_heizen_aktiv_waterkotte
name: Heizen aktiv
– entity: binary_sensor.wwheizen_aktiv_waterkotte
name: WW aktiv
title: 12h
– type: history-graph
entities:
– entity: sensor.delta_ist_soll_return_nodered
hours_to_show: 3
title: 3h
– type: grid
cards:
– type: heading
heading: Neuer Abschnitt
– type: tile
entity: binary_sensor.heizeninkuerze_nodered
– type: tile
entity: sensor.delta_ist_soll_return_nodered
– type: tile
entity: binary_sensor.wwinkuerze_nodered
– type: tile
entity: sensor.delta_ww_istsoll_nodered
– type: tile
entity: select.wp_status_nodered
– type: tile
entity: switch.ww_usehigherhysteresis_waterkotte
name: WW-erhöhte Hysterese
icon: mdi:thermometer-plus
icon_tap_action:
action: more-info
– type: tile
entity: switch.heizung_manuell_aus_waterkotte
icon_tap_action:
action: more-info
– type: tile
entity: text.heizung_grundfuerabschaltung
grid_options:
columns: full
– title: Wärmepumpe
cards: []
type: sections
icon: mdi:heat-pump-outline
sections:
– type: grid
cards:
– type: entities
entities:
– entity: switch.heatoff_waterkotte
name: Heizen deaktivieren
icon: mdi:heat-wave
– entity: time.heatingtimeon_waterkotte
name: Heizen ein
icon: mdi:clock-check-outline
– entity: time.heatingtimeoff_waterkotte
name: Heizen aus
icon: mdi:clock-minus-outline
– entity: sensor.returnreal_waterkotte
name: Rücklauf Ist
– entity: sensor.returnnominal_waterkotte
name: Rücklauf Soll
– entity: number.heatcurvestarttemp_waterkotte
name: Heizkurve Starttemperatur
icon: mdi:chart-bell-curve-cumulative
– entity: number.heatingcurvebasetemp_waterkotte
name: Heizkurve RücklaufSollBasis
icon: mdi:chart-bell-curve-cumulative
– entity: number.heatingcurvegradient_waterkotte
name: Heizkurve Steigung
icon: mdi:chart-bell-curve-cumulative
– entity: number.heatingcurvelimit_waterkotte
name: Heizkurve Max Limit
icon: mdi:chart-bell-curve-cumulative
– entity: number.heatingcurvehysteresis_waterkotte
– entity: switch.increaseoff_waterkotte
name: Turbo deaktivieren
icon: mdi:fan-alert
– entity: time.increasetimeon_waterkotte_2
name: ‚Turbo Ein ‚
icon: mdi:fan-clock
– entity: time.increasetimeoff_waterkotte
name: Turbo Aus
icon: mdi:timer-cancel
– entity: number.increaseoffset_waterkotte
title: Heizen
show_header_toggle: false
– type: entities
entities:
– entity: sensor.cop_waterkotte
name: COP
icon: mdi:exponent
– entity: sensor.pelectric_waterkotte
name: Leistung Elektrisch
secondary_info: none
– entity: sensor.pthermal_waterkotte
name: Leistung Thermal
– entity: sensor.sourceintemp_waterkotte
name: Quelle Eingangstemperatur
icon: mdi:water-pump
– entity: sensor.sourceouttemp_waterkotte
name: Quelle Ausgangstemperatur
icon: mdi:water-pump-off
– entity: counter.warmepumpe_starts
name: Kompressor Starts
icon: mdi:ray-start-arrow
show_header_toggle: false
title: Leistungswerte
– type: entities
entities:
– entity: sensor.condensationpress_waterkotte
name: Kondensator Druck
icon: mdi:car-brake-low-pressure
– entity: sensor.condensationtemp_waterkotte
name: Kondensator Temperatur
– entity: sensor.evaporatorpress_waterkotte
name: Verdampfer Druck
– entity: sensor.evaporatortemp_waterkotte
name: Verdampfer Temperatur
– entity: sensor.flowtemp_waterkotte
name: Ausgang Temperatur
– entity: sensor.suctionlinetemp_waterkotte
name: Saugleitung Temperatur
title: Systemwerte
show_header_toggle: false
– type: grid
cards:
– type: tile
entity: binary_sensor.heizeninkuerze_nodered
– type: tile
entity: binary_sensor.warmepumpeaktiv_waterkotte
– type: custom:apexcharts-card
graph_span: 8h
header:
show: true
title: Leistung & COP
show_states: true
colorize_states: true
series:
– entity: sensor.pelectric_waterkotte
name: Leistung
curve: straight
type: line
yaxis_id: primary
stroke_width: 2
unit: W
– entity: sensor.cop_waterkotte
name: COP
unit: ‚ ‚
curve: straight
type: column
yaxis_id: secondary
fill_raw: zero
yaxis:
– id: primary
min: 0
max: auto
– id: secondary
min: 0
max: auto
opposite: true
– type: entities
entities:
– entity: switch.wateroff_waterkotte
name: Warmwasser deaktivieren
icon: mdi:close-octagon-outline
– entity: time.watertimeon_waterkotte
name: WW einschalten
icon: mdi:timer-check-outline
– entity: time.watertimeoff_waterkotte
name: WW ausschalten
icon: mdi:timer-cancel-outline
– entity: sensor.domesticwatertemp_waterkotte
name: WW Temperatur
– entity: number.watertempnominal_waterkotte
name: WW Soll
icon: mdi:thermometer-water
– entity: number.waterhysteresis_waterkotte
name: WW Hysterese
icon: mdi:thermometer-water
title: Warmwasser
show_header_toggle: false
– type: entities
entities:
– entity: sensor.hourscompressor_waterkotte
name: Arbeitstsunden Kompressor
icon: mdi:fan-clock
– entity: sensor.hoursheating_waterkotte
name: Arbeitstsunden Heizung
icon: mdi:clock-fast
– entity: sensor.hourswater_waterkotte
name: Arbeitsstunden Wasser
icon: mdi:timeline-clock-outline
– entity: sensor.outsidetemp1h_waterkotte
name: Außentemperatur 1h
icon: mdi:home-thermometer-outline
– entity: sensor.outsidetemp24h_waterkotte
name: Außentemperatur 24h
icon: mdi:home-thermometer-outline
– entity: sensor.sensor_outsidetemp_waterkotte
name: Außentemperatur
icon: mdi:home-thermometer-outline
– entity: sensor.temperatur_buro
– entity: sensor.temperatur_kuche
– entity: sensor.wellbeing_luftreiniger_2_temp
name: Luftreiniger Praxis
– entity: sensor.temperatur_bad_eltern
– entity: sensor.aranet4_28652_temperature
title: Sensoren
show_header_toggle: false
Hallo, ich finde die Integration genial und ich möchte diese auch bei meiner DS5012 mit WPCU.C Controller einsetzen.
Auch die Beschreibung ist echt sehr cool gemacht und super einfach umzusetzen.
Vielen Dank an der Stelle für Deine tolle Arbeit!
Ich habe einen Waveshare RS232/485/422 to RJ45 Ethernet Module, TCP/IP to Serial, with POE im Einsatz mit der IP Adresse 192.168.1.220
Mit Deinem „ModbusHeizung.py“ habe ich den Verbindungstest erfolgreich geschafft.
Protokoll:
Es wird versucht zu einer Waterkotte Wärempumpe mit WCPU Steuerung über Modbus TCP eine Verbinung herzustellen.
Bitte gib die IP-Adresse des Mobus TP Gateways ein: 192.168.1.220
Keine Fehlermeldung bisher? Die Verbindung zum Gateway sollte stehen. Drücke Enter um weiter zu machen,….
Ich versuche jetzt einen ersten Wert zu lesen:
ERROR: request ask for transaction_id=1 but got id=23, Skipping.
0x661 – Water: False
0x3f1 – Heat: False
Oben die Werte ob Warmwasser und Heizung aktiviert sind (FALSE) oder ob die händishce Abschaltung ein ist (TRUE).
Wenn das läuft, dann gehen wir aufs Ganze…(Enter)
0x1b1 – Outdoor Temp.: 17.807775497436523 °C
0x1d1 – Outdoor Temp. (1h): 18.053455352783203 °C
0x1f1 – Outdoor Temp. (24h): 20.49428939819336 °C
0x211 – Source in Temp: 23.133886337280273 °C
0x231 – Source out Temp: 19.56263542175293 °C
…
0x1251 – Firmware version: C 01.04.00
0x12d1 – Firmware date: May 28 2010
0x1351 – Model: DS012302AI
0x13d1 – Serial number: 00351360
0x1451 – Set model: 0
0x14d1 – Set serial nr: 0
0x1551 – Operating state: [False, False, False, False, False, False, False, False]
0x1561 – Digital output: [False, False, False, False, False, False, False, False]
0x1571 – Digital input: [False, False, False, False, False, False, False, False]
0x1581 – ADC error: [False, False, False, False, False, False, False, False]
0x1591 – LCD line 1: M201: WWasser
0x1611 – LCD line 2: Kein Bedarf
0x1691 – Time factor: 1.0
Connection to (192.168.68.220, 502) failed: timed out
Traceback (most recent call last):
File „c:\Users\gstei\AppData\Local\Temp\a29dd3c2-deeb-4d93-9bc1-045a775a1c59_WaterkottePython (1).zip.c59\WaterkottePython\ModbusHeizung.py“, line 381, in
modbus_reader = ModbusReader(‚192.168.68.220‘)
File „c:\Users\gstei\AppData\Local\Temp\a29dd3c2-deeb-4d93-9bc1-045a775a1c59_WaterkottePython (1).zip.c59\WaterkottePython\ModbusHeizung.py“, line 45, in __init__
raise Exception(f“Verbindung zum Modbus-Server bei {host}:{port} fehlgeschlagen!“)
Exception: Verbindung zum Modbus-Server bei 192.168.68.220:502 fehlgeschlagen!
Es kommen alle Werte an, aber zum Schluss kommt der Kommentar „Connection to (192.168.68.220, 502) failed: timed out“
Ich habe Deine „waterkotte_modbus_gesamt.json“ in Node Red auf meinem Home Assistant Importiert und im Flex Getter die IP auf 192.168.1.220 geändert.
Leider kommen im Debug nur Fehlermeldungen.
Debug:
22.7.2026, 00:18:54node: Heizungsdisplay abfragen = on ?
msg : error
{ name: „InputError“, message: „Entity could not be found in c…“, stack: „InputError: Entity could not b…“ }
22.7.2026, 00:18:58node: Heizungsdisplay abfragen = on ?
msg : error
{ name: „InputError“, message: „Entity could not be found in c…“, stack: „InputError: Entity could not b…“ }
22.7.2026, 00:19:02node: Heizungsdisplay abfragen = on ?
msg : error
{ name: „InputError“, message: „Entity could not be found in c…“, stack: „InputError: Entity could not b…“ }
22.7.2026, 00:19:06node: Heizungsdisplay abfragen = on ?
msg : error
{ name: „InputError“, message: „Entity could not be found in c…“, stack: „InputError: Entity could not b…“ }
Beim Modbus Flex GEtter steht „active“, beim Buffer Parser „xxx“, Heizungsdisplay abfragen= on ? „not found“, bei den Messwerten „home-assistant.error.error“
Kannst Du mir
Hallo, also das erste was mir auffällt ist dass in deinen Protiokollen etc. 2 verschiedene IM Adressen verwendet werden. (mal 68 dann wieder 1 an dritter Stelle). Unter Umständen kommen dann trotzdem manchmal Werte an und manchaml nicht. (Ja nach Subnet im Netzwerk) Schau mal ob es daran liegen kann. Stelle sicher dass die IP frei ist, und nimm als 3. Wert den gleichen den auch dein Router hat. Wenn das nicht hilft wird es wohl komplizierter 🙁
Wenn das nicht hilft, schick mal an die KI deiner Wahl die Links meiner beiden Beiträge, eine Erklärung was du bisher gemacht hast und die Protokolle.