Homematic Script zum Versenden von Nachrichten mit Pushover

Es gibt jede Menge Gründe sich von seiner Homematic benachrichtigen zu lassen. Dank einer Vielzahl an Sensoren und Aktoren kann die Homematic eigentlich fast alles. Was nützt es aber, einen Wassermelder im Keller zu haben, wenn man nicht zu Hause ist die Sirene nicht hört.

Nach dem ich verschiedenes ausprobiert habe mache ich inzwischen folgendes:

Ich lasse mich mittels Pushover auf meinem Handy benachrichtigen.

Ganz wichtig ist, dass der CUx Daemon auf der CCU2 installiert ist und ein Exec-Device mit der Seriennummer „1“ existiert. Falls die Seriennummer abweicht, muss das Skript entsprechend angepasst werden.

Hier ein Screenshot von der Einrichtung:

Nach der Einrichtung sollte ein solches Gerät vorhanden sein:

Hier gibt es nähere Infos zu CUx Daemon. Diese faszinierende Tool braucht man für die verschiedensten Sachen :-)

Hier nun mein eigentliches Script:

!__Pushover Keys
string po_api_user="Hier bitte die Daten von Pushover eintragen";
string po_api_token="Hier bitte die Daten von Pushover eintragen";
 
!__Nachricht
string po_title="Testnachricht";
string po_message="Diese Nachricht kann beliebig verändert werden!";
string po_sound="siren"; ! Sounds nach Wahl siehe "https://pushover.net/api#sounds"
string po_priority="1";
string po_device="Handy";
 
!___Nur benoetigt wenn Prioritaet auf 2 gesetzt ist
string po_retry="30";
string po_expires="3600";

! Bei Prio 2: po_retry gibt an (in sekunden), wie häufig eine Nachricht vom Server geschickt wird (z.B. alle 30s)
! Bei Prio 2: po_expires gibt an (in Sekunden), wie lange nachrichten geschickt werden sollen. Bestätigt der User, stoppt die Benachrichtigung. Beispiel: Alle 30 Sekunden wird eine Nachricht geschickt, das passiert eine Stunde lang (1 Stunde = 3600 sekunden).
 
!------ NICHT MODIFIZIEREN-------
string po_request;
if(po_priority=="2"){
po_request="curl -X POST -k -H \"Content-Type: application/x-www-form-urlencoded\" -d \"token=" # po_api_token # "&user=" # po_api_user # "&title=" # po_title.ToUTF8() # "&priority="# po_priority # "&sound=" # po_sound # "&retry="# po_retry # "&expire=" # po_expires # "&message=" # po_message.ToUTF8() # "&device=" # po_device # "\" https://api.pushover.net/1/messages.json";
}
else{
po_request="curl -X POST -k -H \"Content-Type: application/x-www-form-urlencoded\" -d \"token=" # po_api_token # "&user=" # po_api_user # "&title=" # po_title.ToUTF8() # "&priority="# po_priority # "&sound=" # po_sound # "&message=" # po_message.ToUTF8() # "&device=" # po_device # "\" https://api.pushover.net/1/messages.json";
}
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State(po_request);

WriteLine("Pushnachricht versendet!");


Die letzte Zeile kann man sich natürlich auch sparen. Ich habe mir aber angewöhnt diese, oder eine ähnliche immer am Ende meiner Script stehen zu haben. Wenn ich diese teste, dann kann ich sehen ob Sie auch laufen.

Eine eingehende Nachricht sieht das bei mir so aus:

Für den täglichen Einsatz brauche ich dann nur noch die oberen variablen anzupassen.

 

 

Drucken