Score:1

NUT shuts down UPS even when power is available

pw flag
TTL

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 [email protected] 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)

pw flag
TTL
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.
mangohost

Post an answer

Most people don’t grasp that asking a lot of questions unlocks learning and improves interpersonal bonding. In Alison’s studies, for example, though people could accurately recall how many questions had been asked in their conversations, they didn’t intuit the link between questions and liking. Across four studies, in which participants were engaged in conversations themselves or read transcripts of others’ conversations, people tended not to realize that question asking would influence—or had influenced—the level of amity between the conversationalists.