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:
- Belimo Thermischer Energiezähler (TEZ)
- PoE Switch (oder 24V Speisung)
- …und natürlich Home Assistant

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üfenDie 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.
Parameter | WP bestehend | WP neu (Ohne Begrenzung) | WP Neu (mit Begrenzung) |
---|---|---|---|
Elektrische Leistung | 3 kW | 3 kW | 2 kW |
Wärmeleistung von Erdsonde | 6 kW | 9 kW | 6 kW |
Erzeugte Wärmeleistung | 9 kW | 12 kW | 8 kW |
COP-Wert | 3 | 4 | 4 |
Bohrung | ok | !!! | ok |
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° | 0° | -5° | -10° |
Vorlauf Ladekreis [°C] | 38° | 40° | 45° | 47° | 50° |
Leistung Heizung [kW] | 2.0 | 2.6 | 3.3 | 4.0 | 4.7 |
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.


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.

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):
- Konfiguration Thermischer Energiezähler über App
- Integration Thermischer Energiezähler in Home Assistant
- Werte in Dashboard darstellen
- Langzeitwerte über Statistics Graph Card darstellen
Anleitung
Konfiguration Thermischer Energiezähler mit AppVorbedingung: der Thermische Energiezähler (TEZ) wurde vom Fachmann installiert.
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
- Busprotokoll: Modbus TCP
- Adresse: <Fortlaufenden Nummer>
- Port: 502
Netzwerk
Fixe IP-Adresse und Netzwerkkonfiguration eingeben.

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:
Es wird eine Sensor Entität definiert für den Datenpunkt an Startadresse 19 (address: 19).
Count: 1 bedeutet, dass nur eine Modbus Adresse ausgelesen wird (jede Adresse enthält einen 2 Byte Wert).
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
address: 19
slave: 24
count: 1
device_class: temperature
unit_of_measurement: "°C"
state_class: measurement
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).
Count: 2 bedeutet, dass zwei Modbus Adressen ausgelesen wird (jede Adresse enthält einen 2 Byte Wert).
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
address: 33
slave: 24
count: 2
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 consumption Heating [l/min] ---------------------
- name: ug_heizung_flow
unique_id: ug_heizung_flow_id
address: 9
slave: 24
count: 2
unit_of_measurement: "l/h"
scale: 0.001
precision: 1
data_type: uint32
swap: word
#--------------- Temperature of the supply water ------------------------------
- name: ug_heizung_temp_vorlauf
unique_id: ug_heizung_temp_vorlauf_id
address: 19
slave: 24
device_class: temperature
unit_of_measurement: "°C"
state_class: measurement
count: 1
scale: 0.01
precision: 1
data_type: int16
#--------------- Temperature of the return water -------------------------------
- name: ug_heizung_temp_rucklauf
unique_id: ug_heizung_temp_rucklauf_id
address: 21
slave: 24
device_class: temperature
unit_of_measurement: "°C"
state_class: measurement
count: 1
scale: 0.01
precision: 1
data_type: int16
#--------------- Difference between supply and return temperatuer --------------
- name: ug_heizung_delta_temp
unique_id: ug_heizung_delta_temp_id
address: 23
slave: 24
count: 1
device_class: temperature
unit_of_measurement: "°C"
scale: 0.01
precision: 1
data_type: int16
#------------------Actual Power consumption of Heating [W]-----------------------
- name: ug_heizung_power
unique_id: ug_heizung_power_id
scan_interval: 60
address: 33
slave: 24
count: 2
device_class: power
unit_of_measurement: "W"
state_class: measurement
scale: 1
precision: 0
data_type: uint32
swap: word
#-----------------Total Energy consumption of Heating [kWh]--------------------
- name: ug_heizung_energy
unique_id: ug_heizung_energy_id
scan_interval: 60
address: 71
slave: 24
count: 2
device_class: energy
unit_of_measurement: "kWh"
scale: 1
precision: 0
data_type: uint32
swap: word
#-----------------Status of Device --------------------------------------------
- name: ug_heizung_status_int
unique_id: ug_heizung_status_int
address: 104
slave: 24
count: 1
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° | 0° | -5° | -10° |
Vorlauf Ladekreis [°C] | 40° | 40° | 45° | 47° | 50° |
Leistung Heizung [kW] | 2.0 | 2.6 | 3.3 | 4.0 | 4.7 |
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.
