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.
Moderator: Co-Administratoren
Was meinst du denn konkret mit "All in One Script"? Kannst du mal ein Beispiel verlinken?
Code: Alles auswählen
EDIT: von dtp angepasstes Skript in nächsten Beitrag
Code: Alles auswählen
! stan23: "orange" replaced by '#FF9900'
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();
}
}
Das war mir entgangen, allerdings bin ich mir nichtmal sicher ob ich auf die V3 umgestiegen bin
Hallo zusammen,stan23 hat geschrieben: ↑17.05.2019, 19:20Ich lasse mir die Alarmmeldungen folgendermaßen schicken:
Alarmmeldungen_Programm.PNG
Es war bei mir bisher aber erst ein Mal im Einsatz, mag sein dass da noch Bugs drin sind.Code: Alles auswählen
EDIT: von dtp angepasstes Skript in nächsten Beitrag
Vielen Dank für deinen Beitrag!dtp hat geschrieben: ↑23.07.2019, 08:06Auf was steht denn bei dir "addFlag" im Skript? Wenn diese lokale Variable auf "true" gesetzt ist, erfolgt eine Meldung nur dann, wenn ein neuer Alarm hinzugekommen ist. Macht bei den Alarmmeldungen vermutlich nicht so viel Sinn. Setze ihn daher mal auf "false".