Auf meiner Terrasse steht ein aufblasbarer Whirlpool, und so ein Ding heizt nicht umsonst. Also habe ich mir überlegt, wie ich das Wasser möglichst kostenneutral auf 37 Grad bekomme. Die Antwort: Home Assistant heizt nur, wenn die PV-Anlage genug liefert, der Speicher voll genug ist oder der Strom gerade billig. Im Video baue ich das komplette Setup, hier die Zusammenfassung mit allen Bausteinen.
Die Idee: Heizen nur, wenn es günstig ist
Das Konzept besteht aus einem Hauptschalter und drei Bedingungen, von denen eine reichen muss:
- Die PV-Anlage produziert gerade mehr als ein eingestelltes Minimum.
- Der Batteriespeicher liegt über einem Mindeststand.
- Der dynamische Strompreis ist unter meinem Maximalpreis.
Trifft eine davon zu, geht die Heizung an. Trifft keine mehr zu, geht sie wieder aus. Der Hauptschalter steht über allem: Damit pausiere ich die Automatik komplett, etwa wenn der Pool gerade gar nicht gebraucht wird. Auf meinem Dashboard zeigen zwei kleine Chips den Zustand an, "Erlaubnis" für den Schalter und "Freigabe" für das berechnete Ergebnis der drei Bedingungen.
Für mich lohnt sich das doppelt, weil sich das Einspeisen meines PV-Überschusses kaum rechnet. Dann stecke ich die Energie lieber ins warme Wasser.
Helfer für Schwellenwerte und Hauptschalter
Die Schwellenwerte sollen sich ohne YAML-Anpassung ändern lassen, deshalb stecken sie in Helfern. Der Hauptschalter ist ein simpler Umschalt-Helfer, dazu kommen drei Zahlenfelder: Mindest-PV-Produktion in Kilowatt, Mindest-Akkuladung in Prozent und Maximalpreis in Euro pro Kilowattstunde. Im Video stehen sie auf 2,7 kW, 60 Prozent und 25 Cent.
Auf dem Dashboard sind das einfache Schieberegler. Wenn ich merke, dass der Pool zu selten heizt, drehe ich an den Werten, fertig. Ein Tipp aus dem Video: Gib allen Helfern und Entitäten ein gemeinsames Präfix wie "Whirlpool". Dann findest du sie später über die Entitäten-Suche mit einem Filter wieder.
Der Freigabe-Sensor als Template
Das Herzstück ist ein Template-Sensor, der die drei Bedingungen auswertet und ein simples An oder Aus liefert. Vereinfacht sieht der so aus:
1template:
2 - binary_sensor:
3 - name: 'Whirlpool Freigabe'
4 device_class: power
5 state: >
6 {% set pv = states('sensor.pv_leistung') | float(0) / 1000 %}
7 {% set akku = states('sensor.speicher_ladung') | float(0) %}
8 {% set preis = states('sensor.strompreis') | float(0) %}
9 {% set pv_min = states('input_number.whirlpool_min_pv') | float(0) %}
10 {% set akku_min = states('input_number.whirlpool_min_akku') | float(0) %}
11 {% set preis_max = states('input_number.whirlpool_max_preis') | float(0) %}
12 {{ pv >= pv_min or akku >= akku_min or (preis > 0 and preis <= preis_max) }}Die Sensornamen tauschst du gegen deine eigenen, je nachdem welche Integrationen deinen Wechselrichter, Speicher und Stromtarif anbinden. Im Video lege ich die Einzelergebnisse außerdem als Attribute auf den Sensor. Das hilft beim Debuggen enorm: In den Entwicklerwerkzeugen siehst du dann pro Bedingung, ob sie gerade zutrifft. Beim Dreh war die PV-Bedingung erfüllt und der Speicher bei 84 Prozent, nur der Strompreis lag mit 30 Cent über dem Limit. Zwei von drei reichen aber locker, der Sensor stand auf An.
Wenn dir die Template-Syntax noch fremd ist, hilft der Guide zur YAML-Konfiguration.
Zwei Automationen: einschalten und abschalten
Die Einschalt-Automation triggert, wenn der Freigabe-Sensor für mindestens drei Minuten auf An steht. Die drei Minuten sind Anti-Flattern: Zieht kurz eine Wolke durch oder zuckt der Strompreis für eine Minute, soll der Pool nicht ständig an- und ausgehen. Als zweiten Trigger habe ich einen Zeitplan eingebaut, der alle fünf Minuten prüft, ob die Bedingungen inzwischen passen.
Als Bedingungen checkt die Automation dann: Ist der Hauptschalter an? Ist der Whirlpool aktuell aus? Steht die Freigabe auf An? Erst wenn alles passt, folgen die Aktionen: Power und Filter einschalten, das Thermostat auf Heizen stellen und die Solltemperatur auf 37 Grad setzen. Die Temperatur könntest du genauso in einen Helfer auslagern, dann stellst du sie direkt am Dashboard ein.
Die Abschalt-Automation ist das Gegenstück. Steht die Freigabe für mindestens fünf Minuten auf Aus, stellt sie das Thermostat ab und schaltet Power und Filter wieder aus. Wird der Strom also zu teuer und die Sonne liefert nicht, ist Schluss, egal wie gemütlich 37 Grad wären. Die Grundlagen zu Triggern, Bedingungen und Aktionen findest du im Guide zu Automationen.
Auf deine Geräte übertragen
Mein Whirlpool hängt über die Custom-Integration ha-bestway in Home Assistant. Das Prinzip ist aber komplett geräteunabhängig: Poolpumpe, Heizstab, Warmwasserboiler oder ein Heizlüfter an einer smarten Steckdose funktionieren genauso. Du brauchst nur einen schaltbaren Verbraucher und mindestens eine der drei Datenquellen. Den Strompreis liefert dir zum Beispiel die Tibber-Integration, PV- und Speicherdaten kommen vom Wechselrichter.
Häufige Fragen
Funktioniert das nur mit dem Bestway-Whirlpool?
Nein, der ist nur mein Beispiel. Jeder Verbraucher, den Home Assistant ein- und ausschalten kann, lässt sich so steuern. Nur die Aktionen in den Automationen ändern sich, die Helfer und der Freigabe-Sensor bleiben gleich.
Wozu die Verzögerung von drei beziehungsweise fünf Minuten?
Das verhindert ständiges An- und Ausschalten, wenn ein Wert um den Schwellenwert pendelt. Eine Wolke vor der Sonne oder ein kurzer Preissprung würde sonst sofort schalten. Erst wenn der Zustand ein paar Minuten stabil anliegt, reagiert die Automation.
Geht das auch ohne PV-Anlage und Speicher?
Ja. Dann lässt du die ersten beiden Bedingungen im Template einfach weg und heizt nur nach Strompreis. Mit einem dynamischen Tarif reicht das schon, um die teuren Stunden zuverlässig zu meiden.
Woher bekommt Home Assistant den Strompreis?
Bei mir kommt er von der Tibber-Integration, die den aktuellen Preis als Sensor bereitstellt. Für andere dynamische Tarife und Börsenpreise gibt es eigene Integrationen aus der Community. Wichtig ist nur, dass am Ende ein Sensor mit dem Preis pro Kilowattstunde existiert.
Weiterführende Inhalte
- Automationen erstellen: Trigger, Bedingungen, Aktionen
- YAML-Konfiguration verstehen
- Tibber in Home Assistant integrieren
- Lohnt sich eine Photovoltaikanlage? – Ein Jahr Stromproduktion und Verbrauch
- Jackery SolarVault 3 Pro: 3 Szenarien im Test – Speicher für PV-Überschuss und Tibber-Arbitrage
- Balkonkraftwerk Yuma Flat 2000: Installation und HA Integration – Eigener Solarstrom für günstigeres Heizen
