Howto - zentrales Push-Nachrichten-Programm zPNP

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

Franzens
Beiträge: 147
Registriert: 18.04.2014, 17:11
Hat sich bedankt: 15 Mal

Re: Howto - zentrales Programm für Push-Nachrichten

Beitrag von Franzens » 16.01.2016, 19:17

Hallo Thorsten ,

Danke für die Hilfe. das mit der aktiven Variable hatte ich wohl überlesen. Jetzt klappt es unabhängig von der Priorität.
Das Skript teste ich gerade.

Franzens
RasberryMatic auf Synology-VM - Sonos - pocket Control HM - CuL V2 868mHz & Somfy RTS Anbindung - Pushover - hm-pdetect - homebridge - homeassistant - Alexa - Netatmo - Shelly - hue...; 373 Kanäle in 100 Geräten und 209 CUxD-Kanäle in 18 CUxD-Geräten

ederhj
Beiträge: 1
Registriert: 05.12.2015, 09:29

Re: Howto - zentrales Programm für Push-Nachrichten

Beitrag von ederhj » 17.01.2016, 17:40

Hallo,

mir gefällt die Lösung mit den Systemvariablen eigentlich gar nicht.

Ist es irgendwie möglich, dass man dem Befehl
dom.GetObject("XYZ").ProgramExecute()
Parameter mitgibt?
Bsp: dom.GetObject("XYZ").ProgramExecute(V1, V2, V3);

Wäre doch viel besser, v.a. wenn die Unterprogramme von mehreren Programmen gleichzeitig verwendet werden.

Danke
ederhj

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

Re: Howto - zentrales Programm für Push-Nachrichten

Beitrag von dtp » 19.01.2016, 09:42

Meines Wissens nach geht das nicht, da die CCU die Inhalte der Variablen nicht "frei" zwischenspeichert. Zwar gibt es hier ja gegenteiligen Aussagen, wonach Variablen in Skripten den Speicher der CCU belegen sollen, allerdings habe ich noch nirgends gesehen, dass man diesen angeblich allozierten Speicherbereich wieder auslesen kann. Ergo ist man auf die Verwendung von Systemvariablen angewiesen, wenn man Variableninhalte von einem zum anderen Skript bzw. Programm weiterreichen möchte.

Das zentrale Programm für die Push-Nachrichten läuft bei mir jetzt seit Anbeginn ohne Probleme. Es wurden auch noch nie Inhalte verschluckt. Ich habe z.B. gelegentlich das Problem, dass der Sabotagekontakt eines meiner Fenster-Drehgriffkontakte prellt. Da kamen dann mal 20 Push-Nachrichten binnen weniger Sekunden in Folge. Das war dann auch der Grund für die Änderung des Push-Nachrichten-Skripts dahingehend, dass man nun identische, innerhalb einer definierbaren Zeit aufeinander folgende Push-Nachrichten unterdrücken kann. Das zentrale Push-Nachrichten-Programm schickt nun also entweder eine Push-Nachricht, wenn sich deren Inhalt innerhalb der definierten Zeitspanne geändert hat oder wenn eine indentische Push-Nachricht nach Ablauf der definierte Zeitspanne erzeugt wurde. Das funktioniert z.B. mit dem modifizierten allinclusive-Skript von Alchy einwandfrei.

Gruß,

Thorsten
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.

curiosity
Beiträge: 29
Registriert: 14.11.2015, 16:46

Re: Howto - zentrales Programm für Push-Nachrichten

Beitrag von curiosity » 20.01.2016, 20:10

Hallo Thorsten,

erst einmal dein zentrales Programm ist echt Klasse. Hab meine Push Meldungen fast alle auf das System umgeschrieben. :D

Ich hab die Tage im Netz einen kleinen Tip gefunden gehabt, wie man den Aufruf von Curl wesentlich abkürzen kann.

Im Skript verwendest du ja diesen Aufruf hier:

Code: Alles auswählen

dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("LD_LIBRARY_PATH=/usr/local/addons/cuxd /usr/local/addons/cuxd/curl -s -k -d token='"#HMalarm#"' -d user='"#GPkey#"' -d message='"#message#"' -d priority='"#prio#"' -d sound='"#sound#"' -d html=1 -d retry=30 -d expire=120 https://api.pushover.net/1/messages.json");
Es geht aber auch wesentlich kürzer:

Code: Alles auswählen

dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("extra/curl -s -k -d token='"#HMinfo#"' -d user='"#User1key#"' -d message='"#message#"' -d priority='"#prio#"' -d sound='"#sound#"' -d html=1 https://api.pushover.net/1/messages.json");
Vielleicht kann der ein oder andere den Tip gebrauchen und so einige Tipparbeit einsparen. :)

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

Re: Howto - zentrales Programm für Push-Nachrichten

Beitrag von dtp » 21.01.2016, 07:30

Werde ich mal ausprobieren. Danke für den Hinweis.

Gruß,

Thorsten
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.

TSNr1
Beiträge: 89
Registriert: 22.12.2015, 19:53
Hat sich bedankt: 5 Mal

Re: Howto - zentrales Programm für Push-Nachrichten

Beitrag von TSNr1 » 25.01.2016, 21:37

Hallo dtp,

erstmal Respekt und vielen Dank für dieses Tolle Skript,

hab es jetzt getestet und auf mein Android gerät läuft alles.

Da ich allerdings im Alltag eigentlich ein Windowsphone benutze habe ich ein Problem.

Pushover bietet keine App für Windowsphone an!
Als Alternative dafür gibt es pushalot.net.
Wäre es möglich dein Skript so abzuändern das es mit pushalot funktioniert?!

Danke und Gruß
Martin

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

Re: Howto - zentrales Programm für Push-Nachrichten

Beitrag von dtp » 25.01.2016, 22:38

Hallo Martin!
TSNr1 hat geschrieben:Wäre es möglich dein Skript so abzuändern das es mit pushalot funktioniert?!
Im Prinzip sollte das kein großes Problem sein. Allerdings unterstützt Pushalot keine Prios, Sounds und HTML-Codes, wie Pushover. Daher muss man dies auch bei den aufrufenden Skripten berücksichtigen.

Mal sehen, ob ich demnächst etwas Zeit finde, das Skript für das zentrale Push-Nachtrichten-Programm entsprechend anzupassen.

Gruß,

Thorsten
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.

TSNr1
Beiträge: 89
Registriert: 22.12.2015, 19:53
Hat sich bedankt: 5 Mal

Re: Howto - zentrales Programm für Push-Nachrichten

Beitrag von TSNr1 » 26.01.2016, 00:16

Das wäre verdammt genial.
Schonmal vorab vielen Dank.

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

Re: Howto - zentrales Programm für Push-Nachrichten

Beitrag von dtp » 26.01.2016, 08:26

Kurz noch eine ergänzende Frage. Hast Du Erfahrungen mit Pushalot unter Windows 10? Hab mir gestern Abend mal die App installiert, weiß aber noch nicht, ob sie reibungslos funktioniert. Push-Nachrichten auf meinem Win10-Rechner wären schon eine feine Sache.

Gruß,

Thorsten
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.

SMA
Beiträge: 95
Registriert: 16.04.2015, 13:28

Re: Howto - zentrales Programm für Push-Nachrichten

Beitrag von SMA » 26.01.2016, 10:13

Pushalot ist reiner Text. Sonderzeichen/Umlaute sind möglich, aber nicht aus der CCU heraus (was ich einfach nicht verstehe), siehe mein Thread ohne Antwort bisher hier:
http://homematic-forum.de/forum/viewtop ... 19&t=28553

Daher simple, Umlaute austauschen :-)

Code: Alles auswählen

! +++++ Windows Phone pushalot - Umwandlung von Sonderzeichen gem. UTF-8 +++++
! "Ä" in "Ae"
foreach(winmessageindex,winmessage.Split("Ä")){winnewmessage = winnewmessage+winmessageindex+"Ae";}
winmessage = winnewmessage;
winnewmessage = "";

! "Ö" in "Oe"
foreach(winmessageindex,winmessage.Split("Ö")){winnewmessage = winnewmessage+winmessageindex+"Oe";}
winmessage = winnewmessage;
winnewmessage = "";

! "Ü" in "Ue"
foreach(winmessageindex,winmessage.Split("Ü")){winnewmessage = winnewmessage+winmessageindex+"Ue";}
winmessage = winnewmessage;
winnewmessage = "";

! "ä" in "ae"
foreach(winmessageindex,winmessage.Split("ä")){winnewmessage = winnewmessage+winmessageindex+"ae";}
winmessage = winnewmessage;
winnewmessage = "";

! "ö" in "oe"
foreach(winmessageindex,winmessage.Split("ö")){winnewmessage = winnewmessage+winmessageindex+"oe";}
winmessage = winnewmessage;
winnewmessage = "";

! "ü" in "ue"
foreach(winmessageindex,winmessage.Split("ü")){winnewmessage = winnewmessage+winmessageindex+"ue";}
winmessage = winnewmessage;
winnewmessage = "";

! Kürzen der Nachricht um die jeweils am Ende angefügten Umwandlungscodes
winmessage = winmessage.Substr(0, winmessage.Length()-12);
und für pushalot habe ich das im Forum gefunden

EDIT: Falsche Parameter beim curl, gelöscht!
Zuletzt geändert von SMA am 30.01.2016, 17:38, insgesamt 1-mal geändert.
Privat
1 Kanäle in 1 Geräten und 16 CUxD-Kanäle in 1 CUxD-Geräten:
1x CUX28, 1x HM-Sec-SCo


Ehemalig studentische Projektgruppe
Übersicht des Haus-Projekts (Neubau)
1x CCU2 (Untergeschoss/Stahlbau) || 2x LAN-Gateway (Erdgeschoss/Dachgeschoss)

527 Kanäle in 238 Geräten und 64 CUxD-Kanäle in 17 CUxD-Geräten:
9x HM-Sen-MDIR-O-2, 16x CUX90, 12x HM-LC-Sw2-FM, 18x HM-PB-6-WM55, 33x HM-Sec-SCo, 21x HM-Sec-SD, 19x HM-LC-Bl1PBU-FM, 24x HM-LC-Sw1PBU-FM, 16x HM-TC-IT-WM-W-EU, 19x HM-LC-Sw1-FM, 9x HM-PBI-4-FM, 3x HM-Sec-SD-Team, 1x HM-Sec-TiS, 10x HM-Sec-SC-2, 3x HM-CC-VG-1, 5x HM-Sec-MDIR-2, 2x HM-LC-Sw4-SM, 1x HM-Sen-Wa-Od, 5x HM-LC-RGBW-WM, 1x CUX28, 1x HM-Sen-EP, 3x HM-LC-Dim1T-FM, 1x HM-LC-Sw4-DR, 1x HM-LC-Dim1TPBU-FM, 2x HM-WDS10-TH-O, 1x HM-Sec-WDS-2, 2x HM-ES-PMSw1-Pl, 14x HMW-LC-Sw2-DR, 1x HM-WDS100-C6-O, 2x HMW-IO-12-Sw7-DR

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“