Files
HA-Automationen/packages/bewaesserung/automations.yaml
T

128 lines
4.1 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# packages/bewaesserung/automations.yaml
automation:
- id: bewaesserung_taeglicher_check
alias: "Bewässerung: Täglicher Check"
description: >
Täglich zur konfigurierten Uhrzeit: gießt wenn Min-Feuchte unter Schwelle
und (optional) kein Regen vorhergesagt.
mode: single
trigger:
- platform: time
at: input_datetime.bewaesserung_uhrzeit
condition:
- condition: state
entity_id: input_boolean.bewaesserung_aktiv
state: "on"
- condition: numeric_state
entity_id: sensor.bewaesserung_min_feuchte
below: input_number.bewaesserung_schwellwert
action:
# Regensperre: nur prüfen wenn aktiv
- if:
- condition: state
entity_id: input_boolean.bewaesserung_regensperre
state: "on"
then:
- action: weather.get_forecasts
target:
entity_id: weather.home
data:
type: daily
response_variable: wetter
- if:
- condition: template
value_template: >
{{ (wetter['weather.home'].forecast | default([{}]) | first).precipitation | default(0) | float(0) > 0 }}
then:
- stop: "Regen vorhergesagt Bewässerung übersprungen"
# Pumpe einschalten
- action: switch.turn_on
target:
entity_id: switch.hydro_one
- action: notify.mobile_app_DEIN_GERAET
data:
title: "Bewässerung"
message: >
Bewässerung gestartet Min-Feuchte: {{ states('sensor.bewaesserung_min_feuchte') }}%
# Warten bis Zielfeuchte erreicht oder Timeout
- wait_for_trigger:
- trigger: template
value_template: >
{{ states('sensor.bewaesserung_min_feuchte') | float(0) >=
states('input_number.bewaesserung_ziel_feuchte') | float(70) }}
timeout: "{{ (states('input_number.bewaesserung_dauer') | int) * 60 }}"
continue_on_timeout: true
# Pumpe ausschalten
- action: switch.turn_off
target:
entity_id: switch.hydro_one
# Benachrichtigung: Ziel erreicht oder Timeout
- if:
- condition: template
value_template: "{{ wait.completed }}"
then:
- action: notify.mobile_app_DEIN_GERAET
data:
title: "Bewässerung"
message: >
✅ Fertig Feuchte jetzt {{ states('sensor.bewaesserung_min_feuchte') }}%
else:
- action: notify.mobile_app_DEIN_GERAET
data:
title: "Bewässerung"
message: >
⚠️ Timeout nach {{ states('input_number.bewaesserung_dauer') | int }} min
Feuchte erst {{ states('sensor.bewaesserung_min_feuchte') }}%
# Wochenzähler erhöhen
- action: counter.increment
target:
entity_id: counter.bewaesserung_woche
- id: bewaesserung_failsafe
alias: "Bewässerung: Failsafe-Abschaltung"
description: "Pumpe zwangsweise abschalten wenn sie länger als 15 min läuft"
mode: single
trigger:
- platform: state
entity_id: switch.hydro_one
to: "on"
for:
minutes: 15
action:
- action: switch.turn_off
target:
entity_id: switch.hydro_one
- action: notify.mobile_app_DEIN_GERAET
data:
title: "Bewässerung ALARM"
message: "🚨 Pumpe-Notabschaltung! Lief länger als 15 Minuten."
- id: bewaesserung_wochenreport
alias: "Bewässerung: Wochenreport"
description: "Jeden Sonntag um 20:00 Bericht und Zähler-Reset"
mode: single
trigger:
- platform: time
at: "20:00:00"
condition:
- condition: time
weekday:
- sun
action:
- action: notify.mobile_app_DEIN_GERAET
data:
title: "Bewässerung Wochenreport"
message: >
Diese Woche {{ states('counter.bewaesserung_woche') }}× gegossen.
- action: counter.reset
target:
entity_id: counter.bewaesserung_woche