Diese Anleitung setzt voraus, dass ihr bereits ems-esp installiert habt.

Einbinden von ems-esp

Nach erfolgreicher Installation von Home Assistant, erhält man folgenden Onboarding-Screen.

Home Assistant Onboarding-Screen

Mit Klick auf MEIN SMARTHOME ERSTELLEN wird man aufgefordert ein Benutzerkonto anzulegen und eine Adresse auszuwählen. Im nächsten Schritt kann man Home Assistant optionale Telemetriedaten zur Verfügung stellen. Im letzten Schritt werden Geräte angezeigt, die Home Assistant bereits während der Installation im Heimnetz identifizieren konnte - z.B. Fritzbox und Smart Plugs von Shelly.

Home Assistant kann ems-esp nicht direkt identifizieren. Dies lässt sich schnell ändern, indem man Integration hinzufügen unter Einstellungen → Geräte & Dienste auswählt. In der Anbietersuche gibt man MQTT ein.

Home Assistant: MQTT Integration

Daraufhin öffnet sich ein Dialog, indem man das offizielle Add-on Mosquitto Mqtt Broker installieren kann. Hat man die MQTT-Integration erfolgreich aufgeschlossen, so erhält man eine Übersicht aller über das MQTT-Discovery identifizierten Geräte:

  • ems-esp Boiler = Wärmepumpe
  • ems-esp = Gateway Module
  • ems-esp Thermostat = Thermostat

Nach Bestätigung gelangt man zurück zur Übersicht, in der nun alle verfügbaren Entitäten dargestellt werden.

Home Assistant: Übersicht

Ein detailliertere Installationsanleitung kann man auch direkt bei ems-esp finden.

Messwerteverlauf visualisieren

Und dann kann es auch schon mit den ersten Messwerten losgehen! Um die Funktionsweise der Wärmepumpe genauer zu verstehen und die Effizienz zu überwachen, macht es Sinn, sich einige Messwerte grafisch darstellen zu lassen. Mit Klick auf Verlauf im Menü links kann man Entitäten auswählen, deren Verlauf man angezeigt bekommen möchte. Im nachfolgenden Verlauf werden die folgenden Messwerte dargestellt:

  • Boiler Gewählte Vorlauftemperatur: die gewünschte Vorlauftemperatur, die sich aus der eingestellten Heizkurve und der Außentemperatur ergibt. Im dargestellten Beispiel lag die Außentemperatur bei -2..-4 °C und die Sollvorlauftemperatur bei 32..35 °C.
  • Boiler Aktuelle Vorlauftemperatur: die reale Vorlauftemperatur, die wie im Diagramm zu sehen um die gewählte Vorlauftemperatur schwingt. Die Ausreißer nach unten sind Abtauvorgänge, da die Luftfeuchtigkeit bei ca. 90% lag.

Verlauf von Messwerten

Diesen Verlauf direkt in Home Assistant öffnen

Arbeitszahl/COP mit Helfer-Entitäten

Interessante Einsicht in die Effizienz der Anlage bietet insbesondere die Arbeitszahl, die manchmal auch als COP bezeichnet wird. Die Arbeitszahl ist nicht direkt über ems-esp verfügbar, kann aber einfach eingerichtet werden. Die Arbeitszahl ist der Quotient aus der thermischen Leistungsabgabe Q und der elektrischen Leistungsaufnahme P. Zur Berechnung benötigt man 3 Helfer-Entitäten:

Helfer Entität für aktuelle thermische Leistungsabgabe Helfer Entität für aktuelle elektrische Leistungsaufnahme Helfer Entität für aktuelle Arbeitszahl
  1. Thermische Leistungsabgabe als Ableitungssensor der thermischen Energie
    • Art: Helfer → Ableitungssensor
    • Name: boiler_powertotal
    • Eingangssensor: ems-esp Boiler Gesamtenergie
    • Genauigkeit: 2 decimals
    • Zeitfenster: mindestens 10 Minuten, um die Messungenauigkeit etwas zu glätten
    • Zeiteinheit: Stunden
  2. Elektrische Leistungsaufnahme als Ableitungssensor der elektrischen Energie
    • Art: Helfer → Ableitungssensor
    • Name: boiler_powerconstotal
    • Eingangssensor: ems-esp Boiler Gesamtmessung
    • Genauigkeit: 2 decimals
    • Zeitfenster: mindestens 10 Minuten, um die Messungenauigkeit etwas zu glätten
    • Zeiteinheit: Stunden
  3. Arbeitszahl als Template für einen Sensor
    • Art: Helfer → Template → Template für einen Sensor
    • Name: boiler_az
    • Zustandstemplate:

      {% set q = states('sensor.boiler_powertotal') | float %}
      {% set p = states('sensor.boiler_powerconstotal') | float %}
      {% if q >= 0 and p > 0 %}
      {{ (q / p) | round(2) }}
      {% else %}
        0
      {% endif %}
      
    • Geräteklasse: Leistungsfaktor
    • Gerät: ems-esp Boiler

Wie bereits oben für den Vorlauf beschrieben, können wir die 3 neuen Helfer-Entitäten auch über einen frei wählbaren Zeitraum im Verlauf betrachten:

Verlauf von Messwerten

Diesen Verlauf direkt in Home Assistant öffnen

Das Diagramm zeigt die 3 Helfer-Entitäten bei -5 °C Außentemperatur. Die elektrische Leistungsaufnahme schwankt zwischen 530 W und 1600 W. Mit Hilfe der Umgebungswärme werden daraus zwischen 2000 W und 4700 W gewonnen. Die Arbeitszahl liegt bei ca. 3 im Normalbetrieb, und fällt stark ab, wenn der Abtauvorgang einsetzt, da thermische Energie zum Abtauen “verloren” geht.

Vermutlich wollt ihr aber nicht nur die aktuelle Arbeitszahl sehen, sondern diese auch über die gesamte Laufzeit eurer Wärmepumpe auswerten. Dazu legt ihr euch einfach eine weitere Helfer-Entität für die Jahresarbeitszahl an:

  • Art: Helfer → Template → Template für einen Sensor
  • Name: boiler_jaz
  • Zustandstemplate:

    {% set q = states('sensor.boiler_nrgsupptotal') | float %}
    {% set p = states('sensor.boiler_nrgconstotal') | float %}
    {% if q >= 0 and p > 0 %}
    {{ (q / p) | round(2) }}
    {% else %}
      0
    {% endif %}
    
  • Geräteklasse: Leistungsfaktor
  • Gerät: ems-esp Boiler

Fehler am Ableitungssensor beheben

Solange die Wärmepumpe läuft und sich dadurch ems-esp Boiler Gesamtenergie über die Zeit ändert, funktionieren die Helfer-Entitäten wie erwartet. Ist die Wärmepumpe jedoch aus, erfolgt keine Veränderung der ems-esp Boiler Gesamtenergie mehr. In diesem Fall würde man erwarten, dass der oben erstellte Ableitungssensor boiler_powertotal für die Leistungsabgabe 0 kW ausgibt und die daraus berechnete Arbeitszahl 0 ist. Jedoch reicht Home Assistant jegliche Aktualisierungen bei gleichbleibendem Wert nicht weiter. Dies führt leider dazu, dass der Ableitungssensor nicht aktualisiert wird und dadurch dessen Wert niemals 0 kW erreicht und die Arbeitszahl fälschlicherweise in die Höhe schnellt.

Abhilfe hierfür schafft eine erzwungene Aktualisierung (force_update) mittels folgender Automation. Dazu öffnet man Einstellungen → Automationen & Szenen und wählt dann unten rechts AUTOMATION ERSTELLEN und Neue Automation erstellen aus. Dann klickt man oben rechts auf die 3 Punkte und drückt auf In YAML bearbeiten und fügt die folgende Konfiguration in das Textfeld ein:

alias: "WP MQTT: Set force_update on boiler_nrgtotal if missing"
description: >-
  This automation adds 'force_update: true' to the discovery message of
  'boiler_nrgtotal' when the flag is missing or false, preserving all other
  content.
triggers:
  - topic: homeassistant/sensor/ems-esp/boiler_nrgtotal/config
    trigger: mqtt
conditions:
  - condition: template
    value_template: >
      {% set payload = trigger.payload | from_json %} {{ not
      payload.get('force_update', False) }}
    enabled: true
    alias: Only if force_update flag is false or missing entirely
actions:
  - data:
      topic: homeassistant/sensor/ems-esp/boiler_nrgtotal/config
      payload: >
        {% set payload = trigger.payload | from_json %}{{ dict(payload,
        force_update=true) | to_json }}
      retain: false
    action: mqtt.publish
    enabled: true
mode: single

Nach dem Speichern wird automatisch force_update für boiler_nrgtotal aktiviert und sowohl die Helfer-Entität für die Leistungsabgabe als auch die Arbeitszahl funktionieren wie erwartet - auch wenn die Wärmepumpe aus ist.

Wärmepumpen Dashboard

Um auf einen Blick alle relevanten Messwerte zu erhalten, empfiehlt es sich im nächsten Schritt ein Dashboard zu erstellen. Ein einfaches Dashboard für die Wärmepumpe sieht beispielsweise so aus:

Einfaches Home Assistant Dashboard

Die Konfiguration für dieses Dashboard findet ihr hier: https://github.com/bosch-buderus-wp/home-assistant/blob/main/dashboards/simple-dashboard.yaml. Um die Konfiguration zu übernehmen, erstellt euch einfach ein neues Dashboard in der Dashboard-Übersicht:

Dashboard-Übersicht anzeigen

und klickt dann oben rechts auf den Stift, dann auf die 3 Punkte und dann auf Raw-Konfigurationseditor. Dort könnt ihr dann die Konfiguration reinkopieren, speichern und das Dashboard direkt nutzen.

Weitere Details folgen in Kürze.