Home Assistant + Signal: Benachrichtigungen für das Smart Home

Home Assistant + Signal: Benachrichtigungen für das Smart Home

Wer Kinder in der Gehirnumbauphase hat, kennt das Problem: Licht bleibt gerne mal an, Fenster bleiben gerne mal offen. Meine Frau behauptet zwar, dass ihre kalten Füße der beste Sensor wären, um offene Fenster zu erkennen, aber erstens kriegen meine Kinder leider davon nichts mit und zweitens ist es dann schon zu spät. Aus diesem Grund wollte ich eine Lösung haben, damit die Dachfenster nicht Stunden geöffnet bleiben und wir für den Frieden heizen. Egal ob offene Fenster, Waschmaschine fertig oder kleine Statusmeldungen – solche Informationen möchte ich direkt und unkompliziert auf meinem Smartphone erhalten, auch unterwegs. Außerdem sollen die Kinder erinnert werden, wenn die Fenster länger als 20 Minuten offen sind und zwar über ein Gerät, mit dem sie fest verwachsen sind.

Da in meiner Familie eh schon alle den Messenger Signal nutzen, bot es sich an, diesen auch für die Benachrichtigungen zu verwenden. Signal ist auf allen Geräten verfügbar und lässt sich mit ein wenig Aufwand in Home Assistant einbinden und es gibt eine offizielle Anbindung. In diesem Beitrag zeige ich, wie ich die Einrichtung vorgenommen habe und wie ich Signal z. B. für meine Fensterüberwachung nutze. Ich habe mich dabei entschieden, meine bereits registrierte Nummer zu nutzen, d.h. alle anderen bekommen die Nachricht von meinem Account. Wer das nicht möchte, braucht eine eigene Nummer, die vorher noch registriert werden muss.


Einrichtung der Signal-Integration in Home Assistant

Für die Integration benötigt man das Add-on Signal Messenger, das die signal-cli REST API zur Verfügung stellt.

Schritt 1: Add-on installieren

Wer keine manuelle Docker-Installation machen möchte, kann sich für das Add-on ein Repository hinzufügen und nach einem Neustart unter Einstellungen -> Addons einfach „Signal Messenger“ auswählen und installieren.

Schritt 2: QR-Code erzeugen

Damit das Add-on als Gerät bei Signal registriert wird, muss zwingend ein QR-Code über die Konsole erzeugt werden. In der Home Assistant Konsole (SSH Add-on oder Terminal) ausführen:

curl -H "Content-Type: application/json" \
  -o /config/qr.png \
  "http://ip-der-ha-instanz:8080/v1/qrcodelink?device_name=HomeAssistant"

💡 Hinweis:
ip-der-ha-instanz durch deine Home-Assistant-IP ersetzen, z. B.:

http://192.168.1.38:8080

device_name solltet man so wählen, wie er nachher in Signal bei den gekoppelten Geräten angezeigt werden soll. Der QR-Code wird beim Aufruf des Befehls unter /config/qr.png gespeichert.

QR-Code anzeigen und Gerät koppeln

In Home Assistant kann man die Datei z.B. mit dem File Editor anschauen und z. B. sein Smartphone dann zum Einbinden von Home Assistant verwenden (Signal -> Einstellungen -> Gekoppelte Geräte -> Neues Gerät koppeln). Einfach auf das Bild klicken und dann mit der Signal-App scannen.
Damit ist das Signal-Add-on als Gerät unter seiner eigenen Nummer registriert und kann Nachrichten senden. Wer ein neues Konto mit einer neuen Nummer anlegen möchte, kann das aber auch.

Schritt 3: notify-Dienste in Homeassistant einrichten

Nach der Kopplung muss man noch notify-Dienste hinzufügen, damit man Nachrichten über Signal verschicken kann. Dafür ergänzt man die configuration.yaml mit dem File Editor:


Meine Einträge in der configuration.yaml

Um Home Assistant mitzuteilen, an wen Nachrichten geschickt werden sollen, habe ich Folgendes eingetragen:

notify:
  - platform: signal_messenger
    name: signal_kind1
    number: "+491111111111" # meine Nummer
    url: "http://ip-der-ha-instanz:8080"
    recipient: "+491234567890"   # Kind1

  - platform: signal_messenger
    name: signal_kind2
    number: "+491111111111" # meine Nummer
    url: "http://ip-der-ha-instanz:8080"
    recipient: "+491234567891"   # Kind2

  - platform: signal_messenger
    name: signal_alle
    number: "+491111111111" # meine Nummer
    url: "http://ip-der-ha-instanz:8080"
    recipients:
      - "+491234567890"          # Kind1
      - "+491234567891"          # Kind2

Nach einem Neustart sind diese Dienste sofort nutzbar. Man kann prinzipiell auch Gruppen nutzen, braucht dann aber die Gruppen-ID, das habe ich aber noch nicht probiert.


Praxisbeispiel: Fenster über 20 Minuten offen

Ich habe jetzt alle vier Fenster unterm Dach mit Kontaktsensoren ausgestattet.
Sobald eines davon länger als 15 Minuten geöffnet bleibt, sollen Kind1 und Kind2 eine kurze Nachricht bekommen.

Hier die Automation als YAML:

alias: Fenster länger als 15 min offen → Signal-Nachricht an Kinder
description: >
  Sendet eine Signal-Nachricht, wenn eines der Fenster länger als 15 Minuten
  offen bleibt – aber nur an anwesende Personen.
triggers:
  - entity_id:
      - binary_sensor.sensor_fenster_bad_contact
      - binary_sensor.sensor_fenster_kind2_contact
      - binary_sensor.sensor_fenster_kind1_contact
      - binary_sensor.sensor_fenster_vorraum_contact
    to: "on"
    for: "00:15:00"
    trigger: state
conditions: []
actions:
  - variables:
      ort: "{{ trigger.to_state.name
               | replace('Sensor Fenster ', '')
               | replace('Fenster ', '')
               | replace(' Tür', '')
               | trim }}"

  - if:
      - condition: state
        entity_id: person.kind1
        state: home
    then:
      - action: notify.signal_kind1
        data:
          message: >
            🤖🤖🤖🤖🤖🤖🤖🤖🤖🤖 Das Fenster "{{ ort }}" ist seit über 15 Minuten geöffnet. Bitte schließen! Danke! 😘

  - if:
      - condition: state
        entity_id: person.kind2
        state: home
    then:
      - action: notify.signal_kind2
        data:
          message: >
            🤖🤖🤖🤖🤖🤖🤖🤖🤖🤖 Das Fenster "{{ ort }}" ist seit über 15 Minuten geöffnet. Bitte schließen! Danke! 😘

mode: parallel

Die Automation schickt an alle Kinder, die auch zu Hause sind, eine Nachricht, das bitte das Fenster geschlossen werden soll. Der Name des Fensters wird automatisch aus dem jeweiligen Sensor übernommen. Die replace-Befehle verschönern einfach die Ausgabe der Nachricht.

Was soll ich sagen? Es funktioniert!

Fazit

Es ist ein wenig Aufwand, das einmalig einzurichten. Danach kann ich aber jetzt in jeder Automation auch zusätzlich eine Benachrichtigung aufs Smartphone bekommen oder an Familienmitglieder schicken.

P.S.: Der Text kann Spuren von LLM enthalten, vor allem die YAML-Files mache ich mittlerweile gerne mit externer Hilfe, da es echt gut funktioniert und mir elende Klickerei erspart.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert