Ken Olum
2018-Jan-12 16:59 UTC
[Nut-upsuser] Tripp-Lite BCPERS450 shutdown/restart problems
From: Charles Lepple <clepple at gmail.com> Date: Thu, 11 Jan 2018 22:31:54 -0500 The trick will be adding support for this without breaking other models. For whatever it's worth, Tripp lite's software does not display the model number anywhere, so it may be treating all models the same. In case you are interested, this mapping between the "Path" and the report ID is in the HID Report Descriptor which should be early in the Wireshark capture. I see something called GET DESCRIPTOR Response HID Report which lists the report IDs, but I don't say where it gives information to map it to the path. Other HID UPS models tend to provide both DelayBeforeShutdown and DelayBeforeStartup There is something called Path: UPS.OutletSystem.Outlet.DelayBeforeReboot, ReportID: 0x17. This is sent by the "Immediate Device Reboot" action of the Tripp lite software. Its function seems to be to turn off the load immediately and turn it back on after the given number of seconds. I'm not sure why this would be useful. For completeness, would you mind sending the output of "upsrw" and "upscmd -l"? Below. Thanks again for your help. I will be away until Monday afternoon, so please forgive delay in answering e-mails. Ken % upsrw bcpers450 at localhost [ups.delay.shutdown] Interval to wait after shutdown with delay command (seconds) Type: STRING Maximum length: 10 Value: 200 % upscmd -l bcpers450 at localhost Instant commands supported on UPS [bcpers450]: beeper.disable - Disable the UPS beeper beeper.enable - Enable the UPS beeper beeper.mute - Temporarily mute the UPS beeper beeper.off - Obsolete (use beeper.disable or beeper.mute) beeper.on - Obsolete (use beeper.enable) load.off - Turn off the load immediately load.off.delay - Turn off the load with a delay (seconds) reset.watchdog - Reset watchdog timer shutdown.reboot - Shut down the load briefly while rebooting the UPS shutdown.stop - Stop a shutdown in progress test.battery.start.deep - Start a deep battery test test.battery.start.quick - Start a quick battery test test.battery.stop - Stop the battery test
Ken Olum
2018-Jan-22 20:00 UTC
[Nut-upsuser] Tripp-Lite BCPERS450 shutdown/restart problems
I tested the effect of setting UPS.OutletSystem.Outlet.DelayBeforeShutdown using Tripp Lite's software, which appears to be as follows: 1. If you set it when the line power is on, it turns off the UPS after the delay, and does not turn it back on again, even if you cycle the line power. 2. If you set it when the UPS is running on battery, wait for the UPS to turn off, and turn back on the line power, the UPS restarts and turns on the load. So the basic functionality of this control works. 3. If you set it when the UPS is running on battery, and turn back on the line power before the timer has expired, then the UPS turns off the load at the given time, and then turns on the load after some delay. (I don't how this delay is determined.) Thus it avoids the race where the power comes on again during the shutdown delay. There is presumably still a race where the power returns before the delayed shutdown command is issued but after the system is committed to issuing it. But that is less important and I'm willing to risk it. So if you could fix nut to use UPS.OutletSystem.Outlet.DelayBeforeShutdown in my case, or tell me how do it, I would appreciate that. Ken
Charles Lepple
2018-Jan-23 14:02 UTC
[Nut-upsuser] Tripp-Lite BCPERS450 shutdown/restart problems
On Jan 22, 2018, at 3:00 PM, Ken Olum <kdo at cosmos.phy.tufts.edu> wrote:> > I tested the effect of setting UPS.OutletSystem.Outlet.DelayBeforeShutdown > using Tripp Lite's software, which appears to be as follows: >Theoretically, this should be the same as running the command "upscmd bcpers at localhost -u <upsd.user> load.off.delay <delay>".> So if you could fix nut to use UPS.OutletSystem.Outlet.DelayBeforeShutdown > in my case, or tell me how do it, I would appreciate that.I still haven't had a good chunk of time to walk through the shutdown code (the part that handles "usbhid-ups ... -k"), but in the mean time, would you be interested in setting things up to rebuild the driver? (The next week is looking pretty ridiculous for me, so I don't anticipate being able to dust off my .deb build tree soon.) My thought is that you can rebuild NUT with the same configuration options as the .debs, and the usbhid-ups driver should just drop in. The instructions are almost the same for Ubuntu as for Debian: http://lists.alioth.debian.org/pipermail/nut-upsdev/2017-October/007341.html and http://lists.alioth.debian.org/pipermail/nut-upsdev/2017-October/007343.html (omit the "git checkout" line; although we have a new-and-improved libusb branch, I think it's an unnecessary delta for your situation.)