Problemlösung für nicht funktionierende Aktionen bei Actionable Notifications
Einleitung
Actionable Notifications sind eine nützliche Funktion in Smart-Home-Systemen, die es ermöglichen, direkt auf Benachrichtigungen zu reagieren. Diese Funktion kann jedoch manchmal Probleme verursachen, insbesondere wenn die nachfolgende Aktion nicht wie erwartet ausgeführt wird. In diesem Artikel wird ein häufiges Problem mit der Automatisierung von Rollläden behandelt und eine Lösung präsentiert.
Problem
Ein Benutzer hat eine Automatisierung eingerichtet, die eine Benachrichtigung sendet, wenn ein Rollladen länger als eine bestimmte Zeit geöffnet ist. Obwohl die Benachrichtigung korrekt gesendet wird und der Benutzer darauf reagieren kann, wird die Aktion zum Schließen des Rollladens nicht ausgeführt. Dies führt zu Verwirrung und der Benutzer sucht nach einer Lösung.
Lösung
Das Problem liegt häufig in der Verwendung von wait_for_trigger
, das in bestimmten Szenarien zu unerwartetem Verhalten führen kann. Eine alternative Herangehensweise besteht darin, die Automatisierung so zu gestalten, dass die Benachrichtigung selbst als Trigger verwendet wird und anschließend überprüft wird, ob die Benachrichtigung innerhalb eines bestimmten Zeitrahmens bestätigt wurde.
Hier ist die angepasste Automatisierung:
alias: Schuppen längere Zeit geöffnet
description: " "
triggers:
- id: benachrichtigen
entity_id: cover.rollladen_schuppen_cover_0
from: "off"
to: "on"
for: "02:00:00"
trigger: state
- id: benachrichtigen
entity_id: cover.rollladen_schuppen_cover_0
from: "off"
to: "on"
for: "04:00:00"
trigger: state
- id: bestaetigt
event_type: mobile_app_notification_action
event_data:
action: close_schuppen
trigger: event
conditions: []
actions:
- choose:
- conditions:
- condition: trigger
id: benachrichtigen
sequence:
- data:
title: Schuppen ist offen
message: Der Schuppen ist noch offen. Zum Schließen bitte bestätigen.
data:
actions:
- action: close_schuppen
title: Schuppen schließen?
action: notify.notify
- conditions:
- condition: trigger
id: bestaetigt
- condition: template
value_template: >
{% set last = this.attributes.last_triggered %} {{ last is not
none and (now() - last).total_seconds() < 300 }}
sequence:
- target:
entity_id: cover.rollladen_schuppen_cover_0
action: cover.close_cover
data: {}
default: []
mode: single
Schritte zur Umsetzung
1. Ersetze die bestehende Automatisierung durch die angepasste Version.
2. Stelle sicher, dass die Entität cover.rollladen_schuppen_cover_0
korrekt konfiguriert ist und die entsprechenden Trigger und Aktionen unterstützt.
3. Teste die Automatisierung, indem du den Rollladen öffnest und die Benachrichtigung auf deinem Mobilgerät bestätigst.
Hintergrundwissen
Die Verwendung von wait_for_trigger
kann in einigen Fällen problematisch sein, insbesondere wenn die Zeitspanne zwischen der Benachrichtigung und der Benutzerinteraktion zu lang ist. Durch die Umstellung auf eine Trigger-basierte Logik wird sichergestellt, dass die Automatisierung auch dann funktioniert, wenn der Benutzer nicht sofort auf die Benachrichtigung reagiert.
Zusätzliche Infos
Funktion | Erklärung |
---|---|
`trigger` | Definiert die Bedingungen, unter denen die Automatisierung ausgelöst wird. |
`condition` | Legt fest, ob die Aktionen ausgeführt werden, basierend auf bestimmten Bedingungen. |
`action` | Bestimmt, welche Aktionen ausgeführt werden, wenn die Trigger und Bedingungen erfüllt sind. |
`choose` | Ermöglicht die Ausführung unterschiedlicher Aktionen basierend auf den Triggern. |
`template` | Erlaubt die Verwendung von Jinja2-Templates zur dynamischen Bewertung von Bedingungen. |
Hinweise & Best Practices
- Teste die Automatisierung gründlich, um sicherzustellen, dass alle Bedingungen und Trigger wie gewünscht funktionieren.
- Halte die Benachrichtigungen klar und präzise, um Missverständnisse zu vermeiden.
- Berücksichtige die Benutzerinteraktion und die Zeit, die benötigt wird, um auf Benachrichtigungen zu reagieren.
- Dokumentiere Änderungen an Automatisierungen, um zukünftige Fehlerquellen zu minimieren.