[Nut-upsuser] Does nut calculate low batt internally if missing from SNMP UPS?

Carsten Aulbert carsten.aulbert at aei.mpg.de
Mon Dec 5 14:30:29 GMT 2022


Hi all,

we just got a new UPS which is natively supported by nut 2.7.3 in Debian 
Bullseye via the huawei snmp subdriver (thank you for that!).

As on old message in the archive hints at[1], even a new Huawei UPS does 
not give battery.charge.low or battery.runtime.low nor have we tested 
yet, if the UPS will report LB before the batteries run dry.

The UPS is a Huawei UPS5000-H (Firmware V500R022C00SPC210, running Linux 
  kernel 4.19.90 on armv7l) and I have attached the driver's debug 
output (only serial number "fixed up").

Doing a SNMP bulkwalk with the manufacture provided MIBs gets the also 
attached values and a few raised eye brows, e.g.

UPS-RFC-MIB::upsEstimatedMinutesRemaining.0 = INTEGER: 960 minutes

which I would love to have but I guess, this is somehow... wrong.

Anyway, from the linked message it seems to infer that nut/upsd is 
computing a LB condition internally if these value are not provided by 
the UPS. I have tried to find this in the sources, but utterly failed.

Thus, does this exist and how is this computed based on (projected) 
remaining charge and/or runtime?

In the end, our shutdown scenario is simply:

* most of our servers should shutdown if a UPS is OB for more than 30 or 60s

* more vital systems should run until we hit LB (whatever we deem a good 
level there)

* the remaining few machines should simply run until the lights go out

Can you point me to some docs about this?

Cheers and thanks a lot in advance

Carsten


[1] 
https://alioth-lists.debian.net/pipermail/nut-upsdev/2015-March/006930.html

-- 
Dr. Carsten Aulbert, Max Planck Institute for Gravitational Physics,
Callinstraße 38, 30167 Hannover, Germany, Phone +49 511 762 17185
-------------- next part --------------
A non-text attachment was scrubbed...
Name: snmp-ups-DD.gz
Type: application/gzip
Size: 4568 bytes
Desc: not available
URL: <http://alioth-lists.debian.net/pipermail/nut-upsuser/attachments/20221205/149c4849/attachment.gz>
-------------- next part --------------
UPS-RFC-MIB::mib-2.1.1.0 = STRING: "Linux stm32mp15x 4.19.90 #3 SMP Sat Mar 19 11:21:17 CST 2022 armv7l"
UPS-RFC-MIB::mib-2.1.2.0 = OID: UPS-RFC-MIB::internet.4.1.8072.3.2.10
UPS-RFC-MIB::mib-2.1.3.0 = Timeticks: (52446545) 6 days, 1:41:05.45
UPS-RFC-MIB::mib-2.1.4.0 = STRING: "XXXXXXXXXXXX"
UPS-RFC-MIB::mib-2.1.5.0 = STRING: "UPS5000"
UPS-RFC-MIB::mib-2.1.6.0 = STRING: "XXXXXXXXXXXX"
UPS-RFC-MIB::mib-2.1.8.0 = Timeticks: (14) 0:00:00.14
UPS-RFC-MIB::mib-2.1.9.1.2.1 = OID: UPS-RFC-MIB::internet.6.3.1
UPS-RFC-MIB::mib-2.1.9.1.2.2 = OID: UPS-RFC-MIB::internet.6.3.16.2.2.1
UPS-RFC-MIB::mib-2.1.9.1.2.3 = OID: UPS-RFC-MIB::internet.6.3.13.3.1.3
UPS-RFC-MIB::mib-2.1.9.1.2.4 = OID: UPS-RFC-MIB::internet.6.3.10.3.1.1
UPS-RFC-MIB::mib-2.1.9.1.2.5 = OID: UPS-RFC-MIB::internet.6.3.11.3.1.1
UPS-RFC-MIB::mib-2.1.9.1.2.6 = OID: UPS-RFC-MIB::internet.6.3.15.2.1.1
UPS-RFC-MIB::mib-2.1.9.1.3.1 = STRING: "The MIB module for SNMPv2 entities"
UPS-RFC-MIB::mib-2.1.9.1.3.2 = STRING: "View-based Access Control Model for SNMP."
UPS-RFC-MIB::mib-2.1.9.1.3.3 = STRING: "The MIB modules for managing SNMP Notification, plus filtering."
UPS-RFC-MIB::mib-2.1.9.1.3.4 = STRING: "The SNMP Management Architecture MIB."
UPS-RFC-MIB::mib-2.1.9.1.3.5 = STRING: "The MIB for Message Processing and Dispatching."
UPS-RFC-MIB::mib-2.1.9.1.3.6 = STRING: "The management information definitions for the SNMP User-based Security Model."
UPS-RFC-MIB::mib-2.1.9.1.4.1 = Timeticks: (13) 0:00:00.13
UPS-RFC-MIB::mib-2.1.9.1.4.2 = Timeticks: (13) 0:00:00.13
UPS-RFC-MIB::mib-2.1.9.1.4.3 = Timeticks: (14) 0:00:00.14
UPS-RFC-MIB::mib-2.1.9.1.4.4 = Timeticks: (14) 0:00:00.14
UPS-RFC-MIB::mib-2.1.9.1.4.5 = Timeticks: (14) 0:00:00.14
UPS-RFC-MIB::mib-2.1.9.1.4.6 = Timeticks: (14) 0:00:00.14
UPS-RFC-MIB::mib-2.11.1.0 = Counter32: 439381
UPS-RFC-MIB::mib-2.11.2.0 = Counter32: 439362
UPS-RFC-MIB::mib-2.11.3.0 = Counter32: 0
UPS-RFC-MIB::mib-2.11.4.0 = Counter32: 18
UPS-RFC-MIB::mib-2.11.5.0 = Counter32: 0
UPS-RFC-MIB::mib-2.11.6.0 = Counter32: 0
UPS-RFC-MIB::mib-2.11.8.0 = Counter32: 0
UPS-RFC-MIB::mib-2.11.9.0 = Counter32: 0
UPS-RFC-MIB::mib-2.11.10.0 = Counter32: 0
UPS-RFC-MIB::mib-2.11.11.0 = Counter32: 0
UPS-RFC-MIB::mib-2.11.12.0 = Counter32: 0
UPS-RFC-MIB::mib-2.11.13.0 = Counter32: 440174
UPS-RFC-MIB::mib-2.11.14.0 = Counter32: 0
UPS-RFC-MIB::mib-2.11.15.0 = Counter32: 439260
UPS-RFC-MIB::mib-2.11.16.0 = Counter32: 0
UPS-RFC-MIB::mib-2.11.17.0 = Counter32: 0
UPS-RFC-MIB::mib-2.11.18.0 = Counter32: 0
UPS-RFC-MIB::mib-2.11.19.0 = Counter32: 0
UPS-RFC-MIB::mib-2.11.20.0 = Counter32: 0
UPS-RFC-MIB::mib-2.11.21.0 = Counter32: 27
UPS-RFC-MIB::mib-2.11.22.0 = Counter32: 0
UPS-RFC-MIB::mib-2.11.24.0 = Counter32: 0
UPS-RFC-MIB::mib-2.11.25.0 = Counter32: 0
UPS-RFC-MIB::mib-2.11.26.0 = Counter32: 0
UPS-RFC-MIB::mib-2.11.27.0 = Counter32: 0
UPS-RFC-MIB::mib-2.11.28.0 = Counter32: 439365
UPS-RFC-MIB::mib-2.11.29.0 = Counter32: 0
UPS-RFC-MIB::mib-2.11.30.0 = INTEGER: 2
UPS-RFC-MIB::mib-2.11.31.0 = Counter32: 0
UPS-RFC-MIB::mib-2.11.32.0 = Counter32: 0
UPS-RFC-MIB::mib-2.17.1.1.0 = Hex-STRING: XX XX XX XX XX XX
UPS-RFC-MIB::upsIdentManufacturer.0 = STRING: "HUAWEI"
UPS-RFC-MIB::upsIdentModel.0 = STRING: "UPS5000-H 700kVA"
UPS-RFC-MIB::upsIdentUPSSoftwareVersion.0 = STRING: "V500R022C00SPC210"
UPS-RFC-MIB::upsIdentAgentSoftwareVersion.0 = STRING: "V500R022C00SPC210"
UPS-RFC-MIB::upsIdentName.0 = STRING: "UPS5000-H"
UPS-RFC-MIB::upsIdentAttachedDevices.0 = STRING: "UPS5000"
UPS-RFC-MIB::upsBatteryStatus.0 = INTEGER: 0
UPS-RFC-MIB::upsSecondsOnBattery.0 = INTEGER: 0 seconds
UPS-RFC-MIB::upsEstimatedMinutesRemaining.0 = INTEGER: 960 minutes
UPS-RFC-MIB::upsEstimatedChargeRemaining.0 = Wrong Type (should be INTEGER): Gauge32: 100
UPS-RFC-MIB::upsBatteryVoltage.0 = Wrong Type (should be INTEGER): Gauge32: 5721
UPS-RFC-MIB::upsBatteryCurrent.0 = INTEGER: 2 0.1 Amp DC
UPS-RFC-MIB::upsBatteryTemperature.0 = INTEGER: 2147483647 degrees Centigrade
UPS-RFC-MIB::upsInputLineBads.0 = Wrong Type (should be Counter32): Gauge32: 0
UPS-RFC-MIB::upsInputNumLines.0 = Wrong Type (should be INTEGER): Gauge32: 3
UPS-RFC-MIB::upsInputLineIndex.1 = INTEGER: 1
UPS-RFC-MIB::upsInputFrequency.1 = INTEGER: 4995 0.1 Hertz
UPS-RFC-MIB::upsInputVoltage.1 = INTEGER: 2335 RMS Volts
UPS-RFC-MIB::upsInputCurrent.1 = INTEGER: 5794 0.1 RMS Amp
UPS-RFC-MIB::upsInputTruePower.1 = INTEGER: 100 Watts
UPS-RFC-MIB::upsOutputSource.0 = INTEGER: normal(3)
UPS-RFC-MIB::upsOutputFrequency.0 = INTEGER: 4986 0.1 Hertz
UPS-RFC-MIB::upsOutputNumLines.0 = Wrong Type (should be INTEGER): Gauge32: 3
UPS-RFC-MIB::upsOutputLineIndex.1 = INTEGER: 1
UPS-RFC-MIB::upsOutputVoltage.1 = INTEGER: 2288 RMS Volts
UPS-RFC-MIB::upsOutputCurrent.1 = INTEGER: 7306 0.1 RMS Amp
UPS-RFC-MIB::upsOutputPower.1 = INTEGER: 1667 Watts
UPS-RFC-MIB::upsOutputPercentLoad.1 = Wrong Type (should be INTEGER): Gauge32: 719
UPS-RFC-MIB::upsBypassFrequency.0 = INTEGER: 4993 0.1 Hertz
UPS-RFC-MIB::upsBypassNumLines.0 = INTEGER: 3
UPS-RFC-MIB::upsBypassLineIndex.1 = INTEGER: 1
UPS-RFC-MIB::upsBypassVoltage.1 = INTEGER: 2337 RMS Volts
UPS-RFC-MIB::upsBypassCurrent.1 = INTEGER: 0 0.1 RMS Amp
UPS-RFC-MIB::upsBypassPower.1 = INTEGER: 2288 Watts
End of MIB


More information about the Nut-upsuser mailing list