Weishaupt Heatpump integration via modbus

Hallo zusammen,

seit gestern habe ich auch eine Wärmepumpe von Weishaupt und dank der tollen Integration auch schon direkt in HA.

Jetzt möchte ich gern auch die Daten der Heizkurve entsprechend erfassen, hab aber nicht die Richtige Ahnung, wie das gehen soll, und wo in der Doku ich überhaupt nachgucken soll.

Ich habe die beiden angehängten Kurven gefunden. Sind das die richtigen?


Hi guys,

I’m reading this with interest because I want to integrate my WWP18 via Modbus. Currently, I’m using the Ostrama script (GitHub - OStrama/weishaupt_modbus: This integration allows you to monitor and controll your weishaupt heatpump via modbus.) because I haven’t been able to figure it out from these posts. Currently, all values are unavailable (unknown). Do you have any tips for a complete beginner? I’d be very grateful.

Hi, ich frage jetzt auch mal auf deutsch:

Gibt es eine Möglichkeit, sich die Statistikwerte auch mit Nachkommastellen anzeigen zu lassen? Also bspw. den Energieverbrauch des Tages etc.

Wenn ich an meinem Gerät in die Statistik schaue, wird mir auch keine Machkommastelle angezeigt, wenn ich dann aber auf den Knopf drück und unten auf das Listensymbol gehe, dann erhalte ich kWh-Werte mit 1 Nachkommastelle. Also bspw. Elektrische Energie heute 3,6 kWh. Im sensor der Integration wird mir aber nur 3 kWh angezeigt.

Und das anlegen der Heizkurve, wie schon 2 Posts weiter oben gefragt, verstehe ich leider überhaupt nicht. Würde gern zu dem Projekt beitragen, bräuchte da aber noch ein wenig Input bitte.

Über Modbus stehen die Statistikdaten nur als Ganzzahl zur Verfügung, außer Weishaupt hat die irgendwo versteckt und nicht in der “offiziellen” Doku beschrieben.

Die Kennlinien für Heizleistung wirst du dir selbst irgendwie berechnen müssen.
Weiter oben findest du auch Beträge zur Berechnung der JAZ (Wirkungsgrad). Dies mit den Werten der Tagesstatistik zu berechnen ist aber gerade im Sommer aufgrund der fehlenden Dezimalstellen recht ungenau.

1 Like

Danke für deine Rückmeldung.

Ja, das mit der Berechnung der JAZ ist irgendwie blöd, Weil das ohne die Nachkommastellen natürlich wenig bis keinen Sinn macht.

Berechnung der JAZ ist ja vergleichsweise einfach: gesamte erzeugte Thermische Energie durch gesamte verbrauchte elektrische Energie. Der Wert liegt bei mir fürs WW aktuell nur bei ca. 2,1. den finde ich somit extrem niedrig und natürlich viel niedriger, als ich mir erhofft habe. Habe die Anlage jetzt seit ca. 1,5 Monaten in Betrieb. Mal gucken, was der Heizungsbauer oder Weishaupt dazu sagt.

Die Kennlinien für die Heizleistung würde ich mir ja gern selber berechnen - aber ich habe keine Ahnung, wie. Evtl. kann ja @MadOne oder @OStrama was dazu sagen, wie ich die berechnen kann.

Ich habe aber auch noch nicht genau verstanden, wie sich diese Berechnungen dann auswirken.

Hi Everyone,
I cant find anything in this Project about the set up!
Especially concerning the used Hardware or Modbus-Modul. My Weishaupt heatpump is (I think) not ready to read the data via Modbus by its own.

Does anyone have Information about it?

thanks in advance

As far as i know all working heatpumps already have modbus and the plug in module does not work.

Im no expert in the heating curve, as i am not interested an @OStrama invented it. But i tried to gather some information about it in the wiki. Does THIS help you?

If you need help with the integration github would be the right place to ask.

Hi erveryone,I have chosen for my integration WSB6 and weishaupt_wsb6_kennfeld.json file, but the displayed value (Wärmeleistung) did not match to the one witch is shown in the WEM-Portal.
Can anyone help me ?
weishaupt_wsb6_kennfeld.json

Mich störte es, dass ich in den Modbus Registern nicht alle Werte sehe die ich im webui meiner Wärmepumpe habe.Hierzu hab ich mir von chatgpt ein py-script bauen lassen das mir insbesondere den Wert Druckgas bereitstellt.
Alle anderen Werte aus der webui sollten somit auch kein Problem sein.

dazu in die config.yaml:

command_line:
  - sensor:
      name: "WEM Daten"
      command: "python3 /config/wem_fetch.py"
      scan_interval: 300
      value_template: "{{ value_json.Druckgas }}"
      json_attributes:
        - Druckgas
  

template:
  - sensor:
      - name: "WEM Druckgas"
        unit_of_measurement: "°C"
        state: "{{ state_attr('sensor.wem_daten', 'Druckgas') }}"

und das py:

#!/usr/bin/env python3
import urllib.request
import urllib.parse
import http.cookiejar
import re
import json
import sys

URL = "http://192.168.xxx.xxx/settings_export.html?stack=0C000001000000000080001F39010002000301,0C000C21000000000000001F39020003000401"
LOGIN_URL = "http://192.168.1xx.xxx/login.html"
USERNAME = ""
PASSWORD = ""

# Cookies verwalten, falls Login nötig
cj = http.cookiejar.CookieJar()
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))

try:
    # Optionaler Login
    if USERNAME and PASSWORD:
        login_data = urllib.parse.urlencode({
            "user": USERNAME,
            "pass": PASSWORD
        }).encode("utf-8")

        try:
            opener.open(LOGIN_URL, login_data, timeout=5)
        except Exception as e:
            # kein Login zwingend notwendig
            pass

    # Seite abrufen
    response = opener.open(URL, timeout=10)
    html = response.read().decode("utf-8", errors="ignore")

    # Werte mit Regex extrahieren
    pattern = re.compile(
        r'<h5>([^<]+)</h5>\s*([-\d\.]+)\s*[°C|%|Hz|h|m3/hK]*',
        re.MULTILINE
    )
    matches = pattern.findall(html)

    data = {}
    for name, value in matches:
        try:
            data[name.strip()] = float(value)
        except ValueError:
            continue

    filtered = {
        "Druckgas": data.get("Druckgas"),
        "LWT": data.get("LWT"),
        "Ruecklauftemperatur": data.get("Rücklauftemperatur") or data.get("Rucklauftemperatur"),
        "Warmwassertemperatur": data.get("Warmwassertemperatur"),
        "Luftansaugtemperatur": data.get("Luftansaugtemperatur"),
        "Waermetauscher_Innen": data.get("Wärmetauscher Innen") or data.get("Wermetauscher Innen"),
    }

    print(json.dumps(filtered))

except Exception as e:
    # Fehler sicher als JSON ausgeben
    print(json.dumps({
        "error": str(e),
        "Druckgas": None,
        "LWT": None,
        "Ruecklauftemperatur": None,
        "Warmwassertemperatur": None,
        "Luftansaugtemperatur": None,
        "Waermetauscher_Innen": None
    }))
    sys.exit(0)

Mit der Abfrage der webui sollte das auch gehen.
Die Frage ist noch, wie stabil die webui auf der Wärmepumpe läuft…

Hallo zusammen,
ich habe die folgende Fehlermeldung im Protokoll :slight_smile:
Protokolldetails (WARNUNG)

Dieser Fehler stammt von einer benutzerdefinierten Integration

Logger: custom_components.weishaupt_modbus.kennfeld
Quelle: custom_components/weishaupt_modbus/kennfeld.py:41
Integration: Weishaupt Wärmepumpe (Dokumentation, Probleme)
Erstmals aufgetreten: 13:40:45 (1 Vorkommnis)
Zuletzt protokolliert: 13:40:45

Matplotlib not available. Can’t create power map image file

Kann mir jemand weiterhelfen was die Ursache ist?

First thank you all for this great thread about Weishaupt integration in Home assistant.

Did anyone got the WAB 11 (or WAB8) working in Weishaupt Modbus integration from OStrama and Madone? Which Kennfeld do I have to choose? Is this Heatpump working with the inegration?

Just created a new one for WAB 11:


{
  "known_x": [-22, -20, -15, -10, -7, -5, 0, 5, 10, 15, 20, 25, 30, 35],
  "known_y": [
    [3500, 3790, 4570, 5340, 6000, 6348, 6400, 8100, 9390, 10830, 11000, 11000, 11000, 11000],   // obere Kurve, 35 °C
    [3290, 3560, 4235, 5000, 5380, 5380, 5380, 7409, 8700, 9831, 10700, 11000, 11000, 11000]      // obere Kurve, 55 °C
  ],
  "known_t": [35, 55]
}

Ist kein Fehler wie Ostrama auf Github erläutert hat!

Did you find any guide. Im also struggling with modbus integration for my heat pump

Hallo zusammen,
funktioniert die Integration auch mit einer Monoblock WP (L9AD)?
Bei mir gibt es keinen Connect. “Failed to connect”
WP seitig das das biser mit FHEM problemlos funktioniert

Was könnte die Ursache sein?

Just to help others whilst searching for the latest version of the intergration.
The links on GitHub only go to version 1.08, but at this moment the latest version I found in HACS was 1.16.

Main take away also was that the the heatpump has 2 passwords with 2 types of access. One password is 11 and enters the engineers menu.
But there is also 21 which gives the OEM menu and I was able to enter settings and enable the web server. The other password did not show that option.
Thanks for this !