Bildquelle: pushover.net
Das Grundprinzip
Ein sogenannter Push-Dienst ist notwendig, weil Google und Apple einen freien Zugang zu ihrem Benachrichtigungssystem aus Sicherheitsgründen nicht anbieten. Nur wer eine offizielle registrierte App auf dem Smartphone des Nutzers hat, darf diese Schnittstellen für diese App nutzen. So wird vermieden, dass unbekannte Dritte das Verfahren missbrauchen für die Verteilung von unerwünschten Spam-Nachrichten. Der kommerzielle Benachrichtigungsdienst Pushover besteht aus zwei Komponenten:
- ein Cloud-Server, der eine offene REST-API anbietet zur Einlieferung von Nachrichten im JSON-Format. Wenn man Benachrichtigungen über diese API versenden möchte, muss man seine Anwendung bei Pushover registrieren.
- Smartphone Apps für Android und iOS, die die Benachrichtigungen auf dem Smartphone empfangen und über das Betriebssystem entsprechend anzeigen. Wenn man Benachrichtigungen empfangen möchte, muss man sich als App-Nutzer bei Pushover registrieren.
Die Pushover API
Die API ist auf der Homepage des Anbieters Pushover beschrieben. Um diese API zu verwenden, muss man beim Registrieren seiner Anwendung ein API-Token anfordern. Dabei werden Daten angegeben, die bei der Verwendung später benötigt werden. Dazu zählt ein eigenes Icon, eine Beschreibung, eine Homepage-URL usw. Dieses API-Token wird später verwendet, um die eigene Anwendung gegenüber Pushover zu authentifizieren. Deshalb ist es geheim zu halten.
Als nächstes muss jedes Smartphone, welches man benachrichtigen möchte, die Pushover-App aus dem entsprechenden Store installieren. Diese ist nach einer Trial-Zeit von einer Woche kostenpflichtig; damit verdient der Dienstanbieter Pushover nun mal sein Geld. Bei der Registrierung als App-Nutzer bekommt man einen User Key, den man an den Entwickler der betroffenen Anwendung weitergibt, wenn man das nicht selbst ist.
Zum Einliefern von Nachrichten muss man an den Server https://api.pushover.net/1/messages.json einen HTTP POST request senden. Die Parameter werden dabei als URL-Parameter angehängt im URL-encoded Format. Neben der Authentifizierung kann die Nachricht aus einem Titel, einem Message-Text und einem Link bestehen. Weitere optionale Parameter erlauben das Setzen von Prioritäten oder Sendezeit. Die Response des Servers enthält eine entsprechende Bestätigung oder Fehlermeldung. Das Format der Response kann wahlweise auf JSON oder XML eingestellt werden.
Die API bietet weitere Funktionen zum Managen der zugeordneten User und zum Ordnen der User in Gruppen. Für Anwendungen mit größerem Nutzerkreis kann das sicherlich nützlich sein. Im hundhome habe ich das nicht benötigt weil sich der Nutzerkreis auf die Familienmitglieder beschränkt.
Die Integration von Pushover in girder
Die Integration im girder erfolgt wieder über LUA script. Den detailierten Code habe ich hier der Übersichtlichkeit halber nicht dargestellt. Wer Anregungen und Fragen hat, kann sich aber gerne melden. Es wurde eine Bibliothek geschrieben, die sich in mein item Manager Konzept einfügt. Das bedeutet ich habe ein iM Module erstellt, welches für jede Pushover-Anwendung ein iM Module Objekt registriert. Die einzelnen Pushover User-Keys, die bei Beanchrichtigungen angesprochen werden sollen, werden zu Items. Ich behandle also die registrierten Pushover-User wie einen Aktor; also wie eine Funktion in einem virtuellen Gerät. Durch Setzen des Item Values wird eine Nachricht an den entsprechenden Nutzer übermittelt genauso wie wenn ich ein Licht einschalte.
Jetzt kann ich das Versenden von Push-Benachrichtigungen in beliebige Regeln einbauen. Dazu werden hier in den kommenden Wochen sicherlich noch Beispiele erscheinen.