Hi @rafdev18,
unfortunately, not all registers are documented. I discoverd the following for power consumption:
36701: elektr. Energie heute
36702: elektr. Energie gestern
36703: elektr. Energie Monat
36704: elektr. Energie Jahr (always 0)
Hi @rafdev18,
unfortunately, not all registers are documented. I discoverd the following for power consumption:
36701: elektr. Energie heute
36702: elektr. Energie gestern
36703: elektr. Energie Monat
36704: elektr. Energie Jahr (always 0)
@miza fantastic ! Thank you ! the register information is correct. Unfortunately it is only rounded to the full kWh.
Did you find by any chance the JAZ also in one register ?
When I do take now the generated heat and divide it by the used electricity I end up for the current month with a JAZ of 5.75 ⊠when I look in the Biblock the JAZ is currently at a 4.6 level. Can be the full kWh rounding ⊠would be great to have the JAZ directly from the biblock.
THANKS for your help ! big step forward
@miza - I do get the actual power consumption for the year from register 36704 ! I just had my biblock installed and might have a newer SW release which fixed the âalways 0â return.
Liebes Forum,
momentan lese ich via MODBUS fĂŒr mich alle relevanten Daten aus meiner Weishaupt WĂ€rmepumpe aus. FĂŒr meinen flexiblen Stromtarif (Tibber) wĂŒrde ich gerne in Hochpreiszeiten eine (EVU-)Sperre an meiner WP aktivieren. Funktioniert das auch ĂŒber Modbus oder muss ich hier z.B. einen Shelly1 direkt
an die Steuerleitungen an der WĂ€rmepumpe anschlieĂen. Modbus wĂ€re mir natĂŒrlich lieber.
Vielleicht kann mir ja hier jemand helfen. Besten Dank im Vorraus!
GruĂ, Christoph
Dear Forum,
I am currently reading out all relevant data from my Weishaupt heat pump via MODBUS. For my flexible electricity tariff (Tibber) I would like to activate a (EVU) lock on my heat pump in high price times. Does this also work via Modbus or do I have to connect here e.g. a Shelly1 directly to the control lines on the heat pump. Modbus would be preferable to me of course.
Maybe someone can help me here. Many thanks in advance!
Greetings, Christoph
Hallo chriscom2020,
meines Wissens geht die EVU Sperre nur per Digitaleingang (also zB mit Shelly). Eine Alternative wĂ€re die Umstellung der Systembetriebsart, z.B. von Heizen auf Standby und dann wieder zurĂŒck. Das geht per Schreib/Lesebefehl auf Register 40001 (0=Auto, 1=Heizen, 2=KĂŒhlen, 3=Sommer, 4=Standby, 5=2.WEZ)
Meine Lösung baue ich eher mittels Absenkung der Solltemperatur damit mir die Bude nicht zu sehr auskĂŒhlt (unsere Estrichschicht ist nicht sehr dick daher speichert der Boden nicht so lange)
Hallo mezzo1161,
danke fĂŒr den Hinweis, das habe ich befĂŒrchtet⊠wie setzt man den Schreib-Lesebefehl in der modbus.yaml um. Auch ĂŒber Sensors? Hast du da evtl. ein Beispiel?
Danke und GruĂ,
Christoph
Hi all, I also would like to integrate our heat pump (WWP LS 8-B RE) into Home Assistant. Currently it is not connected to the Internet. Is there a way to capture this data from the WWW-CPU COM unit directly?
What additional hardware do I need?
Hi Tobias,
könntest du mir vielleicht nÀher erklÀren wie du die Template-Sensors erstellt hast?
Die YAML-Konfiguration hat bestens funktioniert aber ich wĂŒrde doch sehr gerne die BetriebszustĂ€nde in Klartext sehen und nicht nur â25â!
Wo genau kommt z.B. die wp_betrieb_txt hin?
Auch von mir noch vielen Dank fĂŒr deine bisherige tolle Arbeit!
GruĂ,
Christoph
Hi Tobias,
could you explain to me how you created the template sensors? The YAML configuration worked fine but I would like to see the operation states in plain text and not only â25â! Where exactly does e.g. the wp_operation_txt go? Also from me many thanks for your great work so far!
Greetings, Christoph
sensors:
#System
- name: WP_Systembetriebsart
slave: 1
address: 40001
input_type: holding
data_type: int16
unique_id: wpump.systembetriebsart
Ich sende ĂŒber eine Automatisierung (Trigger muss noch eingefĂŒgt werden) die neue Betriebsart:
alias: WP Systembetriebsart 2.WEZ
description: ""
trigger: []
condition: []
action:
- service: modbus.write_register
data:
hub: wpump
address: 40001
slave: 1
value: 5
mode: single
Wie kann man das Ganze textpassiert mit Dropdown realisieren? Und dass der Wert direkt geschrieben ohne Umwege ĂŒber die Automatisierung.
wie z.B.:
Based on the discussion here I was able to build my Biblock dash and I am pretty happy with the result.
I am now looking into optimising my hot water production and would like to control the circulation pump over modbus. Looks like this is not possible for the biblock. I am currently underwhelmed how little you really can control over an automation from the outside on Modbus.
What options do I have to control hot water production ? I would like to force hot water production towards noon as the temperature difference is then low and I need less energy to heat my water for the next 24h. I can easily keep the temperature for 24h with circulation switched off.
Would appreciate any tips ⊠looks like I can not switch the hot water mode over modbus, can not switch the circulation pump ⊠only the target temperature. So maybe I set to 40 C when I would like the heat pump to work and afterwards go back to 30 C ⊠but it would be much nicer to toggle between Normal and Absenk temperature as the circulation pump is off in Absenk mode.
Hi TobiM,
iâm really interessted to add your WP View. Iâve a Weishaupt WP too.
But iâm not able to add the view to my home assistent.
Iâm also totally new to the topic.
Hope you can help me.
Thanks and Greets.
Can write also in germanâŠno prob
Hi Ice2k23,
did you solve your problem until yet. I have the same problem. The pump is available in the network (webserver on the browser) and modbubuc tcp is activated in the network menu on the pump, but my HA and a network scanner say that there are no data.
I would appreciate your feedback. Thanks a lot in advance.
Kallixtus
Solved - anybody interested how you can control hot water production and circulation over Modbus pls reach out. Can now automate both over the Modbus interface - some tricky workarounds
Hi rafdev18,
sounds great - please share.
I did not manage yet to control circulation and water production.
Only the warm water push on 42102 was a functionality I managed to implement.
Thanks and regards,
Stefan
Hi rafdev18,
great, please share how you managed it!
Regards,
Christoph
Hi @stefkoch09 and @chriscom2020 - here is the trick I discovered. You can easily start the warm water push function over Modbus register load.
The problem is that Weishaupt does not allow you to handle circulation pump separately. My workaround is to do a 1 min long warm water push call which starts immediately the circulation but not the heat pump ! then I wait and do again a 1 min warm water push. After doing this 3 times my circulation loop is heated and I do have immediate hot water without the heat pump starting.
PLS find my code for just running the circulation here:
- alias: WP Warmwasser Push
trigger:
- platform: state
entity_id: input_boolean.start_wp_ww_push
to: 'on'
action:
- repeat:
count: 3
sequence:
- service: modbus.write_register
data:
hub: wpump
address: 42102
slave: 1
value: 1
# value 1 = 1 min circulation without starting heat pump !
- delay:
seconds: 70
- service: input_boolean.turn_off
entity_id: input_boolean.start_wp_ww_push
mode: single
Then for the warm water production I removed the schedule from the Weishaupt controller and do start a 1h warm water push over an automation at 2pm in the afternoon. This way I can produce my hot water when the temperature difference is lowest.
Here the automation for hot water production at 2pm:
- alias: WP Warmwasser Load
trigger:
- platform: time
at: '14:00:00'
action:
- service: modbus.write_register
data:
hub: wpump
address: 42102
slave: 1
value: 60
mode: single
With the button and the automation I reduced my energy consumption for hot water by 65% ! Enjoy reusing the code â
Great, thank you very much!
really nice dashboard, would you share your complete configurations along with the dashboard yamlâs? I see some entities that are not included in the OP thread. Would be awesome. Thanks!
Hello everyone,
Iâm new in the Home Assitant world and iâm already thrilled about the possibilities.
Thank you for the community and the nice work done here.
I also have a WBB12 (Version WWP-SG 5.0 / Version WWP-EC WBB v5.1) and iâve added it through Modbus. The main code from @tobiasm worked like a charm, but i had a lot of problems with the templates.
Here is my visual proposition of what iâve done and the code with it.
Maybe it can help some newbee as i am.
Glad to give back to the community
What iâm still missing
1a) energie stats for the year. Here the register sends â0â, as some of you have pointed
1b) therefore i cannot calculate the JAZ for the year.
2) The HeatCycles. My heatpump changes a lot its status from âHeatingâ to âStandbyâ. In the WEM Portal is counted each time as a Compressor switching cycles (âSchaltspiele Verdichterâ). Not sure how to calculate it. Iâve seen your code @kirimeister, but i donât know yet what to take for the binary Sensor.
I should actualy have a look at each change in âBetriebsmodusâ. (or better, find a register for that)
3) i would like to scan the Modbus and compare the values with the heat pump and see if the JAZ is directly exposed. This stat is available on the display with the OEM Code â21â
4) the colors can be improved. But the standard Lovelace doesnât allow me to change them⊠Iâll have to search how to do it.
1) Config.yaml
â here Iâve added thoses 2 lines to the config.yaml and created 2x Files with the âFile Editorâ
â Iâve took the âcount: 1â, as it is not supported anymore with the new Release HomeAssistant 202310. Otherwise i was getting Modbus Errors
- name: wpump
type: tcp
host: 192.168.178.62
port: 502
climates:
- name: "WP_Warmwasser"
address: 42103
input_type: holding
data_type: int16
max_temp: 50
min_temp: 15
offset: 0
precision: 1
scale: 0.1
target_temp_register: 42103
temp_step: 1
temperature_unit: C
sensors:
#Warmwasser
- name: WP_Warmwassersolltemperatur
slave: 1
address: 32101
input_type: input
unit_of_measurement: °C
state_class: measurement
scale: 0.1
offset: 0
precision: 1
data_type: int16
unique_id: wpump.wwsolltemp
- name: WP_Warmwassertemperatur
slave: 1
address: 32102
input_type: input
unit_of_measurement: °C
state_class: measurement
scale: 0.1
offset: 0
precision: 1
data_type: int16
unique_id: wpump.wwtemp
- name: "WP_WarmwasserPush"
slave: 1
address: 42102
input_type: holding
scale: 1
offset: 0
precision: 0
data_type: int16
#System
- name: WP_Betrieb
slave: 1
address: 30006
input_type: input
scale: 1
offset: 0
precision: 0
data_type: int16
unique_id: wpump.betrieb
- name: WP_Stoerungsfrei
slave: 1
address: 30005
input_type: input
scale: 1
offset: 0
precision: 0
data_type: int16
- name: WP_Fehlercode
slave: 1
address: 30003
input_type: input
scale: 1
offset: 0
precision: 0
data_type: int16
- name: WP_warnungscode
slave: 1
address: 30004
input_type: input
scale: 1
offset: 0
precision: 0
data_type: int16
- name: WP_AuĂentemperatur
slave: 1
address: 30001
input_type: input
unit_of_measurement: °C
state_class: measurement
scale: 0.1
offset: 0
precision: 1
data_type: int16
#Waermepumpe
- name: WP_Leistungsanforderung
slave: 1
address: 33103
input_type: input
unit_of_measurement: '%'
state_class: measurement
scale: 1
offset: 0
precision: 1
data_type: int16
- name: WP_Vorlauftemperatur
slave: 1
address: 33104
input_type: input
unit_of_measurement: °C
state_class: measurement
scale: 0.1
offset: 0
precision: 1
data_type: int16
- name: WP_RĂŒcklauftemperatur
slave: 1
address: 33105
input_type: input
unit_of_measurement: °C
state_class: measurement
scale: 0.1
offset: 0
precision: 1
data_type: int16
#Heizkreis
- name: WP_Raumsolltemperatur
slave: 1
address: 31101
input_type: input
unit_of_measurement: °C
state_class: measurement
scale: 0.1
offset: 0
precision: 1
data_type: int16
- name: WP_Vorlaufsolltemperatur
slave: 1
address: 31104
input_type: input
unit_of_measurement: °C
state_class: measurement
scale: 0.1
offset: 0
precision: 1
data_type: int16
- name: WP_Heizkurve
slave: 1
address: 41108
input_type: holding
state_class: measurement
scale: 0.01
offset: 0
precision: 2
data_type: int16
# 2. WEZ
- name: WP_E1_Status
slave: 1
address: 34104
input_type: input
scale: 1
offset: 0
precision: 0
data_type: int16
- name: WP_E2_Status
slave: 1
address: 34105
input_type: input
scale: 1
offset: 0
precision: 0
data_type: int16
- name: WP_E1_Stunden
slave: 1
address: 34106
input_type: input
unit_of_measurement: h
state_class: measurement
scale: 1
offset: 0
precision: 0
data_type: int16
- name: WP_E2_Stunden
slave: 1
address: 34107
input_type: input
unit_of_measurement: h
state_class: measurement
scale: 1
offset: 0
precision: 0
data_type: int16
#Stats
- name: WPST_Gesamt_Tag
slave: 1
address: 36101
input_type: input
unit_of_measurement: kWh
state_class: measurement
device_class: energy
scale: 1
offset: 0
precision: 1
data_type: int16
- name: WPST_Gesamt_Monat
slave: 1
address: 36103
input_type: input
unit_of_measurement: kWh
state_class: measurement
device_class: energy
scale: 1
offset: 0
precision: 1
data_type: int16
- name: WPST_Heizen_Tag
slave: 1
address: 36201
input_type: input
unit_of_measurement: kWh
state_class: measurement
device_class: energy
scale: 1
offset: 0
precision: 1
data_type: int16
- name: WPST_Heizen_Monat
slave: 1
address: 36203
input_type: input
unit_of_measurement: kWh
state_class: measurement
device_class: energy
scale: 1
offset: 0
precision: 1
data_type: int16
- name: WPST_WW_Tag
slave: 1
address: 36301
input_type: input
unit_of_measurement: kWh
state_class: measurement
device_class: energy
scale: 1
offset: 0
precision: 1
data_type: int16
- name: WPST_WW_Monat
slave: 1
address: 36303
input_type: input
unit_of_measurement: kWh
state_class: measurement
device_class: energy
scale: 1
offset: 0
precision: 1
data_type: int16
- name: WPST_Kuehlen_Tag
slave: 1
address: 36401
input_type: input
unit_of_measurement: kWh
state_class: measurement
device_class: energy
scale: 1
offset: 0
precision: 1
data_type: int16
- name: WPST_Kuehlen_Monat
slave: 1
address: 36403
input_type: input
unit_of_measurement: kWh
state_class: measurement
device_class: energy
scale: 1
offset: 0
precision: 1
data_type: int16
- name: WPST_Elektrisch_Tag
slave: 1
address: 36701
input_type: input
unit_of_measurement: kWh
state_class: measurement
device_class: energy
scale: 1
offset: 0
precision: 1
data_type: int16
- name: WPST_Elektrisch_Monat
slave: 1
address: 36703
input_type: input
unit_of_measurement: kWh
state_class: measurement
device_class: energy
scale: 1
offset: 0
precision: 1
data_type: int16
3) templates.yaml
create a file with FileEditor called templates.yaml
â my file is located directly in the same folder as the config.yaml file
# configuration for Heatpump_Status
sensors:
wp_betrieb_txt:
value_template: >
{% if is_state('sensor.wp_betrieb', '19') %}
Heizbetrieb
{% elif is_state('sensor.wp_betrieb', '20') %}
Warmwasserbetrieb
{% elif is_state('sensor.wp_betrieb', '8') %}
Abtauen
{% elif is_state('sensor.wp_betrieb', '15') %}
Standzeit
{% elif is_state('sensor.wp_betrieb', '25') %}
Sommer
{% elif is_state('sensor.wp_betrieb', '23') %}
Kuehlbetrieb
{% else %}
{{ states('sensor.wp_betrieb') }}
{% endif %}
friendly_name: "WP Betrieb"
wp_stoerung_txt:
value_template: >
{% if is_state('sensor.wp_stoerungsfrei', '1') %}
keine Störung
{% elif is_state('sensor.wp_betrieb', '0') %}
Störung
{% else %}
ERROR
{% endif %}
friendly_name: "WP Störung"
wpst_jaz_tag:
value_template: >
{{ (float(states('sensor.WPST_Gesamt_Tag')) / float(states('sensor.WPST_Elektrisch_Tag')))|round(1) }}
friendly_name: "WP JAZ Tag"
wpst_jaz_monat:
value_template: >
{{ (float(states('sensor.WPST_Gesamt_Monat')) / float(states('sensor.WPST_Elektrisch_Monat')))|round(1) }}
friendly_name: "WP JAZ Monat"
4) Visualisation
â Here my code for the visualisation
title: Home
views:
- title: WĂ€rmepumpe
path: waermepumpe
subview: false
icon: mdi:heating-coil
badges:
- entity: sensor.wp_warmwassertemperatur
name: WW
- entity: sensor.wp_vorlauftemperatur
name: Vorlauf
- entity: sensor.wp_rucklauftemperatur
name: RĂŒcklauf
- entity: sensor.wp_betrieb_txt
name: Modus
- entity: sensor.wp_warnungscode
name: Wcode
- entity: sensor.wpst_jaz_tag
name: JAZ Tag
- entity: sensor.wpst_jaz_monat
name: JAZ Monat
- entity: sensor.wp_e1_stunden
name: E1
- entity: sensor.wp_e2_stunden
name: E2
cards:
- type: vertical-stack
cards:
- type: conditional
conditions:
- entity: sensor.wp_stoerungsfrei
state: '0'
card:
type: entity
entity: sensor.wp_warnungscode
name: Fehlercode
icon: mdi:alarm-light
- type: history-graph
entities:
- entity: sensor.wp_betrieb_txt
name: ' '
title: Betriebsmodus 24h
hours_to_show: 24
- type: history-graph
entities:
- entity: sensor.wp_betrieb_txt
name: ' '
title: Betriebsmodus 4h
hours_to_show: 4
- type: entities
entities:
- entity: sensor.wp_aussentemperatur
name: AuĂentemperatur
- entity: sensor.wp_vorlaufsolltemperatur
name: Vorlauf SOLL
- entity: sensor.wp_vorlauftemperatur
name: Vorlauf IST
- entity: sensor.wp_rucklauftemperatur
name: RĂŒcklauf
- entity: sensor.wp_warmwassersolltemperatur
name: Warmwasser SOLL
- entity: sensor.wp_warmwassertemperatur
name: Warmwasser IST
- entity: sensor.wp_warmwasserpush
name: Warmwasserpush (min)
- entity: sensor.wp_raumsolltemperatur
name: Raum SOLL
title: Temperatur
- type: vertical-stack
cards:
- type: sensor
entity: sensor.wp_aussentemperatur
graph: line
- graph: line
type: sensor
entity: sensor.wp_vorlaufsolltemperatur
detail: 2
hours_to_show: 24
name: Vorlauf SOLL
- graph: line
type: sensor
entity: sensor.wp_vorlauftemperatur
detail: 2
hours_to_show: 24
name: Vorlauf IST
- graph: line
type: sensor
entity: sensor.wp_rucklauftemperatur
detail: 2
hours_to_show: 24
name: RĂŒcklauf
- graph: line
type: sensor
entity: sensor.wp_warmwassersolltemperatur
detail: 2
hours_to_show: 24
name: Warmwasser SOLL
- graph: line
type: sensor
entity: sensor.wp_warmwassertemperatur
detail: 2
hours_to_show: 24
name: Wasrmwasser IST
- graph: line
type: sensor
entity: sensor.wpst_jaz_tag
detail: 2
hours_to_show: 24
name: JAZ Tag
- graph: line
type: sensor
entity: sensor.wpst_jaz_monat
detail: 2
hours_to_show: 24
name: JAZ Monat
- type: vertical-stack
cards:
- type: entities
entities:
- entity: sensor.wpst_elektrisch_tag
name: elekt. Energie Tag
- entity: sensor.wpst_gesamt_tag
name: therm. Energie gesamt Tag
- entity: sensor.wpst_heizen_tag
name: therm. Energie Heizen Tag
- entity: sensor.wpst_ww_tag
name: therm. Energie WW Tag
- entity: sensor.wpst_kuehlen_tag
name: therm. Energie KĂŒhlen Tag
state_color: false
title: Energie (Tag)
- type: entities
entities:
- entity: sensor.wpst_elektrisch_monat
name: elekt. Energie Monat
- entity: sensor.wpst_gesamt_monat
name: therm. Energie gesamt Monat
- entity: sensor.wpst_heizen_monat
name: therm. Energie Heizen Monat
- entity: sensor.wpst_ww_monat
name: therm. Energie WW Monat
- entity: sensor.wpst_kuehlen_monat
name: therm. Energie KĂŒhlen Monat
title: Energie (Monat)
- type: entities
entities:
- entity: sensor.wp_e1_status
- entity: sensor.wp_e1_stunden
- entity: sensor.wp_e2_status
- entity: sensor.wp_e2_stunden
title: 2.WĂ€rme Erzeuger
Hi @rafdev18 , thanks for the hints on circulation. In the meantime I did try it out and it works nicely. Regards, Stefan