Um die Wärmepumpe besser zu verstehen, habe ich mir auf einem alten Raspberry die Open-Source-Software Home Assistant installiert, ein Heimautomatisierungssystem, das verschiedene Geräte und Protokolle zusammenführen kann. Das beinhaltet die Wärmepumpe selbst, Thermometer in den einzelnen Wohnräumen, die per WLAN angebunden sind, Schaltsteckdosen, die z. T. auch den Stromverbrauch messen können und den Stromzähler im Keller, um den Verbrauch für das ganze Haus und die Einspeisung durch die PV im Blick zu behalten.
Die Einbindung der Wärmepumpe erfolgt über die API des Herstellers Vaillant zu deren Cloud-Lösung, auf der auch die App-Steuerung aufsetzt. Dort werden alle Daten gespeichert und können so auch von Home-Assistant abgerufen und weiter verarbeitet werden. Neben den eigentlichen Sensordaten wie Außentemperatur, Warmwassertemperatur und aktueller Vorlauftemperatur lassen sich auch Einstellungen der Wärmepumpe auslesen (Heizkurve, Zieltemperatur...) und eigene Werte berechnen (Vorlaufsolltemperatur, gemittelte Heizleistung...).
Nach der Inbetriebnahme im relativ milden Herbst lag mein Fokus auf dem Taktverhalten der Wärmepumpe. Zu Beginn hatte ich oft 12-15 Ein- und Ausschaltvorgänge am Tag und eine durchschnittliche Laufzeit von nur 20-30 min. Ein effizienter und schonender Betrieb von Wärmepumpen besteht in möglichst langen Laufzeiten bei möglichst niedriger Leistung. Gerade soviel Leistung um die Temperatur zu erreichen und das mit möglichst niedrigen Vorlauftemperaturen, dafür aber langen Takten.
Dafür haben wir mit der Installation der Wärmepumpe auch die Heizkörper austauschen lassen, möglichst groß, um die Vorlauftemperatur möglichst niedrig fahren zu können. Das ist nicht unbedingt schick, aber wir haben uns schnell daran gewöhnt. Ungewöhnlich ist, dass die Heizkörper sich dann nicht mehr warm anfühlen, aber am Ende zählt, dass der Raum die Temperatur hat, die er haben soll. In unseren Hauptwohnräumen sollen das ca. 21.5° sein (ein halbes Grad mehr oder weniger merken wir schon, das ist immer noch ok, aber 21.5° sind für uns ideal).
Unsere Wärmepumpe wird über die Energiebilanz geregelt. Dazu bildet sie ein Energieintegral. Der Unterschied zwischen der Vorlauf-Ist-Temperatur und der Vorlauf-Soll-Temperatur wird über die Zeit aufsummiert. Z. B. bei 2 ° Unterschied über 10 Minuten ergibt sich so ein Energieintegral von -20 Gradminuten. Wenn dieses Energieintegral einen gewissen Schwellwert erreicht, z. B. -60 Gradminuten, schaltet die Wärmepumpe ein. Damit steigt der Vorlauf-Ist-Wert an. Wenn der Vorlauf-Ist-Wert höher ist als der Soll-Wert, baut sich das Energieintegral über die Zeit ab, je höher der Unterschied, desto schneller. Liegt der Ist-Wert genau auf dem Soll-Wert, bleibt das Energieintegral gleich. Liegt der Ist-Wert des Vorlaufs unter dem Soll-Wert, baut sich das Energieintegral weiter auf (bei unserer Vaillant Wärmepumpe auf bis zu -180 Gradminuten, das ist der Höchstwert, den die Regelung zulässt).
Wenn die Wärmepumpe taktet, bedeutet das, dass der Vorlauf-Ist-Wert den Soll-Wert (zu) schnell übersteigt. Das heißt, das Wasser, das in die Heizkörper gepumpt wird, bekommt dort die Wärme schlechter weg, als die Wärmepumpe als Heizsystem einspeisen will. Heizkörper brauchen eine gewisse Mindesttemperatur um die Wärme an die Umgebungsluft des Raums abgeben zu können. Deshalb haben wir verschiedene Einstellungen an der Heizung ausprobiert, beobachtet wie sich das Taktverhalten verändert und am Ende haben sich folgende Maßnahmen als hilfreich erwiesen:
1. das Energieintegral auf -100 setzen
2. alle Heizkörperventile voll aufdrehen (Stufe 5), so dass sie nicht mehr abregeln
3. das Überströmventil auf höchsten Wert einstellen, damit möglichst wenig Wasser vom Vorlauf direkt in den Rücklauf fließt (eigentlich nur eine Notfallmaßnahme, falls alle Heizkörper abgeregelt werden)
4. Heizzeitfenster von 5-22 Uhr für die Übergangszeit mit Temperaturen oberhalb von 7°
5. Flüstermodus zur Begrenzung der Heizleistung aktivieren und auf 60% einstellen (=40% Maximalleistung), ebenfalls für die Übergangszeit mit Temperaturen oberhalb von 7°
6. Warmwasser Temperatur auf 48°, Hysterese 5°, WW Offset 5°, WW-Bereitung von 14:30-19:00 Uhr
7. den Durchfluss der Umwälzpumpe hochstellen (auf Maximum, das sind bei uns ca. 1220 l/h)
8. die Mindest-Vorlauftemperatur auf 32° hochsetzen
9. Lüfter unter die Heizkörper in den Hauptwohnräumen und im unteren Bad anbringen
Die höhere Mindestvorlauftemperatur und die Lüfter unter den Heizkörpern verbessern die Wärmeabgabe dieser Heizkörper an die Raumluft. Zum Einsatz kommen Lüfter, wie sie für PC-Gehäuse vorgesehen sind: Archic F12 PWM PST. Diese können parallel geschaltet werden und laufen an einem Schaltnetzteil mit 5V kaum hörbar. Im unteren Bad haben wir einen etwas höheren Wärmebedarf, deshalb laufen die Lüfter dort auch mit höherer Spannung und Drehzahl, sind damit auch deutlich hörbar, aber im Bad ist das Geräuschniveau weniger relevant.
In den milden Herbsttagen ist am Morgen nach der nächtlichen Heizpause das Energieintegral bei -100 Gradminuten. Sobald der Heizbedarf ansteht und die Wärmepumpe startet dauert es ca. 30 min bis sie auf Temperatur kommt, damit baut sich das Energieintegral weiter auf auf -180 Gradminuten. Sobald der Vorlauf die Solltemperatur erreicht und (leicht) überschreitet, baut sich das Energieintegral ab, idealerweise über mehreren Stunden. Damit die Wärmepumpe möglichst mit kleiner Leistung startet, hilft der Flüstermodus, die Heizleistung zu Beginn eines Heizfensters zu begrenzen und so das Überschießen der Vorlauf-Soll-Temperatur abzumindern und damit die Laufzeit pro Start zu verlängern.
Inzwischen, im Kernwinter bei Temperaturen unter 5°, ist der Flüstermodus abgeschaltet, weil der Wärmebedarf groß genug ist, die erzeugte Wärmemenge abzunehmen. Nach der Heizlastberechnung und der Leistungskennlinie der Wärmepumpe sollte diese bei Temperaturen unter 7° durchlaufen und bis -9° den Wärmebedarf decken. Ab -9° ist der Wärmebedarf dann größer als das, was die Wärmepumpe bereitstellen kann. Bei niedrigeren Temperaturen heizt dann der Heizstab zu. Im Jahresmittel ist es etwa ca. 100h kälter als -9°, d. h. nur in diesen 100h heizt der Heizstab mit. Dem könnte man mit einer größeren Wärmepumpe begegnen, die dann aber in der Übergangszeit zu viel Leistung hat und dann mehr taktet und somit früher verschleißt. Wenn der Heizstab im Schnitt 1 kWh zuheizen würde, sind das 100kWh, das sollte uns keine grauen Haare bescheren.
Um den Stromverbrauch zu erfassen, war noch etwas zusätzlicher Aufwand erforderlich. Wir haben zwar einen digitalen Zähler, aber der ist noch un-smart, d. h. ohne eine automatische Ablesung und ohne Internet-Anbindung. Nach einigen Wochen mit Schwerpunkt auf der Wärmepumpe habe ich mir dann einen Lesekopf besorgt, am Zähler angebracht, lese ihn über die Firmware aus und sende die Daten per MQTT an meinen Home Assistant-Server. Die Qualität dieser Daten ist mäßig, es treten oft Lesefehler auf (Nullwerte, falsche Vorzeichen). Es hat einen etwas größeren Aufwand erfordert das wegzufiltern, aber seit Mitte Dezember funktioniert es ganz gut. Damit kann man aber auch schön sehen, wieviel Strom wir für die Wärmepumpe und für andere Geräte verbrauchen und wie das zu unserem anvisierten Verbrauchsziel passt.
Für Home-Assistant habe ich einige Skripte erzeugt, die ich gerne weitergebe. Am kniffligsten war die Erkennung, ob der Verdichter läuft oder nicht. Zu Anfang hatte ich dafür nur die Vorlauftemperatur und hatte an deren Höhe bzw. Steigung das Ein- und Ausschalten detektiert. Das Unterscheiden von Ein-/Aus-Zyklen und Abtauvorgängen war wirklich herausfordernd und hat nicht wirklich gut funktioniert. Durch ein Softwareupdate der Wärmepumpe (per Austausch von Platinen im Außen- und Innengerät) steht mir inzwischen aber auch die Leistung, die Anzahl der Zyklen und die Laufzeit direkt als Entity der Vaillant-Integration in Home Assistant zur Verfügung. Damit ist die Erkennung des Kompressorzustands unproblematisch.
Für die Vorlauftemperatur gibt es folgende Formel:
Vorlauftemp = Wunschtemp + (2,8 * Steigung der Heizkurve^0,8)*((Wunschtemp - Außentemp)^0,75)
In Home Assistant wurde das durch ein Template wie folgt umgesetzt:
{% set Tset = states('input_select.t_wunsch')|float %}
{% set HCrv = states('sensor.zuhause_circuit_0_heating_curve')|float %}
{% set Tout = states('sensor.zuhause_outdoor_temperature')|float %}
{% set V_mind = states('input_select.mindest_vl')|float %}
{{ max ( V_mind , ((Tset ) + 2.8 * (HCrv ** 0.8 ) * ( Tset - Tout) ** 0.75) - 0.2) | round(1,'half') }}
Damit erhält man als Vorlauf-Soll Temperaturwerte auf ein halbes Grad, wie sie auch an der Steuerung auftreten.
Zur Ermittlung der momentanen Arbeitszahl habe ich in den Datenblättern, in denen der Coefficient of Performance (COP) über der Temperatur in Abhängigkeit von der Modulation dargestellt wird, jeweils ein lineares Modell für den COP in Abhängigkeit von der Temperatur und der Vorlauftemperatur reingelegt. Die beiden Parameter dieser linearen Modelle habe ich wiederum über ein lineares Modell gefittet und damit eine Gleichung, die in Abhängigkeit von Außentemperatur und Vorlaufsolltemperatur (die wiederum von Wunschtemperatur, Heizukurve, Außentemperatur und Mindestvorlauftemperatur abhängt) die Arbeitszahl berechnet. Dieses Modell habe ich manuell noch etwas getunt, um den Einfluss der Abtauvorgänge und den damit einhergehenden Effizienzverlust besser abzubilden.
Umgesetzt in Home Assistant ergibt sich für die aktuelle Arbeitszahl dann:
{% set Tout = states('sensor.zuhause_outdoor_temperature')|float %}
{% set VS = states('sensor.vsoll')|float %}
{{ ( 0.99 * ( ( -0.00125 * VS + 0.13375 ) * Tout - ( 0.0475 * VS ) + 4.8625 ) ) | round(1,'floor')}}
Mithilfe dieser (für meine Anlage geltende) Arbeitszahl und der Außentemperatur kann man dann eine elektrische Heizlast berechnen, die theoretisch erforderlich wäre, das Haus auf Temperatur zu bringen/zu halten. In der Realität ist durch die Abtauvorgänge und das wilde Auf und Ab von Vorlauftemperatur und Leistung dieser Zusammenhang oft schwer erkennbar, deshalb ist die gemeinsame Darstellung von aktueller Leistung und elektrischer Heizleistung eine gute Kombination den Gesamtzusammenhang im Blick zu behalten.
Kommentar schreiben