Letzte Aktualisierung am 8. Dezember 2023
Dieser Beitrag aus dem Jahr 2013 ist zwischenzeitlich veraltet. Er wird nicht mehr aktualisiert. Das beschriebene Verfahren sollte aber unverändert funktionieren. Die Kommentare wurden geschlossen.
Neben andern Apps, wie z.B. „Notify my Android“ oder „Prowl“, kann man von der Homematic-Zentrale (CCU) auch Pushnachrichten über Pushover (https://pushover.net) an Android- bzw. Apple-Geräte versenden. Pushover bring bereits einige nützliche PlugIns mit, z.B. ein E-Mail Gateway. Darüber hinaus ergeben sich durch die direkte IFTTT „if this, then that“ (https://ifttt.com) Implementierung weitere, sehr interessante Möglichkeiten. Hier eine kurze Anleitung.
Registrierung
Zunächst muss man sich auf der Internetseite des Dienstes kostenlos registrieren und erhält einen „User-Code“. Anschließend ist (mindestens) eine „App“ zu erstellen. Der Name „App“ ist an dieser Stelle ein wenig verwirrend, beim Erstellen einer „App“ genügt die Eingabe eines Namens, z.B. Homematic. Als Ergebnis wird ein Token-Code generiert, der diese „App“ identifiziert. Jede App kann kostenlos nur eine begrenzte Anzahl an Nachrichten verschicken. Falls das nicht reicht, legt man einfach mehrere „Apps“ an. Über optionale „Device Codes“ lassen sich Nachrichten gezielt auf bestimmte Endgeräte pushen.
Darüber hinaus wird auf jedem Endgeräte die kostenpflichtige Pushover-App benötigt.
Nachrichtenversand
Beim Versand einer Nachricht sind folgende Parameter zwingend:
token (required)
– your application’s API token
user (required)
– the user key (not e-mail address) of your user (or you), viewable when logged into the dashboard
message (required)
– your message
Ergänzend können optionale Parameter definiert werden:
device (optional)
– your user’s device identifier to send the message directly to that device, rather than all of the user’s devices
title (optional)
– your message’s title, otherwise uses your app’s name
url (optional)
– a supplementary URL to show with your message
url_title (optional)
– a title for your supplementary URL
priority (optional)
– set to „1“ to display as high-priority and bypass quiet hours, or „-1“ to always send as a quiet notificationtimestamp (optional) – set to a Unix timestamp to have your message show with a particular time, rather than now
sound (optional)
– set to the name of one of the sounds supported by device clients to override the user’s default sound choice
Das Versenden der Nachricht erfolgt über einen POST Aufruf über die folgende URL:
http://api.pushover.net/1/messages.json
Zum Aufruf lässt sich am besten der „Client for URL“ (CURL) verwenden, der in den neueren CUxD-Versionen enthalten ist. Als Voraussetzung hierfür muss lediglich der CUxD auf der CCU installiert sein.
Aus der CCU heraus erfolgt der Aufruf dann z.B. mit einem kleinen Script über die – ebenfalls vom CUxD bereitgestellte – „CMD_EXEC“-Funktion:
string nachricht = "Hallo Welt";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("LD_LIBRARY_PATH=/usr/local/addons/cuxd /usr/local/addons/cuxd/curl -s -d token=TOKEN -d user=USER -d message='"#nachricht#"' -d sound=bike http://api.pushover.net/1/messages.json");
Für priorisierte Nachrichten (rot hinterlegt und Umgehen der Ruhezeiten) muss vor der URL der Parameter…
-d priority=1
…ergänzt werden.
Vor Nutzung der „CMD_EXEC“-Funktion muss im CUxD ein „System“-Gerät mit der Funktion „Exec“ angelegt werden, z.B. so:
Beispiel
Wenn es funktioniert, schaut es in etwa so aus…
Tipps
Tipp:
Umlaute lassen sich bei Bedarf ebenfalls pushen. Hierzu kann man die Texte mit einem URL Decoder/Encoder umwandeln. Statt „Müller“ gibt man ganz einfach „M%C3%BCller“ ein und schon funktioniert es.
Noch ein Tipp:
Man kann an Stelle des „http://“ API-Aufrufes auch „https://“ verwenden. Damit das funktioniert muss aber der Parameter „-k“ ergänzt werden:
[code]
string nachricht = "Hallo Welt";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("LD_LIBRARY_PATH=/usr/local/addons/cuxd /usr/local/addons/cuxd/curl -s -k -d token=TOKEN -d user=USER -d message='"#nachricht#"' -d sound=bike https://api.pushover.net/1/messages.json");
[/code]
Und noch etwas:
Bei Verwendung einer aktuellen Version des CUxD kann alternativ zu dem etwas langen Aufruf…
[code]
LD_LIBRARY_PATH=/usr/local/addons/cuxd /usr/local/addons/cuxd/curl
[/code]
…auch einfach nur…
[code]
extra/curl
[/code]
…eingegeben werden. In Gänze…
[code]
string nachricht = "Hallo Welt";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("extra/curl -s -k -d token=TOKEN -d user=USER -d message='"#nachricht#"' -d sound=bike https://api.pushover.net/1/messages.json");
[/code]
Zum korrespondierenden Beitrag im…
Vielen Dank!!! Klappt super!
Großartiger Artikel. Gut erklärt. Im Vergleich zu url-encode-decode.com. Es gibt ein hervorragendes Tool zum Codieren / Decodieren, das ich bei meiner Online-Suche nach URL-Codierungsressourcen gefunden habe
https://url-decode.com/
Dieses Tool decodiert / codiert nicht nur URLs, bietet Base64-Decodierung / -Codierung, sondern auch Dutzende anderer Webdienstprogramme. Sie müssen es überprüfen.