Howto - zentrales Push-Nachrichten-Programm zPNP

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

Moderator: Co-Administratoren

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 Push-Nachrichten-Programm (zPNP) V3.1

Beitrag von dtp » 11.03.2019, 08:28

An das Versenden von Bildern muss ich mich noch ein wenig dran setzen. Das läuft noch nicht so wirklich optimal. Problem ist, dass ich das selbst so gar nicht nutze.

Mit Pushover klappt das aber alles deutlich einfacher, als mit Telegram. Bei Telegram kann man Bilder nicht so einfach als Attachments an eine Textnachricht anfügen. Auch das war ein Grund, weshalb ich mich bisher nicht so intensiv damit beschäftigt habe.
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.

Micha121
Beiträge: 203
Registriert: 21.12.2016, 23:53
Wohnort: Rheinland-Pfalz

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

Beitrag von Micha121 » 12.03.2019, 01:19

Hi,

auch nach unzähligen Versuchen, bekomme ich es einfach nicht hin... Ich bekomme keinerlei Nachrichten via Pushover. Die Testnachricht über das Webinterface von Pushover funktioniert hingegen.

Ich bin fast nach Anleitung vorgegangen - außer beim CUxD Gerät, da musste ich die Seriennummer 4 verwenden und habe es im Script geändert. Aber ob ich es geändert habe, oder nicht - keine Nachricht via CCU3. Anbei einige Screenshots. Könnt Ihr mir bitte weiterhelfen? Ich möchte das Script zur Sturmwarnung umsetzen, die Variablen werden auch geändert, auch die "Bars" werden mir in den SVs angezeigt, aber es wird keine Nachricht versendet. Verwende Pushover iOS und entsprechend auch einen Mac, falls das von Bedeutung ist.

Danke im Voraus.
Bildschirmfoto 2019-03-12 um 01.10.35.png
Bildschirmfoto 2019-03-12 um 01.10.53.png
Bildschirmfoto 2019-03-12 um 01.11.26.png
Bildschirmfoto 2019-03-12 um 01.14.59.png

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 Push-Nachrichten-Programm (zPNP) V3.1

Beitrag von dtp » 12.03.2019, 08:06

Bevor du das Sturmwarnungsskript testet, solltest du erst mal schauen, ob überhaupt eine Push-Nachricht ankommt.

Bitte poste mal den Inhalt der relevanten Systemvariablen, wie hier gezeigt.

Anschließend füge mal das folgende Skript unter "Skript testen" ein und führe es aus (ggf. vorher die Namen der Systemvariablen anpassen).

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 eine <font color=green>gewöhnliche</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("0");

! +++++ 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");
Poste danach noch mal bitte wieder den Inhalt der Systemvariablen, wenn es nicht funktioniert hat.

Das Prüfen der beiden Anwesenheitszustände in deinem zPNP kannst du auch vollständig entfernen. Das hat so keinen wirklichen Nutzen.
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.

Micha121
Beiträge: 203
Registriert: 21.12.2016, 23:53
Wohnort: Rheinland-Pfalz

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

Beitrag von Micha121 » 12.03.2019, 14:57

Hi,

na das ist ja das Problem - ich bekomme keinerlei Nachrichten, auch nicht mit dem Testprogramm!

Das Sturmscript scheint zu funktionieren, das Test-Script auch, weil ich dann in verschiedenen Farben in der SV die Testnachrichten drin habe.
Bildschirmfoto 2019-03-12 um 14.55.44.png
Woran könnte es liegen?



Vielen Dank und viele Grüße

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 Push-Nachrichten-Programm (zPNP) V3.1

Beitrag von dtp » 12.03.2019, 15:12

Wenn ich mir deinen Screenshot so ansehe, dann verwendest du für die Info-Meldungen denselben Code, wie für den API-Basisschlüssel.
2019-03-12_15h09_53.jpg
Die müssen sich aber unterscheiden.
2019-03-12_15h17_00.jpg
2019-03-12_15h17_55.jpg
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.

Micha121
Beiträge: 203
Registriert: 21.12.2016, 23:53
Wohnort: Rheinland-Pfalz

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

Beitrag von Micha121 » 12.03.2019, 16:01

Jaaaa endlich!!!! Das war das Problem!!! Danke Dir, es funktioniert! :D

Danke, dtp!

Micha121
Beiträge: 203
Registriert: 21.12.2016, 23:53
Wohnort: Rheinland-Pfalz

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

Beitrag von Micha121 » 12.03.2019, 16:45

Obwohl, hier noch eine Kleinigkeit:
Bildschirmfoto 2019-03-12 um 16.44.04.png
Ich glaube, dieses Problem gab es schon einmal und Du konntest es einfach lösen, daher melde ich es Dir mal.


Viele Grüße

Micha121
Beiträge: 203
Registriert: 21.12.2016, 23:53
Wohnort: Rheinland-Pfalz

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

Beitrag von Micha121 » 12.03.2019, 17:11

dtp hat geschrieben:
26.01.2016, 20:49
Hier zwei Programme, die ich zum Erkennen der Fenster- und Türenzustände verwende.

Das erste Programm dient zum Erkennen von offenen oder gekippten Fenstern beim Abschließen der Haustür.

2018-09-21_17h48_15.png

Und das zugehörige Skript:

Code: Alles auswählen

! Meldung Fenster/Türen schließen
! Version 2.5.3, Autor: dtp

! Gewerkname für die Türen- und Fenster-Sensoren
string trade = "Verschluss";

! Listen geöffneter und gekippter Fenster und Türen, die nicht berücksichtigt werden sollen (trennen mit "\t")
string exTiltList = "UG Keller Fenster"; ! gekippte Fenster und Türen
string exOpenList = ""; ! geöffnete Fenster und Türen

! Schlüsselbegriffe von Fenstern und Türen mit Priorität 2 (trennen mit "\t")
string highPrioKeywordsList = "EG\tUG";

! 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 svPushoverSound = "CCU SV Pushover Sound"; ! gem. zPNS-Po, optional

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

! #####################################################################
! ##### ab hier bitte keine weiteren Einstellungen mehr vornehmen #####
! #####################################################################

! +++++ Deklaration weiterer Variablen +++++
var device;
string index; string list = ""; string stateList = ""; string message; string highPrioKeyword; 
integer prio; integer prioMax = -2;

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

! +++++ Auslesen der Fenster- und Türenzustände und Erzeugen einer Liste +++++
foreach(index, dom.GetObject(ID_FUNCTIONS).Get(trade).EnumUsedIDs()){
  if(dom.GetObject(index).IsTypeOf(OT_CHANNEL)){
    device = dom.GetObject(dom.GetObject(index).Device());
    if(!exTiltList.Contains(device.Name())){
      if((device.HssType() == "HM-Sec-RHS") || (device.HssType() == "HmIP-SRH")){
        if(dom.GetObject(index).DPByHssDP("STATE").Value() == 1){
          list = list#"\n- "#device.Name()#"<font color=orange> gekippt</font>.";
          stateList = stateList#"\t"#dom.GetObject(index).DPByHssDP("STATE").Value();
        }
      }
    }
    if(!exOpenList.Contains(device.Name())){
      if((device.HssType() == "HM-Sec-RHS") || (device.HssType() == "HmIP-SRH")){
        if(dom.GetObject(index).DPByHssDP("STATE").Value() == 2){
          list = list#"\n- "#device.Name()#"<font color=red> offen</font>.";
          stateList = stateList#"\t"#dom.GetObject(index).DPByHssDP("STATE").Value();
        }
      }
      if((device.HssType() == "HM-Sec-SC") || (device.HssType() == "HM-Sec-SC-2") || (device.HssType() == "HM-Sec-SCo") || (device.HssType() == "HMIP-SWDO")){
        if(dom.GetObject(index).DPByHssDP("STATE").Value() == 1){
          list = list#"\n- "#device.Name()#"<font color=red> offen</font>.";
          stateList = stateList#"\t2";
        }
      }
    }
  }
}

! +++++ Setzen der Priorität in Abhängigkeit vom Zustand der Fenster und Türen sowie der Schlüsselbegriffe +++++
if(stateList.Contains("2")){
  foreach(highPrioKeyword, highPrioKeywordsList){
    if(list.Contains(highPrioKeyword)){prio = 2; if(prio >= prioMax){prioMax = prio;}} 
    else{prio = 1; if(prio >= prioMax){prioMax = prio;}}
  }
}
else{prio = "0"; if(prio >= prioMax){prioMax = prio;}}
(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushPrio)).State(prioMax);

! +++++ Erzeugen der Nachricht +++++
if(prio == 2){message = "<font color=red>Achtung, Fenster/Türen schließen!</font>";}
else{message = "<font color=orange>Achtung, Fenster/Türen schließen!</font>";}

if(list != ""){
  message = message#list;
  
  ! +++++ zPNP ausführen +++++
  (dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushText)).State(message);
  (dom.GetObject(ID_PROGRAMS).Get(zPNP)).ProgramExecute();
}
Mit den Skriptvarialben "exListTilt" und "exListOpen" kann man die Erkennung bestimmter gekippter und geöffneter Fenster oder Türen ausschließen. Das ist z.B. sinnvoll, wenn man über ein geöffnetes Garagentor oder ein gekipptes Kellerfenster nicht informiert werden möchte.
Sorry, wenn ich wieder mal mit einem Problem ankomme... aber dieses Skript funktioniert bei mir gar nicht. Es wird noch nicht mal bei "Skript testen" angezeigt, dass eine Nachricht versendet wurde. Was mach ich falsch?

Habe gerade gesehen, dass ich nicht der einzige bin, bei dem das Skript nicht funktioniert, bei mir also auch nicht...

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 » 13.03.2019, 07:54

Micha121 hat geschrieben:
12.03.2019, 17:11
Habe gerade gesehen, dass ich nicht der einzige bin, bei dem das Skript nicht funktioniert, bei mir also auch nicht...
Der Grund war aber nicht das Skript, denn das funktioniert, wie es soll, sondern ein Problem mit dem Gewerk (klick!). Da ist die ReGaHSS zuweilen etwas buggy.

Auch das Sturm-Skript sollte laufen. Nur zur Sicherheit. Ist "Wetterstation" wirklich der Name von Kanal 1 deiner Wetterstation? Bekanntlich sollten Kanäle nicht so benannt werden, wie die Geräte, zu denen sie gehören. Das kann vor allen Dingen zu Problemen führen, wenn das Gerät mehr als einen Kanal hat.
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
Andronid
Beiträge: 265
Registriert: 06.03.2012, 17:52
Wohnort: Beelitz

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

Beitrag von Andronid » 21.03.2019, 13:23

Hallo Thorsten, du hattest natürlich vollkommen Recht, dass es inzwischen nichts mehr mit dem Skript der Sturmmeldungen zu tun hat. Inzwischen habe ich auch noch eine Idee gehabt, dass ich vielleicht den falschen Kanal des CUxD Gerätes ansteuere. Genau so war es auch. Weil bei mir der Kanal 1 schon belegt war, habe ich alles auf Kanal 2 angelegt. Allerdings nicht in dem Skript vom zPNP, was ich nun geändert habe. Dann Habe ich dein Testprogramm gestartet, aber leider kommen immer noch keine Pushnachrichten auf meinem Handy an. Jetzt fällt mir nichts mehr ein. Die key´s und Tooken habe ich noch einmal neu eingetragen und nochmals überprüft, die Bezeichnungen der SV sind korrekt. Ich habe keine Idee mehr.
Beste Grüße
Andronid


--------------------------------------------------------------------------------------------------------
RaspiMatic, Fw: 3.51.6, 132 Kanäle in 66 Geräten und 48 CUxD-Kanäle in 3 CUxD-Geräten:

---------------------------------------------------------------------------------------------------------

Antworten

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