[Nut-upsdev] Snmp-ups/netvision driver for Socomec UPS

Ivan Kuznetsov kia at solvo.ru
Mon Apr 16 11:53:25 UTC 2012


Hello

We have an Socomec Sicon Netys PR3000 UPS equipped with NetVision 
Web/SNMP adaptor. I try to monitor the ups using snmp-ups driver and 
netvision mibs set. The snmp-ups driver starts correctly and connects to 
the UPS, upsd confirms it, but upsmon constantly shows "No 
communication" error

I think the cause is the SNMP adapter reports the UPS status as "ECO 
mode" (snmpget .1.3.6.1.4.1.4555.1.1.1.1.4.1.0 returns 9), but snmp-ups 
does not correctly process this. Here is output of 'snmp-ups -a socomec 
-u nut -D':

Network UPS Tools - Generic SNMP UPS driver 0.50 (2.6.1)
    0.000000     debug level is '1'
    0.000260     SNMP UPS driver : entering upsdrv_initups()
    0.027868     load_mib2nut: trying netvision mib
    0.029798     load_mib2nut: using netvision mib
    0.031731     Detected NETYS 3 kVA on host 192.168.0.227 (mib: 
netvision 0.1)
    0.031751     SNMP UPS driver : entering upsdrv_initinfo()
    0.031785     getting data: ups.mfr (.1.3.6.1.4.1.4555.1.1.1.1.1.3.0)
    0.033823     entering su_setinfo(ups.mfr)
    0.033836     getting data: ups.model (.1.3.6.1.4.1.4555.1.1.1.1.1.1.0)
    0.035731     entering su_setinfo(ups.model)
    0.035744     getting data: ups.serial (.1.3.6.1.4.1.4555.1.1.1.1.1.4.0)
    0.037646     entering su_setinfo(ups.serial)
    0.037662     getting data: ups.firmware.aux 
(.1.3.6.1.4.1.4555.1.1.1.1.1.2.0)
    0.039497     entering su_setinfo(ups.firmware.aux)
    0.039512     getting data: ups.status (.1.3.6.1.4.1.4555.1.1.1.1.2.1.0)
    0.041373     su_find_infoval: found  (value: 2)
    0.041383     getting data: ups.status (.1.3.6.1.4.1.4555.1.1.1.1.4.1.0)
    0.043248     su_find_infoval: found  (value: 9)
    0.043258     getting data: ups.load 
(.1.3.6.1.4.1.4555.1.1.1.1.4.4.1.4.1)
    0.045975     entering su_setinfo(ups.load)
    0.045987     getting data: input.voltage 
(.1.3.6.1.4.1.4555.1.1.1.1.3.3.1.5.1)
    0.047973     entering su_setinfo(input.voltage)
    0.047984     getting data: output.voltage 
(.1.3.6.1.4.1.4555.1.1.1.1.4.4.1.2.1)
    0.050015     entering su_setinfo(output.voltage)
    0.050026     getting data: output.current 
(.1.3.6.1.4.1.4555.1.1.1.1.4.4.1.3.1)
    0.052065     entering su_setinfo(output.current)
    0.052076     getting data: battery.charge 
(.1.3.6.1.4.1.4555.1.1.1.1.2.4.0)
    0.053919     entering su_setinfo(battery.charge)
    0.053930     getting data: battery.voltage 
(.1.3.6.1.4.1.4555.1.1.1.1.2.5.0)
    0.055797     entering su_setinfo(battery.voltage)
    0.055807     getting data: battery.runtime 
(.1.3.6.1.4.1.4555.1.1.1.1.2.3.0)
    0.057690     entering su_setinfo(battery.runtime)
    0.057701     SNMP UPS driver : entering upsdrv_updateinfo()
    0.057712     getting data: ups.status (.1.3.6.1.4.1.4555.1.1.1.1.2.1.0)
    0.059597     su_find_infoval: found  (value: 2)
    0.059606     getting data: ups.status (.1.3.6.1.4.1.4555.1.1.1.1.4.1.0)
    0.061446     su_find_infoval: found  (value: 9)
    0.061455     getting data: ups.load 
(.1.3.6.1.4.1.4555.1.1.1.1.4.4.1.4.1)
    0.063468     entering su_setinfo(ups.load)
    0.063478     getting data: input.voltage 
(.1.3.6.1.4.1.4555.1.1.1.1.3.3.1.5.1)
    0.065502     entering su_setinfo(input.voltage)
    0.065515     getting data: output.voltage 
(.1.3.6.1.4.1.4555.1.1.1.1.4.4.1.2.1)
    0.067566     entering su_setinfo(output.voltage)
    0.067576     getting data: output.current 
(.1.3.6.1.4.1.4555.1.1.1.1.4.4.1.3.1)
    0.069588     entering su_setinfo(output.current)
    0.069598     getting data: battery.charge 
(.1.3.6.1.4.1.4555.1.1.1.1.2.4.0)
    0.071446     entering su_setinfo(battery.charge)
    0.071456     getting data: battery.voltage 
(.1.3.6.1.4.1.4555.1.1.1.1.2.5.0)
    0.073318     entering su_setinfo(battery.voltage)
    0.073328     getting data: battery.runtime 
(.1.3.6.1.4.1.4555.1.1.1.1.2.3.0)
    0.075173     entering su_setinfo(battery.runtime)
    0.075234     SNMP UPS driver : entering upsdrv_updateinfo()

And 'upsmon -u nut -DDD' output:

Network UPS Tools upsmon 2.6.1
    0.000000     UPS: socomec at localhost (master) (power value 1)
    0.000090     Using power down flag file /etc/killpower
    0.000213     debug level is '3'
    0.000705     Trying to connect to UPS [socomec at localhost]
    0.001065     Logged into UPS socomec at localhost
    0.001127     pollups: socomec at localhost
    0.001137     get_var: socomec at localhost / status
    0.001186     parse_status: []
    0.001209     do_notify: ntype 0x0005 (COMMBAD)
    0.001220     Communication with the UPS is lost

In netvision-mib.c I see that ups.status field is constructed from 
NETVISION_OID_BATTERYSTATUS (.1.3.6.1.4.1.4555.1.1.1.1.2.1.0) and 
NETVISION_OID_OUTPUT_SOURCE (.1.3.6.1.4.1.4555.1.1.1.1.4.1.0).

Battery status is normal (value 2), value for netvision_batt_info is "" 
(empty string). Good.
Output status has value 9, netvision_output_info is empty string too. 
Looks false because the UPS is on and works in high-efficiency UPS mode.
The result is that ups.status get an empty string value, which confuses 
upsmon.

-- 
Ivan Kuznetsov
SOLVO ltd



More information about the Nut-upsdev mailing list