[Nut-upsuser] [HCL] Cyber Power Systems EC750G supported by usbhid-ups [UPS.Output.DelayBeforeShutdown]

Charles Lepple clepple at gmail.com
Thu Mar 2 14:57:02 UTC 2017


On Dec 9, 2016, at 11:14 AM, Mike <the.lists at mgm51.com> wrote:
> 
> On 12/8/2016 10:37 PM, Charles Lepple wrote:
>> On Dec 8, 2016, at 1:34 PM, Mike wrote:
>>> The result of the command
>>> 
>>> upscmd -u user -p password myups load.off.delay 300
>>> 
>>> is an immediate power-off, no delay.
>> 
>> Hmm. Certainly possible that we are sending the delay to the wrong spot. Hopefully the 300 is overriding the 20-second delay specified by ups.delay.shutdown.
>> 
>> You can try restarting just the driver with debug flags - something like the following, depending on your distribution's paths:
>> 
>> /lib/nut/usbhid-ups -a <name> -DDD 2>&1 | tee CPS-EC750G.log
>> 
>> Let it run for 45-60 seconds and then stop it with Ctrl-C. Please compress the log with gzip before posting.
>> 
> 
> Hi Charles,
> 
> Command, run on FreeBSD 11.0 (amd64)
> 
> /usr/local/libexec/nut/usbhid-ups -a myups -DDD 2>&1 | tee CPS-EC750G.log
> 
> 70 seconds of output attached.
> 
> 
> Let me know if you need anything else.  This is an 'on the shelf' spare
> UPS for me, so there is some flexibility in playing with it...
> 
> thx.

   0.207421	Path: UPS.Output.DelayBeforeShutdown, Type: Feature, ReportID: 0x15, Offset: 0, Size: 16, Value: -60

I haven't been able to find any information on what a "-60" would signify. The value "-1" is used to cancel a timer, so maybe the internal timer is set in minutes, and read back with a times-60 scale factor?

In that case, I would start by setting the "ups.delay.shutdown" and "ups.delay.start" variables to multiples of 60 seconds, and try the shutdown command without an argument. Using e.g. 120 and 180 will tell you whether the start timer is measured from the beginning or end of the shutdown timer. (Should be the latter, but no need to confuse the microcontroller any more than necessary.) If that works, we can figure out why the load.off.delay argument is being ignored.

You should be able to read the timer for UPS.Output.DelayBeforeShutdown via the "ups.timer.shutdown" NUT variable.

Also, when testing, you may want to make sure that you have some sort of dummy load on the UPS, such that "ups.load" is not zero. I am only vaguely familiar with the MGE power saving features - so I am extrapolating to CPS here - but I would not be surprised if the UPS ignored the shutdown delay if it doesn't think there is a load attached.


More information about the Nut-upsuser mailing list