Howto - zentrales Push-Nachrichten-Programm zPNP

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

Moderator: Co-Administratoren

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

Re: Howto - zentrales Push-Nachrichten-Programm (zPNP) V3.1

Beitrag von dtp » 15.01.2019, 19:56

Hab's jetzt auch mal getestet.

Ich bekommen zwei Push-Nachrichten unmittelbar hintereinander. Allerdings beide mit dem Inhalt "Test 2".
IMG_2603.PNG
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.

sidamos
Beiträge: 100
Registriert: 19.11.2018, 22:50
Hat sich bedankt: 2 Mal

Re: Howto - zentrales Push-Nachrichten-Programm (zPNP) V3.1

Beitrag von sidamos » 15.01.2019, 22:38

Das ist sehr seltsam. ich verwende auch Pushover und habe eine CCU3 mit aktueller Frmware.

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

Re: Howto - zentrales Push-Nachrichten-Programm (zPNP) V3.1

Beitrag von dtp » 16.01.2019, 12:22

Nutzt du iOS oder Android?

Bei mir ist es iOS 12.1.2. Und da ja die iOS- und Android-Clients von Pushover schon mit den Farbbezeichnungen (das "Orange"-Problem) etwas unterschiedlich umgehen...
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.

sidamos
Beiträge: 100
Registriert: 19.11.2018, 22:50
Hat sich bedankt: 2 Mal

Re: Howto - zentrales Push-Nachrichten-Programm (zPNP) V3.1

Beitrag von sidamos » 16.01.2019, 12:34

Android.

Benutzeravatar
koppenho
Beiträge: 227
Registriert: 27.12.2013, 09:12
Wohnort: Bad Neustadt, Deutschland
Hat sich bedankt: 2 Mal
Danksagung erhalten: 2 Mal

Re: Howto - zentrales Push-Nachrichten-Programm (zPNP) V3.1

Beitrag von koppenho » 16.01.2019, 20:46

Dass aus einem Rega-Skript nicht mehr als ein Telegramm verschickt werden kann, ist normal.
Die Rega (Skript-Interpreter) ist nicht unterbrechbar und ist nicht Multitaskingfähig. Das bedeutet, dass der Interpreter von Anfang bis zum Ende ein Script abarbeiten muss, bevor ein weiteres Skript gestartet werden kann.
Der Aufruf .ProgramExecute() ist nicht mit einem Unterprogrammaufruf zu vergleichen. Vielmehr wird nur der Start des gewünschten Skripts in einer Warteschlange vorgemerkt.

Im aktuellen Fall bedeutet das, dass immer das letzte Telegram verschickt wird, möglicherweise sooft wie man ProgramExecute aufgerufen hat. Das Senden beginnt erst, wenn das ursprüngliche Skript zu Ende ist, denn dann wird der erste ProgramExecute ausgeführt. Doch leider enthalten die SystemVariablen zu diesem Zeitpunkt nicht mehr den Text des ersten, sondern schon den Text eines späteren Telegramms.

Ich hoffe, ich konnte den Sachverhalt verständlich machen.

Dass ein Rega-Skript nicht unterbrechbar ist, hat u.a. zur Folge, dass eine Endlosschleife in einem Skript zu einem anscheinendem Hängen der CCU führen kann.
--
Andreas
--------------------------------------------
Hauptwohnung: RaspberryMatic mit 320 Kanäle in 110 Geräten und 140 CUxD-Kanäle in 33 CUxD-Geräten
Zweitwohnung: CCU2 mit 18 Kanäle in 8 Geräten und 14 CUxD-Kanäle in 4 CUxD-Geräten
--------------------------------------------

sidamos
Beiträge: 100
Registriert: 19.11.2018, 22:50
Hat sich bedankt: 2 Mal

Re: Howto - zentrales Push-Nachrichten-Programm (zPNP) V3.1

Beitrag von sidamos » 16.01.2019, 22:16

Hmm, bei mir wird das andere Programm definitiv nur 1x aufgerufen, auch wenn ich 10 Aufrufe mache. Das sehe ich an der LOG-Ausgabe.

Es sei denn, mein Logging funktioniert nicht richtig. Das habe ich so gemacht:

Systemvariable “LOG” anlegen und Protokoll dafür aktivieren. Dann:

Code: Alles auswählen

(dom.GetObject(ID_SYSTEM_VARIABLES).Get("LOG")).State("Text");
Zuletzt geändert von alchy am 16.01.2019, 22:25, insgesamt 1-mal geändert.
Grund: Code in Codetags posten

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

Re: Howto - zentrales Push-Nachrichten-Programm (zPNP) V3.1

Beitrag von dtp » 17.01.2019, 08:09

Ich selbst hatte ehrlich gesagt noch nie das Bedürftnis, innerhalb eines Skripts mehrmals eine Push-Nachricht senden zu wollen. Da erzeuge ich mir lieber Listen und schicke diese dann einmalig am Ende des Skripts.
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.

sidamos
Beiträge: 100
Registriert: 19.11.2018, 22:50
Hat sich bedankt: 2 Mal

Re: Howto - zentrales Push-Nachrichten-Programm (zPNP) V3.1

Beitrag von sidamos » 17.01.2019, 09:05

Oha, wie macht man denn das? Dazu habe ich zumindst auf der 1. Seite des Threads kein Beispiel gefunden.

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

Re: Howto - zentrales Push-Nachrichten-Programm (zPNP) V3.1

Beitrag von dtp » 17.01.2019, 09:33

In der Regel über eine foreach-Schleife. Hängt aber natürlich von der zu lösenden Aufgabe ab.

Also im ersten Thread gibt's zumindest einen Link auf ein Beispiel-Skript zum Melden aller offenen Fenster bei Abwesenheit.

Ein weiteres Beispiel wäre mein kürzlich hier veröffentlichtes zentrales Rollladensteuerungsprogramm. Und auch in meinen Energiezählerskripten werden entsprechende Listen erzeugt und gesendet. Die dahinter steckende Skriptlogik ist eigentlich immer dieselbe.

Auch in deinem Beispiel könntest du ja einfach zunächst die beiden Nachrichten in eine Nachricht zusammenfassen und sie dann z.B. per "\n" optisch voneinander getrennt versenden. Und wenn du nur jeweils eine davon versenden willst, dann machst du das über if-elseif-else-Abfragen. Beispiele dafür gibt's hier im Forum zur Genüge.
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.

sidamos
Beiträge: 100
Registriert: 19.11.2018, 22:50
Hat sich bedankt: 2 Mal

Re: Howto - zentrales Push-Nachrichten-Programm (zPNP) V3.1

Beitrag von sidamos » 18.01.2019, 07:24

OK, verstanden.

Ich dachte, man kann vielleicht an Dein Skript eine Liste (Array oder String mit "|" oder sowas getrennt) übergeben und das sendet dann X Nachrichten. Das wäre auch cool.

Antworten

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