Anzahl der Auslösungen eines Alarmes bekommt. >> H I E R << oder >> H I E R <<, >> H I E R <<.....
Augenscheinlich gab es bisher keine Lösung dafür, also hab ich mal nachgegrübelt.
Obwohl ich nicht der Meinung bin das ein Thread hier im Tipps und Tricks - keine Fragen Forum
lange Beachtung findet, möchte ich es doch versuchen.
Weil Bilder mehr sagen - hier ein Beispiel:
Der Code:
Code: Alles auswählen
var summe = dom.GetObject(40).Value();
Das ist schon länger bekannt und funktioniert bei allen CCU 1 & 2 gleich, da es dort ein Alarmmeldungsobject mit der ISE_ID 40 gibt, genau wie es das für die Anzahl der Servicemeldungen gibt mit der ISE_ID 41, dazu ganz am Schluss noch ein Beispiel.
Im anhängenden Bild mit dem ROTEN Pfeil gekennzeichnet ist die Summe der verschiedenen Alarmmeldungen. Wenn nun einer der Alarme mehrfach ausgelöst wird, dann ist das wurscht für diese Zahl.
In meinem Bild-Beispiel ergibt das Script eine 2 weil ein Alarm mit Namen alarm1 anliegt und einer mit dem Namen alarm2. Das auch nur zur Erklärung. Kommen wir nun zum Interessanten
Code: Alles auswählen
var einzelne = dom.GetObject('alarm1').AlCounter();
und
Code: Alles auswählen
var einzelne = dom.GetObject('alarm2').AlCounter();
Alles klar?
Als Beispiel noch folgendes Script:
Code: Alles auswählen
var service = dom.GetObject(41).Value();
var alarme = dom.GetObject(40).Value();
var al1 = dom.GetObject('alarm1').AlCounter();
var al2 = dom.GetObject('alarm2').AlCounter();
WriteLine('Wieviel Servicemeldungen liegen an: '+service);
WriteLine('Wieviel Alarmmeldungen liegen in Summe an: '+alarme);
WriteLine('Wie oft wurde der alarm1 ausgelöst: '+al1);
WriteLine('Wie oft wurde der alarm2 ausgelöst: '+al2);
Code: Alles auswählen
Wieviel Servicemeldungen liegen an: 1
Wieviel Alarmmeldungen liegen in Summe an: 2
WriteLine('Wie oft wurde der alarm1 ausgelöst: 4
WriteLine('Wie oft wurde der alarm2 ausgelöst: 2
Und was ich noch anmerken möchte, bevor jemand drüber stolpert.
Bestätigt man die Alarme in der Klickibuntioberfläche, würde das Script trotzdem noch die "alten" Counter ausgeben. Nur nach einem Reboot der CCU geht dieser interne Counter auf 0 oder aber die Alarme werden NEU ausgelöst, dann wird der Zähler ebenfalls überschrieben, zum Thema Timestamps dann später.... Aber darum geht es hier ja noch nicht.
Um das Ganze sinnloser Weise noch fortzusetzen:
Irgendwo kam die Frage auf, die Zeit der ersten und der letzen Auslösung des Alarmes
zu bekommen.
Ich bleibe bei dem Beispiel von oben, einfacher wird es nach dem Lesen meines
>> Threads zum LastTimestamp() <<
Nun wollen wir aber die Erste und die letzte Auslösung des jeweiligen Alarmes bekommen.
Nun, das geht dann so:
Code: Alles auswählen
var service = dom.GetObject(41).Value();
var alarme = dom.GetObject(40).Value();
var al1 = dom.GetObject('AAAA').AlCounter();
var al2 = dom.GetObject('Alarm02').AlCounter();
var al1_first = dom.GetObject('alarm1').LastTimestamp();
var al1_last = dom.GetObject('alarm1').Timestamp();
var al2_first = dom.GetObject('alarm2').LastTimestamp();
var al2_last = dom.GetObject('alarm2').Timestamp();
WriteLine('Wieviel Servicemeldungen liegen an: '+service);
WriteLine('Wieviel Alarmmeldungen liegen in Summe an: '+alarme);
WriteLine('Wie oft wurde der alarm1 ausgelöst: '#al1 #" mal " # "zuerst am: " #al1_first # " zuletzt am: " # al1_last );
WriteLine('Wie oft wurde der alarm2 ausgelöst: '#al1 #" mal " # "zuerst am: " #al2_first # " zuletzt am: " # al2_last );