1

I have an APC Backup UPS ES 850G2, connected via USB to a RaspberryPi acting as NUT master. The Pi uses the usbhid-ups driver. Several other devices are NUT slaves and poll the Pi for UPS info.

Here's a list of some particular things about the APC:

pi@nut-server:~ $ upsc apc@localhost
Init SSL without certificate database
battery.charge: 92
battery.charge.low: 10
battery.charge.warning: 50
...
battery.runtime: 884
battery.runtime.low: 350
...
driver.name: usbhid-ups
driver.parameter.ondelay: 60
driver.parameter.pollfreq: 30
driver.parameter.pollinterval: 1
driver.parameter.port: auto
driver.parameter.productid: 0002
...
driver.version: 2.7.4
driver.version.data: APC HID 0.96
driver.version.internal: 0.41
...
ups.delay.shutdown: 20
ups.firmware: 938.a2 .I
ups.firmware.aux: a2
ups.load: 31
ups.mfr: American Power Conversion
ups.mfr.date: 2021/05/02
ups.model: Back-UPS ES 850G2
ups.productid: 0002
...
ups.timer.reboot: 0
ups.timer.shutdown: -1
ups.vendorid: 051d

ups.conf

[apc]
    driver = usbhid-ups
    port = auto
    desc = "APC 850VA UPS"
    vendorid = 051d
    productid = 0002
    serial = "xxxxxx"

A few issues I have with it:

  • I can't set the battery.charge.low parameter, although, I can set the battery.runtime.low using upsrw
  • when the UPS is online (i.e. getting power from the mains), as soon as the runtime drops below battery.runtime.low due to a high load, the UPS starts beeping and FSD is triggered
Apr 18 16:26:34 nut-server upsmon[477]: UPS apc@localhost battery is low
Apr 18 16:26:34 nut-server upssched[2840]: Executing command: triggerfsd
Apr 18 16:26:34 nut-server upsmon[477]: Signal 10: User requested FSD
Apr 18 16:26:34 nut-server upsd[472]: Client monuser_local@127.0.0.1 set FSD on UPS [apc]
Apr 18 16:26:34 nut-server upsmon[477]: Executing automatic power-fail shutdown
Apr 18 16:26:34 nut-server upsmon[477]: Auto logout and shutdown proceeding
Apr 18 16:26:34 nut-server upssched[2850]: Executing command: turnoffups
  • when the UPS powers back on having a low battery (i.e. runtime < battery.runtime.low) and turns on the load, it immediately triggers a FSD and none of the devices have time to properly shut down, as the Pi master shuts everything down again.

I have set the battery.runtime.low value to something reasonable, so that the UPS load has time to shut down (especially my QNAP NAS, which shuts down in ~3-4 minutes).

Shouldn't the "Low Battery" flag be triggered only of the UPS is offline? Is what I'm describing normal behavior? Is there anything I set up badly? Do I need to provide any extra config for some help?

From the NUT documentation on upsmon.conf:

LOWBATT UPS is on battery and has a low battery (is critical)

TTL
  • 11
  • 1
  • After a lot of digging around, I found out that yes, my APC UPS can be in OL LB state (plugged in, but with "low battery" due to the set battery.runtime.low. I've tried combining states (OB + LB), but using flag files is tedious as there's no trigger for "no longer on low battery". I ended up building a bash script that upssched can call. – TTL Apr 21 '22 at 13:13

0 Answers0