YAML – Pool¶
Quelle in Home Assistant: /config/packages/pool.yaml
Stand: 09.08.2026
Zweck¶
Die Poolsteuerung betreibt die Poolpumpe möglichst mit eigener Solarenergie, hält eine einstellbare Akku-Abendreserve frei und stellt gleichzeitig die tägliche gewünschte Umwälzung sicher. Die Logik arbeitet bewusst nicht mehr mit einer starren Tagesverbrauchsannahme oder der PV-Prognose für morgen, sondern bewertet den aktuellen Tag rollierend neu.
Die Konfiguration ist als geschlossenes Home-Assistant-Package aufgebaut. Nur Werte, die im Alltag sinnvoll angepasst werden können, sind als Helfer vorhanden. Technische Konstanten stehen direkt in den Berechnungen.
Hardware- und Berechnungsgrundlagen¶
- Poolvolumen: ca. 13.000 l
- Waterman-Pumpe: Qmax 167 l/min laut Typenschild
- Typenschildleistung: 400 W
- reale elektrische Leistungsaufnahme im Betrieb typischerweise etwa 260–290 W
- einstellbarer hydraulischer Wirkungsgrad: aktuell 40 %
- daraus berechneter Durchfluss bei 40 %: ca. 4.008 l/h
- Akku-Modell für die Prognose: 0,045 kWh je SOC-Prozentpunkt
- Großverbraucher-Grenze: 1.200 W Hausleistung
- kritischer Netzbezug: 100 W
- Start-Hysterese Energiebudget: mehr als +5 %-Punkte
- Stop-Hysterese Energiebudget: unter 0 %-Punkte für 2 Minuten
- Mindestlaufzeit beim Erreichen des Tagesziels: 30 Minuten am Stück
Aufbau¶
Aktuell bestehen genau 11 Pool-Helfer, alle direkt in packages/pool.yaml definiert. Dazu kommen Template-/Statistik-/Integrationssensoren und vier Automationen.
Die 11 Helfer¶
| Entity | Aktueller Wert | Funktion |
|---|---|---|
input_boolean.pool_in_betrieb |
Ein | Saison-/Hauptschalter der Poolautomatik |
input_number.pool_umwalzungen_ziel |
1,0 x | gewünschte tägliche Umwälzungen |
input_number.pool_pumpe_wirkungsgrad |
40 % | Korrekturfaktor zwischen Qmax und realistischem Durchfluss |
input_number.pool_pumpe_soc_minimum |
15 % | harte untere Akku-Grenze |
input_number.pool_pumpe_abend_reserve_soc |
70 % | gewünschte Akkureserve für den Abend |
input_number.pool_pumpe_komfortsperre_dauer |
30 min | Dauer der manuellen Übersteuerung |
input_datetime.pool_pumpe_fruhester_start |
09:00 | frühester automatischer Start |
input_datetime.pool_mittagsruhe_start |
13:00 | Beginn der Mittagsruhe |
input_datetime.pool_mittagsruhe_ende |
15:00 | Ende der Mittagsruhe |
input_datetime.pool_pumpe_frist |
20:00 | Ende des normalen automatischen Zeitfensters |
timer.pool_pumpe_komfortsperre |
30 min Standard | hält nach manueller Bedienung die Automatik zurück |
Der Timer hat restore: true und übersteht damit einen Home-Assistant-Neustart.
Berechnete Laufzeit¶
sensor.pool_pumpe_durchfluss¶
Der rechnerische Durchfluss ergibt sich aus:
Bei 40 % Wirkungsgrad sind das rund 4.008 l/h.
sensor.pool_pumpe_soll_laufzeit¶
Die Soll-Laufzeit wird aus Poolvolumen, gewünschter Umwälzung und berechnetem Durchfluss bestimmt:
Wenn binary_sensor.beschattung_hitzeschutz_noetig aktiv ist, wird das Umwälzungsziel automatisch um 0,5 Umwälzungen erhöht.
Bei 40 % Wirkungsgrad und 1,0 Umwälzung ergibt sich ohne Hitzeschutz rechnerisch etwa 3,24 Stunden Soll-Laufzeit.
sensor.pool_pumpe_laufzeit_heute¶
history_stats zählt die tatsächliche Einschaltzeit von switch.garten_poolpumpe seit Mitternacht.
sensor.pool_pumpe_restzeit¶
Die Restzeit ist die Grundlage für Tagesziel, Frist-Erinnerung und die Anzeige im Dashboard.
Energieprognose¶
Verbleibende PV-Erzeugung heute¶
Für die heutige Entscheidung werden ausschließlich die beiden verbleibenden Tagesprognosen addiert:
sensor.energy_production_today_remainingsensor.energy_production_today_remaining_2
Die PV-Prognose für morgen wird nicht verwendet. Sie hat keinen Einfluss mehr darauf, ob die Poolpumpe heute laufen darf.
Hausbedarf¶
sensor.pool_hausbedarf_ohne_pumpe basiert auf:
sensor.system_home_hausbedarfsensor.garten_poolpumpe_leistung- dem Änderungszeitpunkt von
switch.garten_poolpumpe
Der Anker-Hausbedarf enthält die Poolpumpe, aktualisiert sich aber deutlich langsamer als der Shelly der Pumpe. Direkt nach einem Pumpenstart zeigt Anker deshalb zunächst noch den alten Hausbedarf ohne die gerade gestartete Pumpe. Erst mit dem nächsten Anker-Messwert ist die Pumpenleistung darin enthalten.
Die Bereinigung ist deshalb zeitstempelbasiert:
- Pumpe aus: Anker-Hausbedarf unverändert verwenden.
- Pumpe an, Anker-Messwert ist noch älter als der Pumpenstart: Anker-Hausbedarf unverändert verwenden.
- Pumpe an, Anker hat nach dem Pumpenstart einen neuen Wert geliefert: aktuelle Shelly-Pumpenleistung vom Anker-Hausbedarf abziehen.
Damit wird die Pumpe weder doppelt als Hausverbrauch gezählt noch direkt nach dem Einschalten fälschlich vom noch alten Anker-Wert abgezogen. Nach dem Ausschalten kann die Berechnung bis zum nächsten Anker-Refresh kurz konservativ sein; das kann höchstens einen Neustart verzögern.
Für die Prognose wird keine pauschale Tagesenergie mehr angenommen. Stattdessen wird die aktuelle Hausleistung bis Sonnenuntergang fortgeschrieben:
Damit passt sich die Prognose im Tagesverlauf an die reale Last an.
sensor.pool_erwarteter_soc_abend¶
Der erwartete SOC am Abend wird aus aktuellem SOC, verbleibender PV-Erzeugung und dem hochgerechneten Hausbedarf berechnet:
Das Ergebnis wird auf 0–100 % begrenzt.
Wichtig: Die noch ausstehende Poollaufzeit wird hier nicht vorab vollständig als Verbrauch abgezogen. Der Sensor beschreibt den erwarteten SOC des Hauses auf Basis der momentan bekannten Situation. Die Poolpumpe wird anschließend über das Energiebudget dynamisch freigegeben oder gestoppt.
sensor.pool_energiebudget_soc¶
Das Energiebudget zeigt, wie viele SOC-Prozentpunkte oberhalb der geschützten Abendreserve unter den aktuellen Bedingungen rechnerisch verfügbar sind:
Interpretation:
- > +5 %: automatischer Start ist energetisch freigegeben
- 0 bis +5 %: Reservebereich, kein neuer Start
- < 0 %: laufende Pumpe wird nach 2 Minuten gestoppt
Die Pumpenenergie wird nicht pauschal für die gesamte Restlaufzeit vorweggenommen. Während die Pumpe läuft, ändern sich SOC, PV-Prognose, Hauslast und Netzbezug real und das Budget wird laufend neu berechnet. Dadurch reagiert die Steuerung auf den tatsächlichen Tagesverlauf statt vorsorglich zu viel Energie zu blockieren.
Zentrale Automatik¶
automation.pool_pumpe_steuerung_nach_pv_uberschuss¶
Alias: Pool Pumpe: Prognosebasierte PV-Steuerung
Die Automatik bewertet die Situation:
- alle 5 Minuten
- zum frühesten Start
- am Ende der Mittagsruhe
- wenn
Pool in Betriebeingeschaltet wird - wenn die Komfortsperre endet
- wenn das Energiebudget über +5 % steigt
- beim Start von Home Assistant
Bedingungen für einen automatischen Start¶
Die Pumpe startet nur, wenn gleichzeitig:
input_boolean.pool_in_betriebeingeschaltet ist,- keine Komfortsperre aktiv ist,
- die Pumpe aktuell aus ist,
- die aktuelle Zeit zwischen frühestem Start und Frist liegt,
- keine Mittagsruhe aktiv ist,
- noch Pool-Restlaufzeit vorhanden ist,
- der Akku-SOC über dem eingestellten Minimum liegt,
- das Energiebudget über +5 % liegt,
- der Hausbedarf unter 1.200 W liegt,
- der Netzbezug unter 100 W liegt.
Automatische Schutzabschaltungen¶
Solange keine Komfortsperre aktiv ist, wird eine laufende Pumpe gestoppt bei:
- Energiebudget unter 0 % für 2 Minuten
- Hausbedarf über 1.200 W für 2 Minuten
- Netzbezug über 100 W für 1 Minute
- Akku-SOC am oder unter dem eingestellten Minimum
- Beginn der Mittagsruhe
- Erreichen der Frist
Wird Home Assistant neu gestartet oder läuft eine Komfortsperre aus, werden diese Bedingungen ebenfalls erneut geprüft.
Tagesziel erreicht¶
Wenn sensor.pool_pumpe_restzeit praktisch 0 ist, darf die Automatik die Pumpe abschalten. Dabei wird eine Mindestlaufzeit des aktuellen Pumpenlaufs von 30 Minuten berücksichtigt. Dadurch wird ein gerade erst gestarteter Lauf nicht wegen eines kleinen Rundungs-/Restwertes sofort wieder beendet.
Pool außer Betrieb¶
Wird input_boolean.pool_in_betrieb ausgeschaltet, wird eine laufende Pumpe immer ausgeschaltet. Diese Abschaltung hat Vorrang vor der Komfortsperre.
Mittagsruhe¶
Aktuell gilt:
- Beginn: 13:00 Uhr
- Ende: 15:00 Uhr
Um 13:00 Uhr wird ein automatischer Pumpenlauf beendet, sofern keine manuelle Komfortsperre aktiv ist. Zwischen 13:00 und 15:00 Uhr findet kein automatischer Neustart statt. Ab 15:00 Uhr wird die Situation neu bewertet.
Eine aktive Komfortsperre ist eine bewusste manuelle Übersteuerung und verhindert während ihrer Laufzeit auch die normalen automatischen Schutzabschaltungen. Pool in Betrieb = Aus bleibt davon ausgenommen und schaltet immer ab.
Manuelle Bedienung und Komfortsperre¶
automation.pool_pumpe_manuelle_bedienung_komfortsperre¶
Alias: Pool Pumpe: Bedienung & Komfortsperre
Wenn ein Benutzer die Pumpe manuell über Home Assistant ein- oder ausschaltet, erkennt die Automation dies am user_id-Kontext und startet die Komfortsperre für die eingestellte Dauer, aktuell 30 Minuten.
Automatische Schaltvorgänge der Poolautomationen lösen diese Sperre nicht aus.
Ablauf der Komfortsperre¶
Wenn die Sperre endet und die Pumpe noch läuft:
- die zentrale Automatik übernimmt wieder,
- zusätzlich kommt eine Push-Nachricht aufs iPhone,
- darin stehen die Aktionen „Weiterlaufen lassen“ und „Jetzt ausschalten“ zur Verfügung.
Weiterlaufen lassen startet die Komfortsperre erneut für die eingestellte Dauer.
Jetzt ausschalten schaltet die Poolpumpe sofort aus.
Frist-Erinnerung¶
automation.pool_pumpe_frist_zwangslauf¶
Alias: Pool Pumpe: Frist-Erinnerung
Die Automation prüft alle 15 Minuten, ob die verbleibende Zeit bis zur Frist knapp wird.
Eine Erinnerung wird ausgelöst, wenn:
- der Pool in Betrieb ist,
- keine Komfortsperre läuft,
- die Pumpe aus ist,
- noch Restlaufzeit vorhanden ist,
- bis zur Frist nur noch
Restlaufzeit + 30 Minuten Pufferverbleiben, - an diesem Tag noch keine Frist-Erinnerung gesendet wurde.
Die Push-Nachricht zeigt die noch benötigten Pumpenminuten und bietet Ja/Nein an.
- Ja: Komfortsperre wird gestartet und die Pumpe bewusst manuell eingeschaltet.
- Nein: keine Aktion; für diesen Tag erfolgt keine weitere Frist-Erinnerung.
Durch die Komfortsperre kann ein bewusst bestätigter Lauf bei Bedarf auch über normale Automatikgrenzen hinweg weiterlaufen, bis die Sperre endet und die Automatik wieder übernimmt.
Reconnect-Sicherheitsautomation¶
automation.pool_pumpe_aus_bei_reconnect¶
Alias: Pool Pumpe: Aus bei Reconnect
Diese Automation ist im Normalbetrieb bewusst deaktiviert. Sie wird nur manuell eingeschaltet, wenn die Poolpumpe bzw. der Shelly wegen WLAN-/Verbindungsproblemen auffällig ist.
Wenn sie aktiviert ist und switch.garten_poolpumpe von unavailable direkt wieder als on zurückkommt:
- wird die Pumpe sofort ausgeschaltet,
- es wird eine Push-Nachricht gesendet,
- die normale Automatik kann die Situation anschließend wieder neu bewerten.
Sie ist damit ein zusätzliches Werkzeug für einen konkreten Störungsfall und kein dauerhaft benötigter Bestandteil des Normalbetriebs.
Lokale Shelly-Failsafe-Funktion¶
Unabhängig von Home Assistant läuft direkt auf dem Shelly eine lokale Schutzlogik.
Wenn der Shelly 60 Minuten lang keine WLAN-Verbindung hat, schaltet er die Poolpumpe spätestens lokal ab.
Diese Absicherung ist besonders wichtig, weil sie nicht von folgenden Komponenten abhängt:
- Home Assistant
- Home-Assistant-Automationen
- MCP/Cloud-Zugriff
- WLAN-Verbindung zum Home-Assistant-System
Damit kann ein eingeschalteter Shelly bei einem längeren Verbindungsabbruch nicht unbegrenzt weiterlaufen. Die Reconnect-Automation in Home Assistant ist nur ein zusätzliches, bei Bedarf aktivierbares Sicherheitsnetz.
Akku-Minimum¶
binary_sensor.pool_akku_minimum_erreicht¶
Der Sensor wird aktiv, sobald:
Aktuell liegt das Minimum bei 15 %.
Ein automatischer Start ist nur oberhalb dieses Wertes erlaubt. Erreicht eine laufende Pumpe ohne Komfortsperre das Minimum, wird sie abgeschaltet.
Statussensor¶
sensor.pool_automatik_status¶
Der Sensor fasst den jeweils wichtigsten Zustand lesbar zusammen. Mögliche Meldungen sind unter anderem:
Ausser BetriebKomfortsperre aktivZeitfenster geschlossenTagesziel erreichtAkku-SOC kritischGrossverbraucher aktivNetzbezug kritischEnergiebudget aufgebrauchtWarte auf EnergiereservePumpe laeuft - Bedingungen erfuelltStart freigegeben
Er ist die erste Anlaufstelle im Dashboard, wenn die Pumpe nicht wie erwartet startet oder stoppt.
Leistungs- und Energieaufteilung¶
Momentanleistung¶
sensor.pool_pumpe_netz_anteil_leistung:
sensor.pool_pumpe_pv_anteil_leistung:
Die Bezeichnung „PV-Anteil“ bedeutet hier technisch den nicht aus dem Netz bezogenen Anteil. Eine Versorgung aus dem Akku wird durch diese einfache Aufteilung nicht separat vom direkten PV-Anteil unterschieden.
Energiezähler¶
Die Leistungssensoren werden mit Home Assistants integration-Plattform in kWh integriert:
sensor.pool_pumpe_netzanteil_energiesensor.pool_pumpe_pv_anteil_energie
sensor.pool_pumpe_solaranteil berechnet daraus den bisherigen Anteil der nicht aus dem Netz bezogenen Pumpenenergie in Prozent.
Weitere Sensoren¶
sensor.pool_pv_ueberschuss_leistung¶
Dieser Sensor ist weiterhin für Anzeige und Diagnose vorhanden. Die zentrale Startentscheidung basiert jedoch nicht mehr auf einer einfachen festen Überschussschwelle, sondern auf dem rollierenden SOC-Energiebudget.
Die vier Automationen im Überblick¶
-
automation.pool_pumpe_steuerung_nach_pv_uberschuss
Pool Pumpe: Prognosebasierte PV-Steuerung – zentrale Start-/Stopplogik. -
automation.pool_pumpe_aus_bei_reconnect
Pool Pumpe: Aus bei Reconnect – normalerweise deaktiviertes Sicherheitsnetz für WLAN-/Shelly-Störungen. -
automation.pool_pumpe_frist_zwangslauf
Pool Pumpe: Frist-Erinnerung – erinnert einmal täglich, wenn das Tagesziel zeitlich knapp wird. -
automation.pool_pumpe_manuelle_bedienung_komfortsperre
Pool Pumpe: Bedienung & Komfortsperre – erkennt Benutzerbedienung und verarbeitet Push-Aktionen.
Dashboard¶
Die Wartungsansicht zeigt die für Diagnose und Einstellung relevanten Werte:
- Automatikstatus
- Pumpenzustand
- verbleibende PV-Prognose heute
- erwarteter SOC am Abend
- Energiebudget SOC
- Hausbedarf
- Netzbezug
- Akku-Minimum
- Komfortsperren-Timer
- Abendreserve
- SOC-Minimum
- Komfortsperren-Dauer
- frühester Start
- Mittagsruhe Start/Ende
- Frist
- die vier aktuellen Poolautomationen
- Netz-/PV-Energieanteile der Pumpe
Veraltete Helfer und die frühere Handbetrieb-Entität sind aus dem Dashboard entfernt.
Warum die Prognose geändert wurde¶
Die frühere Logik war an sonnigen Tagen zu pessimistisch. Hauptursachen waren:
- Die PV-Prognose für morgen beeinflusste die gewünschte Akku-Abendreserve für heute.
- Die komplette noch benötigte Pumpenenergie wurde schon vor dem Start abgezogen. Dadurch konnte die Pumpe sich rechnerisch selbst die Freigabe verhindern.
- Für den restlichen Hausverbrauch wurde mit einem festen Tageswert von 6,1 kWh gerechnet, obwohl die reale aktuelle Hauslast deutlich niedriger sein konnte.
- Ein erster Live-Schnappschuss direkt nach einem Pumpenstart ließ fälschlich vermuten, dass
sensor.system_home_hausbedarfdie Poolpumpe nicht enthält. Die Historie zeigte anschließend das Gegenteil: Der Anker-Wert steigt beim nächsten, langsameren Refresh ungefähr um die Pumpenleistung. Ohne Berücksichtigung dieser Verzögerung wurde die Pumpe zeitweise doppelt als Verbrauch gerechnet. Dabei sprang das Energiebudget beispielsweise von +29,5 % auf -22,7 %, obwohl Solarleistung vorhanden war und der Akku weiter lud. Die aktuelle zeitstempelbasierte Bereinigung verhindert dieses Pendeln.
Die aktuelle Variante verwendet deshalb nur den heutigen PV-Rest, den aktuellen SOC, die aktuelle Hauslast hochgerechnet bis Sonnenuntergang und die gewünschte Abendreserve. Die Pumpe wird anschließend dynamisch anhand der realen Entwicklung weitergeführt oder gestoppt.
Verhalten bei typischen Situationen¶
Sonniger Tag, Akku lädt deutlich¶
Wenn genügend PV-Rest prognostiziert ist und das Energiebudget über +5 % liegt, startet die Pumpe auch dann, wenn der Akku noch nicht voll ist. Ziel ist nicht „erst Akku auf 100 %, dann Pool“, sondern ein sinnvoller Parallelbetrieb bei ausreichend prognostizierter Reserve.
Hausverbrauch steigt stark¶
Steigt der Hausbedarf länger als 2 Minuten über 1.200 W, wird ein automatischer Pumpenlauf beendet. Nach Entlastung erfolgt bei einer der nächsten Bewertungen ein Neustart, sofern alle anderen Bedingungen wieder erfüllt sind.
Netzbezug entsteht¶
Steigt der Netzbezug länger als 1 Minute über 100 W, wird die Pumpe ohne aktive Komfortsperre abgeschaltet.
Wolken / Prognose verschlechtert sich¶
Sinkt das Energiebudget unter 0 %, stoppt die Pumpe nach 2 Minuten. Verbessert sich die Situation später wieder und steigt das Budget über +5 %, darf sie erneut starten.
Akku nähert sich dem Minimum¶
Bei SOC am oder unter dem eingestellten Minimum wird die Pumpe automatisch gestoppt, sofern keine Komfortsperre aktiv ist.
Manuell eingeschaltet¶
Eine Benutzerbedienung startet die Komfortsperre. Während dieser Zeit soll Home Assistant die bewusste Entscheidung des Benutzers nicht unmittelbar wieder rückgängig machen. Nach Ablauf übernimmt die Automatik erneut.
WLAN am Shelly fällt aus¶
Home Assistant kann während unavailable nicht zuverlässig schalten. Der Shelly besitzt deshalb zusätzlich die lokale 60-Minuten-Abschaltung. Bei bekannten WLAN-Problemen kann außerdem die Reconnect-Automation manuell aktiviert werden.
Wartung und Änderung¶
Bei Änderungen an der Poollogik ist /config/packages/pool.yaml die maßgebliche Quelle. Neue technische Konstanten sollten nur dann als Helfer angelegt werden, wenn sie im Alltag tatsächlich angepasst werden müssen. So bleibt die Anzahl der konfigurierbaren Entitäten überschaubar.
Vor der Vereinfachung vom 09.08.2026 wurde ein vollständiges Home-Assistant-Backup erstellt:
- Backup:
Before_Pool_Simplification_2026-08-09 - Backup-ID:
247879b7
Nach der Umstellung wurde die Home-Assistant-Konfiguration validiert und erfolgreich neu geladen bzw. neu gestartet.