Homematic Meldungen als Push Nachricht via Pushover an das Smartphone schicken

Das Versenden von Push Nachrichten über die CCU2 an das eigene Smartphone, ist ein wichtiges Thema bei Homematic. Vielleicht kennt ihr auch meinen Artikel, in dem ich beschreibe, wie sich Push Nachrichten via Telegram verschicken lassen, oder ihr seid von diesem Artikel weitergeleitet worden. Als ich damals den Artikel verfasst habe, ging es mir darum, mit so wenig Zusatzsoftware wie möglich aus zu kommen. Daher habe ich auf eine Messenger App gesetzt, die viele User bereits installiert haben. Außerdem wollte ich auf Zusatzsoftware auf der CCU2 verzichten.

Push Benachrichtungen von der Homematic CCU2 über Pusher senden - Titelbild

Bei mir hat das auch immer astrein funktioniert, aber laut den Kommentaren, kann das auch schlechter funktionieren. Daher werde ich in diesem Artikel den CUx Daemon einsetzen (auf der CCU2) und als Push-Dienstleister Pushover verwenden. Ein großer Vorteil von Pushover ist, dass der Dienst viel mehr Möglichkeiten bietet, als der Telegram Bot.

Vorteile von Pushover gegenüber Telegram

Der Telegram Bot ist auch nicht schlecht, aber nicht für jede Situation geeignet. Bei mir kamen Push Nachrichten gelegentlich start verzögert an. Somit war es nicht gerade geeignet für kritische Meldungen. Die Vorteile von Pushover sind meiner Meinung nach:

  • Einrichtung des Dienstes ist einfacher als bei Telegram Bots (viele User hatten damit Probleme)
  • Beim Versand der Nachrichten, kann aus einem vordefiniertem Pool an Sounds gewählt werden.
  • Versand an mehrere Geräte/Benutzer ganz einfach über den Webdienst konfigurierbar. Anpassungen am Homematic Skript sind nicht nötig.
  • Konfiguration sogenannter „Quiet Hours„, in denen man nicht genervt werden will.
  • Festlegung einer Nachrichtenpriorität möglich.
  • Priorität „Emergency“ ignoriert die „Quiet Hour“ und schickt die Nachricht in vordefinierten Intervallen erneut an das Handy (z.B. 3 Stunden lang wird alle 30 Sekunden eine Nachricht geschickt). Die Nachricht muss (!) vom User bestätigt werden, damit das Smartphone Ruhe gibt.
  • Jeder User erhält eine e-Mail Adresse, die per Push an die App weitergeleitet wird. Somit lassen sich sehr einfach auch andere Systeme einbinden.
  • Wird von vielen anderen Webdiensten unterstützt (z.B. IFTTT).

Natürlich gibt es auch einen ganz kleinen Nachteil: Die App auf dem Smartphone kostet nach einer 7-Tägigen Testphase einmalig etwa 5$.


Einrichten des Pushover Accounts

Um Pushover nutzen zu können, muss ein Konto unter https://pushover.net/login eingerichtet werden.

Nach der Einrichtung, zeigt die Startseite direkt den User Key:

Diesen User Key benötigen wir später im Skript. Er wird dauerhaft angezeigt, also nur im Hinterkopf behalten wo er zu finden ist ;) Zusätzlich können auch Geräte, „Quiet Hours“ und die e-Mail Adressen Konfiguriert werden. Wie das geht, findet bestimmt jeder selbst heraus.

Als nächstes muss noch eine neue Anwendung hinzugefügt werden, bzw. ein API Token erstellt werden. Dieser API Token wird auch später im Skript benötigt (!). Ein Klick auf „Apps & Plugins“ öffnet die App Verwaltung. Ein weiterer Klick auf „Create a New Application / API Token“ erzeugt den Token.

Die Felder im Dialog „Create New Application“Plugin“ werden wie folgt ausgefüllt:

  • Name: Frei Wählbar, wird in der Weboberfläche und der App angezeigt.
  • Type: Bitte „Application“ wählen
  • Description: Freitext
  • URL: -frei lassen-
  • Icon: Optional kann ein Icon hochgeladen werden, das sollte auch in der App angezeigt werden. Habe ich nicht getestet.
  • Dann noch die AGB lesen und falls einverstanden, Akzeptieren.

Der folgende Screenshot zeigt das Endergebnis und den Weg zur Tokenerstellung:

Pushover create API Token

 

Nach dem Bestätigen, wird direkt der API Token angezeigt (bitte entschuldigt, dass sich der Name in den Screenshots unterscheidet):

 

pushover API Token

 

Der Token kann jederzeit erneut über „Apps & Plugins“ angezeigt werden. Er muss also nicht gesichert werden.

Somit haben wir jetzt den User Token und den API Token. Beide ändern sich nie und müssen geheim gehalten werden! Die Übertragung zum Pushover Server später aus dem Skript heraus, erfolgt natürlich verschlüsselt.

Das Homematic Script

Ganz wichtig ist, dass der CUx Daemon auf der CCU2 installiert ist un ein Exec-Device mit der Seriennummer „1“ existiert. Falls die Seriennummer abweicht, muss das Skript entsprechend angepasst werden. Wer nicht weiß, wie sich ein Exec-Device einrichten lässt, kann das in meinem Artikel über die HUE Ansteuerung nachlesen.

Kommen wir direkt zu Sache. Dieses, liebevoll von mir gebastelte Skript, wird einfach in ein Homematic Programm kopiert.

Dabei wird in der Variable po_api_user der User Key aus dem ersten Schritt eingetragen. Die Variable po_api_token erhält den API Token aus dem zweiten Schritt. Also einfach das aaaa und bbbb ersetzen. Alle Sonderzeichen müssen natürlich erhalten beleiben.

Nun kann direkt die Nachricht eingegeben werden, dazu einfach diesen Block im Skript anpassen:

!__Nachricht
string po_title=“Beispieltitel„;
string po_message=“Beispieltext„;
string po_sound=“none„;
string po_priority=“0„;

Ein wichtiger Hinweis noch: Der Text muss URL kodiert werden. Das bedeutet, dass Umlaute wie folgt ersetzt werden müssen:




Ä wird ersetzt durch %C3%84
ä  wird ersetzt durch %C3%A4
Ö wird ersetzt durch %C3%96
ö wird ersetzt durch %C3%B6
Ü wird ersetzt durch %C3%9C
ü wird ersetzt durch %C3%BC

Genaugenommen muss auch das Leerzeichen durch ein %20 ersetzt werden, es funktioniert aber auch, wenn man das nicht macht. Wer es sich einfach machen will, verwendet einfach einen online URL Encoder, wie z.B. diesen hier. Einfach den Text normal eingeben und auf „Encode“ klicken. Das Ergebnis dann in das Skript kopieren.

Erläuterungen

Ich habe bereits ein paar einfache Erläuterungen in das Skript gepackt, damit sie genau dort sind, wo man sie benötigt, falls das Skript später angepasst werden soll. Die detaillierte Erklärung, insbesondere zu den Prioritäten erfolgt aber hier.

Prioritäten

Beim Versand einer Nachricht, wird eine Priorität festgelegt. Die Prioritäten werden wie folgt interpretiert:

  • Priorität -2 (Lowest Priority): Es wird keine Benachrichtigung auf dem Smartphone erzeugt. Bei iOS wird aber der Zähler an dem App Icon erhöht.
  • Priorität -1 (Low Priority): Es wird kein Sound oder Vibration erzeugt, jedoch eine Notification in der Notification bar. Meldungen, die in einer Quiet Hour gesendet werden, werden wie Priorität -1 behandelt.
  • Priorität 0 (Normal Priority): Akustische Benachrichtung bzw. Vibration und Notifaction in der Notification Bar. Letztendlich wie eine WhatsApp Nachricht.
  • Priorität 1 (High Priority): Die Quiet Hour wird ignoriert, es wird trotzdem ein Sound abgespielt, bzw. die Vibration erfolgt. Zusätzlich wird die Nachricht Rot hervorgehoben.
  • Priorität 2 (Emergency Priority): Wie bei Prio 1. Zusätzlich wird die Nachricht in einem vordefiniertem Intervall (variable po_retry, Zeit in Sekunden) permanent an das Handy geschickt, bis der User sie bestätigt. Das ganze passier über eine definierte Zeitdauer (Variable po_expires, Zeit in Sekunden). Somit wird sichergestellt, dass der BEnutzer definitiv reagiert, wenn ein kritisches Ereignis eintritt. Z.B.: Einbruc, Rohrbuch oder Regen wenn ein Fenster geöffnet ist.

Sounds

Standardmäßig wird ein default Sound abgespielt. Dieser kann im Smartphone auch verändert werden. Über den Sound-Parameter kann jedoch ein vordefinierter Sound abgespielt werden. Die genaue Liste aller Möglichkeiten steht im Skript. Einfach rumspielen…

Fazit

Dadurch dass Pushover ausschließlich auf den Versand von Push-Nachrichten ausgelegt ist, liefert der Dienst auch wesentlich bessere Features. Insbesondere das Verwalten mehrerer Geräte und das Setzen von Prioritäten gefällt mir sehr gut. Somit kann sichergestellt werden, dass kritische Situationen im Schlaf nicht verpasst werden.

Der Einsatz von CUxD trägt deutlich zur Stabilität bei, daher sollte er verwendet werden.

Insgesamt kann man sich auf diesem Wege sehr komfortabel von Homematic benachrichtigen lassen, natürlich nur solange eine Internetverbindung besteht ;) Wer komplett auf Nummer sicher gehen will und nicht dem Internetzugang vertrauen möchte, sollte zusätzlich über eine Innensirene nachdenken. Als Alarmanlage macht sie definitiv Sinn und in Kombination mit der Push Nachricht, ist man meiner Meinung nach sehr gut auf alle Situationen vorbereitet.

 

Passende Beiträge


4 Comments

  • Torsten

    31. Juli 2017

    Hi Philipp,
    du hast oben im Text folgendes geschrieben :
    Jeder User erhält eine e-Mail Adresse, die per Push an die App weitergeleitet wird. Somit lassen sich sehr einfach auch andere Systeme einbinden.

    Kannst Du das noch mal erläutern? Vielleicht habe ich das falsch verstanden aber ich hätte gedacht das ich eine E-Mail an eine bestimmte Adresse senden kann die dann als Push Nachricht auf der App ankommt. Ich habe aber keine E-Mail Adresse gefunden in meinen Einstellungen.

    Reply
    • Philipp

      Philipp

      31. Juli 2017

      Hi Torsten,
      du hast das richtig verstanden. Die e-Mail Adresse findest du auf der Startseite. Auf meinem ersten Screenshot mit dem User Key siehst du den Bereich „Your E-Mail Aliases“.
      Gruß, Philipp

      Reply
  • Mathias

    30. Juli 2017

    Sehr interessantes Thema.
    Man kann sich so viele Apps generieren, wie man will.
    Ich finde es toll, damit man den Überblick nicht verliert.
    Zum einen verwende ich die App „Action“. Da kommt alles rein, was sich bewegt. Waschmaschine, Geschirrspülmaschine, Trockner.
    Als nächste App habe ich „Alarn“. Da habe ich alles rund um die Alarmanlage drin. Verschluß, Überschreitung des Duty Cycle, Alarn scharf/unscharf und natürlich die Einbruch-Meldung.
    Dann habe ich noch Homematic. Da kommen alle ServiceMeldungen rein wie gestörte Kommunikation, Batterielevel etc.
    Gruß, Mathias

    Reply
    • Philipp

      Philipp

      30. Juli 2017

      Hi Mathias, danke für den Kommentar! Aber ist dir dass nicht zu umständlich? Dann musst du schließlich die verschiedenen API keys verwalten. Klar kann man das so machen und man hat halt verschiedene Icons in der App, aber gedacht ist es so nicht. Mir hat bis jetzt die Möglichkeit des eigenen Titels und nem separaten Text in Verbindung mit den Prioritäten gereicht…. Versteh mich nicht falsch, ist eine nette Idee, aber relativ umständlich.
      Gruß, Philipp

      Reply

Schreibe einen Kommentar