Howto - zentrales Push-Nachrichten-Programm zPNP
Moderator: Co-Administratoren
-
- 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
Hab's jetzt auch mal getestet.
Ich bekommen zwei Push-Nachrichten unmittelbar hintereinander. Allerdings beide mit dem Inhalt "Test 2".
Ich bekommen zwei Push-Nachrichten unmittelbar hintereinander. Allerdings beide mit dem Inhalt "Test 2".
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.
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.
Re: Howto - zentrales Push-Nachrichten-Programm (zPNP) V3.1
Das ist sehr seltsam. ich verwende auch Pushover und habe eine CCU3 mit aktueller Frmware.
-
- 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
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...
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.
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.
- 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
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.
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
--------------------------------------------
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
--------------------------------------------
Re: Howto - zentrales Push-Nachrichten-Programm (zPNP) V3.1
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:
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
Grund: Code in Codetags posten
-
- 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
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.
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.
Re: Howto - zentrales Push-Nachrichten-Programm (zPNP) V3.1
Oha, wie macht man denn das? Dazu habe ich zumindst auf der 1. Seite des Threads kein Beispiel gefunden.
-
- 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
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.
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.
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.
Re: Howto - zentrales Push-Nachrichten-Programm (zPNP) V3.1
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.
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.