Push-Nachricht geht nur sofort, aber nicht verzögert raus

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

Narrowmatiker
Beiträge: 68
Registriert: 17.01.2017, 22:00
Wohnort: Nordrhein-Westfalen
Hat sich bedankt: 6 Mal

Push-Nachricht geht nur sofort, aber nicht verzögert raus

Beitrag von Narrowmatiker » 01.04.2021, 17:43

Hallo liebe Homematic-Gemeinde,

ich stehe gerade ein wenig auf dem Schlauch: ich habe mir gerade eine Keymatic zugelegt, deren Verriegelung per Fernbedienung auch gleich den Alarm scharf stellt. Das funktioniert prima: die Keymatic verriegelt, gleichzeitig wird die HM-Sec-Sir-WM scharf gestellt (und wird richtig laut, wenn irgendjemand ein Fenster oder eine Tür öffnet). Gleichzeitig bekomme ich eine Pushnachricht per Pushover aufs Handy, dass der Alarm aktiviert wurde.

Nun wollte ich zudem erreichen, dass im Falle der Alarmaktivierung (egal ob per Fernbedienung, App oder Schalter) eine weitere Pushnachricht "Fenster vergessen" ans Handy verschickt wird, wenn bei Scharfschaltung irgendwo noch ein Fenster offen ist. Dazu habe ich ein einfaches Programm geschrieben, das zwei Systemvariablen enthält: "Alarmstatus" liefert "wahr", wenn der Alarm scharft gemacht wurde. "Tür/Fenster offen?" liefert wahr, wenn irgendwo noch ein Fenster oder eine Tür offen ist. Das Programm funktioniert auch wunderbar:
Pushreminder.JPG
Dummerweise kommen nun aber zwei Pushnachrichten gleichzeitig an: "Der Alarm wurde aktiviert" und "Fenster vergessen?" Also dachte ich, das Skript für die Nachricht "Fenster vergessen?" lasse ich einfach verzögert um 5 Sekunden ablaufen, dann ist die erste Pushnachricht durch, die zweite bleibt dann länger auf dem Handy sichtbar. Aber nix da: sobald ich statt "sofort" "verzögert um" eingebe (und sei es nur eine Sekunde), kommt nur noch die "Alarm"-Pushnachricht an, die "Fenster vergessen" wird nicht mehr verschickt.

Habe ich was übersehen? Oder kann Pushover mit zwei Push-Befehlen so kurz hintereinander nichts anfangen (kann ich mir kaum vorstellen)?

Lieben Dank für Eure Ratschläge - wahrscheinlich ist die Lösung trivial...hmpf..

Beste Grüße, Euer Narrowmatiker
Gruß,

der Narrowmatiker
__________________________________________________________________________________________________________________________________________
Die Lösung ist so nah - warum bin ich so weit weg?

Narrowmatiker
Beiträge: 68
Registriert: 17.01.2017, 22:00
Wohnort: Nordrhein-Westfalen
Hat sich bedankt: 6 Mal

Re: Push-Nachricht geht nur sofort, aber nicht verzögert raus

Beitrag von Narrowmatiker » 01.04.2021, 18:43

Jetzt habe ich es zusätzlich mit einer weiteren SV versucht, die verzögert auf "Wahr" springen soll, wenn der Alarm bei offenem Fenster aktiviert wird. Siehe da: auch das geht nur sofort, nicht verzögert um...ansonsten bleibt die SV, wie sie war. In mir keimt langsam der Verdacht auf, da könnte ein neuer Bug in dem letzten Update-Version der CCU2 sein.
Habe es auch mit einem simplen Testprogramm versucht: wenn Wohnzimmerfensterkontakt offen bei Änderung, schicke Pushnachricht. Sofort geht das - verzögert passiert gar nichts.
Haben andere, die die Version 2.57.4 auf der CCU2 haben, vielleicht ähnliche Erfahrungen? :shock:
Gruß,

der Narrowmatiker
__________________________________________________________________________________________________________________________________________
Die Lösung ist so nah - warum bin ich so weit weg?

dtp
Beiträge: 10660
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 321 Mal
Danksagung erhalten: 501 Mal

Re: Push-Nachricht geht nur sofort, aber nicht verzögert raus

Beitrag von dtp » 02.04.2021, 12:55

Du verheimlichst uns ja hier dein Skript (aus welchen Gründen auch immer), aber hast du es mal mit einem Delay im Skriptcode versucht. Hier ein Beispiel aus meinem zPNS-Po:

Code: Alles auswählen

(dom.GetObject(ID_DATAPOINTS).Get("CUxD.CUX2801001:1.CMD_EXEC")).State("/usr/bin/curl -s -k -F token='"#HMinfo#"' -F user='"#key#"' -F device='"#device#"' -F title=' "#title#"' -F message=' "#message#"' -F attachment='"#image#"' -F priority='"#prio#"' -F sound='"#sound#"' -F html=1 https://api.pushover.net/1/messages.json", delayIt * 1000, false);
Mit der lokalen Variablen "delayIt" vom Typ Integer setze ich dort die Verzögerung in einer Iterationsschleife, falls die Nachrichten zu lang sind. Funktioniert ohne Probleme. Pushover kann jedenfalls problemlos mehrere kurz aufeinanderfolgende Nachrichten senden.
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

Narrowmatiker
Beiträge: 68
Registriert: 17.01.2017, 22:00
Wohnort: Nordrhein-Westfalen
Hat sich bedankt: 6 Mal

Re: Push-Nachricht geht nur sofort, aber nicht verzögert raus

Beitrag von Narrowmatiker » 02.04.2021, 13:58

Oh, sorry, vergessen:
Skript_Fenstervergessen.JPG
Geht bestimmt auch als Skript bzw. asci einzufügen, weiß nur gerade nicht wie :?
Gruß,

der Narrowmatiker
__________________________________________________________________________________________________________________________________________
Die Lösung ist so nah - warum bin ich so weit weg?

Narrowmatiker
Beiträge: 68
Registriert: 17.01.2017, 22:00
Wohnort: Nordrhein-Westfalen
Hat sich bedankt: 6 Mal

Re: Push-Nachricht geht nur sofort, aber nicht verzögert raus

Beitrag von Narrowmatiker » 02.04.2021, 14:21

Also irgendwie funzt die Ergänzung mit delayIt nicht, das Skript wirft eine Fehlermeldung aus:
Skript_Fenstervergessen1.JPG
Wenn ich nur den Wurm finden würde...
Gruß,

der Narrowmatiker
__________________________________________________________________________________________________________________________________________
Die Lösung ist so nah - warum bin ich so weit weg?

manfredh
Beiträge: 4155
Registriert: 09.09.2012, 10:41
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 78 Mal
Danksagung erhalten: 301 Mal

Re: Push-Nachricht geht nur sofort, aber nicht verzögert raus

Beitrag von manfredh » 02.04.2021, 14:28

Narrowmatiker hat geschrieben:
02.04.2021, 13:58
Geht bestimmt auch als Skript bzw. asci einzufügen, weiß nur gerade nicht wie :?
Muss man nicht wissen. Man braucht nur mit der Maus über die wenigen verfügbaren Optionen zu fahren - da wirst du geholfen:
Zwischenablage01.jpg
Es gibt 10 Arten von Menschen: solche die Binärcode verstehen und solche, die ihn nicht verstehen.

dtp
Beiträge: 10660
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 321 Mal
Danksagung erhalten: 501 Mal

Re: Push-Nachricht geht nur sofort, aber nicht verzögert raus

Beitrag von dtp » 02.04.2021, 14:32

Narrowmatiker hat geschrieben:
02.04.2021, 14:21
Wenn ich nur den Wurm finden würde...
Okay. Scheint so, als hättest du noch nicht so sonderlich viel Erfahrung mit Skripten. Die lokale Variable muss natürlich auch entsprechend deklariert werden.

Code: Alles auswählen

!Variablen definieren
string message = "Testnachricht";
string key = "xxxxxxxxx"; ! API-Basisschlüssel 
string HMinfo = "xxxxxxxx"; ! Token für Info-Meldungen
integer delay = 10; ! Verzögerung in Sekunden

!Textnachricht versenden
(dom.GetObject(ID_DATAPOINTS).Get("CUxD.CUX2801001:1.CMD_EXEC")).State("/usr/bin/curl -s -k -d token='"#HMinfo#"' -d user='"#key#"' -d message='"#message#"' -d priority=0 -d html=1 https://api.pushover.net/1/messages.json", delay * 1000, false);
WriteLine("okay");
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

Narrowmatiker
Beiträge: 68
Registriert: 17.01.2017, 22:00
Wohnort: Nordrhein-Westfalen
Hat sich bedankt: 6 Mal

Re: Push-Nachricht geht nur sofort, aber nicht verzögert raus

Beitrag von Narrowmatiker » 02.04.2021, 15:37

Wunden Punkt gefunden - Skripte kann ich im Wesentlichen nicht, aber durch Adaption hat es meistens gepasst. Habe es nun mit Deiner Ergänzung versucht, komme aber absolut nicht weiter. Mit "delay" wird bei mir irgendwie gar nichts versendet. Wo bekomme ich denn den API-Basiskey her? Und ist der token der, der weiter unten auch folgt? Ich glaub ich belasse es bei der sofortigen Versendung - die funktioniert ja :cry: Aber vielen Dank trotzdem!
Gruß,

der Narrowmatiker
__________________________________________________________________________________________________________________________________________
Die Lösung ist so nah - warum bin ich so weit weg?

dtp
Beiträge: 10660
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 321 Mal
Danksagung erhalten: 501 Mal

Re: Push-Nachricht geht nur sofort, aber nicht verzögert raus

Beitrag von dtp » 02.04.2021, 15:41

Das sind deine Schlüssel, die du unter "user" und "token" eingetragen hattest.

key entspricht user
HMinfo entspricht token

Solltest du häufiger mit Push-Nachrichten arbeiten wollen, dann kannst du dir auch mal mein zPNP ansehen (siehe Signatur). Auf den ersten Blick ggf. etwas verwirrend, aber auf längere Sicht einfacher zu handhaben.
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

Narrowmatiker
Beiträge: 68
Registriert: 17.01.2017, 22:00
Wohnort: Nordrhein-Westfalen
Hat sich bedankt: 6 Mal

Re: Push-Nachricht geht nur sofort, aber nicht verzögert raus

Beitrag von Narrowmatiker » 02.04.2021, 15:53

Hier noch einmal mein Script ohne delay (danke @manfredh):

Code: Alles auswählen

string nachricht = "Irgendwo ist noch ein Fenster ge%C3%B6ffnet!";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("LD_LIBRARY_PATH= curl -s -d token=xxxxxxxxxxxxxxxx -d user=XXXXXXXXXXXXXXXX -d  message='"#nachricht#"' -d priority=1 -d sound=spacealarm http://api.pushover.net/1/messages.json");
Vielleicht kann das ja jemand einfach und schnell ergänzen, dass es 10 Sekunden verzögert funzt?
Gruß,

der Narrowmatiker
__________________________________________________________________________________________________________________________________________
Die Lösung ist so nah - warum bin ich so weit weg?

Antworten

Zurück zu „HomeMatic allgemein“