Funksignale können mal verschluckt werden, sollte nicht passieren kann aber. Da kann es nicht schaden, wenn man sich wiederholt aber auch nur dann,
wenn der gewünschte Zustand nicht erreicht ist.
Hier mal ein Wasserventil, das sich nach 30 min ausschalten soll.
Die Aktionen switch.turn_off und eine Verzögerung von 10s, werden solange wiederholt bis der Zustand des Switches = off ist
Code: Alles auswählen
alias: Wasser Garten abschalten - Auf Nummer Sicher gehen
description: ''
mode: single
trigger:
- platform: state
entity_id:
- switch.wasser_garten
from: 'off'
to: 'on'
for:
hours: 0
minutes: 30
seconds: 0
condition: []
action:
- repeat:
while:
- condition: state
entity_id: switch.wasser_garten
state: 'on'
sequence:
- service: switch.turn_off
data: {}
target:
entity_id: switch.wasser_garten
- delay:
hours: 0
minutes: 0
seconds: 10
milliseconds: 0
Mann kann die Anzahl der Wiederholungen auch begrenzen, z.b. auf 10
Dabei wird zuerst die Bedingung geprüft ob der Switch = on ist, wenn erfüllt wird der Switch ausgeschaltet und es folgt eine 10s Verzögerung.
Wird der Switch bereits beim ersten Versuch erfolgreich ausgeschaltet, ist ab der 2ten Wiederholung die Bedingungen nicht mehr erfüllt und die Folge Aktionen werden nicht mehr ausgeführt.
Die Schleife wird zwar immer noch 10 mal wiederholt, aber eben nur die Prüfung der Bedingung was nach ein paar ms erledigt ist.
Code: Alles auswählen
alias: Wasser Garten abschalten - Auf Nummer Sicher gehen mit Bedacht
description: ''
trigger:
- platform: state
entity_id:
- switch.wasser_garten
from: 'off'
to: 'on'
for:
hours: 0
minutes: 30
seconds: 0
condition: []
action:
- repeat:
count: '10'
sequence:
- condition: state
entity_id: switch.wasser_garten
state: 'on'
- service: switch.turn_off
data: {}
target:
entity_id: switch.wasser_garten
- delay:
hours: 0
minutes: 0
seconds: 10
milliseconds: 0
mode: single
Osorkon