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.)