'belkin-hid.c' and 'tripplite-hid.c' subdrivers, the only thing that happens when the shutdown functions are run is sending DelayBeforeShutdown (if that's available, which it probably always is). According to the HID Power Devices specification, it will do just that and is effectively the same as 'shutdown.stayoff'. If there is mains power at that time, the output will remain off. There are generally two ways to shut down a HID UPS, compatible with NUT: 1) DelayBeforeReboot (shutdown.reboot) 2) DelayBeforeStartup (shutdown.return) and DelayBeforeShutdown (shutdown.stayoff, to make sure the output is off before the startup timer expires) #1 has the advantage that it is just a single command (but it will act immediately), while #2 allows to shutdown with a delay (making sure that DelayBeforeStartup > DelayBeforeShutdown). We can probably deal with *all* HID UPS'es with just these two methods, so I removed them from the subdrivers and put it in usbhid-ups.c instead. New drivers can opt for implementing any (or both) of these options by creating the appropriate HID-to-NUT translation. Which one is available/used (if at all) will be determined automatically during initialization. Best regards, Arjen PS I will correct the 'shutdown.restart' to 'shutdown.return' later today in the trunk. Even seasoned developers sometimes still get confused by the meanings of the shutdown.* commands. ;-)