ich muss gestehen der Titel klingt verwirrend, daher eine kurze Erläuterung:
Ziel ist, dass ich bei einem definierten Zustand in regelmäßigen Abständen über die HA App auf dem Smartphone benachrichtigt werde… und zwar solange, bis ein anderer Zustand erreicht ist. Daraufhin soll die Benachrichtigung auf dem Smartphone aber auch automatisch verschwinden.
Grundsätzlich klappt die Wiederholung und auch die Löschung an und für sich sehr zuverlässig. Beides zusammen aber leider nicht…
Nachfolgend mein Beispielszenario:
alias: "❌ #Wiederkehrende Benachrichtigung löschen"
description: Benachrichtigung nur an anwesende Personen
trigger:
- platform: state
entity_id:
- light.ambiente_buro
to: "on"
for:
hours: 0
minutes: 0
seconds: 0
id: LED AN
- platform: state
entity_id:
- light.ambiente_buro
to: "off"
id: LED AUS
condition: []
action:
- if:
- condition: trigger
id:
- LED AN
then:
- repeat:
sequence:
- service: notify.mobile_app_pixel_7_pro
data:
message: LED an
data:
tag: led-an
- delay:
hours: 0
minutes: 0
seconds: 10
milliseconds: 0
until:
- condition: state
entity_id: light.ambiente_buro
state: "off"
- if:
- condition: trigger
id:
- LED AUS
then:
- service: notify.mobile_app_pixel_7_pro
data:
data:
tag: led-an
message: clear_notification
mode: single
Für hilfreiche Hinweise bin ich euch sehr dankbar
by HarryP: Codezeilen formatiert (bitte in </> einbinden)
Bei LED AUS würde ich vor das clear_notification noch ein WARTE 10 Sek. einbauen, da LED AN ja das Delay drin hat.
Oder oben beim Aus-Trigger ein FÜR 10 Sek. einbauen.
Ich hab die gesamt yaml übernommen. Klappt leider nicht. Die Initiale Benachrichtigung erscheint und jede 10 Sekunden eine neue Benachrichtigung. Aber nach dem ausschalten der LED, bleibt die Benachrichtigung weiterhin bestehen.
Ich habe es ähnlich am laufen, nutze aber nur den Trigger on. Im repeat nutze ich “while” und prüfe dort noch einmal die condition, ist sie nicht mehr wahr, setzt er die sequenz fort und sendet die notification zum löschen. Würde bei dir so aussehen:
alias: "❌ #Wiederkehrende Benachrichtigung löschen"
description: Benachrichtigung nur an anwesende Personen
trigger:
- platform: state
entity_id:
- light.ambiente_buro
to: "on"
for:
hours: 0
minutes: 0
seconds: 0
id: LED AN
condition: []
action:
- repeat:
sequence:
- service: notify.mobile_app_pixel_7_pro
data:
message: LED an
data:
tag: "led-an"
- delay:
hours: 0
minutes: 0
seconds: 10
milliseconds: 0
while:
- condition: state
entity_id: light.ambiente_buro
state: "on"
- service: notify.mobile_app_pixel_7_pro
data:
message: clear_notification
data:
tag: "led-an"
mode: restart
Klasse, das hat jetzt geklappt. Vielen lieben Dank für die Unterstützung an alle!
Problem: Grundsätzlich klappt das Vorgehen. Hat aber einen Nachteil in meinem Anwendungsfall.
Idee hinter dem ganzen ist, wir wohnen in einem 3-Personenhaushalt. Wenn ein bestimmtes Fenster länger als 7 Minuten offen steht, werden alle Handys der anwesenden Personen benachrichtigt. Sobald das entsprechende Fenster geschlossen wird, verschwindet die Nachricht bei allen. Bei der vorgeschlagenen Lösung, wird die Nachricht erst nach Ablauf der Zeit (in unserem Fall nach 7 Minuten) verschwinden. Das führt dazu, dass ich während dieser Zeit zum entsprechenden Fenster gehe, um dann ggf festzustellen, dass es schon zu ist… Daher war es mir wichtig, den Trigger bei Fenster zu direkt auszulösen und die Nachrichten unmittelbar nach der Aktion verschwinden zu lassen.
Lösung: Aufbauend auf den Hinweis von d0neria, habe ich einen weiteren Trigger für “Led aus” hinzugefügt und lasse die Nachricht löschen, wenn der Zustand erreicht wird. Dankeschön