Wie du mit Home Assistant Benachrichtigungen auf deinem Handy nicht nur Infos erhältst, sondern direkt Aktionen auslösen kannst – und das alles ohne ständiges App-Hopping. Lass uns mit Actionable Notifications dein SmartHome gemeinsam auf das nächste Level heben! 🚀📱
Inhaltsverzeichnis
Voraussetzungen
App
Die Home Assistant App muss außerdem auf deinem Endgerät installiert sein und du musst die Rechte zum Anzeigen von Benachrichtigungen in den Einstellungen von iOS erteilt haben.
Basiswissen – Wie kann man Benachrichtigungen über Home Assistant senden?
Das Senden von Notifications in Home Assistant kannst du entweder über den Dienst notify.notify machen, oder über den jeweiligen Notify-Dienst der Geräte, auf denen die Home Assistant app installiert ist (den benutzte ich in den Beispielen immer).
Der Dienst notfy.notify sollte generell gesprochen nicht verwendet werden, da er sich abgekürzt erklärt, häufig unvorhersehbar verhält.
So kannst du über eine Home Assistant Aktion eine Benachrichtigung schicken, geht in den Automationen natürlich genau gleich 👇
![](https://www.simon42.com/wp-content/uploads/2025/02/vivaldi-entwicklerwerkzeuge-home-assistant-vivaldi.gif)
Im Video oben sowie im Folgenden Beitrag geht es ja aber um das nächste Level der Benachrichtigungen, nämlich um Actionable Notifications 😉
Ressourcen für Actionable Notifications
Doku von HA, falls du etwas selbst nachlesen möchtest | https://companion.home-assistant.io/docs/notifications/actionable-notifications/ |
iOS-Icons | https://github.com/andrewtavis/sf-symbols-online |
Automation-Codes
Hier die Automationen aus dem Video sowie 2 weitere Beispiele, damit du möglichst viel kopieren kannst! Natürlich musst du die Entitäten-IDs und Notifikations-Dienste durch deine eigenen ersetzen.
Garage offen → Schließen
Hier zuerst mal ein einfaches Beispiel: Wenn die Garage längere Zeit offen ist, wird eine Benachrichtigung verschickt, ob man diese nicht schließen will. Ohne Fancy Variablen, sondern ganz einfach gehalten und unterstützt insofern auch keine Parallelen Läufe (wäre hier ja auch nicht sinnvoll).
![Screenshot der Home Assistant Automation "Garage 1.OG ist offen"](https://www.simon42.com/wp-content/uploads/2025/02/vivaldi-einstellungen-home-assistant-vivaldi-2025-02-05-1504592x.png)
alias: Garage 1.OG ist offen description: "" triggers: - trigger: state entity_id: - cover.garage_door to: open from: closed for: hours: 0 minutes: 20 seconds: 0 conditions: [] actions: - data: title: Garage 1.OG offen message: Die Garage ist noch offen (bitte gedrückt halten) data: actions: - action: CLOSE_GARAGE_1OG title: Garage schließen icon: sfsymbols:square.and.arrow.down - action: URI title: Kamera-Dashboard uri: /1-og/cctv icon: sfsymbols:arrow.up.right.video.fill action: notify.notify - wait_for_trigger: - event_type: mobile_app_notification_action event_data: action: CLOSE_GARAGE_1OG trigger: event timeout: hours: 0 minutes: 30 seconds: 0 continue_on_timeout: false - data: {} target: entity_id: cover.garage_door action: cover.close_cover mode: single
Zuhause ankommen → Türen öffnen
Beispiel aus dem Video 😉
![Screenshot der Home Assistant Automation "Türen öffnen"](https://www.simon42.com/wp-content/uploads/2025/02/vivaldi-einstellungen-home-assistant-vivaldi-2025-02-05-1510262x.png)
alias: Türen öffnen description: Öffnet die Haustür und Wohnungstür bei Ankunft mode: parallel max: 2 triggers: - entity_id: - sensor.sh42_arabella_oberstedt_fahrtrichtung from: towards to: arrived enabled: true id: Arabella trigger: state - entity_id: - sensor.sh42_simon_muller_fahrtrichtung from: towards to: arrived enabled: true id: Simon trigger: state conditions: - condition: or conditions: - type: is_not_open condition: device device_id: b3fb6caba13b81df5afabbc1aebe8859 entity_id: 9e4d8f62d11768ac2436a1c546031d2b domain: binary_sensor - type: is_not_open condition: device device_id: 795e199c81d2255ddbe001c597158154 entity_id: 1ecef2a94711e81ecaf8ff58be049885 domain: binary_sensor - condition: template value_template: >- {{ state_attr("automation.turen_offnen", "last_triggered") == None or ( as_timestamp(now()) - as_timestamp(state_attr("automation.automation.turen_offnen", "last_triggered")) |int(0) ) > 300 }} alias: Automation wurde nicht in den letzten 5 Minuten ausgeführt enabled: false actions: - variables: action_open: "{{ 'OPEN_' ~ context.id }}" action_no: "{{ 'NO_' ~ context.id }}" - choose: - conditions: - condition: trigger id: - Simon sequence: - data: message: Möchtest du, dass ich die Türen öffne? (Geht 5 Min.) data: actions: - action: "{{ action_open }}" title: Öffnen - action: "{{ action_no }}" title: Nein title: Bitte gedrückt halten! action: notify.mobile_app_iphone16psimon - wait_for_trigger: - event_type: mobile_app_notification_action event_data: action: "{{ action_open }}" trigger: event continue_on_timeout: false timeout: hours: 0 minutes: 5 seconds: 0 milliseconds: 0 - parallel: - if: - type: is_not_open condition: device device_id: b3fb6caba13b81df5afabbc1aebe8859 entity_id: 9e4d8f62d11768ac2436a1c546031d2b domain: binary_sensor then: - if: - condition: device device_id: 4c80468524dc95931a283f24a61e7243 domain: lock entity_id: dadad051515ba437b2a664b07b7c15e6 type: is_unlocked then: - device_id: 4c80468524dc95931a283f24a61e7243 domain: lock entity_id: dadad051515ba437b2a664b07b7c15e6 type: lock - delay: hours: 0 minutes: 0 seconds: 4 milliseconds: 0 - device_id: 4c80468524dc95931a283f24a61e7243 domain: lock entity_id: dadad051515ba437b2a664b07b7c15e6 type: unlock else: - device_id: 4c80468524dc95931a283f24a61e7243 domain: lock entity_id: dadad051515ba437b2a664b07b7c15e6 type: unlock alias: Wohnungstür Aktionen bedingt ausführen - alias: Haustür Aktionen bedingt ausführen if: - type: is_not_open condition: device device_id: 795e199c81d2255ddbe001c597158154 entity_id: 1ecef2a94711e81ecaf8ff58be049885 domain: binary_sensor then: - if: - condition: device device_id: 6cea6c4d797de7ed9bc3bb8cbdf5005d domain: lock entity_id: f9dc4db3d2b6a972f63a0dcfcb67d982 type: is_unlocked then: - device_id: 6cea6c4d797de7ed9bc3bb8cbdf5005d domain: lock entity_id: f9dc4db3d2b6a972f63a0dcfcb67d982 type: lock - delay: hours: 0 minutes: 0 seconds: 4 milliseconds: 0 - device_id: 6cea6c4d797de7ed9bc3bb8cbdf5005d domain: lock entity_id: f9dc4db3d2b6a972f63a0dcfcb67d982 type: unlock else: - device_id: 6cea6c4d797de7ed9bc3bb8cbdf5005d domain: lock entity_id: f9dc4db3d2b6a972f63a0dcfcb67d982 type: unlock
Bewegung bei Abwesenheit erkannt → Alarm/Kameras
Das 2. Beispiel aus dem Video 🎉
![Screenshot der Home Assistant Automation "Abwesenheit - Benachrichtigung bei Bewegung"](https://www.simon42.com/wp-content/uploads/2025/02/vivaldi-einstellungen-home-assistant-vivaldi-2025-02-05-1507032x.png)
alias: Abwesenheit - Benachrichtigung bei Bewegung description: "" triggers: - trigger: state entity_id: - binary_sensor.bewegungsmelder_bad_motion to: "on" from: "off" id: test - trigger: state entity_id: - binary_sensor.hmip_smi55_2_00319d899ed9aa_motion to: "on" from: "off" - trigger: state entity_id: - binary_sensor.garage_hinten_bewegung to: "on" from: "off" - trigger: state entity_id: - binary_sensor.hue_bewegungsmelder_occupancy to: "on" from: "off" - trigger: state entity_id: - binary_sensor.bewegungsmelder_flur_occupancy to: "on" from: "off" conditions: - condition: numeric_state entity_id: zone.home below: 1 alias: Home Zone ist unter 1 (keiner zuhause) enabled: true actions: - variables: action_alarm: "{{ 'ALARM_' ~ context.id }}" action_silence: "{{ 'SILENCE_' ~ context.id }}" - action: notify.mobile_app_iphone16psimon metadata: {} data: message: Bewegung zuhause von {{ trigger.to_state.name }} erkannt data: push: interruption-level: time-sensitive actions: - action: "{{ action_alarm }}" title: Alarm aktivieren icon: sfsymbols:bell - action: "{{ action_silence }}" title: Alarm deaktivieren icon: sfsymbols:bell.slash - action: URI title: Kamera-Dashboard uri: /1-og/cctv icon: sfsymbols:arrow.up.right.video.fill - wait_for_trigger: - trigger: event event_type: mobile_app_notification_action event_data: action: "{{ action_alarm }}" - trigger: event event_type: mobile_app_notification_action event_data: action: "{{ action_silence }}" timeout: hours: 0 minutes: 10 seconds: 0 continue_on_timeout: false - choose: - conditions: - condition: template value_template: "{{ wait.trigger.event.data.action == action_alarm }}" sequence: - action: select.select_option metadata: {} data: option: alarm target: entity_id: select.aqara_smart_smoke_detector_buzzer - conditions: - condition: template value_template: "{{ wait.trigger.event.data.action == action_silence }}" sequence: - action: select.select_option metadata: {} data: option: mute target: entity_id: select.aqara_smart_smoke_detector_buzzer mode: single
Fazit
Actionable Notifications sind mehr als nur eine technische Spielerei – sie sind der Schlüssel zu einem intuitiven, responsiven Smarthome. Sie reduzieren Komplexität, sparen Zeit und machen die Hausautomatisierung endlich so einfach, wie sie immer sein sollte: unsichtbar und selbstverständlich.
Home Assistant macht’s möglich – und wir sind mittendrin in dieser spannenden Entwicklung. Der größte Gewinn? Mehr Kontrolle, weniger Aufwand und einfache Benutzung auch für Nichttechniker → Genau das ist die Essenz moderner Smarthome-Technologie.
Wie immer ein super Video!
Sehr verständlich erklärt.
Ich würde das ganze aber gerne “einen Schritt weiter” machen, komme nur nicht drauf wie.
Folgende Ausgangssituation:
Ich meiner “Wohnung verlassen”-Automation gibt es den Step, dass ich eine Benachrichtigung bekommen wenn ein Fenster geöffnet ist (Aqara Sensoren). Diese zeigt mir an welche/s offen ist:
Jetzt wäre es natürlich super, dass ich die Möglichkeit habe über die Notification den bzw. die Rollläden zu öffnen/schließen bei den geöffneten Fenster.
In einer anderen Automation, zum Öffnen der Rollläden wenn ein Fenster geöffnet wird nutze, ich Variablen um herauszufinden bei welchem Fenster welcher Rollladen sich öffnen soll:
ich würde jetzt natürlich gern beides kombinieren, damit ich in der Notification einfach nur auf “öffnen” oder “schließen” gehen muss und den Rollladen am geöffneten Fenster bzw. den geöffneten Fenstern auf/zu geht.
Da ich ja aber
{{ expand('binary_sensor.sensor_windows_all')|selectattr('state', 'eq', 'on')|map(attribute='name')|list|join(', - ') }}
in der Notification nutze, ist das glaube ich nicht so einfach, bzw. komme ich nicht drauf.Hat da jemand eine Idee?
sollte jemand hier drüber stolpern und das gleiche vor haben:
die notification:
die automation:
Hallo Simon, hallo Community,
Warum zum Henker nimmt er keine der beiden Optionen? Ich habe den Code 1:1 kopiert und entsprechend meiner Konfiguration angepasst.
![Bildschirmfoto 2025-02-09 um 18.09.45](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='130'%20height='475'%20viewBox='0%200%20130%20475'%3E%3C/svg%3E)
wieder einmal danke für dieses tolle Video.
Ich habe für einen anderen Anwendungsfall die Actionable Notification hergenommen. Allerdings überspringt er zum Schluss IMMER eine der beiden Auswahlmöglichkeiten und beendet die Automation und ich sitze seit drei Stunden hier und komme einfach nicht weiter.
Vielleicht findet ja jemand den Fehler.![:slight_smile: :slight_smile:](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='20'%20height='20'%20viewBox='0%200%2020%2020'%3E%3C/svg%3E)
Danke für eure Hilfe.
Liebe Grüße
Kevin
EDIT:
Ich konnte das Problem in der Zwischenzeit lösen.![:slight_smile: :slight_smile:](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='20'%20height='20'%20viewBox='0%200%2020%2020'%3E%3C/svg%3E)
Ich habe die Variablen-Definition weggelassen, die Variablen in der ActionableNotification einfacher gehalten und entsprechend im “Wait-Trigger” ergänzt.
Für die, die es interessiert anbei der Code.
@simon42![:rofl: :rofl:](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='20'%20height='20'%20viewBox='0%200%2020%2020'%3E%3C/svg%3E)
Ich hoffe mal das das Video “längst überfällig” und nicht “längst überflüssig” ist.
Ich löse das mit den Messages ohne Variablen, nämlich so:
und mit einem Trigger springe ich wieder in dieselbe Automation rein. (Weil man 10min Zeit hat zu reagieren)
So muss die Automation nicht warten.
Wenn man einen “Tag” in der “Frage”-Message hinterlegt, kann man auch so witzige Sachen machen wie die Nachricht wieder von den Geräten die nicht gedrückt haben zu löschen.![:wink: :wink:](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='20'%20height='20'%20viewBox='0%200%2020%2020'%3E%3C/svg%3E)
Das hoffe ich doch auch![:rofl: :rofl:](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='20'%20height='20'%20viewBox='0%200%2020%2020'%3E%3C/svg%3E)
![:see_no_evil: :see_no_evil:](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='20'%20height='20'%20viewBox='0%200%2020%2020'%3E%3C/svg%3E)
Danke fürs Teilen deiner Automation![:tada: :tada:](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='20'%20height='20'%20viewBox='0%200%2020%2020'%3E%3C/svg%3E)