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
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 anzeigenMotivation
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:
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° | 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.