meintechblog.de
5Feb/1811

Pushnachrichten im Smart Home mit FHEM und Pushover

Wir hatten bereits einige Artikel zum Versand von Pushnachrichten verfasst, die allerdings allesamt schon ein paar Tage auf dem Buckel haben. Zwischenzeitlich hat sich im Umfeld der FHEM-Entwicklung standesgemäß Einiges getan, sodass es an der Zeit war, das im Smart Home super wichtige Thema "Push Notification" mal wieder auf den aktuellsten Stand zu bringen. In diesem Howto zeigen wir dir Einrichtung und Umsetzung, um mit FHEM und Pushover unterschiedliche Arten von Pushnachrichten zu versenden, die mittlerweile sogar interaktive Elemente besitzen. So ist es beispielsweise möglich, direkt aus einer Pushnachricht heraus einen FHEM-Befehl auszuführen. 

Im Smart Home gibt es zig Anwendungsbereiche für Pushnachrichten. Da wären z.B. solche, bei denen der (meist abwesende) Anwender zu einer Aktion aufgefordert wird, z.B. wenn die Temperatur fällt, der Energieverbrauch steigt oder eine Bewegung erkannt wird. Außerdem gibt es Pushnachrichten zur Information über gewisse Ereignisse Smart Home, z.B. den wöchentlichen Stromverbrauch. Temperaturen erfasse ich im gesamten Smart Home nach wie vor mit den günstigen Technoline Funk-Temperatur- und Luftfeuchtigkeitssensoren (Affiliate-Link) (siehe auch: FHEM mit JeeLink: Luftfeuchte und Temperatur zum Low-Cost-Tarif messen). Energieverbräuche messe ich mit EnOcean-Funk-Stromzählern (Affiliate-Link) (siehe auch: Smart Metering mit FHEM und Loxone – den Stromverbrauch im Smart Home immer im Griff). Mein neuestes Projekt, das auch mit Pushnachrichten verbunden ist, sind Low-Price-Luftqualitätssensoren von REHAU (Affiliate-Link) (Blogpost folgt).

Gerade wenn es im Smart Home mehrere Pushbenachrichtigungen geben soll, ist eine einheitliche Einrichtung und einfache Anwendbarkeit wichtig. Für den Open Source Smart Home Server FHEM gibt es schon seit geraumer Zeit das Modul Pushover (siehe auch https://fhem.de/commandref_DE.html#Pushover), mit dessen Hilfe man als Anwender tolle Szenarien erstellen kann.

Pushover Account einrichten

Zunächst einmal muss ein kostenloser Pushover Account eingerichtet und die jeweilige App für iOs oder Android installiert werden. Aktuell sind in der kostenlosen Variante von Pushover wohl 7.500 Pushnachrichten pro Application und Monat erlaubt - völlig ausreichend für ein Smart Home. Zur Anmeldung geht es hier: https://pushover.net/signup.

Bei Pushover gibt es zwei wichtige "Schlüssel", die jeder Anwender erhält. Einerseits handelt es sich dabei um den persönlichen User Key, der an den Account gebunden ist und andererseits um den Application Token, der für jede Application (Anwendung) extra generiert wird. Was steckt dahinter? Bei Pushover ist es möglich, in einem Account verschiedene Anwendungen zu hinterlegen. So kann "FHEM" z.B. eine dieser Anwendungen sein. Den UserKey findet man auf der Startseite (siehe Screenshot oben).

Wenn man Pushover erstmalig nutzt, muss im nächsten Schritt FHEM als Application angelegt werden, was über "Create an Application/API Token" bei "Your Applications" am unteren Bildrand der Startseite funktioniert.

Hier reicht es aus, einen Namen, den Typ "Plugin" und optional noch ein Icon zu vergeben. Über "Create Application" wird der Token nachfolgend generiert.

Jetzt ist FHEM Teil der Application-Liste und über einen Klick darauf wird der Token angezeigt.

Beide Werte (User Key und Token) benötigen wir gleich für die Einrichtung in FHEM. Bis hier hat sich auch Nichts an der Einrichtung von Pushnachrichten über Pushover und FHEM geändert. Ein funktionierender Account bleibt weiterhin essentiell.

Pushover in FHEM konfigurieren

Laut fhemwiki wird bei Debian-Distributionen zunächst das PERL-Paket "libio-socket-ssl-perl" benötigt. Falls dieses auf dem Server-System, z.B. dem Raspberry Pi (Affiliate-Link), noch nicht installiert ist, wird über eine SSH-Verbindung auf den FHEM-Server (über die Terminal App unter osX und über Putty unter Windows) und unter Verwendung des nachfolgenden Befehls die Installation nachgeholt:

Jetzt geht es darum, mit Hilfe des "Pushover"-Moduls FHEM-seitig Pushover zu initiieren. Von der Syntax her funktioniert das wie folgt:

Im konkreten Fall wird also im FHEM Webinterface in der Kommandozeile der individuelle Befehl abgesetzt (ich habe meinen User Key und meinen Token etwas unkenntlich gemacht)

Anschließend sollte die neu angelegte Definition den Status "connected" besitzen.

Um die grundsätzliche Funktion der Pushnachrichten zu testen, kann eine erste Testnachricht abgesendet werden.

Die Testnachricht sollte jetzt ordnungsgemäß am Smartphone erscheinen.

Das Pushovermodul wird allerdings erst dann interessant, wenn Pushnachrichten einerseits individuell durch Smart-Home-Szenarien ausgelöst werden und andererseits sowohl Statuswerte aus FHEM heraus transportieren, als auch Interaktionselemente mitliefern. Daher betrachten wir das Pushover-Modul und dessen Syntax im nächsten Abschnitt etwas genauer.

Pushover-Modul individuell nutzen

Das Pushover-Modul bietet mittlerweile viel Raum für Individualisierung. So kann z.B. der Titel der Message, die Priorität, der Sound oder ein Action-Link, der in FHEM eine vorgefertigte Aktion auslöst, mit der Pushnachricht mitgesandt werden. Die gesamte "set"-Syntax für das Pushover-Modul sieht wie folgt aus (Quelle: FHEM Commandref).

Wie zu sehen ist, können der Message zahlreiche Optionen mitgegebenen werden, von denen folgende zur Verfügung stehen:

  • message: Kann für den Nachrichtentext verwendet werden. Der restliche msg-Text wird dann ignoriert.
  • device: Wie erörtert können bei Pushover mehrere Devices einzeln über einen Account angetriggert werden. Es können auch mehrere Geräte durch Komma getrennt werden.
  • title: Die Überschrift deiner Nachricht.
  • action: Hier kann ein FHEM-Befehl in Form einer URL mitgegeben werden.
  • url_title: Diese URL kann (wie aus HTML bekannt) benannt werden.
  • priority: Kann "-2", "-1", "1" oder "2" sein und regelt, ob eine lautlose, eine normale oder eine high priority Nachricht an dein Smartphone gepusht wird.
  • retry: Bei High-Prio-Nachrichten Pflicht (Integer); wiederholt die High-Prio-Nachricht.
  • expire: Bei High-Prio-Nachrichten Pflicht (Integer)
  • cancel_id: Schaltet das Wiederholen bei High-Prio-Nachrichten aus.
  • timestamp: Senden einen UNIX-Timestamp mit (Integer)
  • sound: Entscheidet, welcher Sound auf deinem Smartphone abgespielt wird. Die Liste aller zur Verfügung stehenden Sounds findest du hier: https://pushover.net/api#sounds

Unabhängig von der gewählten Option spielt der Ausdruck "\n" (ohne Anführungszeichen) eine bedeutende Rolle: Er regelt den Zeilenumbruch.

Die Syntax von Pushover ist relativ einfach anzuwenden. Am Besten, man experimentiert einfach mal ein bisschen damit. Zwei kurze Beispiele gefällig?

Dieser simple Ausdruck liefert folgendes Ergebnis, das in 80% der Notification-Fälle für einfache Hinweise im Smart Home ausreichend sein sollte.

Durch die Möglichkeit, Actions-Links zu versenden, werden Pushnachrichten zum interaktiven Element. Beispielsweise lässt sich so eine Pushnachricht versenden, dass die Temperatur Zuhause zu gering ist mit einem Link, durch den man sofort in FHEM einen Heizungsboost aktiviert. Beispiele dieser Art sind endlos. Ein exemplarisches Kommando in FHEM sieht dazu wie folgt aus.

Seit dem FHEM Update auf Version 5.8 funktionieren URL-Kommandos an FHEM nur noch mit Csrf-Token, die den Zugriff besser absichern. Wir haben dazu bisher noch kein Howto geschrieben (folgt). Bis dahin sei auf das FHEM-Wiki verwiesen: https://wiki.fhem.de/wiki/CsrfToken-HowTo.

Ebenfalls super wichtig für Pushnachrichten ist das Versenden von Systemwerten (z.B. Temperaturen). Eine beispielhaftes Kommando, das in diesem Fall die Temperatur des Device "Bad.Temp" verschickt, sieht wie folgt aus.

Derartige Meldungen lassen sich dann z.B. einfach in ein DOIF-Programm einbauen, wie das nachfolgende, das bei einer Temperatur unter 19°C eine Pushmitteilung mit der tatsächlichen Temperatur versendet.

Eine derartige Nachricht lässt sich natürlich ebenfalls um einen Action-Link erweitern, der z.B. einen Heizungsboost aktiviert.

Durch die Action-Links werden Pushnachrichten super interaktiv und bieten eine gute Möglichkeit, die Automatisierung des Smart Homes an einigen Stellen in die Hand des Nutzers zu legen, der dann situativ entscheidet, ob eine vorgeschlagene Aktion ausgeführt wird.

Aus meinem täglichen Leben

Für mich persönlich sind Pushnachrichten in verschiedenen Szenarien wichtig. Gerade bei Abwesenheit informiert mich mein Smart Home über verschiedene Ereignisse. Einmal wöchentlich (Montag, 9 Uhr) sendet mir der Server z.B. eine Stromverbrauchsübersicht der vergangenen Woche. Den Stromverbrauch erfasse ich mit Eltako-Funk-Stromzählern (Affiliate-Link). Siehe dazu auch hier: Smart Metering mit FHEM und Loxone – den Stromverbrauch im Smart Home immer im Griff. Eine weitere Möglichkeit ist z.B. das Überwachen von Batteriestatus. Siehe dazu auch hier: FHEM: Rechtzeitige Benachrichtigung bei leeren Batterien. Doch auch bei Anwesenheit nutze ich Pushnachrichten, die mich z.B. über die Luftqualität in einzelnen Räumen informieren, die ich z.B. mit einem REHAU-Raumluftsensor (Affiliate-Link) erfasse (Blogpost folgt).

Es gibt also zahlreiche Anwendungsfälle für Pushnachrichten, auch wenn ein echtes Smart Home von der selbstständigen Automatisierung lebt.

Wir haben dir mit diesem Artikel weitergeholfen? Dann zeig dich erkenntlich und gib uns einen Kaffee aus. Vielen Dank schon mal!




Fragen zu FHEM? Unser neues E-Book hilft dir weiter!

Verpasse keine Inhalte mehr! Trage dich in unseren Newsletter ein und folge meintechblog auf Facebook oder Twitter.

Share Button
Christoph

Christoph

berichtet seit Juni 2012 auf meintechblog.de über seine Erfahrungen zu Smart Home und Hausautomation und beschäftigt sich außerdem mit Smart Grids. Mehr Infos
Christoph
Kommentare (11)
  1. Hallo Christoph,

    und danke für diese Aktualisierung. Das Thema hab ich auch noch auf meiner To-Do-Liste und kann es nun nochmal kurz angehen.

    Noch lieber wäre mir allerdings eine Möglichkeit die Benachrichtigung über einen Messenger (WhatsApp) zu lösen. Eine Extra App, welche "nur" push Nachrichten weitergibt finde ich nicht so sexy und WhatsApp (oder auch andere Messenger) haben ja die meisten eh auf ihren Geräten.

    Daher meine Frage: wird es dazu auch noch was neues von euch geben?

    Grüße, Stephan

    • Früher habe ich dafür Pushbullet genutzt, mittlerweile bin ich da auf Telegram gewechselt, weil ich auch eine App nur für Benachrichtigungen unnötig fand.

    • Hm... Telegram ist leider auch keine echte Alternative für mich. Letztlich habe ich dann wieder eine App nur für den einen Zweck. Ich kenne niemanden, der telegram als Stamdard-Messenger nutzt und dann wäre es bisschen Overkill.

    • Hmm, nachdem du also via Whatsapp alle deine Kontakte aus deinem Telefonbuch geshared hast und Facebook auch deine ganzen privaten Whatsapp Kommunikation kennt willst du auch noch die Smarthome Informationen dort hin werfen ? Ganz ehrlich, ich würde mir das überlegen. Alle Eier in einen Korb legen war noch nie eine gute Idee.

      Abgesehen davon ist die zeitnahe Zustellung bei WhatsApp ein Lotteriespiel.

    • @Martin: Grundsätzlich bemesse ich dem Thema Sicherheit und Datenschutz auch ein große Bedeutung zu aber ich denke du übertreibst hier ein wenig! Eine Benachrichtigung ala "Die Wäsche ist fertig" oder "Morgen wird die Biotonne abgeholt" ist wohl kaum eine kritische Information. Da kann man eher diskutieren ob man nicht weit aus mehr preisgibt, wenn man sich beim nächsten anmeldepflichtigen Dienst (egal ob nun Pushover, Pushbullet oder Telegram) registriert.

      Das letzte Argument wäre natürlich zu prüfen, denn letztlich bringt es alles nur was, wenn man die Information in angemessener Zeit erhält.

  2. Hallo, Christoph,
    bin mit pushbullet bisher sehr gut gefahren. Pushover klingt jedoch auch sehr interessant und habe mich mal dran gemacht.
    Allerdings möchte die Android App nach 7 Tagen zwingend für knapp 5 Euro lizenziert werden. Habe ich was übersehen oder ist das normal so?

    @Stephan: WhatsApp findest Du hier: http://www.meintechblog.de/2016/07/whatsapp-nachrichten-bilder-mit-fhem-versenden-und-antworten-auswerten/
    Wie man den Kommentaren entnehmen kann, ist man der Willkür von WhatsApp - äh Facebook - willkürlich ausgeliefert. Ich verwende es nicht mehr.

    • Danke für deine Nachricht. Den Artikel kenne ich natürlich und auch auf Grund der ganzen Kommentare mit Sperre usw. habe ich es bisher nicht umgesetzt.
      Der Artikel ist aber auch schon fast 2 Jahre alt und evtl. hat sich ja seitdem was getan....

    • Hallo Christoph,

      ja, Pushover will registriert werden und kostet nach einer Probezeit einen einmaligen Betrag. Ich hab das vor etwa 3 Jahren einmal bezahlt und seit dem läuft der Service problemlos.

  3. Ich bin zwar ein Laie auf dem Gebiet, aber was sind die Vor- und Nachteile FHEM-Nachrichten über XMPP pushen?

  4. Hi Christoph,

    weil hier so viele jammern wegen "noch eine App": das hat auch einen Vorteil den du in deinem Blog nicht expliziert erwähnt hast. Pushover kann mehrere Devices ansprechen. In meinem Fall sind das mein Smartphone, das meiner Frau und auch das meiner Tochter, und zwar jeweils einzeln oder aber auch in Gruppen.

    Wenn also jemand nicht zuhause / weit weg ist, kann man selbigen zum Beispiel vom Alarm "Fenster steht noch offen" aussen vor lassen und den Push nur an diejenigen schicken die im Haus sind (vorraus gesetzt man hat ein Anwesenheits Monitoring). Ich nutz das z.B. dazu, dem letzten, der das Haus verläßt, noch zu sagen welche Türen/Fenster noch offen sind.

    Auch gehen Messages wie "Die Waschmaschine ist fertig!" direkt an die Dame des Hauses und nicht an mich (mich hat das einfach irgendwann genervt das ich auf Dienstreisen in Übersee ständig Nachrichten von dem teil bekommen habe).

    Jeder von uns hat die App installiert, alle drei Devices sind unter meinem PushOver Account registeriert und schon kann man die drei mittels des device=..... flags gezielt einzeln ansprechen, und wenn man den Parameter weg läßt geht die Push Nachricht an alle drei devices (Nützlich bei Alarm Meldungen oder verpaßten Anrufen).

    Mit einem Messanger Dienst wie Whatsapp geht sowas zwar auch, aber bei weitem nicht so komfortabel.

    • Wenn ich mir das alte Tutorial zu WhatsApp (um bei dem Beispiel zu bleiben) anschaue, lassen sich Benachrichtigungen auch dort ganz bequem auf einzelne Clients verteilen.

      Ich hoffe du verzeihst die kleine Stichelei aber ich hoffe du hast deinen FHEM-Server gut gesichert, wenn du dort die Anwesenheit ala Hausbewohner loggst. Das wäre schon eine Information, die in den falschen Händen echten Schaden verursachen kann ;-)


Dein Kommentar

Trackbacks sind deaktiviert.