diff --git a/NEWS.adoc b/NEWS.adoc index 7575e2545d..6b8192fcfe 100644 --- a/NEWS.adoc +++ b/NEWS.adoc @@ -177,6 +177,18 @@ https://github.com/networkupstools/nut/milestone/13 - `usbhid-ups` driver updates: * When reconnecting, report success more visibly (not only in debug), and do not reset driver state to "quiet" when it will loop trying. [PR #3423] + * `apc-hid` subdriver: mapped `shutdown.return` to + `UPS.APCGeneralCollection.APCDelayBeforeReboot` with value "1", for + newer APC Back-UPS devices (e.g. Back-UPS BX750MI) where that usage + is the only shutdown-capable one. Their firmware accepts but never + executes the value "10" written by the previously only matching + command `shutdown.reboot`, so the built-in shutdown sequence reported + success without ever powering the load off. The value "1" is what APC + PowerChute writes (confirmed by decoding USB captures of the vendor + software, and by live tests on another unit): the load is cycled after + a fixed ~2 minute grace, the command is executed only while on battery, + and output returns when wall power is present, even if AC came back + during the grace period. [issue #2683, PR #3566] * `idowell-hid` subdriver now also supports GoldenMate 1000VA/800W LiFePO4 battery packs (`0x06da:0xffff`), which carry the same `-BMS-` firmware and HID descriptor as the existing `0x075d:0x0300` device. The shared diff --git a/docs/nut.dict b/docs/nut.dict index c4bfe493e2..fc5fcd0e07 100644 --- a/docs/nut.dict +++ b/docs/nut.dict @@ -1,4 +1,4 @@ -personal_ws-1.1 en 3805 utf-8 +personal_ws-1.1 en 3806 utf-8 AAC AAS ABI @@ -1053,6 +1053,7 @@ PowerPC PowerPS PowerPal PowerPanel +PowerChute PowerShare PowerShell PowerShield diff --git a/drivers/apc-hid.c b/drivers/apc-hid.c index 87f44e1f6b..293a9c72ba 100644 --- a/drivers/apc-hid.c +++ b/drivers/apc-hid.c @@ -457,6 +457,13 @@ static hid_info_t apc_hid2nut[] = { { "load.on.delay", 0, 0, "UPS.APCGeneralCollection.APCDelayBeforeStartup", NULL, DEFAULT_ONDELAY, HU_TYPE_CMD, NULL }, { "shutdown.stop", 0, 0, "UPS.APCGeneralCollection.APCDelayBeforeShutdown", NULL, "-1", HU_TYPE_CMD, NULL }, { "shutdown.reboot", 0, 0, "UPS.APCGeneralCollection.APCDelayBeforeReboot", NULL, "10", HU_TYPE_CMD, NULL }, + /* used by APC Back-UPS BX series (e.g. BX750MI), where this usage is the + * only shutdown-capable one: value "1" is what APC PowerChute writes + * (fixed ~2 min grace, executed only while on battery, output returns + * when wall power is present, even if AC came back during the grace); + * the "10" written by shutdown.reboot above is ACKed but never executed + * by that firmware. See issue #2683. */ + { "shutdown.return", 0, 0, "UPS.APCGeneralCollection.APCDelayBeforeReboot", NULL, "1", HU_TYPE_CMD, NULL }, /* used by APC BackUPS CS */ { "shutdown.return", 0, 0, "UPS.Output.APCDelayBeforeReboot", NULL, "1", HU_TYPE_CMD, NULL },