nut icon indicating copy to clipboard operation
nut copied to clipboard

[HCL] <Cyber Power Systems> <CP550SLG> [<CP425SLG> also?] supported by <usbhid-ups>

Open kaymmm opened this issue 3 years ago • 0 comments

Model: Cyber Power Systems CP550SLG (possibly CP425SLG as well, since they share the same manual)

Mfgr info: https://www.cyberpowersystems.com/product/ups/standby/cp550slg/

Tested using entware on an Asus ax86u router


Output of uname -a:

Linux birdsnest 4.1.52 #2 SMP PREEMPT Wed Jun 22 15:39:18 EDT 2022 aarch64 ASUSWRT-Merlin

Truncated output of lsusb:

$ lsusb -v

Bus 004 Device 046: ID 0764:0501 CPS ST Series
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            0 
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         8
  idVendor           0x0764 
  idProduct          0x0501 
  bcdDevice            0.01
  iManufacturer           3 CPS
  iProduct                1 ST Series
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0022
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower               50mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.10
          bCountryCode           33 US
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength     607
         Report Descriptors: 
           ** UNAVAILABLE **
      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
Device Status:     0x0000
  (Bus Powered)

Output of upsc:

$ upsc ups1

battery.charge: 100
battery.charge.low: 10
battery.charge.warning: 20
battery.mfr.date: CPS
battery.runtime: 5368
battery.runtime.low: 300
battery.type: PbAcid
battery.voltage: 14.1
battery.voltage.nominal: 12
device.mfr: CPS
device.model: ST Series
device.type: ups
driver.name: usbhid-ups
driver.parameter.pollfreq: 30
driver.parameter.pollinterval: 10
driver.parameter.port: auto
driver.parameter.synchronous: no
driver.version: merge-with-ng-1379-g30be439d
driver.version.data: CyberPower HID 0.4
driver.version.internal: 0.41
input.transfer.high: 140
input.transfer.low: 96
input.voltage: 120.0
input.voltage.nominal: 0
output.voltage: 120.0
ups.beeper.status: enabled
ups.delay.shutdown: 20
ups.delay.start: 30
ups.load: 8
ups.mfr: CPS
ups.model: ST Series
ups.productid: 0501
ups.realpower.nominal: 375
ups.status: OL
ups.timer.shutdown: -60
ups.timer.start: -60
ups.vendorid: 0764

Output of upsrw:

$ upsrw ups1

[battery.charge.low]
Remaining battery level when UPS switches to LB (percent)
Type: STRING
Maximum length: 10
Value: 10

[battery.runtime.low]
Remaining battery runtime when UPS switches to LB (seconds)
Type: STRING
Maximum length: 10
Value: 300

[input.transfer.high]
High voltage transfer point (V)
Type: STRING
Maximum length: 10
Value: 140

[input.transfer.low]
Low voltage transfer point (V)
Type: STRING
Maximum length: 10
Value: 96

[ups.delay.shutdown]
Interval to wait after shutdown with delay command (seconds)
Type: STRING
Maximum length: 10
Value: 20

[ups.delay.start]
Interval to wait before (re)starting the load (seconds)
Type: STRING
Maximum length: 10
Value: 30

$ upsrw -s battery.runtime.low=20 ups1
OK

Output of upscmd:

$ upscmd -l ups1
Instant commands supported on UPS [ups1]:

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)
load.on - Turn on the load immediately
load.on.delay - Turn on the load with a delay (seconds)
shutdown.return - Turn off the load and return when power is back
shutdown.stayoff - Turn off the load and remain off
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

$ upscmd ups1 beeper.disable=1
OK

ups.conf:

[ups1]
  driver = usbhid-ups
  port = auto
  pollinterval = 10
  desc = "Cyberpower CP550SLG"

Additional Notes:

  • The input.voltage.nominal seems incorrect.
  • Attempting to change variables or run commands with upsrw or upscmd, respectively, seem to be working. They return status OK, upsc reflects changes made by upsrw, and the device emits an acknowledgement beep for upscmd.

kaymmm avatar Jul 17 '22 17:07 kaymmm