Ankündigung

Einklappen
Keine Ankündigung bisher.

HA Notifications

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    HA Notifications

    Nachdem meine Todo-Liste bezüglich Notifications endlich abgearbeitet ist, hier eine kleine Zusammenfassung.
    In HA gibt es ja eine ganze Menge an Möglichkeiten, Nachrichten zu verschicken, ich habe folgende davon kennengelernt.

    persistent_notification: Diese Meldungen werden nur im Benachrichtigungs-Panel von HA angezeigt.
    mobile-notifications werden als Push-Nachricht aufs Handy gesendet, wenn dieses mit HA verbunden ist.
    e-mail über einen SMTP-Server
    Pushover über die Pushover App (kostet 5$)
    Telegram Bot zum senden und empfangen über die Telegram App

    Die Persistent-Notification muss nicht extra eingerichtet sondern kann gleich direkt verwendet werden, hier ein Beispiel.

    HTML-Code:
    action: persistent_notification.create
    data:
      notification_id: "1234567890"
      title: 'Warnung'
      message: >
        Nachricht
        {{- '\n' -}}
        Zeitpunkt: {{ now().strftime('%Y-%m-%d %H:%M') }}
    Ich verwende diese Nachrichten recht gerne zum debuggen von Automatisierungen.
    Wenn man die letzten beiden Zeilen mit Templates (also "{{ xx }}") weglässt, dann kann man die Nachricht auch über die Entwicklerwerkzeuge | Aktionen ausprobieren.
    Wenn man die Notification nicht einzeln löschen (siehe dismiss) oder mit einem Trigger darauf reagieren möchte, kann man die notification_id auch weglassen und alternativ auch notify.persistent_notification verwenden.

    HTML-Code:
    action: persistent_notification.dismiss
    data:
      notification_id: "1234567890"
    HTML-Code:
    action: notify.persistent_notification
    data:
      message: Nachricht
    mobile-notifications können an alle angemeldeten Handys geschickt werden, sofern diese irgendwie mit HA in Verbindung stehen, also entweder lokal, über VPN oder die HA-Cloud verbunden sind.
    Die Registrierung erfolgt über die Default-Integration Mobile-App.
    Entweder hab ich es übersehen, oder der generierte Name wird tatsächlich nicht angezeigt, aber egal,
    einfach bei Entwicklerwerkzeuge | Aktionen im UI-Modus die Aktion "notify.mobile" eintippen, dann wird der Name gefunden und ergänzt.

    HTML-Code:
    action: notify.mobile_app_handyname
    data:
      message: Nachricht
    Genauso einfach wie eine Textnachricht kann man sich auch eine Sprachnachricht schicken lassen, und dazu muss man auch gar nichts weiter installieren.

    HTML-Code:
    action: notify.mobile_app_handyname
    data:
      message: TTS
      data:
        ttl: 0
        priority: high
        media_stream: alarm_stream
        tts_text: Das ist eine Sprachnachricht
    Um e-mail Nachrichten senden zu können, müssen wir einen SMTP-Server verbinden.
    In meiner configuration.yaml hab ich folgende Zeile eingefügt:

    notify: !include notify.yaml

    Im File notify.yaml hab ich folgenden Eintrag:

    HTML-Code:
    - name: "email_Mein_Name"
      platform: smtp
      server: "smtp.gmail.com"
      encryption: starttls
      port: 587 # default 587 für tls (443 für ssl wird von HA nicht unterstützt)
      timeout: 15 # default: 5 s
      username: !secret email_username
      password: !secret email_password
      sender: !secret email_username
      sender_name: "Mein Name"
      recipient:
        - !secret email_username
    Im File secrets.yaml sind folgende Einträge:

    HTML-Code:
    email_username: "Mein.Name@gmail.com"
    email_password: "abcd efgh ijkl mnop"                 # App-Password, hier generiert: https://myaccount.google.com/apppasswords
    HA einmal neu starten, und schon ist der Eintrag übernommen und gültig.

    HTML-Code:
    action: notify.email_Mein_Name
    data:
      message: Nachricht
    Die nächsten 2 Varianten sind etwas aufwändiger einzurichten, wobei sich der Aufwand aber immer noch sehr in Grenzen hält.

    Zuerst die Pushover Variante, wo man nach Ablauf einer 30-tägigen Testphase einmalig 5$ zahlt.
    Bei der Registrierung erhält man einen User-Key (Benutzerschlüssel) und eine xxxxxxxxxx@pomail.net Mail-Adresse, weiters benötigt man noch ein API-Token (API-Schlüssel).
    In HA installiert man die Pushover Integration (diesmal nicht über HACS) und gibt die zuvor erhaltenen Daten ein, das war's auch schon, also doch nicht so kompliziert.
    Je nachdem, welchen Namen man hier vergibt, bei notify wird dieser Name dann einfach verwendet.

    HTML-Code:
    action: notify.pushover
    data:
      title: Home Assistant
      message: Nachricht
    Die letzte Variante ist jetzt wirklich etwas aufwändiger, dafür kann sie auch mehr.

    Man findet im Internet gleich 3 Integrationen über Telegram, in HA findet man dann nur 2 davon, und beide melden, dass sie nicht über das UI installiert werden können.
    Ich beschreibe hier die Telegram bot Integration, denn Telegram broadcast kann nur senden, und ich wollte hier mal die aufwändigere Lösung ausprobieren.

    Ich hab folgende Anleitung gefunden, die recht gut beschreibt, was man alles machen muss.
    In Telegram sucht man nach @BotFather, erzeugt mit /newbot einen neuen Bot und erhält dafür ein API-Token, nicht vergessen, den Bot wie beschrieben auch zu starten.
    Dann muss man noch über den GetIDs Bot (@getidsbot) die 9-stellige ID herausfinden, klingt komplizierter als es ist.

    Der Rest muss jetzt in HA und zwar über YAML erledigt werden.
    Achtung: Seit HA 2025.7 wird Telegram nicht mehr über YAML konfiguriert, siehe Post 4

    # configuration.yaml:
    HTML-Code:
    telegram_bot:
      - platform: polling
        api_key: !secret telegram_api_token
        allowed_chat_ids:
          - !secret telegram_chat_id
    Wenn der folgende Eintrag noch fehlt, dann auch gleich einfügen.
    notify: !include notify.yaml

    Weiter geht es in
    # notify.yaml:
    HTML-Code:
    - name: "your_telegram_bot_name"
      platform: telegram
      chat_id: !secret telegram_chat_id
    # secrets.yaml (muss nicht in configuration.yaml included werden)
    HTML-Code:
    telegram_api_token: "9876543210:ABCDEFGHIJKLMNOPRSTUVWXYZabcdefghij"
    telegram_chat_id: "123456789"
    Den Telegram-Bot-Namen in HA kann man nennen wie man will, Telegram kennt ja nur API-Key und Chat-ID.
    Testen können wir es wieder über: Entwicklerwerkzeuge | Aktionen

    HTML-Code:
    action: notify.your_telegram_bot_name
    data:
      title: "HA"
      message: "Inhalt der Nachricht"
    Um den Telegram Bot zu testen hab ich in automations.yaml einige Test-automations erstellt. Es sind die gleichen, die es auch in der Doku gibt.
    Dabei hab ich festgestellt, dass es gleich 2 action-Befehle gibt, um Nachrichten zu senden.

    notify.your_telegram_bot_name # funktioniert bei mir verlässlich
    telegram_bot.send_message # soll zwar mehr können, funktioniert bei mir aber nicht immer

    # automations.yaml
    HTML-Code:
    - alias: "Telegram ping pong"
      id: telegram_ping_pong
      description: "Telegram bot that reply pong to ping"
      triggers:
        - trigger: event
          event_type: telegram_command
          event_data:
            command: "/ping"
      actions:
        - action: notify.your_telegram_bot_name
          data:
            message: "pong"
    Interessant sind die Beispiele, wo man keyboard Befehle mitsendet, mit denen man dann antworten kann.

    HTML-Code:
    - alias: "Telegram Start"
      id: telegram_start
      description: "Telegram bot Start-Sequenz"
      triggers:
        - trigger: event
          event_type: telegram_command
          event_data:
            command: "/start"
      actions:
        - action: notify.your_telegram_bot_name
          data:
            message: "commands added"
            data:
              one_time_keyboard: false
              resize_keyboard: true
              keyboard:
                - "/ping, /stop"
                - "/light_on, /light_off"
    Ich bin mir zwar noch nicht sicher, ob ich es auch verwenden werden, aber zum ersten kennenlernen war es mal recht interessant.

    Zuletzt können wir noch Notification Groups bilden, damit können wir mit einem notify Befehl gleich mehrere Notifications senden.

    # notify.yaml
    HTML-Code:
    - name: to_all
      platform: group
      services:
        - service: persistent_notification
        - service: mobile_app_handyname
        - service: email_Mein_Name
        - service: pushover
        - service: your_telegram_bot_name
    action: notify.to_all
    sendet jetzt 5 Nachrichten auf allen Kanälen.

    Es gibt noch unzählige weitere Varianten (z.B. notify.events, discord​), die ich aber nicht mehr ausprobiert habe, denn mir reichen die 5 genannten bisher völlig.


    Weitere Beiträge dieser Serie:

    HACS Wetterkarte
    HACS Sonne & Mond (inkl. Tipps zur configuration.yaml)
    HACS Schieberegler (inkl. Möglichkeiten der Icon Farbanpassung & erste Vorstellung Farbschema)​
    HACS Gauges (Tachoanzeigen, inkl. senkrechte Balken-Cards)​
    HACS stack-in-card für Raum-Card
    HACS Graph-Cards
    HACS Thermostat-Cards
    ​​HACS Entity Cards (inkl. stacking Beispiele mit der custom:button-card)
    HACS Reminder (trash-card, atomic-calendar-revive)​
    HACS Person- & Öffi-Card (inkl. Geschichte zu ChatGPT)​​​​
    HA-Behaglichkeits-Diagramm
    HA Kurzeinführung
    HACS Sidebar & Dashboard-Entwurf
    HACS Bewässerung​
    HA & Node-Red

    HA Recorder, SQLite, InfluxDB, Grafana
    HA Python Scripts
    Zuletzt geändert von scw2wi; 26.07.2025, 09:20.

    #2
    Mal wieder eine super Zusammenfassung!
    Ich nutze für einige Dinge die App-Notifications und die sind ziemlich mächtig.
    TTS hast du ja bereits erwähnt, da hat man unter Android auch die Möglichkeit diese über den "Alarm" Channel auszugeben. Dieser ignoriert, wenn ich das richtig verstanden habe, die Ton-Einstellung und gibt etwas auf Max-Lautstärke aus. Ist für manche Dinge sicher interessant.
    Zudem gibt es die Möglichkeit Actionable Notifications zu erstellen. Diese erlauben es Aktionen zu definieren, die u.A. eine Automatisierung in HA triggern können.
    Auch können hier Bilder angezeigt werden, was ich z.B. nutze wenn jemand Klingelt und einen Kamera Snapshot anzuzeigen.

    Kommentar


      #3
      Hi,
      danke für deine sehr guten Übersichten.
      Eins ist mir auf gefallen, gilt zumindest für Android:

      Zitat von scw2wi Beitrag anzeigen
      mobile-notifications können an alle angemeldeten Handys geschickt werden, sofern diese irgendwie mit HA in Verbindung stehen, also entweder lokal, über VPN oder die HA-Cloud verbunden sind.
      Das stimmt so nicht ganz. Die mobilen Benachrichtigungen kommen auch ohne direkte Verbindung zu Home Assistant an.
      Ich nutze Wireguard und bekomme die Benachrichtigungen auch, wenn der VPN aus ist & ich nicht zuhause bin. Hat wohl damit zu tun, dass die Benachrichtigungen irgendwie über den Standard Google-Benachrichtigungsservice laufen.

      Tipp für die Mobilen Benachrichtigungen: Ich habe mir in der Configuration.yaml Benachrichtigungsgruppen mit allen verschiedenen Geräten erstellt (geht leider nicht über Gruppen-Helfer).
      Bei einem neuen Handy muss ich so nicht alle Automationen, die benachrichtigen, händisch ändern.
      Ich habe eine Gruppe mit meinen Geräten, eine mit den Geräten meiner Frau und eine mit allen Geräten.
      Sieht ungefähr aus, wie im Ursprungs-Post hier: https://community.home-assistant.io/...le-apps/396669


      Kommentar


        #4
        Seit HA 2025.7 wird die Telegram Integration nicht mehr wie oben beschrieben über YAML sondern direkt im UI konfiguriert.
        Bestehende YAML Konfigurationen werden beim HA-Update übernommen und eine Reparatur-Meldung ausgegeben, dass die jetzt obsolete YAML-Konfig entfernt wird.

        Die UI-Konfig ist zwar für Anfänger wesentlich komfortabler als über YAML, ich verliere dabei aber leider immer wieder auch die Übersicht, welche Parameter jetzt genau konfiguriert sind, welche ich ändern kann, welche ich nicht ändern kann sondern die Konfig löschen und neu erstellen muss. Schöner fände ich es, wenn beide Varianten erlaubt wären, sind sie aber leider nicht.
        Zuletzt geändert von scw2wi; 26.07.2025, 09:30.

        Kommentar

        Lädt...
        X