Ausführbare Benachrichtigungen sind ein wichtiges Werkzeug in Home Assistant. Sie können dazu verwendet werden, um über aktuelle Ereignisse oder Änderungen im Smart Home zu informieren. Standardmäßig enthalten Benachrichtigungen in Home Assistant nur Text. Mit Ausführbaren Benachrichtigungen können jedoch auch Schaltflächen hinzugefügt werden, mit denen Aktionen in einer Automatisierung gestartet werden ohne Home Assistant zu öffnen.
Vorteile von Ausführbaren Benachrichtigungen in Home Assistant
Ausführbare Benachrichtigungen bieten eine Reihe von Vorteilen gegenüber Standardbenachrichtigungen. Sie ermöglichen es sofort auf Benachrichtigungen zu reagieren, ohne Home Assistant öffnen zu müssen. Dies kann besonders hilfreich sein, wenn Benachrichtigungen verwendet werden, um zum Beispiel Alarme oder Warnungen zu senden.
Darüber hinaus können Ausführbare Benachrichtigungen verwendet werden, um Aktionen zu automatisieren. Beispielsweise können Benachrichtigung mit Schaltern erstellen werden, die eine bestimmte Aktion innerhalb einer Automation starten. Dies kann hilfreich sein, um beispielsweise Entscheidungen zu treffen, wie eine Automatisierung reagieren soll.
Im Folgenden zeige ich zwei Beispiele aus der Praxis, wie ausführbare Benachrichtigungen umgesetzt werden können.
Definition von Actions
Actions sind das zentrale Attribut für ausführbare Benachrichtigungen. Der Action Name referenziert stets die Aktion, die ausgeführt werden soll. Der Name (Title) der Action kann frei gewählt werden. Es ist der Name, der auf dem Smartrphone und-/oder Smartwatch angezeigt wird. Der Auslöser einer Action ist also ein Ereignis (Event), dass über den Service mobile_app_notification_action ausgelöst (Trigger) wird
Haustür per Actionable Notification öffnen
In diesem Beispiel habe ich eine Automatisierung gebaut, welche eine Benachrichtigung sendet, wenn es an der Haustür klingelt. Es wird ein Vorschaubild angezeigt des Besuchers angezeigt. Anschließend kann entschieden werden, ob die Haustür direkt über ausführen einer Aktion geöffnet wird. Technisch verwenden ich dazu eine Netatmo Türklingel als auch ein Nuki 3.0 Pro Smart Lock.
Damit nicht versehentlich die Haustür von unterwegs geöffnet wird soll dies nur möglich sein, wenn die Person in der Home Zone, also zu Hause ist.
Automatisierung
alias: "Benachrichtigung: Tür öffnen bei Klingel"
description: ""
trigger:
- platform: event
event_type: netatmo_event
event_data:
type: incoming_call
alias: Es klingelt an der Haustuer
condition: []
action:
- delay:
hours: 0
minutes: 0
seconds: 2
milliseconds: 0
- service: notify.mobile_app_udos_iphone
data:
message: Es klingelt - Tür öffnen?
title: Ding Dong
data:
actions:
- action: KLINGEL
title: Tür öffnen
- wait_for_trigger:
- platform: event
event_type: mobile_app_notification_action
event_data:
action: KLINGEL
timeout:
hours: 0
minutes: 2
seconds: 0
milliseconds: 0
continue_on_timeout: false
- if:
- condition: zone
entity_id: person.udo
zone: zone.home
then:
- service: lock.open
target:
entity_id: lock.tuerschloss
data: {}
mode: single
Ausführbare Benachrichtigung mit wiederkehrender Aktion
Als nächstes ein komplexeres Beispiel, dass aus 3 Automatisierungen besteht. Es geht um das leeren der Waschmaschine oder des Trockners. Die Idee dahinter ist so lange eine Erinnerung zu senden, bis die Aufgabe erledigt ist.
Automation 1: Benachrichtigung und Definition der Actions
alias: "Benachrichtigung: Wäsche fertig"
description: ""
trigger:
- type: turned_off
platform: device
device_id: bd2a7be5b56d01270fc2effb91030e0b
entity_id: binary_sensor.waschmaschine_door_lock
domain: binary_sensor
condition: []
action:
- service: notify.mobile_app_udos_iphone
data:
message: Waschmaschine fertig
title: Wäsche
data:
actions:
- action: WAMALEER
title: Trommel geleert
- action: WAMAVOLL
title: Trommel später leeren
- service: tts.cloud_say
data:
message: Die Waschmaschine ist fertig, bitte Trommel leeren
cache: false
entity_id: media_player.media_player_all
enabled: true
mode: restart
Automation 2: Status eines Helfer setzen
Damit die Benachrichtigung regelmäßig gesendet wird benötigt es ein Kriterium, ob die Wäsche noch in der Waschmaschine oder dem Trockner ist. Ich habe diese über einen Helfer gelöst, der den Status Voll oder Leer definiert. Eine andere Lösung ist zum Beispiel über einen Tür-/Fenster Kontakt.
alias: "Ereignis: Wäsche Helfer"
description: ""
trigger:
- platform: event
event_type: mobile_app_notification_action
event_data:
action: WAMAVOLL
id: trommel-voll
- platform: event
event_type: mobile_app_notification_action
event_data:
action: WAMALEER
id: trommel-leer
condition: []
action:
- choose:
- conditions:
- condition: trigger
id:
- trommel-voll
sequence:
- service: input_boolean.turn_on
target:
entity_id:
- input_boolean.waschetrommel
device_id: []
area_id: []
data: {}
- conditions:
- condition: trigger
id:
- trommel-leer
sequence:
- service: input_boolean.turn_off
target:
entity_id: input_boolean.waschetrommel
data: {}
mode: restart
Automation 3: Prüfen ob Helfer An ist
In der dritten Automatisierung wird definiert in welchem Intervall die Benachrichtigung gesendet wird. Darüber soll die Benachrichtigung nur unter der Bedingung gesendet werden, wenn einer der Helfer für die Waschmaschine oder Trockner An ist.
alias: "Benachrichtigung: Wäsche leeren Erinnerung"
description: ""
trigger:
- platform: time_pattern
minutes: /30
condition:
- condition: state
entity_id: input_boolean.waschetrommel
state: "on"
action:
- service: script.turn_on
target:
entity_id: script.mobile_benachrichtigung_wasche
data: {}
mode: single
Skript zur Definition der Benachrichtigung
Zur Vereinfachung um nicht in jeder Automation die Art der Benachrichtigung neu definieren zu müssen habe ich dies in einem Skript verpackt. Die Benachrichtigung erfolgt sowohl auf mobile Geräte als auch per Audio Ausgabe.
alias: "Mobile: Benachrichtigung Wäsche"
sequence:
- service: notify.mobile_app_udos_iphone
data:
message: Waschmaschine fertig
title: Wäsche
data:
actions:
- action: WAMALEER
title: Trommel geleert
- action: WAMAVOLL
title: Trommel voll
- service: tts.cloud_say
data:
message: Die Waschmaschine ist fertig, bitte Trommel leeren
cache: false
entity_id: media_player.media_player_all
enabled: true
mode: single