Weishaupt Heatpump integration via modbus

die Warnungen haben ja die gleiche Fehlernummer. Zumindest hatte ich vor langer Zeit erst eine Warnung dann einen Fehler mit der gleichen Nummer und Text. Sehe das im Störspeicher der WMP, hatte damals aber noch nicht via Modbus verbunden.

I am wondering if this behaviour of my Weishaupt heatpump WWP with WKS 300/100 is normal.
I noticed that everytime my heatpump produces hot water, the floor heating feed (Vorlauf) and return (Rücklauf) flow also increases to the hot water temperature. Does your system behave similar?

I don’t think you have the floor heating feed here. You have to install an additional sensor for that (mostly used for cooling).
In my opinion you monitor the heating feed of the heatpump. The valve directs this to your warm water and not the floor heating.

What entitiy do you use?

33104, “Vorlauftemperatur”
31105, “HZ_Vorlauftemperatur”

EDIT:
Denpendant on what version of the integration you use, HZ_Vorlauftemperatur may be hidden.

@MadOne: Thank you very much for your suggestion.

That makes sense, the Vorlauf could be the one from the heatpump and not the heating specific one. But even the heating specific Rücklauf shows the high value. Also the analog readers show the values.

I have waited for the warm water heating slot and checked the heatpump itself … if I understand this correctly, it’s showing the high temperature value even via the display:


Also the analog temperature readers show it (Heating Rücklauf/Return, Heating Vorlauf/Feed, Warmwater):

Do you have radiators or floor heating?
Gauges from left to right:
Return heating
Heating feed
Warm water feed.

So you would have a delta T of 40°C in your heating system.
Further your heating return is at 20°C. This would imply your room Temperature is FAR below that.
I suggest to check the gauges.

Where is your switch valve? It might also be possible that the temperature “sneaks” through the pipes to the gauge.

I have floor heating.
You are right, taking the manual gauges into account it rather looks like some warm water crawls into the floor heating feeding.
I will try to take some more pictures to see if its always like this.

Sorry, I am pretty late with this :slight_smile:
33104 doesn´t wotk for me, but now I found your post with 33111 and that works for my WGB 8 as well with a 0.1 degree resolution, great ! Thanks for sharing! Have you also found an address for return flow temperature?
Erik

It can be thermal energy that is conducted by the metal pipes.
To check: Turn of the valves for floor heating and push warm water.
A infrared thermometer might be a good tool to.
Dont forget to open the valves after this test.

Hey @Lelek62 with a long delay (sorry I do not come here that often) a reply.
I havent proceed this anymore but winter is here again so I am back wondering :slight_smile: (and working on another project so I just saw your reply).

But no news from my side and I will probably add an ESP board with 2 temp probes (one for my well in and one out) to check what my well is doing just you are suggesting.
Still I am not happy with Weishaupt as they should share this info, anoying is that we know the information is in the unit but is not accessable for HA.
If I find more I will post this in this topic / PM you.

Hi Tobias, many thanks for sharing this.
I would like to contribute my solution for translating status numbers to status text. It is a sensor template:

{% set status_texte = ["undefiniert",
          "Relaistest",
          "Notaus",
          "DIAGNOSE",
          "HANDBETRIEB",
          "HANDBETRIEB_HEIZEN",
          "HANDBETRIEB_KUEHLEN",
          "MANUELLER_ABTAUBETRIEB",
          "ABTAUEN",
          "WEZ2",
          "EVU_SPERRE",
          "SG_TARIF",
          "SG_MAXIMAL",
          "TARIFLADUNG",
          "ERHOEHTER_BETRIEB",
          "STANDZEIT",
          "STANDBYBETRIEB",
          "SPUELBETRIEB",
          "FROSTSCHUTZ",
          "HEIZBETRIB",
          "WARMWASSERBETRIEB",
          "LEGIONELLENSCHUTZ",
          "UMSCHALTUNG_HZ_KU",
          "KUEHLBETRIEB",
          "PASSIVE_KUEHLUNG",
          "SOMMERBETRIEB",
          "SCHWIMMBAD",
          "URLAUB",
          "ESTRICHT",
          "GESPERRT",
          "SPERRE_AT",
          "SPERRE_SOMMER",
          "SPERRE_WINTER",
          "EINSATZGRENZE",
          "STANDHK_SPERREBYBETRIEB",
          "ABSENK"] %}
        {{ status_texte[states('sensor.weishaupt_betriebsstatus_numerisch') | int] if states('sensor.weishaupt_betriebsstatus_numerisch') | int < status_texte | length else "Unbekannt" }}

And I would like to also share a card definition which is very useful for me:

Hallo Zusammen, danke für die Konstruktiven Beiträge. Ich hab über HACS und Github Weishaupt WBB installiert, bekomme aber wenn ich es über Geräte installieren möchte folgende Fehlermeldung: Der Konfigurationsfluss konnte nicht geladen werden: 500 Internal Server Server got itself in trouble.

Kennt jemand den Fehler ?

Hallo, den Fehler kenne ich noch nicht. Könntest Du mal Debugging aktivieren und den Log am besten hier: Issues · OStrama/weishaupt_modbus bereitstellen?
Welches Wärmepumpen-Modell hast Du denn?

Die Weishaupt Wärmpumpe-Integration über Modbus habe ich erfolgreich installiert. Das Tool ist sehr schön und mächtig. In der Datei hpconst.py sind mir zwei vertauschte Modbus-Register aufgefallen:
Das betrifft die Zeilen 1274 - 1281:
MODBUS_W2_ITEMS: list[ModbusItem] = [
ModbusItem( address=34101, name=“Status 2. WEZ”, mformat=FORMATS.STATUS, mtype=TYPES.SENSOR, device=DEVICES.W2, resultlist=W2_STATUS, translation_key=“status_2_wez”),
ModbusItem( address=34102, name=“Betriebsstunden 2. WEZ”, mformat=FORMATS.NUMBER, mtype=TYPES.SENSOR, device=DEVICES.W2,params = PARAMS_TIME_H, translation_key=“betriebss_2_wez”),
ModbusItem( address=34103, name=“Schaltspiele 2. WEZ”, mformat=FORMATS.NUMBER, mtype=TYPES.SENSOR, device=DEVICES.W2, translation_key=“schaltsp_2_wez”),
ModbusItem( address=34104, name=“Status E-Heizung 1”, mformat=FORMATS.STATUS, mtype=TYPES.SENSOR, device=DEVICES.W2, resultlist=W2_STATUS, translation_key=“status_e1”),
ModbusItem( address=34105, name=“Status E-Heizung 2”, mformat=FORMATS.STATUS, mtype=TYPES.SENSOR, device=DEVICES.W2, resultlist=W2_STATUS, translation_key=“status_e2”),
ModbusItem( address=34106, name=“Betriebsstunden E1”, mformat=FORMATS.NUMBER, mtype=TYPES.SENSOR, device=DEVICES.W2, params = PARAMS_TIME_H, translation_key=“betriebss_e1”),
ModbusItem( address=34107, name=“Betriebsstunden E2”, mformat=FORMATS.NUMBER, mtype=TYPES.SENSOR, device=DEVICES.W2, params = PARAMS_TIME_H, translation_key=“betriebss_e2”),

In der WH Statistik erhalte ich konstante Energiewerte, die nicht mit den Werten im Display der Wärmepumpe übereinstimmen. Kennt jemand das Problem?

Hi,

mit den Statistiken hatten wir schon öfters Probleme.
Siehe folgenden Kommentar:

hi, I’m also trying to integrate. I have to pass all the data to a PLC modbus rs485, can you tell me if it’s possible to set a destination IP, in which all the collected data is forwarded to a specific IP and port? From there I would then do the conversion to RS485 and I could connect.

I have a Weishaupt heat pump from 2010 that unfortunately does not have a Smart Grid input. However, I could install a Modbus module. I would like to activate the flange heater during PV surplus and, if possible, not the heat pump itself. Is this possible with this integration or Modbus register?

First of all i am not sure if your heatpump publishes the same informations over modbus than the ones with native Modbus TCP.

On my heatpump it is NOT possible to activate the flange heater through modbus.

I instead raise the warm water temperature to 55°C (60°C) and the heatpump stores energy in the warm water. This is made through the heatpump (more efficient).

Hi,

I tried installing the integration, but I don’t get any entities. I have a WWP S8 with a modbus module installed.

When checking the logs, I also see KeyError: weishaupt_wbb :

2025-05-14 05:58:21.606 WARNING (MainThread) [custom_components.weishaupt_modbus] KeyError: weishaupt_wbb
2025-05-14 05:58:25.362 INFO (MainThread) [custom_components.weishaupt_modbus.modbusobject] Connection to heat pump closed
2025-05-14 05:58:25.362 WARNING (MainThread) [custom_components.weishaupt_modbus] KeyError: weishaupt_wbb
2025-05-14 05:58:25.466 DEBUG (MainThread) [custom_components.weishaupt_modbus.coordinator] Finished fetching weishaupt-coordinator data in 0.000 seconds (success: True)
2025-05-14 05:58:25.467 INFO (MainThread) [custom_components.weishaupt_modbus.kennfeld] Reading power map file /config/custom_components/weishaupt_modbus/weishaupt_wbb_kennfeld.json successful
2025-05-14 05:58:25.472 INFO (MainThread) [custom_components.weishaupt_modbus] Init done
2025-05-14 05:59:02.918 INFO (MainThread) [custom_components.weishaupt_modbus.modbusobject] Connection to heat pump closed
2025-05-14 05:59:02.918 WARNING (MainThread) [custom_components.weishaupt_modbus] KeyError: weishaupt_wbb
2025-05-14 05:59:03.021 DEBUG (MainThread) [custom_components.weishaupt_modbus.coordinator] Finished fetching weishaupt-coordinator data in 0.000 seconds (success: True)
2025-05-14 05:59:03.022 INFO (MainThread) [custom_components.weishaupt_modbus.kennfeld] Reading power map file /config/custom_components/weishaupt_modbus/weishaupt_wbb_kennfeld.json successful
2025-05-14 05:59:03.026 INFO (MainThread) [custom_components.weishaupt_modbus] Init done
2025-05-14 05:59:38.964 WARNING (MainThread) [custom_components.weishaupt_modbus] KeyError: weishaupt_wbb
2025-05-14 05:59:48.719 DEBUG (MainThread) [custom_components.weishaupt_modbus.coordinator] Finished fetching weishaupt-coordinator data in 0.000 seconds (success: True)
2025-05-14 05:59:48.719 INFO (MainThread) [custom_components.weishaupt_modbus.kennfeld] Reading power map file /config/custom_components/weishaupt_modbus/weishaupt_wbb_kennfeld.json successful
2025-05-14 05:59:48.724 INFO (MainThread) [custom_components.weishaupt_modbus] Init done

I can query modbus via the modbus integration and map the items:

> modbus:
>   - type: tcp
>     name: Weishaupt_Warmtepomp
>     host: 10.10.80.16
>     port: 502

This returns valid info, for example warm water, gives me the actual temp.

#Warm Water
     - name: Warm Water
       slave: 1
       address: 3
       input_type: input
       unit_of_measurement: °C
       scale: 0.1
       offset: 0
       precision: 1
       data_type: int16
       unique_id: wp_warmwater_actueel

Is there something wrong with my setup, or is this integration not compatible with my setup?
Thanks

You seem to have completely different addresses.

Thread opener:

  • name: “WP_Warmwasser”
    address: 42103

You:

  • name: Warm Water
    slave: 1
    address: 3

Looks like your heatpump is NOT compatible.

Hallo zusammen,

Ich habe eine WWP LS 8 und wollte diese auch ueber Modbus auslesen. Allerdings fehlt mir etwas Kontext bei der ganzen Sache. So eine richtige “Anleitung” habe ich bisher nicht gefunden.

Daher die Fragen:

  • Ich brauche ein LWPM 410 fuer Modbus over Ethernet. Es gibt dieses Modul allerdings von verschiedenen Herstellern (Bosch, Weishaupt, Buderus, Dimplex). Kann ich davon irgendeine nehmen, oder muss es die von Weishaupt sein bei einer Weishaupt WPP?
  • Wo wird das Ding dann eingebaut? Und kann ich das dann selbst machen? In der Anleitung zu meiner Waermepumpe steht dazu nichts.

Vielen Dank fuer Antworten!

1 Like