Weishaupt Heatpump integration via modbus

Some news on my side:

I reported to weißhaupt regarding the fail modbus behaviour like described in my last post regarding the not updated energy regirsters.
I really got a quick answer back: It is a known software bug and they need to update.
So after a week the service technican updated my LS 13-B from SW-Version 0202038212 to 0202040856.

Now the 36101-36104 registers for the heat production values work as expected.
The 36101 is updated for each day.
Nevertheless, the values for month and year seem only to updated for the first time when the month or year has changed.

So today the first month change occured and so now also the month value is updated.
The year value stays still at zero, but I expect I will start being updated then in 2024.

Hi MC Thunfisch, any luck with figuring out the registers for “Soletemperatur”? I just got started with my WGB8 today and I am missing that as well. Please let me know if you find something, I will do the same :slight_smile: Erik

Hi, today a technician change sensor because our heat pump counts to little energy values. The heat energy values from the past day, month oder jear are gone. Now the heat pump counts new form 0 kWh. Hopefully tomorrow I will be able to see the new value for today energy. For know over the modbus interface I still get 0 kWh.

What’s the right way to address modbus/Wem issues to Weishaupt? How can I get the lastet update? I have WEM acess. Is there a special mail address oder hotline?

The state_class: meassurement of the Stats is wrong, it should be total_increasing, if you want use it with the energy dashboard.

solution:

    #Stats
    - name: WPST_Gesamt_Tag
      slave: 1
      address: 36101
      input_type: input
      unit_of_measurement: kWh
      state_class: total_increasing
      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: total_increasing
      device_class: energy
      scale: 1
      offset: 0
      precision: 1
      data_type: int16
    - name: WPST_Gesamt_Jahr
      slave: 1
      address: 36104
      input_type: input
      unit_of_measurement: kWh
      state_class: total_increasing
      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: total_increasing
      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: total_increasing
      device_class: energy
      scale: 1
      offset: 0
      precision: 1
      data_type: int16
    - name: WPST_Heizen_Jahr
      slave: 1
      address: 36204
      input_type: input
      unit_of_measurement: kWh
      state_class: total_increasing
      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: total_increasing
      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: total_increasing
      device_class: energy
      scale: 1
      offset: 0
      precision: 1
      data_type: int16
    - name: WPST_WW_Jahr
      slave: 1
      address: 36304
      input_type: input
      unit_of_measurement: kWh
      state_class: total_increasing
      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: total_increasing
      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: total_increasing
      device_class: energy
      scale: 1
      offset: 0
      precision: 1
      data_type: int16

Hi @exp1337, I used the contact form on https://www.weishaupt.de/ to address teh modbus issues, and then I got an answer within a few days. The support offered me then over email a service technican who updated the software.
Firmware update over wemportal isn’t possible, a service technican has to do it manually on-site.

1 Like

What was your yaml fix?

Has someone found the “IST Leistung” (current power) of the Weishaupt on the modbus?

Can someone please help me here, I am having massive issues getting this operational.

What I am trying is the following :
In my config.yaml i added a line :

modbus: !include modbus.yaml

With the file editor I managed to create the modbus.yaml file in the same directory and this seems to be fine.
But whatever I try I am getting errors allover :
With this simple config in the modbus.yaml file

- name: wpump
  type: tcp
  host: 192.168.10.3
  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

HA has issues starting and eventualy gives error :

Logger: homeassistant.components.modbus.modbus
Source: components/modbus/modbus.py:375
Integration: Modbus (documentation, issues)
First occurred: 5:07:20 PM (4 occurrences)
Last logged: 5:08:52 PM

Pymodbus: wpump: Error: device: 0 address: 42103 -> Modbus Error: [Input/Output] Modbus Error: [Invalid Message] No response received, expected at least 8 bytes (0 received)
Pymodbus: wpump: Error: device: 0 address: 42103 -> Modbus Error: [Input/Output] No Response received from the remote slave/Unable to decode response

Anyone any idea ?

[UPDATE]
Missed the slave: 1 for one reason or another in one of the examples here in the Climates: part.

So this should be the code

  climates:
      - name: "WP_Warmwasser"
        address: 42103
        slave: 1
        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

Hello everyone,

can anyone tell me which modbus-registers I need to address to read out the volume flow? Thanks for help!

Regards, Christoph

When I include this as template.yaml (“template: !include template.yaml” in configuration.yaml) I’m getting this error:

Any idea what causes this issue?

Share the first 5th lines

sensor:

@kakash thank you very much for your code. it works perfect.

Please Post as code or Screenshot.

Add a tabstop at Line 2.
Better Code editor: Download the addon Studio Code Server. After Installation you need to start the addon and pin IT at the Menu taskbar.

Hi Christoph - tried also to read the volume flow - no chance - the registers in the Weishaupt docs do not work … or I have not figured out the data format correctly. I gave up in the end — anybody has more luck pls let me know.

Thanks for Response. I gave up too… Seems Impossible…
Regards,
Christoph

I tried to do some enumaration on the Modbus interface with some scan tools but so far no luck.
I am also looking to the counterpart of the 33107 address (which is my Glycol in temperature from my geothermical loop) so the Glycol out.
Tried number of logical numbers but no succes so far

33106 unknown vallue
33107 glycol in
33108 unknown vallue
33109 unavailable
33110 unavailable

33201 unavailable
33207 unavailable
33117 unavailable

I like to use the WarmwasserPush functionality, however I need to admit I’m not a modbus expert. What would I need to do to send a 30 minutes signal to the Weishaupt?
Kategorie Parameter
Bezeichnung Warmwasser Push
Format 0 = AUS, 5 … 240 MIN
PID 1715
Modbus 42 102
Register Holding R/W