Automatisierung von Boilerschaltern in Smart-Home-Systemen

Home Assistant 2. Sep. 2025

Einleitung
Die Automatisierung von Geräten in Smart-Home-Systemen ermöglicht eine effiziente Nutzung von Energie und Ressourcen. Insbesondere die Steuerung von Boilern in Abhängigkeit von Solarstromerzeugung, Stromtarifen und Batteriestatus ist ein häufiges Anliegen. In diesem Artikel wird eine häufige Problematik bei der Automatisierung von Boilerschaltern behandelt und eine Lösung präsentiert.

Problem
Ein Benutzer hat Schwierigkeiten mit einer Automatisierung, die den Boilerschalter aktivieren soll, wenn bestimmte Bedingungen erfüllt sind. Die Automatisierung sollte den Boilerschalter einschalten, wenn entweder die PV-Leistung über 3000 W liegt oder der Stromtarif unter 16 ct/kWh fällt, und gleichzeitig die Solarbatterie über 90 % geladen ist. Der ursprüngliche Code führte jedoch dazu, dass der Boilerschalter immer eingeschaltet war, unabhängig von den tatsächlichen Werten.

Lösung
Die Lösung besteht darin, die Logik der Automatisierung zu überarbeiten. Anstatt die Bedingungen direkt in den Triggern zu definieren, sollten die Bedingungen in den Aktionen überprüft werden. Dies ermöglicht eine flexiblere Handhabung der Logik und stellt sicher, dass die Automatisierung korrekt auf Änderungen der Sensorwerte reagiert.

Hier ist der überarbeitete Code für die Automatisierung:

alias: "Boiler EIN bei PV > 3000 und Tarif <16 und Batterie >90%"
description: ""
triggers:
  - trigger: state
    entity_id:
      - sensor.solarnet_pv_leistung
    id: Leistung
  - trigger: state
    entity_id:
      - sensor.epex_spot_data_net_price
    id: Preis
conditions: []
actions:
  - if:
      - condition: and
        conditions:
          - condition: numeric_state
            entity_id: sensor.byd_battery_box_premium_hv_ladezustand
            above: 89.5
          - condition: or
            conditions:
              - condition: template
                value_template: >
                  {{ trigger.id == "Leistung" and trigger.to_state.state | float
                  > 3000 }}
              - condition: template
                value_template: >
                  {{ trigger.id == "Preis" and trigger.to_state.state | float <
                  16 }}
    then:
      - action: switch.turn_on
        metadata: {}
        data: {}
        target:
          entity_id: switch.warmwasser_boiler_schalter
    else:
      - action: switch.turn_off
        metadata: {}
        data: {}
        target:
          entity_id: switch.warmwasser_boiler_schalter
mode: single

In dieser Version wird bei jeder Änderung der Trigger überprüft, ob die Bedingungen erfüllt sind. Je nach Ergebnis wird der Schalter ein- oder ausgeschaltet.

Schritte zur Umsetzung
1. Ersetze den bestehenden Automatisierungscode durch den überarbeiteten Code.
2. Stelle sicher, dass die Sensoren korrekt konfiguriert und erreichbar sind.
3. Teste die Automatisierung, indem du die Werte der Sensoren manuell änderst, um die Reaktion des Boilerschalters zu überprüfen.

Hintergrundwissen
In Smart-Home-Systemen werden Automatisierungen oft durch Trigger ausgelöst, die auf Änderungen von Sensorwerten reagieren. Die Bedingungen definieren, unter welchen Umständen eine Aktion ausgeführt wird. In diesem Fall ist es wichtig, die Logik so zu gestalten, dass sie alle relevanten Bedingungen berücksichtigt und nicht nur auf die Trigger reagiert.

Zusätzliche Infos

FunktionErklärung
`trigger`Definiert, welche Ereignisse die Automatisierung auslösen.
`condition`Legt fest, unter welchen Bedingungen die Aktionen ausgeführt werden.
`action`Bestimmt, welche Aktionen ausgeführt werden, wenn die Bedingungen erfüllt sind.
`numeric_state`Überprüft, ob ein numerischer Sensorwert einen bestimmten Schwellenwert überschreitet oder unterschreitet.
`template`Erlaubt die Verwendung von Jinja2-Templates zur dynamischen Bedingungsprüfung.

Hinweise & Best Practices
- Überprüfe regelmäßig die Sensorwerte und deren Erreichbarkeit, um sicherzustellen, dass die Automatisierung korrekt funktioniert.
- Teste die Automatisierung unter verschiedenen Bedingungen, um sicherzustellen, dass sie in allen Szenarien wie gewünscht reagiert.
- Dokumentiere Änderungen an der Automatisierung, um die Nachverfolgbarkeit zu gewährleisten und zukünftige Anpassungen zu erleichtern.