2024-12-12, leif hagman, easysoft.se Ups Testen: ----------- UpsTest.exe läggs till som en Custom Service med namnet 'Riello' eller 'Eaton' Filen läggs i ApiExec-katalogen och anropas med 4 argument separerade med mellanslag. Ytterligare 2 argument skickas med automatiskt (TestName, DevId). Med hjälp av DevId hämtas status, ipAddr, readcomm, trapcomm etc för noden från SQL. Status är Priority (larmfärg) i Easy Man (en siffra mellan 1-7) Anm: upsStatus kan ej skickas med pga att pollmotorn inte vet denna status. I programmet finns ett antal konstanter med OID-värden Riello Const upsEstimatedMinutesRemaining = "1.3.6.1.2.1.33.1.2.3.0" Const upsBatteryVoltage = "1.3.6.1.2.1.33.1.3.3.1.3.1" -- table value, Const upsBatteryTemperature = "1.3.6.1.2.1.33.1.2.7.0" Const entPhySensorValue = "1.3.6.1.2.1.99.1.1.1.4.1" -- table value, centigrader, gör en div/10 (-1 i retur för bodbysund-ups2, gäller alla ups2 om jag minns rätt) Eaton Const xupsBatTimeRemaining = "1.3.6.1.4.1.534.1.2.1.0" -- secs (gör en div/60 för att redovisa minuter) Const xupsInputVoltage = "1.3.6.1.4.1.534.1.3.4.1.2.1" -- table value Const xupsEnvAmbientTemp = "1.3.6.1.4.1.534.1.6.1.0" Const xupsEnvRemoteTemp = "1.3.6.1.4.1.534.1.6.5.0" Det finns 3 olika villkor med tröskelvärden att välja på: > skall vara större än tröskelvärdet < skall vara mindre än tröskelvärdet | skall vara inom ett intervall där tröskelvärden anges som min-max, t ex 10-30 Ex. på anrop Riello upstest.exe upsEstimatedMinutesRemaining>120 upsBatteryVoltage>200 upsBatteryTemperature<35 entPhySensorValue<30 upstest.exe upsEstimatedMinutesRemaining>120 upsBatteryVoltage>200 upsBatteryTemperature<35 entPhySensorValue|10-30 Eaton upstest.exe xupsBatTimeRemaining>120 xupsInputVoltage>200 xupsEnvAmbientTemp<35 xupsEnvRemoteTemp<30 Tröskelvärden som sätts är 'OK-värden', dvs >120 min ska vara uppfyllt i exemplet ovan. SnmpTrappen upsAlarm skickas till Easy Man efter att pollning gjorts. Trappen har förutom värden för objekten även en variabel för - Testens namn - pollStatus som kan vara unknown(0), response(1), argError(2), snmpError(3), noResponse(4) - upsStatus som kan vara unknown(0), ok(1), notOk(2), notValidated(3) Följande regelverk gäller för olika situationer: Om argError - skicka trap med följande variabler serviceName=Riello eller Eaton pollStatus=argError(2) upsStatus=unknown(0) upsEstMinutesRemStatus=unknown(0) upsEstimatedMinutesRemaining=0 upsBatteryVoltageStatus=unknown(0) upsBatteryVoltage=0 upsBatteryTemperatureStatus=unknown(0) upsBatteryTemperature=0 upsRoomTemperatureStatus=unknown(0) upsRoomTemperature=0 Om snmpError - skicka trap med följande variabler serviceName=Riello eller Eaton pollStatus=snmpError(3) upsStatus=unknown(0) upsEstMinutesRemStatus=unknown(0) upsEstimatedMinutesRemaining=0 upsBatteryVoltageStatus=unknown(0) upsBatteryVoltage=0 upsBatteryTemperatureStatus=unknown(0) upsBatteryTemperature=0 upsRoomTemperatureStatus=unknown(0) upsRoomTemperature=0 Om ej svar - skicka trap med följande variabler serviceName=Riello eller Eaton pollStatus=noResponse(4) upsStatus=unknown(0) upsEstMinutesRemStatus=unknown(0) upsEstimatedMinutesRemaining=0 upsBatteryVoltageStatus=unknown(0) upsBatteryVoltage=0 upsBatteryTemperatureStatus=unknown(0) upsBatteryTemperature=0 upsRoomTemperatureStatus=unknown(0) upsRoomTemperature=0 Om svar och alla villkor är uppfyllda samt status i Easy Man <> 6(normal) - skicka trap med följande variabler serviceName=Riello eller Eaton pollStatus=response(1) upsStatus=ok(1) upsEstMinutesRemStatus=ok(1) upsEstimatedMinutesRemaining=response-värdet upsBatteryVoltageStatus=ok(1) upsBatteryVoltage=response-värdet upsBatteryTemperatureStatus=ok(1) upsBatteryTemperature=response-värdet upsRoomTemperatureStatus=ok(1) upsRoomTemperature=response-värdet Om svar och argumentet 1 (Minutes Left) har överskridit tröskelvärdet - skicka trap med följande variabler serviceName=Riello eller Eaton pollStatus=response(1) upsStatus=notOk(2) upsEstMinutesRemStatus=notOk(2) upsEstimatedMinutesRemaining=response-värdet upsBatteryVoltageStatus=notValidated(3) upsBatteryVoltage=response-värdet upsBatteryTemperatureStatus=notValidated(3) upsBatteryTemperature=response-värdet upsRoomTemperatureStatus=notValidated(3) upsRoomTemperature=response-värdet Om svar och argumentet 2 (Batt Volt) har överskridit tröskelvärdet - skicka trap med följande variabler serviceName=Riello eller Eaton pollStatus=response(1) upsStatus=notOk(2) upsEstMinutesRemStatus=notValidated(3) upsEstimatedMinutesRemaining=response-värdet upsBatteryVoltageStatus=notOk(2) upsBatteryVoltage=response-värdet upsBatteryTemperatureStatus=notValidated(3) upsBatteryTemperature=response-värdet upsRoomTemperatureStatus=notValidated(3) upsRoomTemperature=response-värdet Om svar och argumentet 3 (Batt Temp) har överskridit tröskelvärdet - skicka trap med följande variabler serviceName=Riello eller Eaton pollStatus=response(1) upsStatus=notOk(2) upsEstMinutesRemStatus=notValidated(3) upsEstimatedMinutesRemaining=response-värdet upsBatteryVoltageStatus=notValidated(3) upsBatteryVoltage=response-värdet upsBatteryTemperatureStatus=notOk(2) upsBatteryTemperature=response-värdet upsRoomTemperatureStatus=notValidated(3) upsRoomTemperature=response-värdet Om svar och argumentet 4 (Room Temp) har överskridit tröskelvärdet - skicka trap med följande variabler serviceName=Riello eller Eaton pollStatus=response(1) upsStatus=notOk(2) upsEstMinutesRemStatus=notValidated(3) upsEstimatedMinutesRemaining=response-värdet upsBatteryVoltageStatus=notValidated(3) upsBatteryVoltage=response-värdet upsBatteryTemperatureStatus=notValidated(3) upsBatteryTemperature=response-värdet upsRoomTemperatureStatus=notOk(2) upsRoomTemperature=response-värdet Kommentarer: ' special handling If SnmpTest.objOid(4) = OID_entPhySensorValue Then If SnmpTest.objRespVal(4) > 0 Then SnmpTest.objRespVal(4) = Round(SnmpTest.objRespVal(4) / 10, 0) End If End If If SnmpTest.objOid(1) = OID_xupsBatTimeRemaining Then SnmpTest.objRespVal(1) = Round(SnmpTest.objRespVal(1) / 60, 0) End If ' end special handling För att köra i debug-mode ska en tom fil skapas med namnet upsdebug.txt. OBS! tag bort/döp om filen då testen är klar. Se UPS-pollning.txt för hur tröskelvärden har satts upp. Se Event Action-easyUpsTraps i Easy Man för hur trappar tas emot och hanteras.