Moin in die Runde,
Angelehnt an die vielen Posts im Netz über Dimplex und Weishaupt Wärmepumpen, die aber leider nie mit meinem Modell kompatibel waren und die Register deshalb immer auf Kriegsfuss mit mir gestanden sind, dachte ich, das geht auch besser ![]()
Ich bin erst seit 2 Wochen im Thema mit HA, entschuldigt bitte deshalb, falls es noch nicht so prinkelnd aussieht oder ich nicht alles abbilden konnte, was Modbus von Weishaupt hergibt.
Wichtig für mich waren anfangs nur die Statistiken, da die wirklich mies vom Werk aus sind und nur megaumständlich über csv Dateien ausgelesen werden können. Als das vollbracht war, sind dann auch ein paar relevante Einstellungen gefolgt.
Was findet ihr nun hier?
Drei Dateien unter /Packages
modbus_sensor.yaml
sensor:
- platform: modbus
name: "modbus_temp_0"
hub: weishaupt_wwp18
slave: 1
register: 0
register_type: holding
data_type: int16
scale: 1
precision: 0
unit_of_measurement: "°C"
- platform: modbus
name: "modbus_temp_1"
hub: weishaupt_wwp18
slave: 1
register: 1
register_type: holding
data_type: int16
scale: 1
precision: 0
unit_of_measurement: "°C"
- platform: modbus
name: "modbus_temp_2"
hub: weishaupt_wwp18
slave: 1
register: 2
register_type: holding
data_type: int16
scale: 1
precision: 0
unit_of_measurement: "°C"
- platform: modbus
name: "modbus_temp_3"
hub: weishaupt_wwp18
slave: 1
register: 3
register_type: holding
data_type: int16
scale: 1
precision: 0
unit_of_measurement: "°C"
- platform: modbus
name: "modbus_temp_4"
hub: weishaupt_wwp18
slave: 1
register: 4
register_type: holding
data_type: int16
scale: 1
precision: 0
unit_of_measurement: "°C"
- platform: modbus
name: "modbus_temp_5"
hub: weishaupt_wwp18
slave: 1
register: 5
register_type: holding
data_type: int16
scale: 1
precision: 0
unit_of_measurement: "°C"
- platform: modbus
name: "modbus_temp_6"
hub: weishaupt_wwp18
slave: 1
register: 6
register_type: holding
data_type: int16
scale: 1
precision: 0
unit_of_measurement: "°C"
- platform: modbus
name: "modbus_temp_7"
hub: weishaupt_wwp18
slave: 1
register: 7
register_type: holding
data_type: int16
scale: 1
precision: 0
unit_of_measurement: "°C"
- platform: modbus
name: "modbus_temp_8"
hub: weishaupt_wwp18
slave: 1
register: 8
register_type: holding
data_type: int16
scale: 1
precision: 0
unit_of_measurement: "°C"
- platform: modbus
name: "modbus_temp_9"
hub: weishaupt_wwp18
slave: 1
register: 9
register_type: holding
data_type: int16
scale: 1
precision: 0
unit_of_measurement: "°C"
- platform: modbus
name: "modbus_temp_10"
hub: weishaupt_wwp18
slave: 1
register: 10
register_type: holding
data_type: int16
scale: 1
precision: 0
unit_of_measurement: "°C"
- platform: modbus
name: "modbus_temp_11"
hub: weishaupt_wwp18
slave: 1
register: 11
register_type: holding
data_type: int16
scale: 1
precision: 0
unit_of_measurement: "°C"
- platform: modbus
name: "modbus_temp_12"
hub: weishaupt_wwp18
slave: 1
register: 12
register_type: holding
data_type: int16
scale: 1
precision: 0
unit_of_measurement: "°C"
- platform: modbus
name: "modbus_temp_13"
hub: weishaupt_wwp18
slave: 1
register: 13
register_type: holding
data_type: int16
scale: 1
precision: 0
unit_of_measurement: "°C"
- platform: modbus
name: "modbus_temp_14"
hub: weishaupt_wwp18
slave: 1
register: 14
register_type: holding
data_type: int16
scale: 1
precision: 0
unit_of_measurement: "°C"
- platform: modbus
name: "modbus_temp_15"
hub: weishaupt_wwp18
slave: 1
register: 15
register_type: holding
data_type: int16
scale: 1
precision: 0
unit_of_measurement: "°C"
- platform: modbus
name: "modbus_temp_16"
hub: weishaupt_wwp18
slave: 1
register: 16
register_type: holding
data_type: int16
scale: 1
precision: 0
unit_of_measurement: "°C"
- platform: modbus
name: "modbus_temp_17"
hub: weishaupt_wwp18
slave: 1
register: 17
register_type: holding
data_type: int16
scale: 1
precision: 0
unit_of_measurement: "°C"
- platform: modbus
name: "modbus_temp_18"
hub: weishaupt_wwp18
slave: 1
register: 18
register_type: holding
data_type: int16
scale: 1
precision: 0
unit_of_measurement: "°C"
- platform: modbus
name: "modbus_temp_19"
hub: weishaupt_wwp18
slave: 1
register: 19
register_type: holding
data_type: int16
scale: 1
precision: 0
unit_of_measurement: "°C"
- platform: modbus
name: "modbus_temp_20"
hub: weishaupt_wwp18
slave: 1
register: 20
register_type: holding
data_type: int16
scale: 1
precision: 0
unit_of_measurement: "°C"
- platform: modbus
name: "modbus_temp_21"
hub: weishaupt_wwp18
slave: 1
register: 21
register_type: holding
data_type: int16
scale: 1
precision: 0
unit_of_measurement: "°C"
- platform: modbus
name: "modbus_temp_22"
hub: weishaupt_wwp18
slave: 1
register: 22
register_type: holding
data_type: int16
scale: 1
precision: 0
unit_of_measurement: "°C"
- platform: modbus
name: "modbus_temp_23"
hub: weishaupt_wwp18
slave: 1
register: 23
register_type: holding
data_type: int16
scale: 1
precision: 0
unit_of_measurement: "°C"
- platform: modbus
name: "modbus_temp_24"
hub: weishaupt_wwp18
slave: 1
register: 24
register_type: holding
data_type: int16
scale: 1
precision: 0
unit_of_measurement: "°C"
- platform: modbus
name: "modbus_temp_25"
hub: weishaupt_wwp18
slave: 1
register: 25
register_type: holding
data_type: int16
scale: 1
precision: 0
unit_of_measurement: "°C"
- platform: modbus
name: "modbus_temp_26"
hub: weishaupt_wwp18
slave: 1
register: 26
register_type: holding
data_type: int16
scale: 1
precision: 0
unit_of_measurement: "°C"
- platform: modbus
name: "modbus_temp_27"
hub: weishaupt_wwp18
slave: 1
register: 27
register_type: holding
data_type: int16
scale: 1
precision: 0
unit_of_measurement: "°C"
- platform: modbus
name: "modbus_temp_28"
hub: weishaupt_wwp18
slave: 1
register: 28
register_type: holding
data_type: int16
scale: 1
precision: 0
unit_of_measurement: "°C"
- platform: modbus
name: "modbus_temp_29"
hub: weishaupt_wwp18
slave: 1
register: 29
register_type: holding
data_type: int16
scale: 1
precision: 0
unit_of_measurement: "°C"
- platform: modbus
name: "modbus_temp_30"
hub: weishaupt_wwp18
slave: 1
register: 30
register_type: holding
data_type: int16
scale: 1
precision: 0
unit_of_measurement: "°C"
- platform: modbus
name: "modbus_temp_31"
hub: weishaupt_wwp18
slave: 1
register: 31
register_type: holding
data_type: int16
scale: 1
precision: 0
unit_of_measurement: "°C"
- platform: modbus
name: "modbus_temp_32"
hub: weishaupt_wwp18
slave: 1
register: 32
register_type: holding
data_type: int16
scale: 1
precision: 0
unit_of_measurement: "°C"
- platform: modbus
name: "modbus_temp_33"
hub: weishaupt_wwp18
slave: 1
register: 33
register_type: holding
data_type: int16
scale: 1
precision: 0
unit_of_measurement: "°C"
- platform: modbus
name: "modbus_temp_34"
hub: weishaupt_wwp18
slave: 1
register: 34
register_type: holding
data_type: int16
scale: 1
precision: 0
unit_of_measurement: "°C"
- platform: modbus
name: "modbus_temp_35"
hub: weishaupt_wwp18
slave: 1
register: 35
register_type: holding
data_type: int16
scale: 1
precision: 0
unit_of_measurement: "°C"
- platform: modbus
name: "modbus_temp_36"
hub: weishaupt_wwp18
slave: 1
register: 36
register_type: holding
data_type: int16
scale: 1
precision: 0
unit_of_measurement: "°C"
- platform: modbus
name: "modbus_temp_37"
hub: weishaupt_wwp18
slave: 1
register: 37
register_type: holding
data_type: int16
scale: 1
precision: 0
unit_of_measurement: "°C"
- platform: modbus
name: "modbus_temp_38"
hub: weishaupt_wwp18
slave: 1
register: 38
register_type: holding
data_type: int16
scale: 1
precision: 0
unit_of_measurement: "°C"
modbus_slider.yaml
input_number:
register_offset_slider:
name: Temperatur-Offset
min: -19
max: 19
step: 1
mode: slider
unit_of_measurement: "°C"
icon: mdi:thermometer-lines
template:
- sensor:
- name: "Aktive Modbus-Adresse (aus Offset)"
state: >
{% set offset = states('input_number.register_offset_slider') | int %}
{{ 19 + offset }}
- name: "Wert aus gewähltem Offset-Register"
unit_of_measurement: "°C"
state: >
{% set offset = states('input_number.register_offset_slider') | int %}
{% set addr = 19 + offset %}
{% set sensor_name = 'modbus.sensor_temp_' ~ addr %}
{% if states(sensor_name) not in ['unknown', 'unavailable'] %}
{{ states(sensor_name) }}
{% else %}
'n/v'
{% endif %}
modbus.yaml
modbus:
- name: weishaupt_wwp18
type: tcp
host: 192.168.x.x
port: 502
#retry_on_empty: true
timeout: 14
sensors:
# Warmwasser
- name: "WP Warmwasser Solltemperatur"
unique_id: wp_warmwasser_solltemperatur
slave: 1
address: 58
input_type: input
unit_of_measurement: °C
state_class: measurement
scale: 0.1
offset: 0
precision: 1
data_type: int16
- name: "WP Warmwasser Solltemperatur Maximal"
unique_id: wp_warmwasser_solltemperatur_maximal
slave: 1
address: 5048
input_type: input
unit_of_measurement: °C
state_class: measurement
scale: 1
offset: 0
precision: 1
data_type: int16
- name: "WP Warmwasser Hysterese"
unique_id: wp_warmwasser_hysterese
slave: 1
address: 5045
input_type: input
unit_of_measurement: K
state_class: measurement
scale: 1
offset: 0
precision: 1
data_type: int16
- name: "WP Warmwasser Temperatur"
unique_id: wp_warmwasser_temperatur
slave: 1
address: 3
input_type: input
unit_of_measurement: °C
state_class: measurement
scale: 0.1
offset: 0
precision: 1
data_type: int16
# System
- name: "WP Betriebsmodus ID"
unique_id: wp_betriebsmodus_id
slave: 1
address: 5015
input_type: input
scan_interval: 15
scale: 1
offset: 0
precision: 0
data_type: int16
- name: "WP Display Status ID"
unique_id: wp_display_status_id
slave: 1
address: 103
input_type: input
scale: 1
offset: 0
precision: 0
data_type: int16
- name: "WP Display Sperre ID"
unique_id: wp_display_sperre_id
slave: 1
address: 104
input_type: input
scale: 1
offset: 0
precision: 0
data_type: int16
- name: "WP Display Störung ID"
unique_id: wp_display_stoerung_id
slave: 1
address: 105
input_type: input
scale: 1
offset: 0
precision: 0
data_type: int16
- name: "WP Display Sensor ID"
unique_id: wp_display_sensor_id
slave: 1
address: 106
input_type: input
scale: 1
offset: 0
precision: 0
data_type: int16
- name: "WP Außen Temperatur"
unique_id: wp_aussen_temperatur
slave: 1
address: 1
input_type: input
unit_of_measurement: °C
state_class: measurement
scale: 0.1
offset: 0
precision: 1
data_type: int16
# Heizkreis
- name: "WP Rücklauf Solltemperatur"
unique_id: wp_ruecklauf_solltemperatur
slave: 1
address: 53
input_type: input
unit_of_measurement: °C
state_class: measurement
scale: 0.1
offset: 0
precision: 1
data_type: int16
- name: "WP Vorlauf Temperatur"
unique_id: wp_vorlauf_temperatur
slave: 1
address: 5
input_type: input
unit_of_measurement: °C
state_class: measurement
scale: 0.1
offset: 0
precision: 1
data_type: int16
- name: "WP Rücklauf Temperatur"
unique_id: wp_ruecklauf_temperatur
slave: 1
address: 2
input_type: input
unit_of_measurement: °C
state_class: measurement
scale: 0.1
offset: 0
precision: 1
data_type: int16
- name: "Wärmequellenaustritt"
unique_id: wp_waermequellenaustritt_temperatur
slave: 1
address: 7
input_type: input
unit_of_measurement: °C
state_class: measurement
scale: 0.1
offset: 0
precision: 1
data_type: int16
- name: "WP Heizen Hysterese"
unique_id: wp_heizen_hysterese
slave: 1
address: 47
input_type: input
unit_of_measurement: K
state_class: measurement
scale: 0.1
offset: 0
precision: 1
data_type: int16
# WEZ
- name: "WP Verdichter Stunden"
unique_id: wp_verdichter_stunden
slave: 1
address: 72
input_type: input
unit_of_measurement: h
state_class: measurement
scale: 1
offset: 0
precision: 0
data_type: int16
- name: "Primärpumpe"
unique_id: wp_primaerpumpe_stunden
slave: 1
address: 74
input_type: input
unit_of_measurement: h
state_class: measurement
scale: 1
offset: 0
precision: 0
data_type: int16
- name: "Heizungspumpe"
unique_id: wp_heizungspumpe_stunden
slave: 1
address: 76
input_type: input
unit_of_measurement: h
state_class: measurement
scale: 1
offset: 0
precision: 0
data_type: int16
- name: "Warmwasserpumpe"
unique_id: wp_warmwasserpumpe_stunden
slave: 1
address: 77
input_type: input
unit_of_measurement: h
state_class: measurement
scale: 1
offset: 0
precision: 0
data_type: int16
- name: "WP 2.Wärmeerzeuger Stunden"
unique_id: wp_2waermeerzeuger_stunden
slave: 1
address: 75
input_type: input
unit_of_measurement: h
state_class: measurement
scale: 1
offset: 0
precision: 0
data_type: int16
# Energy
- name: "WP Energy Heizen 1-4"
unique_id: wp_energy_heizen_1_4
slave: 1
address: 5096
input_type: input
unit_of_measurement: kWh
device_class: energy
state_class: total
scale: 1
offset: 0
precision: 1
data_type: int16
- name: "WP Energy Heizen 5-8"
unique_id: wp_energy_heizen_5_8
slave: 1
address: 5097
input_type: input
unit_of_measurement: kWh
device_class: energy
state_class: total
scale: 1
offset: 0
precision: 1
data_type: int16
- name: "WP Energy Heizen 9-12"
unique_id: wp_energy_heizen_9_12
slave: 1
address: 5098
input_type: input
unit_of_measurement: kWh
device_class: energy
state_class: total
scale: 1
offset: 0
precision: 1
data_type: int16
- name: "WP Energy Warmwasser 1-4"
unique_id: wp_energy_warmwasser_1_4
slave: 1
address: 5099
input_type: input
unit_of_measurement: kWh
device_class: energy
state_class: total
scale: 1
offset: 0
precision: 1
data_type: int16
- name: "WP Energy Warmwasser 5-8"
unique_id: wp_energy_warmwasser_5_8
slave: 1
address: 5100
input_type: input
unit_of_measurement: kWh
device_class: energy
state_class: total
scale: 1
offset: 0
precision: 1
data_type: int16
- name: "WP Energy Warmwasser 9-12"
unique_id: wp_energy_warmwasser_9_12
slave: 1
address: 5101
input_type: input
unit_of_measurement: kWh
device_class: energy
state_class: total
scale: 1
offset: 0
precision: 1
data_type: int16
binary_sensors:
# Smart Grid
- name: "WP Smart Grid 1"
unique_id: wp_smart_grid_1
slave: 1
address: 3
input_type: coil
- name: "WP Smart Grid 2"
unique_id: wp_smart_grid_2
slave: 1
address: 4
input_type: coil
# Pumpen
- name: "WP Verdichter"
unique_id: wp_verdichter
slave: 1
address: 41
input_type: coil
- name: "Primärpumpe"
unique_id: wp_primaerpumpe
slave: 1
address: 43
input_type: coil
- name: "Heizungspumpe"
unique_id: wp_heizungspumpe
slave: 1
address: 45
input_type: coil
- name: "Warmwasserpumpe"
unique_id: wp_warmwasserpumpe
slave: 1
address: 46
input_type: coil
configuration.yaml
template:
- sensor:
# WP Energy
- name: "WP Energy Heizen (Total)"
unique_id: wp_energy_heizen_total
unit_of_measurement: "kWh"
state_class: total_increasing
device_class: energy
state: >-
{% if states('sensor.wp_energy_heizen_1_4') in ['unknown', 'unavailable']
or states('sensor.wp_energy_heizen_5_8') in ['unknown', 'unavailable']
or states('sensor.wp_energy_heizen_9_12') in ['unknown', 'unavailable']
%}
{{ states("sensor.wp_energy_heizen_total") }}
{% else %}
{{ states("sensor.wp_energy_heizen_9_12")|float(0) * 100000000
+ states("sensor.wp_energy_heizen_5_8")|float(0) * 10000
+ states("sensor.wp_energy_heizen_1_4")|float(0)
}}
{% endif %}
- name: "WP Energy Warmwasser (Total)"
unique_id: wp_energy_warmwasser_total
unit_of_measurement: "kWh"
state_class: total_increasing
device_class: energy
state: >-
{% if states('sensor.wp_energy_warmwasser_1_4') in ['unknown', 'unavailable']
or states('sensor.wp_energy_warmwasser_5_8') in ['unknown', 'unavailable']
or states('sensor.wp_energy_warmwasser_9_12') in ['unknown', 'unavailable']
%}
{{ states("sensor.wp_energy_warmwasser_total") }}
{% else %}
{{ states("sensor.wp_energy_warmwasser_9_12")|float(0) * 100000000
+ states("sensor.wp_energy_warmwasser_5_8")|float(0) * 10000
+ states("sensor.wp_energy_warmwasser_1_4")|float(0)
}}
{% endif %}
- name: "WP Energy Grid (Total)"
unique_id: wp_energy_grid_total
unit_of_measurement: "kWh"
state_class: total_increasing
device_class: energy
state: >-
{{ states("sensor.wp_energy_heizen_total")|float(0)
+ states("sensor.wp_energy_warmwasser_total")|float(0)
}}
# WP Modus
- name: "WP Betriebsmodus"
unique_id: wp_betriebsmodus
state: >
{% if is_state('sensor.wp_betriebsmodus_id', '0') %}
Sommer
{% elif is_state('sensor.wp_betriebsmodus_id', '1') %}
Auto
{% elif is_state('sensor.wp_betriebsmodus_id', '2') %}
Urlaub
{% elif is_state('sensor.wp_betriebsmodus_id', '3') %}
Party
{% elif is_state('sensor.wp_betriebsmodus_id', '4') %}
2.Wärmeerzeuger
{% else %}
{{ states('sensor.wp_betriebsmodus') }}
{% endif %}
# WP Smart Grid
- name: "WP Smart Grid"
unique_id: wp_smart_grid
state: >-
{% if states('binary_sensor.wp_smart_grid_1') in ['unknown', 'unavailable']
or states('binary_sensor.wp_smart_grid_2') in ['unknown', 'unavailable']
%}
{{ states('sensor.wp_smart_grid') }}
{% else %}
{% if is_state('binary_sensor.wp_smart_grid_1', 'off') and is_state('binary_sensor.wp_smart_grid_2', 'on') %}
rot
{% elif is_state('binary_sensor.wp_smart_grid_1', 'off') and is_state('binary_sensor.wp_smart_grid_2', 'off') %}
gelb
{% elif is_state('binary_sensor.wp_smart_grid_1', 'on') and is_state('binary_sensor.wp_smart_grid_2', 'off') %}
grün
{% elif is_state('binary_sensor.wp_smart_grid_1', 'on') and is_state('binary_sensor.wp_smart_grid_2', 'on') %}
dunkelgrün
{% endif %}
{% endif %}
# WP Betrieb
- name: "WP Display Status"
unique_id: wp_display_status
state: >
{% if is_state('sensor.wp_display_status_id', '0') %}
Aus
{% elif is_state('sensor.wp_display_status_id', '1') %}
Aus
{% elif is_state('sensor.wp_display_status_id', '2') %}
Heizen
{% elif is_state('sensor.wp_display_status_id', '4') %}
Warmwasser
{% elif is_state('sensor.wp_display_status_id', '11') %}
Durchflussüberwachung
{% elif is_state('sensor.wp_display_status_id', '30') %}
Sperre
{% else %}
{{ states('sensor.wp_display_status') }}
{% endif %}
# WP Display Sperre
- name: "WP Display Sperre"
unique_id: wp_display_sperre
state: >
{% if is_state('sensor.wp_display_sperre_id', '0') %}
keine Sperre
{% elif is_state('sensor.wp_display_sperre_id', '2') %}
Volumenstrom
{% elif is_state('sensor.wp_display_sperre_id', '5') %}
Funktionskontrolle
{% elif is_state('sensor.wp_display_sperre_id', '6') %}
Einsatzgrenze HT
{% elif is_state('sensor.wp_display_sperre_id', '7') %}
Systemkontrolle
{% elif is_state('sensor.wp_display_sperre_id', '9') %}
Pumpenvorlauf
{% elif is_state('sensor.wp_display_sperre_id', '10') %}
Mindeststandzeit
{% elif is_state('sensor.wp_display_sperre_id', '11') %}
Netzbelastung
{% elif is_state('sensor.wp_display_sperre_id', '12') %}
Schaltspielsperre
{% elif is_state('sensor.wp_display_sperre_id', '13') %}
Warmwasser Nacherwärmung
{% elif is_state('sensor.wp_display_sperre_id', '14') %}
Regenerativ
{% elif is_state('sensor.wp_display_sperre_id', '15') %}
EVU-Sperre
{% elif is_state('sensor.wp_display_sperre_id', '16') %}
Sanftanlasser
{% elif is_state('sensor.wp_display_sperre_id', '17') %}
Durchfluss
{% elif is_state('sensor.wp_display_sperre_id', '18') %}
Einsatzgrenze Wärmepumpe
{% elif is_state('sensor.wp_display_sperre_id', '19') %}
Hochdruck
{% elif is_state('sensor.wp_display_sperre_id', '20') %}
Niederdruck
{% elif is_state('sensor.wp_display_sperre_id', '21') %}
Einsatzgrenze Wärmequelle
{% elif is_state('sensor.wp_display_sperre_id', '23') %}
System Grenze
{% elif is_state('sensor.wp_display_sperre_id', '24') %}
Last Primärkreis
{% elif is_state('sensor.wp_display_sperre_id', '25') %}
Sperre Extern
{% elif is_state('sensor.wp_display_sperre_id', '31') %}
Aufwärmen
{% elif is_state('sensor.wp_display_sperre_id', '33') %}
EvD Initialisierung
{% elif is_state('sensor.wp_display_sperre_id', '34') %}
2.Wärmeerzeuger freigegeben
{% elif is_state('sensor.wp_display_sperre_id', '35') %}
Störung
{% elif is_state('sensor.wp_display_sperre_id', '38') %}
Kommunikation Wärmepumpe (Master)
{% elif is_state('sensor.wp_display_sperre_id', '39') %}
Störung Wärmepumpe (Master)
{% else %}
{{ states('sensor.wp_display_sperre') }}
{% endif %}
# WP Display Störung
- name: "WP Display Störung"
unique_id: wp_display_stoerung
state: >
{% if is_state('sensor.wp_display_stoerung_id', '0') %}
keine Störung
{% elif is_state('sensor.wp_display_stoerung_id', '1') %}
Fehler N17.1
{% elif is_state('sensor.wp_display_stoerung_id', '2') %}
Fehler N17.2
{% elif is_state('sensor.wp_display_stoerung_id', '3') %}
Fehler N17.3
{% elif is_state('sensor.wp_display_stoerung_id', '4') %}
Fehler N17.4
{% elif is_state('sensor.wp_display_stoerung_id', '6') %}
Elektronisches Ex.Ventil
{% elif is_state('sensor.wp_display_stoerung_id', '10') %}
WPIO
{% elif is_state('sensor.wp_display_stoerung_id', '12') %}
Inverter
{% elif is_state('sensor.wp_display_stoerung_id', '13') %}
WQIF
{% elif is_state('sensor.wp_display_stoerung_id', '15') %}
Sensorik
{% elif is_state('sensor.wp_display_stoerung_id', '16') %}
Niederdruck Sole
{% elif is_state('sensor.wp_display_stoerung_id', '19') %}
Primärkreis
{% elif is_state('sensor.wp_display_stoerung_id', '20') %}
Abtauen
{% elif is_state('sensor.wp_display_stoerung_id', '21') %}
Niederdruck Sole
{% elif is_state('sensor.wp_display_stoerung_id', '22') %}
Warmwasser
{% elif is_state('sensor.wp_display_stoerung_id', '23') %}
Last Verdichter
{% elif is_state('sensor.wp_display_stoerung_id', '24') %}
Codierung
{% elif is_state('sensor.wp_display_stoerung_id', '25') %}
Niederdruck
{% elif is_state('sensor.wp_display_stoerung_id', '26') %}
Frostschutz
{% elif is_state('sensor.wp_display_stoerung_id', '28') %}
Hochdruck
{% elif is_state('sensor.wp_display_stoerung_id', '29') %}
Temperatur Differenz
{% elif is_state('sensor.wp_display_stoerung_id', '30') %}
Heißgasthermostat
{% elif is_state('sensor.wp_display_stoerung_id', '31') %}
Durchfluss
{% else %}
{{ states('sensor.wp_display_stoerung') }}
{% endif %}
# WP Display Sensor
- name: "WP Display Sensor"
unique_id: wp_display_sensor
state: >
{% if is_state('sensor.wp_display_sensor_id', '0') %}
nicht aktiv
{% elif is_state('sensor.wp_display_sensor_id', '1') %}
Außenfühler (R1)
{% elif is_state('sensor.wp_display_sensor_id', '2') %}
Rücklauffühler (R2)
{% elif is_state('sensor.wp_display_sensor_id', '3') %}
Warmwasserfühler (R3)
{% elif is_state('sensor.wp_display_sensor_id', '4') %}
Codierung (R7)
{% elif is_state('sensor.wp_display_sensor_id', '5') %}
Vorlauffühler (R9)
{% elif is_state('sensor.wp_display_sensor_id', '6') %}
2.Heizkreisfühler (R5)
{% elif is_state('sensor.wp_display_sensor_id', '7') %}
3.Heizkreisfühler (R13)
{% elif is_state('sensor.wp_display_sensor_id', '8') %}
Regenerativfühler (R13)
{% elif is_state('sensor.wp_display_sensor_id', '9') %}
Raumfühler 1
{% elif is_state('sensor.wp_display_sensor_id', '10') %}
Raumfühler 2
{% elif is_state('sensor.wp_display_sensor_id', '11') %}
Fühler Wärmequellenaustritt (R6)
{% elif is_state('sensor.wp_display_sensor_id', '12') %}
Fühler Wärmequelleneintritt (R24)
{% elif is_state('sensor.wp_display_sensor_id', '14') %}
Kollektorfühler (R23)
{% elif is_state('sensor.wp_display_sensor_id', '15') %}
Niederdrucksensor (R25)
{% elif is_state('sensor.wp_display_sensor_id', '16') %}
Hochdrucksensor (R26)
{% elif is_state('sensor.wp_display_sensor_id', '17') %}
Raumfeuchte 1
{% elif is_state('sensor.wp_display_sensor_id', '18') %}
Raumfeuchte 2
{% elif is_state('sensor.wp_display_sensor_id', '19') %}
Fühler Frostschutz-Kälte
{% elif is_state('sensor.wp_display_sensor_id', '20') %}
Heisgas
{% elif is_state('sensor.wp_display_sensor_id', '21') %}
Rücklauffühler (R2.1)
{% elif is_state('sensor.wp_display_sensor_id', '22') %}
Schwimmbadfühler (R20)
{% elif is_state('sensor.wp_display_sensor_id', '23') %}
Vorlauffühler Kühlen Passiv (R11)
{% elif is_state('sensor.wp_display_sensor_id', '24') %}
Rücklauffühler Kühlen Passiv (R4)
{% elif is_state('sensor.wp_display_sensor_id', '26') %}
Fühler Solarspeicher (R22)
{% elif is_state('sensor.wp_display_sensor_id', '28') %}
Anforderungsfühler Heizen (R2.2)
{% elif is_state('sensor.wp_display_sensor_id', '29') %}
RTM Econ
{% elif is_state('sensor.wp_display_sensor_id', '30') %}
Anforderungsfühler Kühlen (R39)
{% else %}
{{ states('sensor.wp_display_sensor') }}
{% endif %}
automation.yaml
- id: "1753627793571"
alias: Urlaub
description: ""
triggers:
- trigger: state
entity_id:
- input_number.urlaub
conditions: []
actions:
- action: modbus.write_register
data:
address: 5017
hub: weishaupt_wwp18
slave: 1
value: "{{ states('input_number.urlaub') | float }} \n"
mode: single
- id: "1753633592469"
alias: "Party "
description: ""
triggers:
- trigger: state
entity_id:
- input_number.party
conditions: []
actions:
- action: modbus.write_register
data:
address: 5016
hub: weishaupt_wwp18
value: "{{ states('input_number.party') | float }} \n"
mode: single
- id: modbus_offset_write_on_slider
alias: Schreibe Modbus-Offset bei Slider-Änderung
triggers:
- trigger: state
entity_id:
- input_number.register_offset_slider
conditions: []
actions:
- delay: "00:00:10"
- action: modbus.write_register
data:
address: 5036
hub: weishaupt_wwp18
unit: 1
value: >
{{ 19 + (states('input_number.register_offset_slider') | int) }}
mode: single
Die Parallelverschiebung war wohl das aufwendigste, für mich zumindest. Hier musste ich Helfer erstellen für die Offsetwerte, da die Register von Weishaupt nicht identisch mit den Grad-Zahlen sind. Dafür sind dann die modbus-sensor und modbus_slider Dateien. Die Automation pusht den Wert in die Heizung.
Viel Spaß beim umsetzen! Mich hat es in 2 Wochen einige graue Harre gekostet. Für euch Profis wäre das wahrscheinlicher glimpflicher abgelaufen für die Haarpracht ![]()







