This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm that you accept these cookies being set.

SNMP for UPS SHTYL (SW250/SW500/SW1000)
#1
Code:
--UPS SHTYL (SW250/SW500/SW1000)
--IC-SNMP/Web
--MIB (https://www.shtyl.ru/upload/iblock/74f/Shtyl_MIB_UPS2_06.mib)

ups_ip = "192.168.0.1"

Connection_status = "1/6/25"

DataUPS = {}
DataUPS[1] = {oid=".1.3.6.1.2.1.33.1.2.1.0", knx_grop="1/6/26", dtype=5}
-- upsBatteryStatus{unknown(1),batteryNormal(2),batteryLow(3),batteryDepleted(4)}

DataUPS[2] = {oid=".1.3.6.1.2.1.33.1.2.2.0", knx_grop="1/6/27", dtype=99}
-- upsSecondsOnBattery --(Datatype 9, value Hours.minutes)

DataUPS[3] = {oid=".1.3.6.1.2.1.33.1.2.3.0", knx_grop="1/6/28", dtype=7}
-- upsEstimatedMinutesRemaining

DataUPS[4] = {oid=".1.3.6.1.2.1.33.1.2.4.0", knx_grop="1/6/29", dtype=7}
-- upsEstimatedChargeRemaining

DataUPS[5] = {oid=".1.3.6.1.2.1.33.1.2.5.0", knx_grop="1/6/30", dtype=9}
-- upsBatteryVoltage

DataUPS[6] = {oid=".1.3.6.1.2.1.33.1.2.6.0", knx_grop="1/6/31", dtype=9}
-- upsBatteryCurrent

DataUPS[7] = {oid=".1.3.6.1.2.1.33.1.2.7.0", knx_grop="1/6/32", dtype=7}
-- upsBatteryTemperature

DataUPS[8] = {oid=".1.3.6.1.2.1.33.1.3.3.1.2.1", knx_grop="1/6/33", dtype=9}
-- upsInputFrequency

DataUPS[9] = {oid=".1.3.6.1.2.1.33.1.3.3.1.3.1", knx_grop="1/6/34", dtype=7}
-- upsInputVoltage

DataUPS[10] = {oid=".1.3.6.1.2.1.33.1.3.3.1.4.1", knx_grop="1/6/35", dtype=9}
-- upsInputCurrent

DataUPS[11] = {oid=".1.3.6.1.2.1.33.1.4.1.0", knx_grop="1/6/36", dtype=5}
-- upsOutputSource {other(1),none(2),normal(3),bypass(4),battery(5),booster(6),reducer(7)}

DataUPS[12] = {oid=".1.3.6.1.2.1.33.1.4.2.0", knx_grop="1/6/37", dtype=9}
-- upsOutputFrequency

DataUPS[13] = {oid=".1.3.6.1.2.1.33.1.4.4.1.2.1", knx_grop="1/6/38", dtype=7}
-- upsOutputVoltage

DataUPS[14] = {oid=".1.3.6.1.2.1.33.1.4.4.1.3.1", knx_grop="1/6/39", dtype=9}
-- upsOutputCurrent

DataUPS[15] = {oid=".1.3.6.1.2.1.33.1.4.4.1.5.1", knx_grop="1/6/40", dtype=7}
-- upsOutputPercentLoad

DataUPS[16] = {oid=".1.3.6.1.2.1.33.1.5.1.0", knx_grop="1/6/41", dtype=9}
-- upsBypassFrequency

DataUPS[17] = {oid=".1.3.6.1.2.1.33.1.5.3.1.2.1", knx_grop="1/6/42", dtype=7}
-- upsBypassVoltage

DataUPS[18] = {oid=".1.3.6.1.2.1.33.1.5.3.1.3.1", knx_grop="1/6/43", dtype=9}
-- upsBypassCurrent

DataUPS[19] = {oid=".1.3.6.1.2.1.33.1.6.1", knx_grop="1/6/44", dtype=1}
-- upsAlarmsPresent

--oid=".1.3.6.1.2.1.33.1.3.3.1.5.1" -- upsInputTruePower
--oid=".1.3.6.1.2.1.33.1.4.4.1.4.1" -- upsOutputPower
--oid=".1.3.6.1.2.1.33.1.5.3.1.4.1" -- upsBypassPower

require "snmp"

local mib, err = snmp.mib.load('/home/ftp/snmp/UPS-MIB.mib')
if not mib then
   --log('Failed to load mib: ' .. err)
end

ups1, err = snmp.open{
  version = snmp.SNMPv2,
  community = "public",
  port = 161,
  peer = ups_ip,
}

if ups1 then

grp.checkwrite(Connection_status, 1)   
 
for i=1,19 do  
  vbind, err = ups1:get(DataUPS[i].oid)

  if (vbind.value ~= nil) then
    res = vbind.value
  end

  if ((DataUPS[i].dtype == 9) and (i~=5)) then res = res * 0.1 end

  if i == 2 then
    hour = vbind.value/60
    hour = math.floor(hour)
    min = vbind.value%60
    res=hour+(min*0.01)
  end

  if i == 19 then
    if res ~= 0 then res = 1 end
  end

  grp.checkwrite(DataUPS[i].knx_grop, res)

end
 
else
  grp.checkwrite(Connection_status, 0)
end 

ups1:close()
Reply


Forum Jump: