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

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

Moderator: Co-Administratoren

Belei
Beiträge: 59
Registriert: 20.07.2016, 21:57

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

Beitrag von Belei » 17.05.2019, 09:28

Guten Morgen,
ich bin von meiner CCU2 auf Charly umgestiegen und merke das es hier auch "interessante" Watchdog Alarmmedungen gibt.
Kein Internet, under Voltage etc...

Gibt es eine Möglichkeit die Medungen auch per All in One Script zuversenden?
Ich nutze dtps Script.

dtp
Beiträge: 6187
Registriert: 21.09.2012, 08:09
Wohnort: Stuttgart

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

Beitrag von dtp » 17.05.2019, 10:23

Belei hat geschrieben:
17.05.2019, 09:28
Gibt es eine Möglichkeit die Medungen auch per All in One Script zuversenden?
Ich nutze dtps Script.
Was meinst du denn konkret mit "All in One Script"? Kannst du mal ein Beispiel verlinken?

Im Grunde genommen kann jedes Skript an das zPNP bzw. zPNS-xx angepasst werden.
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container, Homebridge auf Raspberry Pi 3B+;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

Belei
Beiträge: 59
Registriert: 20.07.2016, 21:57

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

Beitrag von Belei » 17.05.2019, 10:31

Ich meinte das ich deinen AiO Script nutze, hier die ersten beiden Zeilen:

! Servicemeldungen auslesen und senden mittels zPNP
! Version 2.2, Autor: dtp (auf Basis des *allinclusive*-Skripts von Alchy)

Aber der schickt mir aktuell ja "nur" (über zPNP)die Servive Meldungen nicht die Alarm Meldungen.

dtp
Beiträge: 6187
Registriert: 21.09.2012, 08:09
Wohnort: Stuttgart

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

Beitrag von dtp » 17.05.2019, 10:55

Nun ja, das All-Inclusive-Skript ist eigentlich auf die Systemvariable 41 beschränkt. Daher nenne ich es auch lieber Servicemeldungen-Skript. Die Alarmmeldungen laufen dagegen über die Systemvariable 40. Dafür sollte dann ein separates Skript erzeugt werden. Damit habe ich mich aber bisher noch nicht beschäftigt.
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container, Homebridge auf Raspberry Pi 3B+;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

stan23
Beiträge: 522
Registriert: 13.12.2016, 21:14
Wohnort: Altmühltal
Kontaktdaten:

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

Beitrag von stan23 » 17.05.2019, 19:20

Ich lasse mir die Alarmmeldungen folgendermaßen schicken:
Alarmmeldungen_Programm.PNG

Code: Alles auswählen

EDIT: von dtp angepasstes Skript in nächsten Beitrag
Es war bei mir bisher aber erst ein Mal im Einsatz, mag sein dass da noch Bugs drin sind.
Zuletzt geändert von stan23 am 13.06.2019, 09:44, insgesamt 1-mal geändert.
Viele Grüße
Marco

RaspberryMatic
~60 Geräte (HM, HmIP, HMW, HBW, AskSin)

dtp
Beiträge: 6187
Registriert: 21.09.2012, 08:09
Wohnort: Stuttgart

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

Beitrag von dtp » 21.05.2019, 10:08

Hallo Marco,

danke für das Skript. Ich schau mir das noch mal an. Sieht aber auf den ersten Blick schon ganz gut aus.

Kleiner Hinweis:

Code: Alles auswählen

! stan23: "orange" replaced by '#FF9900'
Das ist seit Version 3.x des zPNP nicht mehr nötig, da das automatisch umgewandelt wird. Allerdings wandel ich in "#ffa500" um. 8)

Hab's mal eben auf die Schnelle angepasst, aber selbst noch nicht getestet.

Code: Alles auswählen

! Alarmmeldungen auslesen und senden mittels zPNP
! Version 1.0, Autor: dtp (basierend auf einem Entwurf von stan23)

! Löschen bestätigbarer Kommunikationsstörungen (true = an, false = aus)
boolean autoAckFlag = true;

! Nur im Falle zusätzlicher Servicemitteilungen senden (true = an, false = aus)
boolean addFlag = true;

! 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
string svPushsaferSound = "CCU SV Pushsafer Sound"; ! gem. zPNS-Ps, 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 +++++
string message; string list = ""; string serviceTmp;
integer valueDiff = 0;

! +++++ Sound für Pushover- bzw. Pushsafer-Nachrichten
if(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushoverSound)){(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushoverSound)).State("siren");}
if(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushsaferSound)){(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushsaferSound)).State("25");}

! +++++ Prüfen, ob neue Alarmmeldungen hinzugekommen sind, falls addFlag = true
if(addFlag){valueDiff = dom.GetObject(40).Value() - dom.GetObject(40).LastValue();}
else{valueDiff = 1;}

if(dom.GetObject(ID_SYSTEM_VARIABLES)){
  if(valueDiff > 0){
    foreach(serviceTmp, dom.GetObject(ID_SYSTEM_VARIABLES).EnumIDs()) {
      if(dom.GetObject(serviceTmp).IsTypeOf(OT_ALARMDP) && (dom.GetObject(serviceTmp).AlState() == asOncoming)){
        message = dom.GetObject(serviceTmp).DPInfo();

        ! +++++ Meldungen über bestätigbare Kommunikationsstörungen automatisch löschen +++++
        if(autoAckFlag){dom.GetObject(serviceTmp).AlReceipt();}

        list = list # "\n" # dom.GetObject(serviceTmp).Name() # ": " # message;
      }
    }

    ! +++++ Setzen der Systemvariablen svPushPrio für die Push-Nachricht +++++
    (dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushPrio)).State(2);

    ! +++++ Erzeugen der Nachricht +++++
    message = "<font color=red>Alarmmeldung!</font>";
    message = message#list;

    ! +++++ zPNP ausführen +++++
    (dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushText)).State(message);
    (dom.GetObject(ID_PROGRAMS).Get(zPNP)).ProgramExecute();
  }
}
Zuletzt geändert von dtp am 21.05.2019, 10:33, insgesamt 1-mal geändert.
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container, Homebridge auf Raspberry Pi 3B+;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

stan23
Beiträge: 522
Registriert: 13.12.2016, 21:14
Wohnort: Altmühltal
Kontaktdaten:

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

Beitrag von stan23 » 21.05.2019, 10:12

Hi Thorsten,
du kannst es gerne weiterverwenden, in dein Servicemeldungen-Skript integrieren oder separat dazustellen.
dtp hat geschrieben:
21.05.2019, 10:08
Das ist seit Version 3.x des zPNP nicht mehr nötig, da das automatisch umgewandelt wird.
Das war mir entgangen, allerdings bin ich mir nichtmal sicher ob ich auf die V3 umgestiegen bin :)
Viele Grüße
Marco

RaspberryMatic
~60 Geräte (HM, HmIP, HMW, HBW, AskSin)

Antworten

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