Zum Inhalt

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:

167 l/min × 60 × Wirkungsgrad

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:

Soll-Laufzeit = 13.000 l / Durchfluss × effektives Umwälzungsziel

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

Restzeit = max(Soll-Laufzeit - heutige Laufzeit, 0)

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_remaining
  • sensor.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_hausbedarf
  • sensor.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:

Hausenergie Resttag = aktuelle Hausleistung × Stunden bis Sonnenuntergang

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:

SOC Abend = aktueller SOC
          + (PV Resttag - Hausenergie Resttag) / 0,045 kWh

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:

Energiebudget = aktueller SOC
              - Abendreserve
              + (PV Resttag - Hausenergie Resttag) / 0,045 kWh

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 Betrieb eingeschaltet 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:

  1. input_boolean.pool_in_betrieb eingeschaltet ist,
  2. keine Komfortsperre aktiv ist,
  3. die Pumpe aktuell aus ist,
  4. die aktuelle Zeit zwischen frühestem Start und Frist liegt,
  5. keine Mittagsruhe aktiv ist,
  6. noch Pool-Restlaufzeit vorhanden ist,
  7. der Akku-SOC über dem eingestellten Minimum liegt,
  8. das Energiebudget über +5 % liegt,
  9. der Hausbedarf unter 1.200 W liegt,
  10. 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 Puffer verbleiben,
  • 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:

  1. wird die Pumpe sofort ausgeschaltet,
  2. es wird eine Push-Nachricht gesendet,
  3. 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:

aktueller Akku-SOC <= input_number.pool_pumpe_soc_minimum

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 Betrieb
  • Komfortsperre aktiv
  • Zeitfenster geschlossen
  • Tagesziel erreicht
  • Akku-SOC kritisch
  • Grossverbraucher aktiv
  • Netzbezug kritisch
  • Energiebudget aufgebraucht
  • Warte auf Energiereserve
  • Pumpe laeuft - Bedingungen erfuellt
  • Start 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:

Netzanteil = min(Pumpenleistung, positiver Netzbezug)

sensor.pool_pumpe_pv_anteil_leistung:

PV-Anteil = max(Pumpenleistung - Netzanteil, 0)

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_energie
  • sensor.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

Solarleistung - Hausbedarf

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

  1. automation.pool_pumpe_steuerung_nach_pv_uberschuss
    Pool Pumpe: Prognosebasierte PV-Steuerung – zentrale Start-/Stopplogik.

  2. automation.pool_pumpe_aus_bei_reconnect
    Pool Pumpe: Aus bei Reconnect – normalerweise deaktiviertes Sicherheitsnetz für WLAN-/Shelly-Störungen.

  3. automation.pool_pumpe_frist_zwangslauf
    Pool Pumpe: Frist-Erinnerung – erinnert einmal täglich, wenn das Tagesziel zeitlich knapp wird.

  4. 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:

  1. Die PV-Prognose für morgen beeinflusste die gewünschte Akku-Abendreserve für heute.
  2. Die komplette noch benötigte Pumpenenergie wurde schon vor dem Start abgezogen. Dadurch konnte die Pumpe sich rechnerisch selbst die Freigabe verhindern.
  3. Für den restlichen Hausverbrauch wurde mit einem festen Tageswert von 6,1 kWh gerechnet, obwohl die reale aktuelle Hauslast deutlich niedriger sein konnte.
  4. Ein erster Live-Schnappschuss direkt nach einem Pumpenstart ließ fälschlich vermuten, dass sensor.system_home_hausbedarf die 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.