[Plugin] NUT v2 - Network UPS Tools


dmacias

Recommended Posts

Is there a way to build a specific branch of nut from Github (specifically, an un-merged PR) to run with this plugin?

 

Specifically, this issue with the same UPS a user had seems to have been resolved by this pull request, however it hasn't been merged (with a conflicting file and no update in this year calendar year 😞)

 

Ideally I'd like to stick to managing my box through the UI to keep things consistent, but am unsure on if there's an easy way to point do a different source and build from that.

 

Any pointers or help in this endeavour would be appreciated.

 

EDIT: Just to surface the UPS type if other people have had success, it is a DigiTECH UPS.

Edited by breeny
Adding the UPS type to the post instead of hiding in the GitHub link
Link to comment

Wanted to share my experience with my setup as I didnt find a lot of info when I was googling around / searching the forums.

I have Unraid 6.8.3 running.   And I'm using a Cyberpower (Cyber Power,  got to get all those tags....) Model brg1500avrlcd I have it connected via USB cable to a USB 2.0 port on my X570 Gigabyte motherboard.

I previously had a very large I think it was EATON UPS working with this install before changing the motherboard and processor.

When I initially tried to get the new setup working, the built in UPS settings wouldn't work (kind of expected that, they seem to prefer other brands of UPS).  When I would hit auto detect in the NUT settings it would find my ups, but when I'd turn on the service and hit apply the service wouldn't start it would still say "Status: Stopped"

Reading through this thread, I did the following.

Tried setting the built in UPS settings to those listed on the 1st page of this thread.
 

To disable the built in UPS try settiing it to:

Start APC UPS daemon: No

UPS cable: Custom

UPS type: Dumb



That didn't seem to help.

I uninstalled the NUT plugin and reinstalled that again didn't seem to help

I think tried these commands and saw an error.

 

root@phoenix:~# /etc/rc.d/rc.nut start
Writing nut config
Updating permissions...
Network UPS Tools - UPS driver controller 2.7.4.1
Network UPS Tools - Generic HID driver 0.55 (2.7.4.1)
USB communication driver 0.43
Using subdriver: CyberPower HID 0.5
Network UPS Tools upsd 2.7.4.1
fopen /var/run/nut/upsd.pid: No such file or directory
listening on 0.0.0.0 port 3493
Connected to UPS [ups]: usbhid-ups-ups
Network UPS Tools upsmon 2.7.4.1
fopen /var/run/nut/upsmon.pid: No such file or directory
/etc/nut/upsmon.conf line 1: invalid directive MONITOR [email protected] 1 master
Using power down flag file /etc/nut/no_killpower

Fatal error: insufficient power configured!

Sum of power values........: 0
Minimum value (MINSUPPLIES): 1

Edit your upsmon.conf and change the values.


I uninstalled the NUT plugin again and removed the /boot/config/plugins/nut directory (not 100% sure that path is right but its the config/plugin(s) directory on the flash drive) it still had a config file in there.

Then reinstalled NUT plugin > hit auto detect and BINGO! its working!

Edited by snowmirage
Link to comment

I'm having an issue where UPS load is not updating at all. It starts out at 162W and sits there stuck even with load changes and parity checking etc. it never changes.

 

Quote

Scanning for UPS...

[nutdev1]
driver = "usbhid-ups"
port = "auto"
vendorid = "051D"
productid = "0002"
product = "Back-UPS ES 700G FW:871.O3 .I USB FW:O3"
serial = "5B1536T42997"
vendor = "APC"
bus = "003

 

Any idea why i'm having this problem?

I would use the built-in unraid APC UPS plugin but that doesnt give me any info whatsoever, its just stuck when starting for some reason.

T8dsdXb.png

Link to comment
8 hours ago, MammothJerk said:

I'm having an issue where UPS load is not updating at all. It starts out at 162W and sits there stuck even with load changes and parity checking etc. it never changes.

 

 

Any idea why i'm having this problem?

I would use the built-in unraid APC UPS plugin but that doesnt give me any info whatsoever, its just stuck when starting for some reason.

T8dsdXb.png

You can try disconnect the mains input a short time, does reading change ?

  • Like 1
Link to comment

Before trying anything with a UPS do run unraids power (and/or any other computers) from the wall so when the ups shutdown there is still power to unraid/computers.

Shutdown swap power lead/plugs start up test ups.

You do avoid some problems this way IF there are a problem like an unclean shutdown and a parity check for hours.

 

Ups functions will still work like normal for example the status and the shutdown (if noting locks the array) since all that is done trough USB/network depending on ups and chosen way.

Link to comment
  • 3 weeks later...
On 10/10/2020 at 12:29 PM, Vr2Io said:

You can try disconnect the mains input a short time, does reading change ?

Disconnecting the mains from my ups for about a minute did indeed change the shown UPS load to now 182 watts while the charge decreased to 93%
C2BxUP2.png

any steps where to go from here?

 

sorry for the long delay, i haven't had physical access for some time :)

 

edit: When the server is on UPS power the UPS load will update in realtime together with the battery percentage

63Nif2r.gif

 

this is how my grafana graph looks like to show how useless it is when i dont get the updated correct information lol, the last fluctiations are after disconnecting the mains

FFvjtFH.png

 

While the UPS is charging the UPS load does not seem to update again, it will only update if the mains is disconnected..

Edited by MammothJerk
Link to comment
2 hours ago, MammothJerk said:

While the UPS is charging the UPS load does not seem to update again, it will only update if the mains is disconnected..

My first APC back UPS also work as above, it is entry level product haven't power monitoring all time. It totally different with current APC UPS.

  • Like 1
Link to comment
  • 3 weeks later...

I have just noticed, following a short (few seconds) power outage that there is no UPS failure notification/event in the log file.

When using the built-in unRAID UPS support it used to catch them all.

 

Also, can UPS events (power failures) be marked as Error/Warning/System in the log file?

 

Link to comment
44 minutes ago, theone said:

I have just noticed, following a short (few seconds) power outage that there is no UPS failure notification/event in the log file.

 

I do not use NUT anymore but i could swear that i got them in the log file when i did.

So maybe a power failure test is in order to see if unraid do shutdown like it should?

On 10/10/2020 at 3:13 PM, grizzly said:

Before trying anything with a UPS do run unraids power (and/or any other computers) from the wall so when the ups shutdown there is still power to unraid/computers.

Shutdown swap power lead/plugs start up test ups.

You do avoid some problems this way IF there are a problem like an unclean shutdown and a parity check for hours.

 

Ups functions will still work like normal for example the status and the shutdown (if noting locks the array) since all that is done trough USB/network depending on ups and chosen way.

 

Link to comment
  • 2 weeks later...

I love your plugin. Works fine but from time to time seems the default UPS monitor from Unraid make something that disables the NUT plugin. I have then to apply the default conf to Unraid's UPS monitor and reapply the configuration again to the NUT plugin. Anyone with the same problem?

Edited by Kanashii
Link to comment

Hi! Thanks for this plugin. I was tired of having random disconnect-reconnect warning messages from the integrated UPS utility with my USB connected CP1500AVRLCD. I'm surprised by two things that I see now that I have NUT configured though. First off, I can't seem to change the Master IP address? I stays stuck on the default 127.0.0.1 even though the field seems editable.

 

The other detail, a bit more striking to me, is that it says my UPS is outputting at a unnecessarily high voltage? When I had it connected through a windows client I remember setting it at the strictest voltage control settings but right now it's receiving 118V from the wall and sending out 142V if NUT is to be believed. Is that information reliable? And if so, is it configurable through NUT?

image.png.0bef87c210c321c8d2e531bed222fa16.png

edit: I re-activated the integrated UPS utility and that one says my UPS is both receiving and outputting at 119V, which sounds more normal.

Edited by audiocycle
additionnal info
Link to comment
On 10/30/2020 at 2:13 PM, MammothJerk said:

When the server is on UPS power the UPS load will update in realtime together with the battery percentage

[...]

While the UPS is charging the UPS load does not seem to update again, it will only update if the mains is disconnected..

Same here for my simple Eaton Elipse 1600W model.

I have a larger unRaid box on sleep and when this gets a WoL, the load changes but as it seems is always calculated based on the Load percentage taken from the driver/the UPS.

The Eaton has a nominal power of 1600W and when running on mains, this is reported as 10% load, with the plugin stating that power draw is 160W.

When mains is disconnected, running on battery, this is reported as 7% to 8%, 112W-128W (obviously 1%/16W steps for a 1600W UPS).

I now put a smart-plug in between, that I calibrated with a good meter and a 100W light-bulb...this now states, when the UPS is back online, a real draw of about 121-123W compared to the 160W reported by the UPS/driver.

 

Is there a way to feed the real power info back into the plugin? My smart-plug updates to my mosquitto/mqtt or can be queried via http (using tasmota firmware). I could also set a node-red flow in between and push live events/updates easily.

 

Edit: as it seems, the UPS is reporting apparent power, not real power....this is the Info pulled from my smart-plug:

Voltage	232 V
Current	0.699 A
Power	120 W
Apparent Power	162 VA
Reactive Power	108 VAr
Power Factor	0.74

Edit2: Now, after the battery has benn refilled, the driver still states that the UPS is running at 10% / 160W.

But real power is now down to 104W from 120W, which is more like it.

Voltage	231 V
Current	0.665 A
Power	104 W
Apparent Power	154 VA
Reactive Power	113 VAr
Power Factor	0.68

As apparent power is not down by another 1% / 16VA, the UPS/driver does not recognise and provide a proper wattage, does it?

Edited by Ford Prefect
Link to comment

Thank you for this plugin.  It's been working great for my Unraid server for a couple years now.

 

But now, I'm expanding my homelab, and have another server.  I've installed NUT in Proxmox, and think I've confirmed that it can communicate with Unraid.

 

However, I'm having some difficulty testing the UPS.  Granted, I could just unplug the UPS to see if it shuts down both the Unraid and Proxmox server, but the outlet is in a difficult to get to place, and it would be nice to be able to test with the Terminal now and in the future.

 

I set NUT to shut down the server after 2 minutes on battery, and then did this command in Terminal:

upscmd <<UPSNAME>> test.battery.start.deep

I entered the admin username and password and it put the battery into a test mode.  However, it never shut down the Unraid server, and thus never sent the shutdown command to the other server?

 

Is there a remote way to simulate a power failure?

 

Thanks!

Link to comment

This doesn't confirm your "shut down after" setting works but you can confirm the shutdown procedure works by STOPPING THE ARRAY (to avoid data corruption if something goes wrong) and running

upsmon -c fsd

From help:

usage: upsmon [OPTIONS]

  -c <cmd> send command to running process
commands:
- fsd: shutdown all master UPSes (use with caution)
- reload: reread configuration
- stop: stop monitoring and exit
  -D raise debugging level
  -h display this help
  -K checks POWERDOWNFLAG, sets exit code to 0 if set
  -p always run privileged (disable privileged parent)
  -u <user> run child as user <user> (ignored when using -p)
  -4 IPv4 only
  -6 IPv6 only

 

Edited by CS01-HS
  • Thanks 1
Link to comment
2 hours ago, CS01-HS said:

This doesn't confirm your "shut down after" setting works but you can confirm the shutdown procedure works by STOPPING THE ARRAY (to avoid data corruption if something goes wrong) and running


upsmon -c fsd

From help:


usage: upsmon [OPTIONS]

  -c <cmd> send command to running process
commands:
- fsd: shutdown all master UPSes (use with caution)
- reload: reread configuration
- stop: stop monitoring and exit
  -D raise debugging level
  -h display this help
  -K checks POWERDOWNFLAG, sets exit code to 0 if set
  -p always run privileged (disable privileged parent)
  -u <user> run child as user <user> (ignored when using -p)
  -4 IPv4 only
  -6 IPv6 only

 

Wow, that's cool, that worked!  Shut down my Unraid server and my Proxmox server.

Link to comment
26 minutes ago, aidenpryde said:

Wow, that's cool, that worked!  Shut down my Unraid server and my Proxmox server.

Great. If you have the UPS set to shut itself off after issuing shutdowns make sure that delay is set long enough that the servers have time to shutdown. I mention it because out of caution I suggested stopping the array which consumes most unraid's shutdown time.

Link to comment
2 hours ago, CS01-HS said:

Great. If you have the UPS set to shut itself off after issuing shutdowns make sure that delay is set long enough that the servers have time to shutdown. I mention it because out of caution I suggested stopping the array which consumes most unraid's shutdown time.

Looks like the slave shuts down first in this scenario.  Takes about 30 seconds for the second server, and longer for Unraid... maybe because it's running more dockers and other things.  That command initiated a countdown after the load was off the UPS, I think it was an additional 10 seconds.

  • Like 1
Link to comment
  • 2 weeks later...

Hello!, 

 

Just installed the plugin in the hope of being able to monitor my generic UPS. From the autodetect function, I got this configuration:

 

Quote

root@nas01:~# cat /etc/nut/ups.conf
[ups]
driver = "nutdrv_qx"
port = "auto"
vendorid = "0001"
productid = "0000"
product = "MEC0003"
bus = "004"

 

These are the detected USB devices:

 

Quote

root@nas01:~# lsusb
Bus 002 Device 003: ID 0424:2660 Standard Microsystems Corp. Hub
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 004 Device 002: ID 0001:0000 Fry's Electronics MEC0003
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0781:5567 SanDisk Corp. Cruzer Blade
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

 

But I get "Access denied" errors while testing the driver:

 

Quote

root@nas01:~# /usr/libexec/nut/nutdrv_qx -a ups -DDD
Network UPS Tools - Generic Q* USB/Serial driver 0.39 (2.7.4.1)
USB communication driver 0.43
  0.000000     [D1] debug level is '3'
  0.001079     [D1] upsdrv_initups...
  0.002672     [D2] nut_libusb_open: checking device 1 of 10.
  0.002696     [D2] nut_libusb_open: failed to open device 0424:2660 (Access denied (insufficient permissions)), skipping.
  0.002713     [D2] nut_libusb_open: checking device 2 of 10.
  0.002727     [D2] nut_libusb_open: failed to open device 8087:0024 (Access denied (insufficient permissions)), skipping.
  0.002735     [D2] nut_libusb_open: checking device 3 of 10.
  0.002747     [D2] nut_libusb_open: failed to open device 1D6B:0002 (Access denied (insufficient permissions)), skipping.
  0.002763     [D2] nut_libusb_open: checking device 4 of 10.
  0.002774     [D2] nut_libusb_open: failed to open device 1D6B:0001 (Access denied (insufficient permissions)), skipping.
  0.002782     [D2] nut_libusb_open: checking device 5 of 10.
  0.002802     [D2] nut_libusb_open: failed to open device 1D6B:0003 (Access denied (insufficient permissions)), skipping.
  0.002808     [D2] nut_libusb_open: checking device 6 of 10.
  0.002818     [D2] nut_libusb_open: failed to open device 0001:0000 (Access denied (insufficient permissions)), skipping.
  0.002823     [D2] nut_libusb_open: checking device 7 of 10.

  0.002848     [D2] nut_libusb_open: failed to open device 1D6B:0002 (Access denied (insufficient permissions)), skipping.
  0.002851     [D2] nut_libusb_open: checking device 8 of 10.
  0.002858     [D2] nut_libusb_open: failed to open device 0781:5567 (Access denied (insufficient permissions)), skipping.
  0.002865     [D2] nut_libusb_open: checking device 9 of 10.
  0.002885     [D2] nut_libusb_open: failed to open device 8087:0024 (Access denied (insufficient permissions)), skipping.
  0.002892     [D2] nut_libusb_open: checking device 10 of 10.
  0.002903     [D2] nut_libusb_open: failed to open device 1D6B:0002 (Access denied (insufficient permissions)), skipping.
  0.002911     [D2] nut_libusb_open: no appropriate USB device found.
  0.002928     No supported devices found. Please check your device availability with 'lsusb'
and make sure you have an up-to-date version of NUT. If this does not help,
try running the driver with at least 'subdriver', 'vendorid' and 'productid'
options specified. Please refer to the man page for details about these options
(man 8 nutdrv_qx).

  0.002940     [D1] upsdrv_cleanup...
 

 

Detailed device info:

 

Quote

root@nas01:~# lsusb -v -d 0001:0000

Bus 004 Device 002: ID 0001:0000 Fry's Electronics MEC0003
Device Descriptor:
 bLength                18
 bDescriptorType         1
 bcdUSB               2.00
 bDeviceClass            0  
 bDeviceSubClass         0  
 bDeviceProtocol         0  
 bMaxPacketSize0         8
 idVendor           0x0001 Fry's Electronics
 idProduct          0x0000  
 bcdDevice            1.00
 iManufacturer           0  
 iProduct                1 MEC0003
 iSerial                 0  
 bNumConfigurations      1
 Configuration Descriptor:
   bLength                 9
   bDescriptorType         2
   wTotalLength       0x0029
   bNumInterfaces          1
   bConfigurationValue     1
   iConfiguration          0  
   bmAttributes         0x80
     (Bus Powered)
   MaxPower              100mA
   Interface Descriptor:
     bLength                 9
     bDescriptorType         4
     bInterfaceNumber        0
     bAlternateSetting       0
     bNumEndpoints           2
     bInterfaceClass         3 Human Interface Device
     bInterfaceSubClass      0  
     bInterfaceProtocol      0  
     iInterface              0  
       HID Device Descriptor:
         bLength                 9
         bDescriptorType        33
         bcdHID               1.11
         bCountryCode            0 Not supported
         bNumDescriptors         1
         bDescriptorType        34 Report
         wDescriptorLength     624
         Report Descriptor: (length is 624)
           Item(Global): Usage Page, data= [ 0x86 ] 134
                           Power Pages
           Item(Local 😞 Usage, data= [ 0x04 ] 4
                           (null)
           Item(Main 😞 Collection, data= [ 0x01 ] 1
                           Application
           Item(Global): Usage Page, data= [ 0x84 ] 132
                           Power Device Page
           Item(Local 😞 Usage, data= [ 0x1e ] 30
                           Flow
           Item(Main 😞 Collection, data= [ 0x00 ] 0
                           Physical
           Item(Global): Report ID, data= [ 0x01 ] 1
           Item(Local 😞 Usage, data= [ 0x1f ] 31
                           Flow ID
           Item(Global): Unit, data= [ 0x00 ] 0
                           System: None, Unit: (None)
           Item(Global): Report Size, data= [ 0x04 ] 4
           Item(Global): Report Count, data= [ 0x01 ] 1
           Item(Global): Logical Minimum, data= [ 0x00 ] 0
           Item(Global): Logical Maximum, data= [ 0x0f ] 15
           Item(Global): Unit, data= [ 0x00 ] 0
                           System: None, Unit: (None)
           Item(Main 😞 Feature, data= [ 0x02 ] 2
                           Data Variable Absolute No_Wrap Linear
                           Preferred_State No_Null_Position Non_Volatile Bitfield
           Item(Global): Report Size, data= [ 0x04 ] 4
           Item(Global): Report Count, data= [ 0x01 ] 1
           Item(Main 😞 Feature, data= [ 0x03 ] 3
                           Constant Variable Absolute No_Wrap Linear
                           Preferred_State No_Null_Position Non_Volatile Bitfield
           Item(Local 😞 Usage, data= [ 0x40 ] 64
                           Config Voltage
           Item(Global): Report Size, data= [ 0x10 ] 16
           Item(Global): Report Count, data= [ 0x01 ] 1
           Item(Global): Unit, data= [ 0x21 0xd1 0xf0 0x00 ] 15782177
                           System: SI Linear, Unit: Centimeter^2*Gram*Seconds^-3*Ampere^-1
           Item(Global): Unit Exponent, data= [ 0x07 ] 7
                           Unit Exponent: 7
           Item(Global): Logical Minimum, data= [ 0x00 ] 0
           Item(Global): Logical Maximum, data= [ 0xfa 0x00 ] 250
           Item(Main 😞 Feature, data= [ 0x02 ] 2
                           Data Variable Absolute No_Wrap Linear
                           Preferred_State No_Null_Position Non_Volatile Bitfield
           Item(Local 😞 Usage, data= [ 0x42 ] 66
                           Config Frequency
           Item(Global): Report Size, data= [ 0x10 ] 16
           Item(Global): Report Count, data= [ 0x01 ] 1
           Item(Global): Unit, data= [ 0x01 0xf0 ] 61441
                           System: SI Linear, Unit: Seconds^-1
           Item(Global): Unit Exponent, data= [ 0x00 ] 0
                           Unit Exponent: 0
           Item(Global): Logical Minimum, data= [ 0x00 ] 0
           Item(Global): Logical Maximum, data= [ 0x3c ] 60
           Item(Main 😞 Feature, data= [ 0x02 ] 2
                           Data Variable Absolute No_Wrap Linear
                           Preferred_State No_Null_Position Non_Volatile Bitfield
           Item(Local 😞 Usage, data= [ 0x53 ] 83
                           Low Voltage Transfer
           Item(Global): Report Size, data= [ 0x10 ] 16
           Item(Global): Report Count, data= [ 0x01 ] 1
           Item(Global): Unit, data= [ 0x21 0xd1 0xf0 0x00 ] 15782177
                           System: SI Linear, Unit: Centimeter^2*Gram*Seconds^-3*Ampere^-1
           Item(Global): Unit Exponent, data= [ 0x07 ] 7
                           Unit Exponent: 7
           Item(Global): Logical Minimum, data= [ 0x00 ] 0
           Item(Global): Logical Maximum, data= [ 0xfa 0x00 ] 250
           Item(Main 😞 Feature, data= [ 0x02 ] 2
                           Data Variable Absolute No_Wrap Linear
                           Preferred_State No_Null_Position Non_Volatile Bitfield
           Item(Local 😞 Usage, data= [ 0x54 ] 84
                           High Voltage Transfer
           Item(Global): Report Size, data= [ 0x10 ] 16
           Item(Global): Report Count, data= [ 0x01 ] 1
           Item(Global): Unit, data= [ 0x21 0xd1 0xf0 0x00 ] 15782177
                           System: SI Linear, Unit: Centimeter^2*Gram*Seconds^-3*Ampere^-1
           Item(Global): Unit Exponent, data= [ 0x07 ] 7
                           Unit Exponent: 7
           Item(Global): Logical Minimum, data= [ 0x00 ] 0
           Item(Global): Logical Maximum, data= [ 0xfa 0x00 ] 250
           Item(Main 😞 Feature, data= [ 0x02 ] 2
                           Data Variable Absolute No_Wrap Linear
                           Preferred_State No_Null_Position Non_Volatile Bitfield
           Item(Local 😞 Usage, data= [ 0xfd ] 253
                           iManufacturer
           Item(Local 😞 Usage, data= [ 0xfe ] 254
                           iProduct
           Item(Local 😞 Usage, data= [ 0xff ] 255
                           iSerialNumber
           Item(Global): Report Size, data= [ 0x08 ] 8
           Item(Global): Report Count, data= [ 0x03 ] 3
           Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
           Item(Global): Unit, data= [ 0x00 ] 0
                           System: None, Unit: (None)
           Item(Main 😞 Feature, data= [ 0x00 ] 0
                           Data Array Absolute No_Wrap Linear
                           Preferred_State No_Null_Position Non_Volatile Bitfield
           Item(Main 😞 End Collection, data=none
           Item(Global): Usage Page, data= [ 0x84 ] 132
                           Power Device Page
           Item(Local 😞 Usage, data= [ 0x1e ] 30
                           Flow
           Item(Main 😞 Collection, data= [ 0x00 ] 0
                           Physical
           Item(Global): Report ID, data= [ 0x02 ] 2
           Item(Local 😞 Usage, data= [ 0x1f ] 31
                           Flow ID
           Item(Global): Unit, data= [ 0x00 ] 0
                           System: None, Unit: (None)
           Item(Global): Report Size, data= [ 0x04 ] 4
           Item(Global): Report Count, data= [ 0x01 ] 1
           Item(Global): Logical Minimum, data= [ 0x00 ] 0
           Item(Global): Logical Maximum, data= [ 0x0f ] 15
           Item(Global): Unit, data= [ 0x00 ] 0
                           System: None, Unit: (None)
           Item(Main 😞 Feature, data= [ 0x02 ] 2
                           Data Variable Absolute No_Wrap Linear
                           Preferred_State No_Null_Position Non_Volatile Bitfield
           Item(Global): Report Count, data= [ 0x01 ] 1
           Item(Global): Report Size, data= [ 0x04 ] 4
           Item(Main 😞 Feature, data= [ 0x03 ] 3
                           Constant Variable Absolute No_Wrap Linear
                           Preferred_State No_Null_Position Non_Volatile Bitfield
           Item(Local 😞 Usage, data= [ 0x40 ] 64
                           Config Voltage
           Item(Global): Report Size, data= [ 0x10 ] 16
           Item(Global): Report Count, data= [ 0x01 ] 1
           Item(Global): Unit, data= [ 0x21 0xd1 0xf0 0x00 ] 15782177
                           System: SI Linear, Unit: Centimeter^2*Gram*Seconds^-3*Ampere^-1
           Item(Global): Unit Exponent, data= [ 0x07 ] 7
                           Unit Exponent: 7
           Item(Global): Logical Minimum, data= [ 0x00 ] 0
           Item(Global): Logical Maximum, data= [ 0xfa 0x00 ] 250
           Item(Main 😞 Feature, data= [ 0x02 ] 2
                           Data Variable Absolute No_Wrap Linear
                           Preferred_State No_Null_Position Non_Volatile Bitfield
           Item(Local 😞 Usage, data= [ 0x42 ] 66
                           Config Frequency
           Item(Global): Report Size, data= [ 0x10 ] 16
           Item(Global): Report Count, data= [ 0x01 ] 1
           Item(Global): Unit, data= [ 0x01 0xf0 ] 61441
                           System: SI Linear, Unit: Seconds^-1
           Item(Global): Unit Exponent, data= [ 0x00 ] 0
                           Unit Exponent: 0
           Item(Global): Logical Minimum, data= [ 0x00 ] 0
           Item(Global): Logical Maximum, data= [ 0x3c ] 60
           Item(Main 😞 Feature, data= [ 0x02 ] 2
                           Data Variable Absolute No_Wrap Linear
                           Preferred_State No_Null_Position Non_Volatile Bitfield
           Item(Local 😞 Usage, data= [ 0x43 ] 67
                           Config Apparent Power
           Item(Global): Report Size, data= [ 0x10 ] 16
           Item(Global): Report Count, data= [ 0x01 ] 1
           Item(Global): Unit, data= [ 0x21 0xd1 ] 53537
                           System: SI Linear, Unit: Centimeter^2*Gram*Seconds^-3
           Item(Global): Unit Exponent, data= [ 0x07 ] 7
                           Unit Exponent: 7
           Item(Global): Logical Minimum, data= [ 0x00 ] 0
           Item(Global): Logical Maximum, data= [ 0xfe 0xff 0x00 0x00 ] 65534
           Item(Main 😞 Feature, data= [ 0x02 ] 2
                           Data Variable Absolute No_Wrap Linear
                           Preferred_State No_Null_Position Non_Volatile Bitfield
           Item(Local 😞 Usage, data= [ 0x44 ] 68
                           Config Active Power
           Item(Global): Report Count, data= [ 0x01 ] 1
           Item(Global): Report Size, data= [ 0x10 ] 16
           Item(Global): Unit, data= [ 0x21 0xd1 ] 53537
                           System: SI Linear, Unit: Centimeter^2*Gram*Seconds^-3
           Item(Global): Unit Exponent, data= [ 0x07 ] 7
                           Unit Exponent: 7
           Item(Global): Logical Minimum, data= [ 0x00 ] 0
           Item(Global): Logical Maximum, data= [ 0xfe 0xff 0x00 0x00 ] 65534
           Item(Main 😞 Feature, data= [ 0x02 ] 2
                           Data Variable Absolute No_Wrap Linear
                           Preferred_State No_Null_Position Non_Volatile Bitfield
           Item(Local 😞 Usage, data= [ 0x56 ] 86
                           Delay Before Startup
           Item(Global): Report Size, data= [ 0x18 ] 24
           Item(Global): Report Count, data= [ 0x01 ] 1
           Item(Global): Unit, data= [ 0x01 0x10 ] 4097
                           System: SI Linear, Unit: Seconds
           Item(Global): Unit Exponent, data= [ 0x00 ] 0
                           Unit Exponent: 0
           Item(Global): Logical Minimum, data= [ 0x00 ] 0
           Item(Global): Logical Maximum, data= [ 0xfe 0xff 0x00 0x00 ] 65534
           Item(Main 😞 Feature, data= [ 0x02 ] 2
                           Data Variable Absolute No_Wrap Linear
                           Preferred_State No_Null_Position Non_Volatile Bitfield
           Item(Local 😞 Usage, data= [ 0x57 ] 87
                           Delay Before Shutdown
           Item(Global): Report Size, data= [ 0x18 ] 24
           Item(Global): Report Count, data= [ 0x01 ] 1
           Item(Global): Unit, data= [ 0x01 0x10 ] 4097
                           System: SI Linear, Unit: Seconds
           Item(Global): Unit Exponent, data= [ 0x00 ] 0
                           Unit Exponent: 0
           Item(Global): Logical Minimum, data= [ 0x00 ] 0
           Item(Global): Logical Maximum, data= [ 0xfe 0xff 0x00 0x00 ] 65534
           Item(Main 😞 Feature, data= [ 0x02 ] 2
                           Data Variable Absolute No_Wrap Linear
                           Preferred_State No_Null_Position Non_Volatile Bitfield
           Item(Main 😞 End Collection, data=none
           Item(Global): Usage Page, data= [ 0x84 ] 132
                           Power Device Page
           Item(Local 😞 Usage, data= [ 0x10 ] 16
                           Battery System
           Item(Main 😞 Collection, data= [ 0x00 ] 0
                           Physical
           Item(Global): Report ID, data= [ 0x03 ] 3
           Item(Local 😞 Usage, data= [ 0x11 ] 17
                           Battery System ID
           Item(Global): Unit, data= [ 0x00 ] 0
                           System: None, Unit: (None)
           Item(Global): Report Size, data= [ 0x04 ] 4
           Item(Global): Report Count, data= [ 0x01 ] 1
           Item(Global): Logical Minimum, data= [ 0x00 ] 0
           Item(Global): Logical Maximum, data= [ 0x0f ] 15
           Item(Global): Unit, data= [ 0x00 ] 0
                           System: None, Unit: (None)
           Item(Main 😞 Feature, data= [ 0x02 ] 2
                           Data Variable Absolute No_Wrap Linear
                           Preferred_State No_Null_Position Non_Volatile Bitfield
           Item(Global): Report Size, data= [ 0x04 ] 4
           Item(Global): Report Count, data= [ 0x01 ] 1
           Item(Main 😞 Feature, data= [ 0x03 ] 3
                           Constant Variable Absolute No_Wrap Linear
                           Preferred_State No_Null_Position Non_Volatile Bitfield
           Item(Local 😞 Usage, data= [ 0x02 ] 2
                           Present Status
           Item(Main 😞 Collection, data= [ 0x02 ] 2
                           Logical
           Item(Local 😞 Usage, data= [ 0x6d ] 109
                           Used
           Item(Local 😞 Usage, data= [ 0x61 ] 97
                           Good
           Item(Global): Report Size, data= [ 0x01 ] 1
           Item(Global): Report Count, data= [ 0x02 ] 2
           Item(Global): Logical Minimum, data= [ 0x00 ] 0
           Item(Global): Logical Maximum, data= [ 0x01 ] 1
           Item(Main 😞 Feature, data= [ 0x02 ] 2
                           Data Variable Absolute No_Wrap Linear
                           Preferred_State No_Null_Position Non_Volatile Bitfield
           Item(Global): Report Size, data= [ 0x06 ] 6
           Item(Global): Report Count, data= [ 0x01 ] 1
           Item(Main 😞 Feature, data= [ 0x03 ] 3
                           Constant Variable Absolute No_Wrap Linear
                           Preferred_State No_Null_Position Non_Volatile Bitfield
           Item(Main 😞 End Collection, data=none
           Item(Local 😞 Usage, data= [ 0x30 ] 48
                           Voltage
           Item(Global): Report Size, data= [ 0x18 ] 24
           Item(Global): Report Count, data= [ 0x01 ] 1
           Item(Global): Unit, data= [ 0x21 0xd1 0xf0 0x00 ] 15782177
                           System: SI Linear, Unit: Centimeter^2*Gram*Seconds^-3*Ampere^-1
           Item(Global): Unit Exponent, data= [ 0x05 ] 5
                           Unit Exponent: 5
           Item(Global): Logical Maximum, data= [ 0xfe 0xff 0x00 0x00 ] 65534
           Item(Main 😞 Feature, data= [ 0x02 ] 2
                           Data Variable Absolute No_Wrap Linear
                           Preferred_State No_Null_Position Non_Volatile Bitfield
           Item(Local 😞 Usage, data= [ 0x36 ] 54
                           Temperature
           Item(Global): Report Size, data= [ 0x10 ] 16
           Item(Global): Report Count, data= [ 0x01 ] 1
           Item(Global): Unit, data= [ 0x01 0x00 0x01 0x00 ] 65537
                           System: SI Linear, Unit: Kelvin
           Item(Global): Logical Maximum, data= [ 0xfe 0xff 0x00 0x00 ] 65534
           Item(Main 😞 Feature, data= [ 0x02 ] 2
                           Data Variable Absolute No_Wrap Linear
                           Preferred_State No_Null_Position Non_Volatile Bitfield
           Item(Local 😞 Usage, data= [ 0x58 ] 88
                           Test
           Item(Global): Report Size, data= [ 0x01 ] 1
           Item(Global): Report Count, data= [ 0x06 ] 6
           Item(Global): Logical Minimum, data= [ 0x00 ] 0
           Item(Global): Logical Maximum, data= [ 0x01 ] 1
           Item(Main 😞 Input, data= [ 0x02 ] 2
                           Data Variable Absolute No_Wrap Linear
                           Preferred_State No_Null_Position Non_Volatile Bitfield
           Item(Global): Report Size, data= [ 0x02 ] 2
           Item(Global): Report Count, data= [ 0x01 ] 1
           Item(Main 😞 Input, data= [ 0x03 ] 3
                           Constant Variable Absolute No_Wrap Linear
                           Preferred_State No_Null_Position Non_Volatile Bitfield
           Item(Local 😞 Usage, data= [ 0x58 ] 88
                           Test
           Item(Global): Report Size, data= [ 0x01 ] 1
           Item(Global): Report Count, data= [ 0x04 ] 4
           Item(Global): Logical Minimum, data= [ 0x00 ] 0
           Item(Global): Logical Maximum, data= [ 0x01 ] 1
           Item(Main 😞 Feature, data= [ 0x02 ] 2
                           Data Variable Absolute No_Wrap Linear
                           Preferred_State No_Null_Position Non_Volatile Bitfield
           Item(Global): Report Size, data= [ 0x04 ] 4
           Item(Global): Report Count, data= [ 0x01 ] 1
           Item(Main 😞 Feature, data= [ 0x03 ] 3
                           Constant Variable Absolute No_Wrap Linear
                           Preferred_State No_Null_Position Non_Volatile Bitfield
           Item(Main 😞 End Collection, data=none
           Item(Global): Usage Page, data= [ 0x84 ] 132
                           Power Device Page
           Item(Local 😞 Usage, data= [ 0x16 ] 22
                           Power Converter
           Item(Main 😞 Collection, data= [ 0x00 ] 0
                           Physical
           Item(Global): Report ID, data= [ 0x04 ] 4
           Item(Local 😞 Usage, data= [ 0x17 ] 23
                           Power Converter ID
           Item(Global): Report Size, data= [ 0x04 ] 4
           Item(Global): Report Count, data= [ 0x01 ] 1
           Item(Global): Logical Minimum, data= [ 0x00 ] 0
           Item(Global): Logical Maximum, data= [ 0x0f ] 15
           Item(Global): Unit, data= [ 0x00 ] 0
                           System: None, Unit: (None)
           Item(Main 😞 Input, data= [ 0x02 ] 2
                           Data Variable Absolute No_Wrap Linear
                           Preferred_State No_Null_Position Non_Volatile Bitfield
           Item(Global): Report Size, data= [ 0x04 ] 4
           Item(Global): Report Count, data= [ 0x01 ] 1
           Item(Main 😞 Input, data= [ 0x03 ] 3
                           Constant Variable Absolute No_Wrap Linear
                           Preferred_State No_Null_Position Non_Volatile Bitfield
           Item(Local 😞 Usage, data= [ 0x1a ] 26
                           Input
           Item(Main 😞 Collection, data= [ 0x00 ] 0
                           Physical
           Item(Local 😞 Usage, data= [ 0x1b ] 27
                           Input ID
           Item(Local 😞 Usage, data= [ 0x1f ] 31
                           Flow ID
           Item(Global): Report Size, data= [ 0x04 ] 4
           Item(Global): Report Count, data= [ 0x02 ] 2
           Item(Global): Logical Minimum, data= [ 0x00 ] 0
           Item(Global): Logical Maximum, data= [ 0x0f ] 15
           Item(Global): Unit, data= [ 0x00 ] 0
                           System: None, Unit: (None)
           Item(Main 😞 Input, data= [ 0x02 ] 2
                           Data Variable Absolute No_Wrap Linear
                           Preferred_State No_Null_Position Non_Volatile Bitfield
           Item(Local 😞 Usage, data= [ 0x02 ] 2
                           Present Status
           Item(Main 😞 Collection, data= [ 0x02 ] 2
                           Logical
           Item(Local 😞 Usage, data= [ 0x61 ] 97
                           Good
           Item(Global): Report Size, data= [ 0x01 ] 1
           Item(Global): Report Count, data= [ 0x01 ] 1
           Item(Global): Logical Minimum, data= [ 0x00 ] 0
           Item(Global): Logical Maximum, data= [ 0x01 ] 1
           Item(Main 😞 Input, data= [ 0x02 ] 2
                           Data Variable Absolute No_Wrap Linear
                           Preferred_State No_Null_Position Non_Volatile Bitfield
           Item(Global): Report Size, data= [ 0x07 ] 7
           Item(Global): Report Count, data= [ 0x01 ] 1
           Item(Main 😞 Input, data= [ 0x03 ] 3
                           Constant Variable Absolute No_Wrap Linear
                           Preferred_State No_Null_Position Non_Volatile Bitfield
           Item(Main 😞 End Collection, data=none
           Item(Local 😞 Usage, data= [ 0x30 ] 48
                           Voltage
           Item(Global): Report Size, data= [ 0x10 ] 16
           Item(Global): Report Count, data= [ 0x01 ] 1
           Item(Global): Unit, data= [ 0x21 0xd1 0xf0 0x00 ] 15782177
                           System: SI Linear, Unit: Centimeter^2*Gram*Seconds^-3*Ampere^-1
           Item(Global): Unit Exponent, data= [ 0x05 ] 5
                           Unit Exponent: 5
           Item(Global): Logical Maximum, data= [ 0xfe 0xff 0x00 0x00 ] 65534
           Item(Main 😞 Input, data= [ 0x02 ] 2
                           Data Variable Absolute No_Wrap Linear
                           Preferred_State No_Null_Position Non_Volatile Bitfield
           Item(Local 😞 Usage, data= [ 0x32 ] 50
                           Frequency
           Item(Global): Report Size, data= [ 0x10 ] 16
           Item(Global): Report Count, data= [ 0x01 ] 1
           Item(Global): Unit, data= [ 0x01 0xf0 ] 61441
                           System: SI Linear, Unit: Seconds^-1
           Item(Global): Unit Exponent, data= [ 0x05 ] 5
                           Unit Exponent: 5
           Item(Global): Logical Maximum, data= [ 0xfe 0xff 0x00 0x00 ] 65534
           Item(Main 😞 Input, data= [ 0x02 ] 2
                           Data Variable Absolute No_Wrap Linear
                           Preferred_State No_Null_Position Non_Volatile Bitfield
           Item(Main 😞 End Collection, data=none
           Item(Local 😞 Usage, data= [ 0x1c ] 28
                           Output
           Item(Main 😞 Collection, data= [ 0x00 ] 0
                           Physical
           Item(Global): Report ID, data= [ 0x05 ] 5
           Item(Local 😞 Usage, data= [ 0x1d ] 29
                           Output ID
           Item(Local 😞 Usage, data= [ 0x1f ] 31
                           Flow ID
           Item(Global): Report Size, data= [ 0x04 ] 4
           Item(Global): Report Count, data= [ 0x02 ] 2
           Item(Global): Logical Minimum, data= [ 0x00 ] 0
           Item(Global): Logical Maximum, data= [ 0x0f ] 15
           Item(Global): Unit, data= [ 0x00 ] 0
                           System: None, Unit: (None)
           Item(Main 😞 Input, data= [ 0x02 ] 2
                           Data Variable Absolute No_Wrap Linear
                           Preferred_State No_Null_Position Non_Volatile Bitfield
           Item(Local 😞 Usage, data= [ 0x30 ] 48
                           Voltage
           Item(Global): Report Size, data= [ 0x10 ] 16
           Item(Global): Report Count, data= [ 0x01 ] 1
           Item(Global): Unit, data= [ 0x21 0xd1 0xf0 0x00 ] 15782177
                           System: SI Linear, Unit: Centimeter^2*Gram*Seconds^-3*Ampere^-1
           Item(Global): Unit Exponent, data= [ 0x05 ] 5
                           Unit Exponent: 5
           Item(Global): Logical Maximum, data= [ 0xfe 0xff 0x00 0x00 ] 65534
           Item(Main 😞 Input, data= [ 0x02 ] 2
                           Data Variable Absolute No_Wrap Linear
                           Preferred_State No_Null_Position Non_Volatile Bitfield
           Item(Local 😞 Usage, data= [ 0x32 ] 50
                           Frequency
           Item(Global): Report Size, data= [ 0x10 ] 16
           Item(Global): Report Count, data= [ 0x01 ] 1
           Item(Global): Unit, data= [ 0x01 0xf0 ] 61441
                           System: SI Linear, Unit: Seconds^-1
           Item(Global): Unit Exponent, data= [ 0x05 ] 5
                           Unit Exponent: 5
           Item(Global): Logical Maximum, data= [ 0xfe 0xff 0x00 0x00 ] 65534
           Item(Main 😞 Input, data= [ 0x02 ] 2
                           Data Variable Absolute No_Wrap Linear
                           Preferred_State No_Null_Position Non_Volatile Bitfield
           Item(Local 😞 Usage, data= [ 0x35 ] 53
                           Percent Load
           Item(Global): Report Size, data= [ 0x10 ] 16
           Item(Global): Report Count, data= [ 0x01 ] 1
           Item(Global): Logical Minimum, data= [ 0x00 ] 0
           Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
           Item(Main 😞 Input, data= [ 0x02 ] 2
                           Data Variable Absolute No_Wrap Linear
                           Preferred_State No_Null_Position Non_Volatile Bitfield
           Item(Local 😞 Usage, data= [ 0x02 ] 2
                           Present Status
           Item(Main 😞 Collection, data= [ 0x02 ] 2
                           Logical
           Item(Local 😞 Usage, data= [ 0x65 ] 101
                           Overload
           Item(Local 😞 Usage, data= [ 0x6e ] 110
                           Boost
           Item(Local 😞 Usage, data= [ 0x6f ] 111
                           Buck
           Item(Global): Report Size, data= [ 0x01 ] 1
           Item(Global): Report Count, data= [ 0x03 ] 3
           Item(Global): Logical Minimum, data= [ 0x00 ] 0
           Item(Global): Logical Maximum, data= [ 0x01 ] 1
           Item(Global): Unit, data= [ 0x00 ] 0
                           System: None, Unit: (None)
           Item(Main 😞 Input, data= [ 0x02 ] 2
                           Data Variable Absolute No_Wrap Linear
                           Preferred_State No_Null_Position Non_Volatile Bitfield
           Item(Global): Report Size, data= [ 0x05 ] 5
           Item(Global): Report Count, data= [ 0x01 ] 1
           Item(Main 😞 Input, data= [ 0x03 ] 3
                           Constant Variable Absolute No_Wrap Linear
                           Preferred_State No_Null_Position Non_Volatile Bitfield
           Item(Main 😞 End Collection, data=none
           Item(Main 😞 End Collection, data=none
           Item(Main 😞 End Collection, data=none
           Item(Main 😞 End Collection, data=none
     Endpoint Descriptor:
       bLength                 7
       bDescriptorType         5
       bEndpointAddress     0x81  EP 1 IN
       bmAttributes            3
         Transfer Type            Interrupt
         Synch Type               None
         Usage Type               Data
       wMaxPacketSize     0x0008  1x 8 bytes
       bInterval              10
     Endpoint Descriptor:
       bLength                 7
       bDescriptorType         5
       bEndpointAddress     0x02  EP 2 OUT
       bmAttributes            3
         Transfer Type            Interrupt
         Synch Type               None
         Usage Type               Data
       wMaxPacketSize     0x0008  1x 8 bytes
       bInterval              10
can't get device qualifier: Resource temporarily unavailable
can't get debug descriptor: Resource temporarily unavailable
Device Status:     0x0000
 (Bus Powered)

 

Any hints?

Edited by cyruspy
Link to comment
  • 2 weeks later...

Hi there! I posted a bit on another tread about a CyberPower CP1500PFCLCD UPS and some issues I was running into and wanted to post here on what I found. The goal is to edit my shutdown and start times for the CyberPower UPS because it does not play nice with "Turn off UPS after shutdown".

Problem:

 

This is what I just tried:

  • ups.conf:
[CP1500]
	driver = usbhid-ups
	port = auto
	offdelay = 300
	ondelay = 0
	ignorelb
	override.battery.charge.low = 50
	override.battery.charge.warning = 60
  • "Start Network UPS Tools service"=No (Because Yes would not start on reboot)
  • "Enable Manual Config Only"=Yes
  • Edited "/boot/config/go" to contain:
    • bash /etc/rc.d/rc.nut start

 

Upon a power outage the server will shutdown cleanly and the CP1500PFCLCD will count down from 5 min and remain off when done. When power is restored I see it counting down from 10 seconds and then it turns itself back on. Exactly what I want...EXCEPT...NUT will reset ups.delay.shutdown and ups.delay.start to their default values of 20 and 30 blowing the whole setup randomly.

 

When I noticed the reset I saw this in the logs:

usbhid-ups[16281]: nut_libusb_get_string: Pipe error.
usbhid-ups[16281]: nut_libusb_get_report: Input/Output Error.

Any help would be much appreciated. I would love to get my CyberPower UPS to shutdown and restart upon power loss/restore if possible!

Thanks!

 

EDIT:

After watching and reading the logs the reset is caused by whatever this error is doing:

usbhid-ups[3459]: nut_libusb_get_report: Input/Output Error.

Google is coming up with this thread and not much else around this error.

Edited by JimmyGerms
Link to comment
  • Rysz featured this topic

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.