Howto - zentrales Push-Nachrichten-Programm zPNP

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

Moderator: Co-Administratoren

dtp
Beiträge: 10658
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.0

Beitrag von dtp » 19.11.2018, 07:58

Kann es sein, dass du da zu viel auf einmal machst? Bevor du irgendwelche Skripte kopierst, die das zPNP aufrufen, solltest du erst mal sicherstellen, dass es bei dir funktioniert. Wie das geht, habe ich ja in den ersten drei, vier Postings dieses Threads geschrieben.

Zudem sind die von mir im Eingangsposting verlinkten Programme und Skripte nur beispielhaft für den Aufruf des zPNP gedacht. Nicht alle davon können 1:1 auf die eigene CCU kopiert werden, insbesondere, wenn sie nur ganz spezielle Aktoren und Sensoren abfragen. Da musst du dann entsprechende Anpassungen vornehmen.

Aber du bist ja immerhin schon so weit gekommen, dass das der Aufruf deines zPNS-xx keine Fehlermeldungen mehr ausspuckt. Jetzt würde ich einfach mal mit der "Skript testen"-Funktion der CCU dies hier ausprobieren:

Code: Alles auswählen

! Namen der verwendeten Systemvariablen
string svPushText = "CCU SV Push Text"; ! gem. zPNS-xx, obligatorisch

! Name des zentralen Push-Nachrichten-Programms
string zPNP = "CCU PRG Push-Nachrichten"; ! obligatorisch

! +++++ Erzeugen der Test-Nachricht +++++
string message = "<font color=orange>Dies</font> ist eine <font color=green>gewöhnliche</font> Test-Nachricht.";

! +++++ zPNP ausführen +++++
(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushText)).State(message);
(dom.GetObject(ID_PROGRAMS).Get(zPNP)).ProgramExecute();

WriteLine("Nachricht gesendet");
Da sollte - sofern alles korrekt eingerichtet ist - dann eine Nachricht ankommen.
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.

RouvenE
Beiträge: 207
Registriert: 11.06.2013, 19:54

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

Beitrag von RouvenE » 19.11.2018, 19:44

Es ist so frustrierend...

Als ich zPNP vor Jahren aufsetzte, gab es kaum Probleme und lief dann zuverlässig.
Führe ich Dein Script von heute aus, so passiert absolut gar nichts.

Code: Alles auswählen

Nov 19 19:38:38 ccu3-webui daemon.info cuxd[277]: CUx-Daemon restart(1)
Nov 19 19:38:38 ccu3-webui daemon.info cuxd[277]: remove(/var/cache/cuxd_proxy.ini)
Nov 19 19:38:38 ccu3-webui daemon.info cuxd[277]: save paramsets(/usr/local/addons/cuxd/cuxd.ps) size:591
Nov 19 19:38:38 ccu3-webui daemon.info cuxd[2945]: write_pid /var/run/cuxd.pid [2945]
Nov 19 19:38:38 ccu3-webui daemon.info cuxd[2945]: CUx-Daemon(2.1.0) on CCU(3.37.8) start PID:2945
Nov 19 19:38:38 ccu3-webui daemon.info cuxd[2945]: load paramsets(/usr/local/addons/cuxd/cuxd.ps) size:591 update(0s):Mon Nov 19 19:38:38 2018
Nov 19 19:38:38 ccu3-webui daemon.info cuxd[2945]: 1 device-paramset(s) loaded ok!
Nov 19 19:38:38 ccu3-webui daemon.info cuxd[2945]: write_proxy /var/cache/cuxd_proxy.ini (2945 /usr/local/addons/cuxd/ 2.1.0 3.37.8 0)
Es haut nicht hin...

Habe, ehrlich gesagt, gestern Abend noch eine alternative Push-Benachrichtigung aus dem Forum hier aufgesetzt... Es nutzt auch CuXD2801001:1... Denke, beide werden das Gerät schon nicht parallel nutzen wollen. Aber dass nun CuXD bei Deinem Script sich gar nicht mehr rührt, ist merkwürdig.

Hatte die IP-Rauchmelder damals eigens gekauft, um im Fall der Fälle benachrichtigt werden zu können. Die damaligen HM-SEC waren sehr nervös und fehlalarm-anfällig.

dtp
Beiträge: 10658
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.0

Beitrag von dtp » 20.11.2018, 07:57

Bevor wir jetzt die Pferde scheu machen, teste doch mal eben folgendes Skript, wobei du natürlich deine Systemvariablen-Namen unter svPushText und zPNP einträgst:

Code: Alles auswählen

! Namen der verwendeten Systemvariablen
string svPushText = "CCU SV Push Text"; ! gem. zPNS-xx, obligatorisch

! Name des zentralen Push-Nachrichten-Programms
string zPNP = "CCU PRG Push-Nachrichten"; ! obligatorisch

! +++++ Erzeugen der Test-Nachricht +++++
string message = "<font color=orange>Dies</font> ist eine <font color=green>neue</font> Test-Nachricht.";

! +++++ zPNP ausführen +++++
(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushText)).State(message);
(dom.GetObject(ID_PROGRAMS).Get(zPNP)).ProgramExecute();

WriteLine("Nachricht gesendet");
Poste danach doch mal bitte die Inhalte deiner zPNP-Systemvariablen.
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.

RouvenE
Beiträge: 207
Registriert: 11.06.2013, 19:54

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

Beitrag von RouvenE » 20.11.2018, 18:58

Hallo,

die Variablen musste ich meiner Meinung nach in Deinem Skript nicht anpassen...
Bildschirmfoto 2018-11-20 um 18.56.46.png
Hoffe, das hilft... Wie sieht es bei den Variablen CCU Push Text und CCU SV Push Text aus ?

dtp
Beiträge: 10658
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.0

Beitrag von dtp » 21.11.2018, 08:29

Jetzt stellt sich mir zunächst die Frage, wo die beiden Systemvariablen "CCU Push Text" und "CCU SC Push Text Ref" herkommen? Lösche die mal bitte wieder. Hattest du die irrtümlich angelegt?

Zudem ist "CCU SV Push Prio" mit -2 zum Testen zu niederwertig angelegt. Die sollte auf 0 oder 1 gesetzt sein.

Teste es doch bitte noch mal mit diesem Skript hier:

Code: Alles auswählen

! Namen der verwendeten Systemvariablen
string svPushText = "CCU SV Push Text"; ! gem. zPNS-xx, obligatorisch
string svPushPrio = "CCU SV Push Prio"; ! gem. zPNS-xx, obligatorisch
string svPushService = "CCU SV Push Dienst"; ! gem. zPNS-xx, optional
string svPushoverSound = "CCU SV Pushover Sound"; ! gem. zPNS-Po, optional

! Name des zentralen Push-Nachrichten-Programms
string zPNP = "CCU PRG Push-Nachrichten"; ! obligatorisch

! +++++ Erzeugen der Test-Nachricht +++++
string message = "<font color=orange>Dies</font> ist noch eine <font color=red>neue</font> Test-Nachricht.";

! +++++ Auswahl des Push-Dienstes +++++
if(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushService)){(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushService)).State("1");}

! +++++ Setzen der Priorität für die Push-Nachricht +++++
(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushPrio)).State("1");

! +++++ Sound für Pushover-Nachricht +++++
if(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushoverSound)){(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushoverSound)).State("gamelan");}

! +++++ zPNP ausführen +++++
(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushText)).State(message);
(dom.GetObject(ID_PROGRAMS).Get(zPNP)).ProgramExecute();

WriteLine("Nachricht gesendet");
Falls es dann immer noch nicht geht, schicke mir doch bitte mal per PN deine zPNP-Skripte und einen Screenshot deiner CUxD-Geräte (ausgeklappt nach Klick auf das Plus-Zeichen).

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.

EckartS
Beiträge: 243
Registriert: 13.11.2012, 23:11
Wohnort: Nürnberg
Danksagung erhalten: 2 Mal

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

Beitrag von EckartS » 28.11.2018, 12:48

Hallo,

ich mühe mich gerade ab, das Bild einer Hikvision Kamera (HiWartch I430) mit zPNP 3.# per Pushover zu senden und komme da nicht weiter.
Ich habe folgende Tipps beherzigt: viewtopic.php?f=31&t=26282&hilit=zpnp+b ... &start=740 Aber erfolglos.

Die Kamera liefert im Browser zuverlässig ein Stillbild mit 2688x1520px mit der Zeile
http://user:password@192.168.##.##:81/I ... 01/picture, also habe ich im Script eingesetzt:

Code: Alles auswählen

string url = "http://user:password@192.168.##.##:81/ISAPI/Streaming/channels/101/picture";

Das Ergebnis ist, dass in /tmp eine Datei "image.jgp" ohne Inhalt angelegt wird und die Textnachricht ohne Bild gesendet wird.

Hat jemand sonst so ein Problem schon gehabt oder besser noch schon gelöst?

Viele Grüße, EckartS
711 Kanäle in 113 Geräten und 134 CUxD-Kanäle in 24 CUxD-Geräten

dtp
Beiträge: 10658
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.0

Beitrag von dtp » 28.11.2018, 13:54

Dein Problem hat eigentlich nichts mit dem zPNP zu tun, sondern ist eine Frage der Zugriffsberechtigung. Evtl. hilft dir das hier weiter. Ansonsten würde ich dir empfehlen, mal hier im Forum nach ähnlich gelagerten Problemen mit dem Zugriff auf Webcams zu suchen.
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.

Benutzeravatar
blackhole
Beiträge: 3730
Registriert: 21.07.2015, 14:03
System: CCU
Hat sich bedankt: 184 Mal
Danksagung erhalten: 587 Mal

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

Beitrag von blackhole » 28.11.2018, 15:00

dtp hat geschrieben:
28.11.2018, 13:54
sondern ist eine Frage der Zugriffsberechtigung
Im Verzeichnis /tmp? Eher nicht:

Code: Alles auswählen

drwxrwxrwt    7 root     root           220 Nov 28 10:19 tmp
Da darf jeder rein und lesen/erstellen/schreiben.

Meine Skripte legen Snapshots übrigens auch (erfolgreich und ausschließlich) temporär in /tmp/ ab um den Flashspeicher nicht unnötig zu belasten.

dtp
Beiträge: 10658
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.0

Beitrag von dtp » 28.11.2018, 15:38

Aber es geht doch um den Zugriff auf die Webcam, um von ihr das Bild zu holen.
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.

Depechem
Beiträge: 93
Registriert: 21.10.2018, 07:33
Wohnort: Dresden
Hat sich bedankt: 1 Mal
Danksagung erhalten: 2 Mal

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

Beitrag von Depechem » 20.12.2018, 09:00

Hallo ich mit dem zPNP V3.0 eingestiegen und hätte 2 Fragen
Bis jetzt habe ich laut Anleitung alles wie beschrieben abgearbeitet.
Ich besitzte die Programme:
- CCU PRG Push-Nachrichten
- CCU PRG Servicemeldungen (Servicemeldungen werden mir auch an alle Devices gesandt)

Um nur ein bestimmtes Device mit speziellem Ton eine Servicenachricht zu senden hab ich jetzt folgendes gemacht:
im Skript "CCU PRG Push-Nachrichten"

Code: Alles auswählen

! +++++ Namen der optionalen Systemvariablen (auf "" setzen, wenn nicht benötigt) +++++
string svPushPrio = "CCU SV Push Prio"; ! Prioritäten der Push-Nachrichten, Voreinstellung: "CCU SV Push Prio"
string svPushService = "CCU SV Push Dienst"; ! Push-Dienste, Voreinstellung: "CCU SV Push Dienst"
string svPushImage = "CCU SV Push Bild"; ! Link auf ein anzufügendes Bild (z.B. "CCU SV Push Bild"), Voreinstellung: ""
string svPushoverSound = "CCU SV Pushover Sound"; ! Sound der Nachricht (z.B. "CCU SV Pushover Sound"), Voreinstellung: ""
string svPushoverTitle = "CCU SV Pushover Titel"; ! Titel der Nachricht (z.B. "CCU SV Pushover Titel"), Voreinstellung: "" 
string svPushoverDevice = "CCU SV Pushover Gerät"; ! Pushover-Gerät (z.B. "CCU SV Pushover Gerät"), Voreinstellung: ""
im Skript "CCU PRG Servicemeldungen"

Code: Alles auswählen

string svPushoverDevice = "CCU.SV_Pushover.Gerät"; ! Pushover-Gerät (z.B. "CCU SV Pushover Gerät"), Voreinstellung: ""

! #####################################################################
! ##### ab hier bitte keine weiteren Einstellungen mehr vornehmen #####
! #####################################################################
! +++++ Sound für Pushover- bzw. Pushsafer-Nachrichten
if(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushoverSound)){(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushoverSound)).State("intermission");}

! +++++ Auswahl des Push-Devices (nur, wenn "CCU SV Push Device" vorhanden)
dom.GetObject("CCU SV Pushover Gerät").State("iPhoneThomas");
Laut Beschreibung habe ich es aber in dem Code geändert bei dem eigentlich expliziert steht

Code: Alles auswählen

ab hier bitte keine weiteren Einstellungen mehr vornehmen 
es funktioniert auch, nur sollte ich dies eher an anderer Stelle eintragen. Falls ja wo und wie.
Mit Prioritätenalarmen möchte ich nicht einzelne Devices ausklammern sondern nur direkt über die Devicezuordnung bzw. über verschiedene API-Schlüssel Zuordnungen nur kann ich in Pushover selbst ja die verschiedenen Applications(API-Schlüssel) nicht nur bestimmten Devices zuordnen.
-----------------------------------------------------------------------------------------------------------------------------------------
und als zweites möchte ich gern in den Pushover Titel nicht wie im Moment mit dem API-Schlüssel-Namen befüllen sondern mit dem ersten Teil der Nachricht. Also im Beispiel einer Servicemeldung der Kommunikation sollte im Titel "Kommunikationsstörung" stehen, im Beispiel einer Servicemeldung der Batterie sollte im Titel "batteriealarm"

wo und wie könnte ich dies umsetzen
mein "CCU PRG Servicemeldungen" Skript:

Code: Alles auswählen

! Löschen bestätigbarer Kommunikationsstörungen (1 = an, 0 = aus)
integer autoAck = 1;

! Namen der verwendeten Systemvariablen
string svPushText = "CCU SV Push Text"; ! gem. zPNS-xx, obligatorisch
string svPushPrio = "CCU SV Push Prio"; ! gem. zPNS-xx, obligatorisch
string svPresent = "Haus SV Anwesenheit"; ! optional
string svPushoverSound = "CCU SV Pushover Sound"; ! gem. zPNS-Po, optional
string svPushoverDevice = "CCU.SV_Pushover.Gerät"; ! Pushover-Gerät (z.B. "CCU SV Pushover Gerät"), Voreinstellung: ""

! Name des zentralen Push-Nachrichten-Programms
string zPNP = "CCU PRG Push-Nachrichten"; ! obligatorisch
Vielen Dank im voraus
Gruß Thomas
Raspimatic auf RPI3b+
HM & HMiP
FHEM

Antworten

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