88 lines
2.9 KiB
YAML
88 lines
2.9 KiB
YAML
# 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
|