Howto - zentrales Push-Nachrichten-Programm zPNP

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

Moderator: Co-Administratoren

maxx1976
Beiträge: 40
Registriert: 04.02.2016, 09:26
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

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

Beitrag von maxx1976 » 21.10.2019, 07:41

Hallo,

ich nutze das zPNP zum verseden von Nachrichten per Pushover und bin soweit auch zufrieden damit.

Jetzt möchte ich aber Nachrichten nicht an alle User senden sondern gezielt an bestimmte User schicken (z.B: meine Frau bei verlassen des Hauses).
Gibt es hierfür eine Lösung wie ich das am einfachsten umsetzen kann?

Danke
Maxx

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

Beitrag von dtp » 21.10.2019, 08:53

Hallo Maxx,

nicht direkt. Es gibt aktuell die Möglichkeit, User in Abhängigkeit von der Priorität der Push-Nachrichten auszuschließen bzw. einzubinden. Ich habe es z.B. so eingerichtet, dass meine Frau keine Push-Nachrichten bekommt, die eine Prio von -1 und -2 haben. Sie bekommt erst Push-Nachrichten ab Prio 0.

Ein gezieltes Senden an einzelne User ist derzeit nicht umgesetzt. Aber ich kann mal schauen, ob ich das noch eingebunden bekomme. Kann aber etwas dauern.

Eine Idee zur Umsetzung hätte ich schon. Dazu bräuchte es dann aber wohl eine weitere Systemvariable "svPushUser". Ich würde die zPNS-xx dann auch so umschreiben, dass man nicht mehr zwingend eine zweistellige Nummer als Identifikator für den User eingeben muss, sondern hier frei in der Wahl alphanumerischer Zeichen wäre, also z.B. auch einen Namen setzen kann.

Bis dann,

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.

Ondas[tm]
Beiträge: 712
Registriert: 09.04.2017, 10:16
System: CCU
Wohnort: Nierstein [D]
Hat sich bedankt: 90 Mal
Danksagung erhalten: 68 Mal

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

Beitrag von Ondas[tm] » 21.10.2019, 09:37

dtp hat geschrieben:
21.10.2019, 08:53

Ein gezieltes Senden an einzelne User ist derzeit nicht umgesetzt. Aber ich kann mal schauen, ob ich das noch eingebunden bekomme. Kann aber etwas dauern.

Bis dann,

Thorsten
Hi,
das wäre super,
über das WLAN weiß ich, wer zuletzt das Haus verlassen hat. Das wird in einer Variable gespeichert. Plan war, dem letzten, der das Haus verlassen hat, relevante Infos (Dach offen, Fenster offen, etc.) zu senden. Mangels Zeit aber noch nicht probiert / nicht umgesetzt.
Nach 5 Minuten geht die Variable in "unbestimmt", weil es dann keine Rolle mehr spielt, wer der letzt war.
Ralf
Aufgrund wiederholter nerviger Werbung und "product placement" würde ich mein Haus eher entsmarten als Mediola/NEO zu kaufen.

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

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

Beitrag von alchy » 21.10.2019, 09:56

maxx1976 hat geschrieben:
21.10.2019, 07:41
Jetzt möchte ich aber Nachrichten nicht an alle User senden sondern gezielt an bestimmte User schicken (z.B: meine Frau bei verlassen des Hauses).
Gibt es hierfür eine Lösung wie ich das am einfachsten umsetzen kann?
Das ist ganz einfach, da Pushover den Parameter device anbietet.
Darin kann man kommasepariert den Namen der Geräte übergeben. Wird der Parameter nicht gesetzt erfolgt eine Benachrichtigung aller da gemeldeter Geräte.


Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

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

Beitrag von dtp » 21.10.2019, 10:31

alchy hat geschrieben:
21.10.2019, 09:56
Das ist ganz einfach, da Pushover den Parameter device anbietet.
Stimmt. Das kann man übrigens auch mit dem zPNS-Po und dem zPNS-Ps nutzen:
Mit den Systemvariablen "CCU SV Pushover Gerät" bzw. "CCU SV Pushsafer Gerät" hat man zudem die Möglichkeit, Pushover- bzw. Pushsafer-Nachrichten gezielt an ein unter pushover.net bzw. in der Pushsafer App definiertes Gerät (Device) zu senden.
Für die anderen Push-Dienste gibt es diese Möglichkeit aber meines Wissens nach so nicht. Daher würde ich mal schauen, ob ich das nicht anderweitig löse.

Bis dann,

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.

maxx1976
Beiträge: 40
Registriert: 04.02.2016, 09:26
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

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

Beitrag von maxx1976 » 22.10.2019, 07:18

Vielen dank für die Antwort
Ich hab mir das gleich angesehen und werde jetzt an die Umsetzung gehen.

lg
Maxx

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

Beitrag von dtp » 22.10.2019, 08:08

dtp hat geschrieben:
15.10.2019, 09:03
Mit der nächsten Version von Pushover sollen die HTML-Tags zumindest auch ausgefiltert werden, wenn keine Anführungsstriche für die Textnamen bzw. die Farbcodes verwendet wurden.

Meine Frage, ob man zukünftig in Pushover für watchOS auch Bilder angezeigt bekäme, blieb bisher unbeantwortet.
So, mit Version 3.4.5 von Pushover wurde das obige Problem auf der Watch gefixt. An der Bilder-Anzeige arbeitet man offensichtlich.
2019-10-22_08h07_21.png
2019-10-22_08h07_21.png (10.52 KiB) 1892 mal betrachtet
[Daumenhoch-Smiley]
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.

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

Beitrag von dtp » 27.10.2019, 15:34

So,

hab das zPNS-Po und das zPNS-Tg nun mal für die Nutzung mit verschiedenen Usern umprogrammiert. In diesem Zusammenhang war auch eine Anpassung des Skripts "SetPushTextRef" erforderlich.

Zum Aktualisieren auf die neue Version einfach die Schlüsseldaten aus eurem aktuellen zPNS-Po bzw. zPNS-Tg in einen Editor kopieren, die angefügten Dateien herunterladen und damit die bestehenden Skripte ersetzen und schließlich die Schlüsseldaten in die neuen Skripte einfügen. Danach setzt ihr noch die Systemvariablen-Namen für die optionalen Systemvariablen, insb. für "svPushUserList".

Code: Alles auswählen

string svPushUserList = ""; ! Empfängerlist für die Push-Nachrichten (z.B: "CCU SV Push Empfängerliste"), Voreinstellung: "" 
string svPushImage = ""; ! Link auf ein anzufügendes Bild (z.B. "CCU SV Push Bild"), Voreinstellung: ""
string svPushoverSound = ""; ! Sound der Nachricht (z.B. "CCU SV Pushover Sound"), Voreinstellung: ""
string svPushoverTitle = ""; ! Titel der Nachricht (z.B. "CCU SV Pushover Titel"), Voreinstellung: "" 
string svPushoverDevice = ""; ! Pushover-Gerät (z.B. "CCU SV Pushover Gerät"), Voreinstellung: ""
Schließlich auch noch den Inhalt des Skripts "SetPushTextRef" per Copy & Paste austauschen. Das war's.

Was hat sich geändert? Nun, ihr könnt nun statt der zweistelligen Nummern beliebige Empfängernamen für die Keys und Tokens setzen (nachfolgend am Beispiel Pushover)

Code: Alles auswählen

! +++++ User-Daten +++++
! In den nachfolgenden Listen die User-Daten durch "Empfänger|" einleiten und durch EINEN Leerschritt voneinander trennen. 
string keyList = "Empfänger01|"; ! API-Basisschlüssel. Beispiel: "Empfänger01|xxxxKey1xxxx Empfänger02|xxKey2xx"
string HMinfoList = "Empfänger01|"; ! API-Schlüssel für Info-Meldungen. Beispiel: "Empfänger01|xxxxKey1xxxx Empfänger02|xxKey2xx"
string HMwarnungList = ""; ! optionale API-Schlüssel für Warnmeldungen
string HMalarmList = ""; ! optionale API-Schlüssel für Alarmmeldungen
string prioMinList = "Empfänger01|-2"; ! Prioritäten, ab der die User Nachrichten erhalten sollen. Beispiel: "Empfänger01|-2 Empfänger02|0"
und diese dann mit der neu angelegten Systemvariablen "CCU SV Push Empfängerliste" gezielt aufrufen.

ACHTUNG: Die Empfängernamen dürfen keine Leerzeichen enthalten, weil diese zur Trennung der Empfängerschlüssel dienen und entsprechend vom zPNS-xx abgefragt werden!

Hinweis: Solltet ihr andere Namen für Eure Systemvariablen bevorzugen, bitte diese auch entsprechend im Skript "SetPushTextRef" anpassen. Ansonsten funktioniert das Zurücksetzen nicht.

Beispiel:

Für Walter, Frida und Elvira wurden die Pushover-Schlüssel folgendermaßen gesetzt:

Code: Alles auswählen

! +++++ User-Daten +++++
! In den nachfolgenden Listen die User-Daten durch "Empfänger|" einleiten und durch EINEN Leerschritt voneinander trennen. 
string keyList = "Walter|<Walters_API_Schluessel> Frida|<Fridas_API_Schluessel> Elvira|<Elviras_API_Schluessel>"; ! API-Basisschlüssel. Beispiel: "Empfänger01|xxxxKey1xxxx Empfänger02|xxKey2xx"
string HMinfoList = "Walter|<Walters_HMinfo_API_Schluessel> Frida|<Fridas_HMinfo_API_Schluessel> Elvira|<Elviras_HMinfo_API_Schluessel>"; ! API-Schlüssel für Info-Meldungen. Beispiel: "Empfänger01|xxxxKey1xxxx Empfänger02|xxKey2xx"
string HMwarnungList = "Walter|<Walters_HMwarnung_API_Schluessel> Frida|<Fridas_HMwarnung_API_Schluessel> Elvira|<Elviras_HMwarnung_API_Schluessel>"; ! optionale API-Schlüssel für Warnmeldungen
string HMalarmList = ""; ! optionale API-Schlüssel für Alarmmeldungen
string prioMinList = "Frida|0 Elvira|1"; ! Prioritäten, ab der die User Nachrichten erhalten sollen. Beispiel: "Empfänger01|-2 Empfänger02|0"
Nun ruft ihr das zPNP mit folgendem Skript nur für Walter und Frida auf, so dass Elvira diese Push-Nachricht gar nicht erst bekommt.

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 svPushUserList = "CCU SV Push Empfängerliste"; ! gem. zPNS-xx, optional

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

! Empfängerliste für die Pushnachrichten
string pushUserList = "Walter Frida"; ! pushUserList = ""; sendet an alle Empfänger

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

! +++++ 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(svPushUserList)).State(pushUserList);
(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushText)).State(message);
(dom.GetObject(ID_PROGRAMS).Get(zPNP)).ProgramExecute();

WriteLine("Nachricht gesendet");
Mit dem Skript "SetPushTextRef" wird die Systemvariable automatisch immer wieder zurückgesetzt, so dass deren Inhalt nicht aus Versehen stehen bleibt und Push-Nachrichten für einzelne Empfänger ungewollt unterdrückt werden.

Berichtet mal, ob's klappt.
Zuletzt geändert von dtp am 05.12.2019, 09:33, insgesamt 15-mal geändert.
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.

Tibin
Beiträge: 507
Registriert: 26.10.2016, 16:08
System: CCU
Hat sich bedankt: 19 Mal
Danksagung erhalten: 15 Mal

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

Beitrag von Tibin » 27.10.2019, 19:40

Hallo Thorsten,
ich benutze von Anfang an für Pushover deine SV "svPushoverDevice" für diese Zwecke und müsste das dann in den aufrufenden Skripten abändern :cry:
Ich sehe aber, dass du das in der neuen Version nicht rausgenommen hast.
Kann ich dann, wenn du die neue Version so offiziell machst einfach svPushUserList auf "" setzen und alles ist gut und muss nicht geändert werden?
Gruß Tino

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

Beitrag von dtp » 28.10.2019, 07:31

Hallo Tino,

korrekt. Wenn du die Systemvariable "CCU SV Push Empfängerliste" im zPNS-xx nicht definierst, also

Code: Alles auswählen

string svPushUserList = "";
setzt, dann ändert sich überhaupt nichts für dich. Die Systemvariable wird dann erst gar nicht angelegt. Wenn du sie definierst, aber nicht füllst, dann arbeitet das zPNP ebenfalls genau so, wie vorher. Ich habe absichtlich an den bisherigen Konfigurationsmöglichkeiten nichts geändert.

Doch selbst, wenn man nicht mit der Empfängerliste arbeiten möchte, so ist die Umstellung auf die vorangestellten Namen für die Schlüssel evtl. ganz hilfreich, um sie später besser identifizieren zu können.
Tibin hat geschrieben:
27.10.2019, 19:40
ich benutze von Anfang an für Pushover deine SV "svPushoverDevice" für diese Zwecke und müsste das dann in den aufrufenden Skripten abändern :cry:
Wie gesagt, du musst diesbezüglich nichts ändern. Das bleibt so, wie es ist. Du kannst das mit den Empfängern als Zusatzoption nutzen oder es sein lassen. Ganz, wie es dir am liebsten ist. Ich nutze z.B. primär Pushover und als Fallback Telegram. Telegram unterstützt das mit den Devices aber so nicht. Mit den Empfängernamen reagieren nun beide Pushdienste gleich.

Bis dann,

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.

Antworten

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