Benachrichtigungen – Notifications

Wenn etwas nicht ordentlich läuft, möchte ich aktiv benachrichtigt werden. Höre ich nichts, dann erledigt Home Assistant die Gebäudeautomation fehlerfrei. Prost 😉

In diesem Blog zeige ich Dir wie eine Benachrichtigung effizient eingerichtet und auf Deinem Smartphone angezeigt wird. Es gibt verschiedene Wege. Ich beschränke mich auf die folgenden:

  1. Benachrichtigungen auf die Home Assistant Benutzeroberfläche senden: persistant-notification
    • Nachricht erscheint auf Benutzeroberfläche, wird auf Smartphone nicht aktiv angezeigt
  2. Benachrichtigungen an eine Smartphone schicken: mobile-notification
    • Benachrichtigung wird im Smartphone aktiv angezeigt
      • Lokal: sobald Smartphone in WLAN ist
      • Remote: wenn das Smartphone über Home Assistant Cloud oder eine VPN Verbindung auf die lokale Instanz Zugriff hat
  3. Benachrichtigungen über Email empfangen: email-notification

Tip: Benachrichtigungen senden wird als Aktion von Automatisierungen ausgelöst. Als Empfänger immer Gruppen verwenden. So können Benutzer hinzugefügt oder geändert werden, ohne die Automatisierungen anzupassen. Deshalb unbedingt die Anleitung zu ende lesen…

Remote Verbindung

Du willst auch ausserhalb Benachrichtigungen erhalten, dann ist der einfachste Weg über die Home Assitant Cloud von Nabu Casa. Du hast Zugriff auf die Lokale Instanz ohne technische Kenntnisse. Dafür bezahlst Du eine monatlichen Beitrag.

Willst Du kostenfreien Zugriff, dann bezahlst Du das mit etwas Arbeit. Es braucht einen VPN Zugang für Dein Haus. Dazu gibt es auch OpenSource Lösungen wie Wireguard oder OPNsense. Die Konfiguration dieser Lösungen, braucht jedoch technische Kenntnisse.

Als kostenloser Kompromiss bietet sich deshalb auch die Lösung über eine Email an. Damit hast Du zwar ausserhalb des Hauses keine Kontrollmöglichkeiten für Home Assistant, Benachrichtigungen können jedoch auf dem Smartphone überall erhalten werden.


Anleitung

Persistent-Notification einrichten

Benachrichtigungen können mit dem Service Persistent-Notification auf die Home Assistant Benutzeroberfläche gesendet werden.

Dieser Dienst ist in der Home Assistant Installation enthalten und kann über Entwicklung -> Dienste getestet werden.

  1. Entwicklungswerkzeuge -> Dienste auswählen
  2. Notification unter Dienst eintippen und Send a persistent notification wählen
  3. Nachricht eingeben, optional auch Titel
  4. Dienst ausführen klicken

Die Benachrichtigung wird auf der Benutzeroberfläche von Home Assistant angezeigt:

Der Dienst wird wie folgt einer Benachrichtigungsgruppe hinzugefügt. Dies erfolgt in der Datei configuration.yaml. Wie diese bearbeitet wird, ist hier beschrieben: Manuelle Konfiguration in Home Assistant.

  • Der Name der Benachrichtigungsgruppe ist «to_all»
  • In diesem Beispiel gibt es nur ein Mitglied «persistent_notification»
  • Im weiteren Verlauf dieser Anleitung werden weitere Mitglieder hinzugefügt 💡

configuration.yaml

#============================= Notification Group =============================
notify:
  - name: to_all
    platform: group
    services:
      - service: persistent_notification

Mobile-Notification einrichten

Die Home Assitant App herunterladen, wenn das Smartphone im WLAN angemeldet ist. So kann die Verbindung zu der Home Assistant Instanz direkt bei der Installation erstellt werden:

  1. Die Home Assistant App auf dem Smartphone installieren
  2. Lokale Home Assistant Instanz wählen (Assistant-Server)

In Home Assistant wird das Smartphone unter Integrationen -> Mobile App angezeigt.

Integration in Home Assistant
Screenshot von App Installation

Mit der Mobile App Integration wird auch ein Notification Dienst erstellt. Über diesen Dienst werden Nachrichten direkt auf das Smartphone gesendet.

Der Name des Smartphones kann in der App umbenannt werden. Nachdem Umbenennen muss die Mobile App neu gestartet werden, damit die Änderungen übernommen werden.

Auf Smartphone Einstellungen «Mobile App» wählen
Home Assistant Instanz wählen
Smartphone Gerätename ändern

Der Dienst wird wie folgt einer Benachrichtigungsgruppe hinzugefügt:

  • Der Name der Benachrichtigungsgruppe ist «to_all»
  • In diesem Beispiel gibt es nun 2 Mitglieder in der Gruppe, die persistant notification und die mobile notification

configuration.yaml

#============================= Notification Group =============================
notify:
  - name: to_all
    platform: group
    services:
      - service: persistent_notification
      - service: mobile_app_phone_hans

Email-Notification einrichten

Es wird eine Benachrichtigung konfiguriert, welche die SMTP Plattform verwendet. Dies erfolgt in der Datei configuration.yaml. Wie diese bearbeitet wird, ist hier beschrieben: Manuelle Konfiguration in Home Assistant.

  1. Der SMTP Zugang beim Email Provider abfragen, z.B. Google -> smtp.gmail.com
  2. In configuration.yaml Email Benachrichtigung erstellen
    • username ist normalerweise deine Email Adresse
    • password ist das Passwort für deine Email Account
  3. Dank diesem Eintrag steht ein neuer Benachrichtigungs-Dienst zur Verfügung mit dem Namen «email_hans».
  4. Da Automationen für Benachrichtigungen immer auf Gruppen erstellt werden, wird auch dieser Dienst der Gruppe «to_all» hinzugefügt:
#============================= Notification Email =============================
# Example configuration.yaml entry
notify:
  - name: "email_hans"
    platform: smtp
    sender: "myhome@home-assistant.li"
    sender_name: "HA"
    recipient: "hans.Q@gmail.com"
    server: "smtp.gmail.com"
    encryption: tls
    port: 587
    username: !secret email_user
    password: !secret email_pw
#============================= Notification Group =============================
  - name: to_all
    platform: group
    services:
      - service: persistent_notification
      - service: mobile_app_sm_phone_hans
      - sercice: email_hans


Automation für Benachrichtigung einrichten

Automation für ein Gerät erstellen

Im Blog HLK Einzelraum Temperaturregler werden autarke Stellantriebe für Heizkörper eingesetzt. Ich möchte eine Benachrichtigung erhalten wenn die Batterie eines Stellantriebs leer ist.

  • Dazu richte ich eine Automation ein
  • Um die Automationen mit Benachrichtigungen einfach zu erkennen, verwende ich immer den Präfix «Diagnostic»
  • Als Auslöser verwende ich den Zustand «Batterie schwach» welcher für 5s anstehen muss
  • Dann wird eine Benachrichtigung an die Gruppe «to_all» ausgelöst
    • Automationen immer auf Gruppen einrichten, bei einem neuen Smartphone, braucht es nur eine Anpassung in der Gruppe
Auslöser auf Zustandsänderung konfigurieren
Notification an Gruppe «to_all» senden

Automation für mehrere Geräte einrichten

Nun habe ich nicht 1 Stellantrieb sondern 11 Stellantriebe verwendet. Ich möchte mit einer Automation alle 11 Stellantrieb überprüfen und bei einer Benachrichtigung wissen, welche Stellantriebe eine schwache Batterie haben.

Das geht am Einfachsten mit einer weiteren Gruppe: die Gruppe der Stellantriebe 😉

  1. Die Gruppe wird unter Einstellungen -> Geräte und Dienste erstellt
    • Helfer erstellen, Typ = Gruppe
    • Binäre-Sensoren Gruppe, Name = Gruppe Stellantrieb Batterie
    • Alle Batterie Zustände der Stellantriebe dieser Gruppe als Mitglieder hinzufügen
  2. Automation erstellen
    • Auslöser ist eine Zustandsänderung der Gruppe «Gruppe Stellantrieb Batterie», welcher für 5s anstehen muss
    • Aktion hier wird wieder der Dienst Notification auf die Gruppe «to_all» aufgerufen, die Nachricht wird über ein Skript generiert.
      • Das Skript prüft alle Mitglieder der Gruppe «Gruppe Stellantrieb Batterie»
      • Wenn eine Batterie schwach ist, wird der Name ausgegeben
      • Wenn nicht «alle Batterien ok» ausgeben (die Automation wird bei allen Zustandsänderungen aufgerufen, auch von schwach zu ok)

Automation:

service: notify.to_all
data:
  title: Diagnostic Home Assistant
  message: >
    {% for name, state in expand('binary_sensor.gruppe_stellantrieb_batterie') |
    groupby("name") if not state %}
      {{- name }}
    {% else %}
      alle Batterien ok
    {% endfor %}

Das wars, so sieht die komplette Automation aus, welche alle Stellantriebe überwacht und alle Benutzer benachrichtigt: