!# variablesInv.fn 0.1 !# !# Dieses Script gibt die Systemvariablen (inklusive unsichtbarer) als JSON String aus !# !# 7'2019 foxriver76 https://github.com/foxriver76 [basierend auf variables.fn (hobbyquaker)] !# object oSysVar; string sSysVarId; string sValueType; string sValue; boolean bFirst = true; Write('{'); !# due to the fact that service messages can be automatically acknowledged, we have to loop over all and check var servs = dom.GetObject(ID_SERVICES); string id; integer serviceMessages = 0; foreach(id, servs.EnumIDs()) { var service = dom.GetObject(id); if(service) { if(service.IsTypeOf(OT_ALARMDP) && (service.Used() == true) && (service.Enabled() == true) && (service.AlState() == asOncoming)) { serviceMessages = serviceMessages + 1; } } } WriteLine('"40":{"Name":"Alarmmeldungen","TypeName":"VARDP","DPInfo":"Anzahl%20Alarmmeldungen","Value":' # dom.GetObject(40).Value() # ',"ValueMin":0,"ValueMax":65000,"ValueUnit":"","ValueType":16,"ValueSubType":0,"ValueList":""},'); Write('"41":{"Name":"Servicemeldungen","TypeName":"VARDP","DPInfo":"Anzahl%20Servicemeldungen","Value":' # serviceMessages # ',"ValueMin":0,"ValueMax":65000,"ValueUnit":"","ValueType":16,"ValueSubType":0,"ValueList":""}'); foreach (sSysVarId, dom.GetObject(ID_SYSTEM_VARIABLES).EnumIDs()) { WriteLine(','); oSysVar = dom.GetObject(sSysVarId); sValueType = oSysVar.ValueType(); Write('"' # sSysVarId # '":{"Name":"'); WriteURL(oSysVar.Name()); Write('","TypeName":"' # oSysVar.TypeName()); Write('","DPInfo":"'); WriteURL(oSysVar.DPInfo()); Write('","Value":'); if (sValueType == 20) { Write('"'); WriteURL(oSysVar.Value()); Write('"'); } else { sValue = oSysVar.Value(); if (sValueType == 2) { if (sValue) { Write("true"); } else { Write("false"); } } else { if (sValue == "") { Write("0"); } else { Write(sValue); } } } string sValueMin = oSysVar.ValueMin(); if (sValueMin == '') { sValueMin = 'null'; } string sValueMax = oSysVar.ValueMax(); if (sValueMax == '') { sValueMax = 'null'; } Write(',"Timestamp":"' # oSysVar.Timestamp()); Write('","ValueMin":' # sValueMin # ',"ValueMax":' # sValueMax # ',"ValueUnit":"'); WriteURL(oSysVar.ValueUnit()); Write('","ValueType":' # sValueType # ',"ValueSubType":' # oSysVar.ValueSubType()); if (sValueType == 2) { Write(',"ValueList":"'); WriteURL(oSysVar.ValueName0() # ';' # oSysVar.ValueName1()); } else { Write(',"ValueList":"'); WriteURL(oSysVar.ValueList()); } Write('"}'); } Write('}');