Files
battery-charging-optimizer/legacy/v3/battery_optimizer_automations.yaml

168 lines
5.1 KiB
YAML

# ============================================
# Battery Charging Optimizer v3 - Automatisierungen
# ============================================
# Diese Automatisierungen zu deiner automations.yaml hinzufügen
# oder über die UI erstellen
#
# HINWEIS: Die Keep-Alive und ESS-Modus Automations sind NICHT enthalten,
# da diese bereits existieren:
# - speicher_manuell_laden.yaml (Keep-Alive alle 30s)
# - manuelle_speicherbeladung_aktivieren.yaml (ESS → REMOTE)
# - manuelle_speicherbeladung_deaktivieren.yaml (ESS → INTERNAL)
# Automatisierung 1: Tägliche Planerstellung um 14:05 Uhr
alias: "Batterie Optimierung: Tägliche Planung"
description: "Erstellt täglich um 14:05 Uhr den Ladeplan basierend auf Strompreisen"
trigger:
- platform: time
at: "14:05:00"
condition:
- condition: state
entity_id: input_boolean.battery_optimizer_enabled
state: "on"
action:
- service: pyscript.calculate_charging_schedule
data: {}
- service: notify.persistent_notification
data:
title: "Batterie-Optimierung"
message: "Neuer Ladeplan erstellt"
mode: single
# Automatisierung 2: Stündliche Ausführung des Plans
alias: "Batterie Optimierung: Stündliche Ausführung"
description: "Führt jede Stunde zur Minute :05 den Ladeplan aus"
trigger:
- platform: time_pattern
minutes: "5"
condition:
- condition: state
entity_id: input_boolean.battery_optimizer_enabled
state: "on"
- condition: state
entity_id: input_boolean.battery_optimizer_manual_override
state: "off"
action:
- service: pyscript.execute_charging_schedule
data: {}
mode: single
# Automatisierung 3: Initiale Berechnung nach Neustart
alias: "Batterie Optimierung: Start-Berechnung"
description: "Erstellt Ladeplan nach Home Assistant Neustart"
trigger:
- platform: homeassistant
event: start
condition:
- condition: state
entity_id: input_boolean.battery_optimizer_enabled
state: "on"
action:
- delay: "00:02:00" # 2 Minuten warten bis alles geladen ist
- service: pyscript.calculate_charging_schedule
data: {}
- service: pyscript.execute_charging_schedule
data: {}
mode: single
# Automatisierung 4: Mitternachts-Neuberechnung
alias: "Batterie Optimierung: Mitternachts-Update"
description: "Neuberechnung um Mitternacht wenn Tomorrow-Daten im Plan waren"
trigger:
- platform: time
at: "00:05:00"
condition:
- condition: state
entity_id: input_boolean.battery_optimizer_enabled
state: "on"
- condition: template
value_template: >
{{ state_attr('pyscript.battery_charging_schedule', 'has_tomorrow_data') == true }}
action:
- service: pyscript.calculate_charging_schedule
data: {}
mode: single
# Automatisierung 5: Preis-Update Trigger
alias: "Batterie Optimierung: Bei Preis-Update"
description: "Erstellt neuen Plan wenn neue Strompreise verfügbar (nach 14 Uhr)"
trigger:
- platform: state
entity_id: sensor.hastrom_flex_pro_ext
condition:
- condition: state
entity_id: input_boolean.battery_optimizer_enabled
state: "on"
- condition: template
value_template: >
{{ trigger.to_state.state != trigger.from_state.state and
now().hour >= 14 }}
action:
- service: pyscript.calculate_charging_schedule
data: {}
- service: notify.persistent_notification
data:
title: "Batterie-Optimierung"
message: "Neuer Ladeplan nach Preis-Update erstellt"
mode: single
# Automatisierung 6: Notfall-Überprüfung bei niedrigem SOC
alias: "Batterie Optimierung: Niedrig-SOC Warnung"
description: "Warnt wenn Batterie unter Minimum fällt"
trigger:
- platform: numeric_state
entity_id: sensor.esssoc
below: 20
condition:
- condition: state
entity_id: input_boolean.battery_optimizer_enabled
state: "on"
action:
- service: notify.persistent_notification
data:
title: "Batterie-Warnung"
message: "Batterie-SOC ist unter {{ states('input_number.battery_optimizer_min_soc') }}%. Prüfe Ladeplan!"
mode: single
# Automatisierung 7: Manueller Override Reset
alias: "Batterie Optimierung: Manueller Override beenden"
description: "Deaktiviert manuellen Override nach 4 Stunden"
trigger:
- platform: state
entity_id: input_boolean.battery_optimizer_manual_override
to: "on"
for:
hours: 4
action:
- service: input_boolean.turn_off
target:
entity_id: input_boolean.battery_optimizer_manual_override
- service: notify.persistent_notification
data:
title: "Batterie-Optimierung"
message: "Manueller Override automatisch beendet"
mode: restart
# Automatisierung 8: Laden stoppen wenn SOC erreicht
alias: "Batterie Optimierung: Stopp bei Max-SOC"
description: "Beendet manuelles Laden wenn maximaler SOC erreicht"
trigger:
- platform: numeric_state
entity_id: sensor.esssoc
above: 99
condition:
- condition: state
entity_id: input_boolean.goodwe_manual_control
state: "on"
action:
- service: input_boolean.turn_off
target:
entity_id: input_boolean.goodwe_manual_control
# ESS-Modus wird durch manuelle_speicherbeladung_deaktivieren gesetzt
- service: notify.persistent_notification
data:
title: "Batterie-Optimierung"
message: "Manuelles Laden beendet - SOC 100% erreicht"
mode: single