Den Heizverbrauch messen

Den Heizverbrauch zu kennen bietet mehrere Vorteile. Um diese zu Nutzen sollten die Daten über einen Winter aufgezeichnet werden.

Damit das funktioniert brauchst Du folgende Geräte:

INFO: Ab Home Assistant Version 2023-10 ist der Parameter «Count» nicht mehr zwingend. Die hier verwendete Konfiguration ist sicher ab Home Assistant 2023-10 gültig. Für ältere Versionen hat diese Konfiguration funktioniert:

Geräte und Produkte Links anzeigen
Belimo TEZ 22PE-1UE – Vor Bestellung Rohrdurchmesser prüfen

Motivation

Beim Ersatz der Heizung durch eine Wärmepumpe ist die Dimensionierung der Wärmepumpe (und bei Erdsonden die Bohrtiefe) mit Kosten verbunden. Wenn der Heizverbrauch nicht bekannt ist, wird auf Erfahrungswerte zurückgegriffen. Das ist Grundsätzlich gut, dabei ist jedoch auch immer eine gewisse Reserve enthalten. Diese Reserve kostet und wird überflüssig, wenn ich den Leistungsbedarf kenne.

Die Dimensionierung der Wärmepumpe kann Auswirkungen auf die Effizienz im Betrieb haben. Wie Messwerte helfen die passende Wärmepumpe zu bestimmen, ist in «Dimensionierung der Wärmepumpe» beschrieben.

Beim Ersatz von Erdwärmepumpen Leistung prüfen

Die folgende Tabelle zeigt in einem Beispiel, wie eine neue Wärmepumpe (WP) ohne Begrenzung die Wärmeleistung der Erdsonden von 6 kW auf 9 kW erhöhen kann. Damit wird 50% mehr Leistung pro Meter aus dem Erdreich entnommen. Wenn zu viel Leistung aus der Erdsonde entnommen wird, kann die Bohrung einfrieren und zerstört werden.

Eine neue Bohrung bring jedoch hohe Investitionskosten mit sich. Wenn ich vor dem Ersatz der Erdwärmepumpe meinen Heizverbrauch kenne, habe ich Gewissheit ob eine neue Bohrung notwendig ist oder nicht.

ParameterWP bestehendWP neu
(Ohne Begrenzung)
WP Neu
(mit Begrenzung)
Elektrische Leistung3 kW3 kW2 kW
Wärmeleistung von Erdsonde6 kW9 kW6 kW
Erzeugte Wärmeleistung9 kW12 kW8 kW
COP-Wert344
Bohrungok!!!ok
COP-Wert = Verhältnis Erzeugte Wärmeleistung / Elektrische Leistung

Dimensionierung der Wärmepumpe

In diesem Blog beschreibe ich, wie die Heizleistung messbar wird. Anhand den gemessenen Daten, kann die Wärmepumpe auf das Haus ausgelegt werden.

Wärmepumpen mit Inverter regeln die Heizleistung nach dem Wärmebedarf. Sie können 30…100% der Leistung regeln. Dank den Messdaten, weiss ich, dass eine Inverter Wärmepumpe mit ca. 8kW Leistung perfekt auf das Haus passt. Bei 10° Aussentemperatur läuft die Wärmepumpe mit minimaler Leistung (30% von 8kW = 2.4kW). Bei -10°C Aussentemperatur muss die Wärmepumpe 4.7kW Leistung liefern, was bei 8kW mit genügend Reserve möglich ist.

Aussentemperatur [°C]10°-5°-10°
Vorlauf Ladekreis [°C]38°40°45°47°50°
Leistung Heizung [kW]2.02.63.34.04.7
Tabelle gemessene Heizleistung

Wieso ist diese Tabelle so wichtig?

In den nächsten zwei Grafiken, sind reale Leistungswerte einer 8kW und einer 13kW Wärmepumpe inklusive der gemessenen Heizleistung dargestellt. Die 8kW Wärmepumpe ist von 2.0 bis 4.7kW im geregelten Betrieb, die 13kW Wärmepumpe hat eine minimale Leistung von 3kW. Unter 3kW (bei > 0°C Aussentemperatur) ist sie nicht im geregelten Betrieb sondern muss im Ein/Aus Betrieb arbeiten, welcher weniger effizient ist.

Grundsätzlich ist die 13kW Wärmepumpe gleich gut wie die 8kW Wärmepumpe. In dieser spezifischen Situation ist sie von den Kenndaten einfach weniger geeignet. Genau deshalb soll die Heizleistung vor der Auslegung der Wärmepumpe gemessen werden.

Leistungswerte 8kW Wärmepumpe

Leistungswerte 13kW Wärmepumpe

Unterschied Ein/Aus zu geregeltem Betrieb

Weil die Heizleistung der Wärmepumpe nicht bis 0 kW regelbar ist, muss sie unterhalb der minimalen Heizleistung im Ein/Aus Betrieb arbeiten.

Die reduzierte Effizienz kommt davon, dass die Lebensdauer der Wärmepumpe unter anderem von der Anzahl Schaltzyklen abhängt. Das heisst, sie darf nicht allzu häufig Ein/Aus schalten. Deshalb wird im Ein/Aus Betrieb der Pufferspeicher auf eine höhere Vorlauftemperatur gebracht. Je höher die Vorlauftemperatur, desto weniger Effizient arbeitet die Wärmepumpe.

Vergleich Wärmepumpe Betrieb geregelt vs. Ein/Aus

Beispiel

Die Heizung eines Einfamilienhauses besteht in der Regel aus Erzeuger, Speicher und Verbraucher. Die Erzeuger Messung wird benötig um den COP-Wert der Wärmepumpe zu berechnen. Moderne Wärmepumpen liefern die Daten der erzeugten Wärmeleistung.

Für die Dimensionierung der Wärmepumpe ist jedoch die maximalen Leistung der Verbraucher interessant. Deshalb wird der Energiezähler bei der Verbraucher Messung installiert.

In 4 Schritten erfolgt die Konfiguration (Details sind unter Anleitung beschrieben):

  1. Konfiguration Thermischer Energiezähler über App
  2. Integration Thermischer Energiezähler in Home Assistant
  3. Werte in Dashboard darstellen
  4. Langzeitwerte über Statistics Graph Card darstellen

Anleitung

Vorbedingung: der Thermische Energiezähler (TEZ) wurde vom Fachmann installiert.

Konfiguration Thermischer Energiezähler mit App

Der Energiezähler wird über das Modbus TCP Protokoll integriert. Die IP Adresse wird über die Belimo Assistant App konfiguriert.

Dank der NFC Schnittstelle, können diese Daten dem Gerät auch ohne Speisung übermittelt werden.

Buskommunikation

  1. Busprotokoll: Modbus TCP
  2. Adresse: <Fortlaufenden Nummer>
  3. Port: 502

Netzwerk

Fixe IP-Adresse und Netzwerkkonfiguration eingeben.

Screenshot IP Konfiguration TEZ

Integration Thermischer Energiezähler in Home Assistant

Modbus Geräte können über die Modbus Integration in Home Assistant eingebunden werden.

Den Modbus Geräte werden über Name, IP Adresse und Port definiert. Die Werte müssen mit Konfiguration der Belimo Assistant App übereinstimmen.

Configuration.yaml

modbus:
  - name: modbus_hub_ug_heizung
    type: tcp
    host: 192.168.177.24
    port: 502

Danach werden die einzelnen Datenpunkte in Home Assistant als Sensor Entitäten integriert. Diese werden vom Hersteller beschrieben. Im Screenshot ist ein Ausschnitt der 22PE-1UE Schnittstellenbeschreibung dargestellt.

Wie die manuelle Konfiguration bearbeitet wird, ist in diesem Blog beschrieben: Manuelle Konfiguration in Home Assistant

Beschreibung Datenpunkte TEZ 22PE-1UE

Beschreibung:

Das Geräte mit der ID24 wird eingelesen (slave 24).

Es wird eine Sensor Entität definiert für den Datenpunkt an Startadresse 19 (address: 19).

Input_type musst ich ab Home Assistant Version 2023-10 angeben.

Der Datenpunkt entspricht einer Temperatur (device_class: temperature) und wird in Grad Celsius ausgegeben (unit_of_measurement: «°C»).

State_class: measurement erlaubt die Verwendung der Sensorwerte als Long-Term Statistics.

Die Skalierung (scale: 0.01) und die Anzahl Nachkommastellen (precision: 1).

Für den Wertebereich -2’000…12’000 reicht der Datentyp Integer (data_type: int16).

Configuration.yaml

    sensors:
      - name: ug_heizung_temp_vorlauf
        unique_id: ug_heizung_temp_vorlauf_id
        slave: 24
        address: 19
        input_type: input
        unit_of_measurement: "°C"
        state_class: measurement
        device_class: temperature
        scale: 0.01
        precision: 1
        data_type: int16

Weitere Datenpunkte werden nach dem selben Syntax integriert. Bei Datenpunkten über 2 Adressen ist die Reihenfolge von LowWord/HighWord relevant.


Beschreibung:

Es wird eine Sensor Entität definiert für den Datenpunkt an der Startadresse 33 (address: 33). Der Wert wird 1 Mal pro Minute ausgelesen (scan_interval: 60).

Input_type musste ich ab Home Assistant Version 2023-10 angeben.

Auf dem TEZ ist der Wert als kW definiert mit Skalierung 0.001. Ich möche in Home Assistant den Wert in W ausgeben (unit_of _measurement: «W») . Der Wechsel der Einheit kW -> W, muss in der Skalierung kompensiert werden (scale: 1).

State_class: measurement erlaubt die Verwendung der Sensorwerte als Long-Term Statistics.

Der Wert wird ohne Nachkommastellen dargestellt (precision: 0).

Die Reihenfolge LowWord / HighWord des Gerätes entspricht nicht der Standardreihenfolge der Modbus Integration. Mit swap: word wird dies korrigiert

configuration.yaml

      - name: ug_heizung_power
        unique_id: ug_heizung_power_id
        scan_interval: 60
        slave: 24
        address: 33
        input_type: input
        device_class: power
        unit_of_measurement: "W"
        state_class: measurement
        scale: 1
        precision: 0
        data_type: uint32
        swap: word

Die vollständige Konfiguration für configuration.yaml ist im nächsten Abschnitt enthalten.


Werte in Dashboard darstellen

In einer Elemente Card werden diverse Datenpunkte vom TEZ übersichtlich dargestellt.

Code von Elemente Card:

type: entities
entities:
  - entity: binary_sensor.hlk_heizung_ein
    name: Heizung EIN/AUS
  - entity: sensor.ug_heizung_temp_vorlauf
    name: Heizung Temp Vorlauf
  - entity: sensor.ug_heizung_temp_rucklauf
    name: Heizung Temp Rücklauf
  - entity: sensor.ug_heizung_delta_temp
    name: Heizung Temp Differenz
  - entity: sensor.ug_heizung_flow
    name: Heizung Durchfluss
  - entity: sensor.ug_heizung_power
    name: Heizung Leistung
  - entity: sensor.ug_heizung_energy
    name: Heizung Energiezähler
  - entity: sensor.ug_heizung_status_int
    icon: mdi:check-circle
    name: Heizung Status
title: Heizkreis
state_color: true

Visualisierung:

Langzeitwerte benötigen entsprechend Speicherplatz. Deshalb soll die state_class: measurement bewusst eingesetzt werden. In der folgenden Konfiguration werden: Vorlauftemperatur, Rücklauftemperatur und die Heizleistung als Langzeitwerte definiert. Die anderen Werte, können auf 2 Tage zurück angezeigt werden.

Vollständige Konfiguration für TEZ: configuration.yaml

modbus:
# ===================== TEZ Heizkreis ============================================
  - name: modbus_hub_ug_heizung
    type: tcp
    host: 192.168.177.24
    port: 502
    sensors:
      #--------------- Current flow generation Heatpump [l/min] ---------
      - name: ug_wp_flow
        unique_id: ug_wp_flow_id
        slave: 23
        address: 9
        input_type: input
        unit_of_measurement: "l/h"
        scale: 0.001
        precision: 1
        data_type: uint32
        swap: word
        
      #--------------- Temperature of the supply water -------------------
      - name: UG WP Temp Vorlauf
        slave: 23
        address: 19
        input_type: input
        unit_of_measurement: "°C"
        state_class: measurement
        device_class: temperature
        scale: 0.01
        precision: 1
        data_type: int16

      #-------------- Temperature of the return water --------------------
      - name: UG WP Temp Rücklauf
        slave: 23
        address: 21
        input_type: input
        unit_of_measurement: "°C"
        state_class: measurement
        device_class: temperature
        scale: 0.01
        precision: 1
        data_type: int16

      #-------------- Difference between supply and return temperatuer ----
      - name: UG WP delta Temp
        unique_id: ug_wp_delta_temp
        slave: 23
        address: 23
        input_type: input
        unit_of_measurement: "°C"
        device_class: temperature
        scale: 0.01
        precision: 1
        data_type: int16

      #--------------- Actual Power consumption of Heating [W] -------------
      - name: ug_wp_power
        unique_id: ug_wp_power_id
        slave: 23
        address: 33
        input_type: input
        scan_interval: 60
        unit_of_measurement: "W"
        device_class: power
        state_class: measurement
        scale: 1
        precision: 0
        data_type: uint32
        swap: word
        
      #--------------- Total Energy generation Heatpump [kWh] --------------
      - name: ug_wp_energy
        unique_id: ug_wp_energy_id
        slave: 23
        address: 71
        scan_interval: 60
        input_type: input
        unit_of_measurement: "kWh"
        scale: 1
        precision: 0
        data_type: uint32
        swap: word
        
      #---------------- Status of Device -----------------------------------
      - name: UG WP Status_int
        slave: 23
        address: 104
        input_type: input
        data_type: uint16
 

Langzeitwerte über Statistics Graph Card darstellen

Die Langzeitwerte stehen der Statistic Graph Card zur Verfügung. Mit dieser Karte soll Minimum, Mittelwert und Maximalwert der Vorlauftemperatur dargestellt werden.

Tip: Mit der Verwendung von Langzeitwerten, sollte die Recorder Integration verwendet werden, welche die Werte in einer Datenbank speichert. Eine MariaDB Datenbank kann als Add-On installiert werden.

Statistik Vorlauf Temperatur

Es gibt eine Vorlauftemperatur für die Heizkörper (im Beispiel: T_Vorlauf_Heizkreis) und eine Vorlauftemperatur für den Ladekreis (im Beispiel: T_Vorlauf_Ladekreis). Beide werden von Heizung (Wärmepumpe) über Kennlinien geregelt.

Aus der Statistik ist ersichtlich, welche maximale Temperatur die Wärmepumpe erzeugte.

Code von Statistic Graph Card

chart_type: line
period: week
days_to_show: 180
type: statistics-graph
entities:
  - sensor.ug_heizung_temp_vorlauf
title: Statistik Heizkreis Temperatur

Visualisierung:

Statistik Heizleistung

Die Installation im Beispiel verwendet die gleichen Rohre um Wärme in den Speicher zu laden, oder vom Speicher Wärme in den Heizkreis zu pumpen. Beim Ein- und Ausschalten der Wärmepumpe entstehen, kurzfristige Zustände die nicht relevant sind. Deshalb ist es wichtig, den Mittelwert der Heizleistung zu kennen. Die Statistic Card von Home Assistant berechnet die Mittelwerte automatisch.

chart_type: line
period: hour
days_to_show: 30
type: statistics-graph
entities:
  - sensor.ug_heizung_power
stat_types:
  - mean
  - min
  - max
title: Statistik Heizkreis Leistung

Messresultate

Diese Messresultate, in Abhängigkeit mit der Aussentemperatur dargestellt, werden verwendet um die neue Heizung auszulegen.

Aussentemperatur [°C]10°-5°-10°
Vorlauf Ladekreis [°C]40°40°45°47°50°
Leistung Heizung [kW]2.02.63.34.04.7
Charakteristik Haus

Die Messwerte können auch zusammen mit der Aussentemperatur über das Add-On Grafana dargestellt werden. Der Blog wie das geht ist noch ausstehend…stay tuned.