networkupstools / nut

The Network UPS Tools repository. UPS management protocol Informational RFC 9271 published by IETF at https://www.rfc-editor.org/info/rfc9271 Please star NUT on GitHub, this helps with sponsorships!
https://networkupstools.org/
Other
2.12k stars 354 forks source link

Emerson Network Power, Liebert GXT4 somewhat supported by usbhid-ups but seem to be missing quite a bit of values #964

Open xztraz opened 3 years ago

xztraz commented 3 years ago

nut version 2.7.4-8

It responds but not much data. online status seem ok but not many voltages show up and such.

upsc ups@localhost
Init SSL without certificate database
battery.charge: 100
battery.charge.low: 20
battery.charge.warning: 0
battery.type: PbAc
battery.voltage: 10000000.
battery.voltage.nominal: 0.0
device.mfr: Emerson Network Power
device.model: Liebert GXT4
device.serial: 1601600192AFE17
device.type: ups
driver.name: usbhid-ups
driver.parameter.pollfreq: 30
driver.parameter.pollinterval: 2
driver.parameter.port: auto
driver.parameter.productid: 0000
driver.parameter.synchronous: no
driver.version: 2.7.4
driver.version.data: Belkin/Liebert HID 0.17
driver.version.internal: 0.41
ups.mfr: Emerson Network Power
ups.model: Liebert GXT4
ups.productid: 0000
ups.serial: 1601600192AFE17
ups.status: OL CHRG
ups.vendorid: 10af

Config:

[ups]
    driver = usbhid-ups
    port = auto
    desc = "Emerson Network Power Liebert GXT4"
    productid = 0000
upscmd -l ups
Instant commands supported on UPS [ups]:

(none)
lsusb -d 10af:0000 -v

Bus 001 Device 004: ID 10af:0000 Liebert Corp. UPS
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            0
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0         8
  idVendor           0x10af Liebert Corp.
  idProduct          0x0000 UPS
  bcdDevice            0.00
  iManufacturer           1 Emerson Network Power
  iProduct                2 Liebert GXT4
  iSerial                 3 1601600192AFE17
  bNumConfigurations      1
OTG Descriptor:
  bLength                 3
  bDescriptorType         9
  bmAttributes         0x00
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0025
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          4 EMERSON NETWORK-GXT4G
    bmAttributes         0x40
      (Missing must-be-set bit!)
      Self Powered
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0
      bInterfaceProtocol      0
      iInterface              5 HID-LEDs
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.00
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength     505
         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              32
sudo /lib/nut/usbhid-ups -DD -a ups
Network UPS Tools - Generic HID driver 0.41 (2.7.4)
USB communication driver 0.33
   0.000000     debug level is '2'
   0.002324     upsdrv_initups...
   0.005741     Checking device (10AF/0000) (001/004)
   0.010384     - VendorID: 10af
   0.010510     - ProductID: 0000
   0.010565     - Manufacturer: Emerson Network Power
   0.010621     - Product: Liebert GXT4
   0.010671     - Serial Number: 1601600192AFE17
   0.010718     - Bus: 001
   0.010765     - Device release number: 0000
   0.010811     Trying to match device
   0.010990     Device matches
   0.011785     HID descriptor length 505
   0.020286     Report Descriptor size = 505
   0.021341     Using subdriver: Belkin/Liebert HID 0.17
   0.021411     59 HID objects found
   0.022064     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x01, Offset: 0, Size: 8, Value: 0
   0.022718     Path: UPS.PowerSummary.iSerialNumber, Type: Feature, ReportID: 0x02, Offset: 0, Size: 4, Value: 3
   0.022825     Path: UPS.PowerSummary.iManufacturer, Type: Feature, ReportID: 0x02, Offset: 4, Size: 4, Value: 1
   0.022895     Path: UPS.PowerSummary.iOEMInformation, Type: Feature, ReportID: 0x02, Offset: 8, Size: 4, Value: 1
   0.022965     Path: UPS.PowerSummary.iDeviceChemistry, Type: Feature, ReportID: 0x02, Offset: 12, Size: 4, Value: 6
   0.023042     Path: UPS.PowerSummary.DesignCapacity, Type: Feature, ReportID: 0x02, Offset: 16, Size: 8, Value: 100
   0.023537     Path: UPS.PowerSummary.RemainingTimeLimit, Type: Feature, ReportID: 0x03, Offset: 0, Size: 24, Value: 250
   0.023637     Path: UPS.PowerSummary.CapacityMode, Type: Feature, ReportID: 0x03, Offset: 24, Size: 2, Value: 2
   0.023710     Path: UPS.PowerSummary.Rechargeable, Type: Feature, ReportID: 0x03, Offset: 26, Size: 1, Value: 1
   0.023779     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x03, Offset: 27, Size: 5, Value: 1
   0.024305     Path: UPS.PowerSummary.RemainingCapacityLimit, Type: Feature, ReportID: 0x13, Offset: 0, Size: 8, Value: 20
   0.024942     Path: UPS.PowerSummary.RemainingCapacity, Type: Feature, ReportID: 0x06, Offset: 0, Size: 8, Value: 100
   0.025042     Path: UPS.PowerSummary.RemainingCapacity, Type: Input, ReportID: 0x06, Offset: 0, Size: 8, Value: 100
   0.025706     Path: UPS.PowerSummary.Charging, Type: Feature, ReportID: 0x0c, Offset: 0, Size: 1, Value: 1
   0.025804     Path: UPS.PowerSummary.Discharging, Type: Feature, ReportID: 0x0c, Offset: 1, Size: 1, Value: 0
   0.025878     Path: UPS.PowerSummary.ACPresent, Type: Feature, ReportID: 0x0c, Offset: 2, Size: 1, Value: 1
   0.025946     Path: UPS.PowerSummary.BelowRemainingCapacityLimit, Type: Feature, ReportID: 0x0c, Offset: 3, Size: 1, Value: 0
   0.026018     Path: UPS.PowerSummary.BatteryPresent, Type: Feature, ReportID: 0x0c, Offset: 4, Size: 1, Value: 1
   0.026090     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x0c, Offset: 5, Size: 3, Value: 0
   0.026155     Path: UPS.PowerSummary.Charging, Type: Input, ReportID: 0x0c, Offset: 0, Size: 1, Value: 1
   0.026222     Path: UPS.PowerSummary.Discharging, Type: Input, ReportID: 0x0c, Offset: 1, Size: 1, Value: 0
   0.026287     Path: UPS.PowerSummary.ACPresent, Type: Input, ReportID: 0x0c, Offset: 2, Size: 1, Value: 1
   0.026351     Path: UPS.PowerSummary.BelowRemainingCapacityLimit, Type: Input, ReportID: 0x0c, Offset: 3, Size: 1, Value: 0
   0.026414     Path: UPS.PowerSummary.BatteryPresent, Type: Input, ReportID: 0x0c, Offset: 4, Size: 1, Value: 1
   0.026479     Path: UPS.PowerSummary.Undefined, Type: Input, ReportID: 0x0c, Offset: 5, Size: 3, Value: 0
   0.027072     Path: UPS.PowerSummary.FullChargeCapacity, Type: Feature, ReportID: 0x04, Offset: 0, Size: 8, Value: 0
   0.027172     Path: UPS.PowerSummary.WarningCapacityLimit, Type: Feature, ReportID: 0x04, Offset: 8, Size: 8, Value: 0
   0.027244     Path: UPS.PowerSummary.CapacityGranularity1, Type: Feature, ReportID: 0x04, Offset: 16, Size: 8, Value: 1
   0.027316     Path: UPS.PowerSummary.CapacityGranularity2, Type: Feature, ReportID: 0x04, Offset: 24, Size: 8, Value: 1
   0.027992     Path: UPS.PowerSummary.Voltage, Type: Feature, ReportID: 0x05, Offset: 0, Size: 16, Value: 1
   0.028092     Path: UPS.PowerSummary.ConfigVoltage, Type: Feature, ReportID: 0x05, Offset: 16, Size: 16, Value: 0
   0.028676     Path: UPS.PowerSummary.Test, Type: Feature, ReportID: 0x08, Offset: 0, Size: 8, Value: 0
   0.029286     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x09, Offset: 0, Size: 8, Value: 1
   0.029950     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x32, Offset: 0, Size: 8, Value: 0
   0.030502     refresh_report_buffer: expected 5 bytes, but got 2 instead
   0.030602     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x33, Offset: 0, Size: 8, Value: 1
   0.031149     Path: UPS.PowerSummary.iProduct, Type: Feature, ReportID: 0x07, Offset: 0, Size: 8, Value: 0
   0.031682     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x3c, Offset: 0, Size: 8, Value: 0
   0.032315     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x3d, Offset: 0, Size: 8, Value: 0
   0.032946     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x3e, Offset: 0, Size: 8, Value: 1
   0.033556     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x3f, Offset: 0, Size: 8, Value: 0
   0.034198     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x40, Offset: 0, Size: 8, Value: 0
   0.034794     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x41, Offset: 0, Size: 8, Value: 0
   0.035423     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x42, Offset: 0, Size: 8, Value: 1
   0.036012     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x43, Offset: 0, Size: 8, Value: 0
   0.036547     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x44, Offset: 0, Size: 8, Value: 1
   0.037136     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x50, Offset: 0, Size: 8, Value: 0
   0.037765     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x51, Offset: 0, Size: 8, Value: 1
   0.038277     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x52, Offset: 0, Size: 8, Value: 0
   0.038762     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x53, Offset: 0, Size: 8, Value: 0
   0.039269     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x54, Offset: 0, Size: 8, Value: 0
   0.039804     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x55, Offset: 0, Size: 8, Value: 0
   0.040392     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x56, Offset: 0, Size: 8, Value: 1
   0.040887     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x57, Offset: 0, Size: 8, Value: 0
   0.041439     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x58, Offset: 0, Size: 8, Value: 1
   0.042019     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x59, Offset: 0, Size: 8, Value: 0
   0.042798     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x5a, Offset: 0, Size: 8, Value: 1
   0.043435     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x5b, Offset: 0, Size: 8, Value: 0
   0.044012     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x5c, Offset: 0, Size: 8, Value: 1
   0.044531     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x5d, Offset: 0, Size: 8, Value: 1
   0.044664     Report descriptor retrieved (Reportlen = 505)
   0.044726     Found HID device
   0.044782     Detected a UPS: Emerson Network Power/Liebert GXT4
   0.044996     Path: UPS.PowerSummary.RemainingCapacityLimit, Type: Feature, ReportID: 0x13, Offset: 0, Size: 8, Value: 20
   0.045142     Path: UPS.PowerSummary.WarningCapacityLimit, Type: Feature, ReportID: 0x04, Offset: 8, Size: 8, Value: 0
   0.045286     Path: UPS.PowerSummary.iDeviceChemistry, Type: Feature, ReportID: 0x02, Offset: 12, Size: 4, Value: 6
   0.047002     Path: UPS.PowerSummary.RemainingCapacity, Type: Feature, ReportID: 0x06, Offset: 0, Size: 8, Value: 100
   0.047204     Path: UPS.PowerSummary.Voltage, Type: Feature, ReportID: 0x05, Offset: 0, Size: 16, Value: 1
   0.047321     Path: UPS.PowerSummary.ConfigVoltage, Type: Feature, ReportID: 0x05, Offset: 16, Size: 16, Value: 0
   0.047387     ConfigVoltage = 0 -> assuming correction factor = 1e+08
   0.047512     Path: UPS.PowerSummary.Discharging, Type: Feature, ReportID: 0x0c, Offset: 1, Size: 1, Value: 0
   0.047682     Path: UPS.PowerSummary.Charging, Type: Feature, ReportID: 0x0c, Offset: 0, Size: 1, Value: 1
   0.060394     Path: UPS.PowerSummary.ACPresent, Type: Feature, ReportID: 0x0c, Offset: 2, Size: 1, Value: 1
   0.061605     find_nut_info: unknown info type: load.off.delay
   0.061768     find_nut_info: unknown info type: load.on.delay
   0.061846     find_nut_info: unknown info type: load.off.delay
   0.061967     upsdrv_initinfo...
   0.062088     upsdrv_updateinfo...
   0.064360     Got 1 HID objects...
   0.064520     Path: UPS.PowerSummary.RemainingCapacity, Type: Input, ReportID: 0x06, Offset: 0, Size: 8, Value: 100
   0.064610     Quick update...
   0.064688     Path: UPS.PowerSummary.RemainingCapacity, Type: Feature, ReportID: 0x06, Offset: 0, Size: 8, Value: 100
   0.064776     Path: UPS.PowerSummary.Discharging, Type: Feature, ReportID: 0x0c, Offset: 1, Size: 1, Value: 0
   0.064853     Path: UPS.PowerSummary.Charging, Type: Feature, ReportID: 0x0c, Offset: 0, Size: 1, Value: 1
   0.064926     Path: UPS.PowerSummary.ACPresent, Type: Feature, ReportID: 0x0c, Offset: 2, Size: 1, Value: 1
   0.065327     dstate_init: sock /var/run/nut/usbhid-ups-ups open on fd 5
   0.065504     upsdrv_updateinfo...
   0.067332     Got 6 HID objects...
   0.067524     Path: UPS.PowerSummary.Charging, Type: Input, ReportID: 0x0c, Offset: 0, Size: 1, Value: 1
   0.067889     Path: UPS.PowerSummary.Discharging, Type: Input, ReportID: 0x0c, Offset: 1, Size: 1, Value: 0
   0.068006     Path: UPS.PowerSummary.ACPresent, Type: Input, ReportID: 0x0c, Offset: 2, Size: 1, Value: 1
   0.068101     Path: UPS.PowerSummary.BelowRemainingCapacityLimit, Type: Input, ReportID: 0x0c, Offset: 3, Size: 1, Value: 0
   0.068191     Path: UPS.PowerSummary.BatteryPresent, Type: Input, ReportID: 0x0c, Offset: 4, Size: 1, Value: 1
   0.068279     Path: UPS.PowerSummary.Undefined, Type: Input, ReportID: 0x0c, Offset: 5, Size: 3, Value: 0
   0.068345     Quick update...
   0.068431     Path: UPS.PowerSummary.RemainingCapacity, Type: Feature, ReportID: 0x06, Offset: 0, Size: 8, Value: 100
   0.068523     Path: UPS.PowerSummary.Discharging, Type: Feature, ReportID: 0x0c, Offset: 1, Size: 1, Value: 0
   0.068593     Path: UPS.PowerSummary.Charging, Type: Feature, ReportID: 0x0c, Offset: 0, Size: 1, Value: 1
   0.068671     Path: UPS.PowerSummary.ACPresent, Type: Feature, ReportID: 0x0c, Offset: 2, Size: 1, Value: 1
   2.067159     upsdrv_updateinfo...

product manufacturer web: https://www.vertiv.com/en-cn/products-catalog/critical-power/uninterruptible-power-supplies-ups/liebert-gxt4-ups-700-10000-va/

mattrivett commented 3 years ago

I have the same UPS and am seeing similar results. I'd be happy to help gather data.

Init SSL without certificate database
battery.charge: 100
battery.charge.low: 20
battery.charge.warning: 0
battery.type: PbAc
battery.voltage: 0.0
battery.voltage.nominal: 0.0
device.mfr: Emerson Network Power
device.model: Liebert GXT4
device.serial: 1718700042AFB93
device.type: ups
driver.name: usbhid-ups
driver.parameter.pollfreq: 30
driver.parameter.pollinterval: 2
driver.parameter.port: auto
driver.parameter.productid: 0000
driver.parameter.synchronous: no
driver.version: 2.7.4
driver.version.data: Belkin/Liebert HID 0.17
driver.version.internal: 0.41
ups.mfr: Emerson Network Power
ups.model: Liebert GXT4
ups.productid: 0000
ups.serial: 1718700042AFB93
ups.status: OL CHRG
ups.vendorid: 10af

pi@vpn02alp:~ $ lsusb -d 10af:0000 -v

Bus 001 Device 004: ID 10af:0000 Liebert Corp. UPS
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            0
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0         8
  idVendor           0x10af Liebert Corp.
  idProduct          0x0000 UPS
  bcdDevice            0.00
  iManufacturer           1 Emerson Network Power
  iProduct                2 Liebert GXT4
  iSerial                 3 1718700042AFB93
  bNumConfigurations      1
OTG Descriptor:
  bLength                 3
  bDescriptorType         9
  bmAttributes         0x00
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0025
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          4 EMERSON NETWORK-GXT4G
    bmAttributes         0x40
      (Missing must-be-set bit!)
      Self Powered
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0
      bInterfaceProtocol      0
      iInterface              5 HID-LEDs
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.00
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength     505
          Report Descriptor: (length is 505)
            Item(Global): Usage Page, data= [ 0x84 ] 132
                            Power Device Page
            Item(Local ): Usage, data= [ 0x04 ] 4
                            UPS
            Item(Main  ): Collection, data= [ 0x01 ] 1
                            Application
            Item(Local ): Usage, data= [ 0x24 ] 36
                            Power Summary
            Item(Main  ): Collection, data= [ 0x02 ] 2
                            Logical
            Item(Global): Report ID, data= [ 0x01 ] 1
            Item(Local ): Usage, data= [ 0x00 ] 0
                            Undefined
            Item(Global): Report Count, data= [ 0x04 ] 4
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Main  ): Feature, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report ID, data= [ 0x02 ] 2
            Item(Local ): Usage, data= [ 0xff ] 255
                            iSerialNumber
            Item(Local ): Usage, data= [ 0xfd ] 253
                            iManufacturer
            Item(Global): Report Count, data= [ 0x02 ] 2
            Item(Global): Report Size, data= [ 0x04 ] 4
            Item(Global): Logical Minimum, data= [ 0x00 ] 0
            Item(Global): Logical Maximum, data= [ 0x0f ] 15
            Item(Main  ): Feature, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Usage Page, data= [ 0x85 ] 133
                            Battery System Page
            Item(Local ): Usage, data= [ 0x8f ] 143
                            iOEMInformation
            Item(Local ): Usage, data= [ 0x89 ] 137
                            iDeviceChemistry
            Item(Global): Report Count, data= [ 0x02 ] 2
            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= [ 0x83 ] 131
                            Design Capacity
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Global): Report Count, data= [ 0x01 ] 1
            Item(Global): Logical Minimum, data= [ 0x00 ] 0
            Item(Global): Logical Maximum, data= [ 0xfa 0x00 ] 250
            Item(Main  ): Feature, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report ID, data= [ 0x03 ] 3
            Item(Local ): Usage, data= [ 0x2a ] 42
                            Remaining Time Limit
            Item(Global): Report Size, data= [ 0x18 ] 24
            Item(Global): Report Count, data= [ 0x01 ] 1
            Item(Main  ): Feature, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Local ): Usage, data= [ 0x2c ] 44
                            Capacity Mode
            Item(Global): Report Size, data= [ 0x02 ] 2
            Item(Global): Report Count, data= [ 0x01 ] 1
            Item(Global): Logical Minimum, data= [ 0x00 ] 0
            Item(Global): Logical Maximum, data= [ 0x03 ] 3
            Item(Main  ): Feature, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Local ): Usage, data= [ 0x8b ] 139
                            Rechargeable
            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  ): Feature, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Local ): Usage, data= [ 0x00 ] 0
                            Undefined
            Item(Global): Logical Minimum, data= [ 0x01 ] 1
            Item(Global): Logical Maximum, data= [ 0x1f ] 31
            Item(Global): Report Size, data= [ 0x05 ] 5
            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(Global): Report ID, data= [ 0x13 ] 19
            Item(Global): Report Count, data= [ 0x01 ] 1
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Global): Logical Minimum, data= [ 0x00 ] 0
            Item(Global): Logical Maximum, data= [ 0x64 ] 100
            Item(Local ): Usage, data= [ 0x29 ] 41
                            Remaining Capacity Limit
            Item(Main  ): Feature, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Local ): Usage, data= [ 0x66 ] 102
                            Remaining Capacity
            Item(Global): Report ID, data= [ 0x06 ] 6
            Item(Global): Report Count, data= [ 0x01 ] 1
            Item(Main  ): Feature, data= [ 0x83 ] 131
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Volatile Bitfield
            Item(Local ): Usage, data= [ 0x66 ] 102
                            Remaining Capacity
            Item(Main  ): Input, data= [ 0x83 ] 131
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Volatile Bitfield
            Item(Global): Report ID, data= [ 0x0c ] 12
            Item(Local ): Usage, data= [ 0x44 ] 68
                            Charging
            Item(Local ): Usage, data= [ 0x45 ] 69
                            Discharging
            Item(Local ): Usage, data= [ 0xd0 ] 208
                            AC Present
            Item(Local ): Usage, data= [ 0x42 ] 66
                            Below Remaining Capacity Limit
            Item(Local ): Usage, data= [ 0xd1 ] 209
                            Battery Present
            Item(Global): Logical Maximum, data= [ 0x01 ] 1
            Item(Global): Logical Minimum, data= [ 0x00 ] 0
            Item(Global): Report Size, data= [ 0x01 ] 1
            Item(Global): Report Count, data= [ 0x05 ] 5
            Item(Main  ): Feature, data= [ 0x83 ] 131
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Volatile Bitfield
            Item(Local ): Usage, data= [ 0x00 ] 0
                            Undefined
            Item(Global): Report Count, data= [ 0x01 ] 1
            Item(Global): Report Size, data= [ 0x03 ] 3
            Item(Main  ): Feature, data= [ 0x83 ] 131
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Volatile Bitfield
            Item(Local ): Usage, data= [ 0x44 ] 68
                            Charging
            Item(Local ): Usage, data= [ 0x45 ] 69
                            Discharging
            Item(Local ): Usage, data= [ 0xd0 ] 208
                            AC Present
            Item(Local ): Usage, data= [ 0x42 ] 66
                            Below Remaining Capacity Limit
            Item(Local ): Usage, data= [ 0xd1 ] 209
                            Battery Present
            Item(Global): Logical Maximum, data= [ 0x01 ] 1
            Item(Global): Logical Minimum, data= [ 0x00 ] 0
            Item(Global): Report Count, data= [ 0x05 ] 5
            Item(Global): Report Size, data= [ 0x01 ] 1
            Item(Main  ): Input, data= [ 0x83 ] 131
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Volatile Bitfield
            Item(Local ): Usage, data= [ 0x00 ] 0
                            Undefined
            Item(Global): Report Count, data= [ 0x01 ] 1
            Item(Global): Report Size, data= [ 0x03 ] 3
            Item(Main  ): Input, data= [ 0x83 ] 131
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Volatile Bitfield
            Item(Global): Report ID, data= [ 0x04 ] 4
            Item(Local ): Usage, data= [ 0x67 ] 103
                            Full Charge Capacity
            Item(Local ): Usage, data= [ 0x8c ] 140
                            Warning Capacity Limit
            Item(Local ): Usage, data= [ 0x8d ] 141
                            Capacity Granularity 1
            Item(Local ): Usage, data= [ 0x8e ] 142
                            Capacity Granularity 2
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Global): Report Count, data= [ 0x04 ] 4
            Item(Main  ): Feature, data= [ 0x02 ] 2
                            Data Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report ID, data= [ 0x05 ] 5
            Item(Global): Usage Page, data= [ 0x84 ] 132
                            Power Device Page
            Item(Local ): Usage, data= [ 0x30 ] 48
                            Voltage
            Item(Local ): Usage, data= [ 0x40 ] 64
                            Config Voltage
            Item(Global): Report Count, data= [ 0x02 ] 2
            Item(Global): Report Size, data= [ 0x10 ] 16
            Item(Main  ): Feature, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report ID, data= [ 0x08 ] 8
            Item(Local ): Usage, data= [ 0x58 ] 88
                            Test
            Item(Global): Report Count, data= [ 0x01 ] 1
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Main  ): Feature, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report ID, data= [ 0x09 ] 9
            Item(Local ): Usage, data= [ 0x00 ] 0
                            Undefined
            Item(Global): Report Count, data= [ 0x04 ] 4
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Main  ): Feature, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report ID, data= [ 0x32 ] 50
            Item(Local ): Usage, data= [ 0x00 ] 0
                            Undefined
            Item(Global): Report Count, data= [ 0x04 ] 4
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Main  ): Feature, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report ID, data= [ 0x33 ] 51
            Item(Local ): Usage, data= [ 0x00 ] 0
                            Undefined
            Item(Global): Report Count, data= [ 0x04 ] 4
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Main  ): Feature, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report ID, data= [ 0x07 ] 7
            Item(Local ): Usage, data= [ 0xfe ] 254
                            iProduct
            Item(Global): Report Size, data= [ 0x08 ] 8
            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(Global): Report ID, data= [ 0x3c ] 60
            Item(Local ): Usage, data= [ 0x00 ] 0
                            Undefined
            Item(Global): Report Count, data= [ 0x04 ] 4
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Main  ): Feature, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report ID, data= [ 0x3d ] 61
            Item(Local ): Usage, data= [ 0x00 ] 0
                            Undefined
            Item(Global): Report Count, data= [ 0x04 ] 4
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Main  ): Feature, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report ID, data= [ 0x3e ] 62
            Item(Local ): Usage, data= [ 0x00 ] 0
                            Undefined
            Item(Global): Report Count, data= [ 0x04 ] 4
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Main  ): Feature, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report ID, data= [ 0x3f ] 63
            Item(Local ): Usage, data= [ 0x00 ] 0
                            Undefined
            Item(Global): Report Count, data= [ 0x04 ] 4
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Main  ): Feature, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report ID, data= [ 0x40 ] 64
            Item(Local ): Usage, data= [ 0x00 ] 0
                            Undefined
            Item(Global): Report Count, data= [ 0x04 ] 4
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Main  ): Feature, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report ID, data= [ 0x41 ] 65
            Item(Local ): Usage, data= [ 0x00 ] 0
                            Undefined
            Item(Global): Report Count, data= [ 0x04 ] 4
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Main  ): Feature, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report ID, data= [ 0x42 ] 66
            Item(Local ): Usage, data= [ 0x00 ] 0
                            Undefined
            Item(Global): Report Count, data= [ 0x04 ] 4
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Main  ): Feature, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report ID, data= [ 0x43 ] 67
            Item(Local ): Usage, data= [ 0x00 ] 0
                            Undefined
            Item(Global): Report Count, data= [ 0x04 ] 4
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Main  ): Feature, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report ID, data= [ 0x44 ] 68
            Item(Local ): Usage, data= [ 0x00 ] 0
                            Undefined
            Item(Global): Report Count, data= [ 0x04 ] 4
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Main  ): Feature, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report ID, data= [ 0x50 ] 80
            Item(Local ): Usage, data= [ 0x00 ] 0
                            Undefined
            Item(Global): Report Count, data= [ 0x04 ] 4
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Main  ): Feature, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report ID, data= [ 0x51 ] 81
            Item(Local ): Usage, data= [ 0x00 ] 0
                            Undefined
            Item(Global): Report Count, data= [ 0x04 ] 4
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Main  ): Feature, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report ID, data= [ 0x52 ] 82
            Item(Local ): Usage, data= [ 0x00 ] 0
                            Undefined
            Item(Global): Report Count, data= [ 0x04 ] 4
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Main  ): Feature, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report ID, data= [ 0x53 ] 83
            Item(Local ): Usage, data= [ 0x00 ] 0
                            Undefined
            Item(Global): Report Count, data= [ 0x04 ] 4
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Main  ): Feature, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report ID, data= [ 0x54 ] 84
            Item(Local ): Usage, data= [ 0x00 ] 0
                            Undefined
            Item(Global): Report Count, data= [ 0x04 ] 4
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Main  ): Feature, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report ID, data= [ 0x55 ] 85
            Item(Local ): Usage, data= [ 0x00 ] 0
                            Undefined
            Item(Global): Report Count, data= [ 0x04 ] 4
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Main  ): Feature, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report ID, data= [ 0x56 ] 86
            Item(Local ): Usage, data= [ 0x00 ] 0
                            Undefined
            Item(Global): Report Count, data= [ 0x04 ] 4
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Main  ): Feature, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report ID, data= [ 0x57 ] 87
            Item(Local ): Usage, data= [ 0x00 ] 0
                            Undefined
            Item(Global): Report Count, data= [ 0x04 ] 4
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Main  ): Feature, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report ID, data= [ 0x58 ] 88
            Item(Local ): Usage, data= [ 0x00 ] 0
                            Undefined
            Item(Global): Report Count, data= [ 0x04 ] 4
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Main  ): Feature, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report ID, data= [ 0x59 ] 89
            Item(Local ): Usage, data= [ 0x00 ] 0
                            Undefined
            Item(Global): Report Count, data= [ 0x04 ] 4
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Main  ): Feature, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report ID, data= [ 0x5a ] 90
            Item(Local ): Usage, data= [ 0x00 ] 0
                            Undefined
            Item(Global): Report Count, data= [ 0x04 ] 4
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Main  ): Feature, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report ID, data= [ 0x5b ] 91
            Item(Local ): Usage, data= [ 0x00 ] 0
                            Undefined
            Item(Global): Report Count, data= [ 0x04 ] 4
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Main  ): Feature, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report ID, data= [ 0x5c ] 92
            Item(Local ): Usage, data= [ 0x00 ] 0
                            Undefined
            Item(Global): Report Count, data= [ 0x04 ] 4
            Item(Global): Report Size, data= [ 0x08 ] 8
            Item(Main  ): Feature, data= [ 0x03 ] 3
                            Constant Variable Absolute No_Wrap Linear
                            Preferred_State No_Null_Position Non_Volatile Bitfield
            Item(Global): Report ID, data= [ 0x5d ] 93
            Item(Local ): Usage, data= [ 0x00 ] 0
                            Undefined
            Item(Global): Report Count, data= [ 0x04 ] 4
            Item(Global): Report Size, data= [ 0x08 ] 8
            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(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              32
can't get debug descriptor: Resource temporarily unavailable
cannot read device status, Resource temporarily unavailable (11)

pi@vpn02alp:~ $ /lib/nut/usbhid-ups -DD -a Liebert

Network UPS Tools - Generic HID driver 0.41 (2.7.4)
USB communication driver 0.33
   0.000000     debug level is '2'
   0.002143     upsdrv_initups...
   0.035059     Checking device (1D6B/0003) (002/001)
   0.064237     - VendorID: 1d6b
   0.065204     - ProductID: 0003
   0.066101     - Manufacturer: unknown
   0.067003     - Product: unknown
   0.067896     - Serial Number: unknown
   0.068791     - Bus: 002
   0.069708     - Device release number: 0510
   0.070601     Trying to match device
   0.071509     Device does not match - skipping
   0.072816     Checking device (10AF/0000) (001/004)
   0.082366     - VendorID: 10af
   0.083299     - ProductID: 0000
   0.084229     - Manufacturer: Emerson Network Power
   0.085124     - Product: Liebert GXT4
   0.085842     - Serial Number: 1718700042AFB93
   0.085994     - Bus: 001
   0.086373     - Device release number: 0000
   0.086519     Trying to match device
   0.086730     Device matches
   0.089401     HID descriptor length 505
   0.107887     Report Descriptor size = 505
   0.108703     Using subdriver: Belkin/Liebert HID 0.17
   0.109475     59 HID objects found
   0.110660     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x01, Offset: 0, Size: 8, Value: 0
   0.113400     Path: UPS.PowerSummary.iSerialNumber, Type: Feature, ReportID: 0x02, Offset: 0, Size: 4, Value: 3
   0.113575     Path: UPS.PowerSummary.iManufacturer, Type: Feature, ReportID: 0x02, Offset: 4, Size: 4, Value: 1
   0.113736     Path: UPS.PowerSummary.iOEMInformation, Type: Feature, ReportID: 0x02, Offset: 8, Size: 4, Value: 1
   0.113939     Path: UPS.PowerSummary.iDeviceChemistry, Type: Feature, ReportID: 0x02, Offset: 12, Size: 4, Value: 6
   0.114103     Path: UPS.PowerSummary.DesignCapacity, Type: Feature, ReportID: 0x02, Offset: 16, Size: 8, Value: 100
   0.116157     Path: UPS.PowerSummary.RemainingTimeLimit, Type: Feature, ReportID: 0x03, Offset: 0, Size: 24, Value: 250
   0.116328     Path: UPS.PowerSummary.CapacityMode, Type: Feature, ReportID: 0x03, Offset: 24, Size: 2, Value: 2
   0.116487     Path: UPS.PowerSummary.Rechargeable, Type: Feature, ReportID: 0x03, Offset: 26, Size: 1, Value: 1
   0.116646     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x03, Offset: 27, Size: 5, Value: 1
   0.118897     Path: UPS.PowerSummary.RemainingCapacityLimit, Type: Feature, ReportID: 0x13, Offset: 0, Size: 8, Value: 20
   0.121645     Path: UPS.PowerSummary.RemainingCapacity, Type: Feature, ReportID: 0x06, Offset: 0, Size: 8, Value: 100
   0.121812     Path: UPS.PowerSummary.RemainingCapacity, Type: Input, ReportID: 0x06, Offset: 0, Size: 8, Value: 100
   0.124404     Path: UPS.PowerSummary.Charging, Type: Feature, ReportID: 0x0c, Offset: 0, Size: 1, Value: 1
   0.124570     Path: UPS.PowerSummary.Discharging, Type: Feature, ReportID: 0x0c, Offset: 1, Size: 1, Value: 0
   0.124726     Path: UPS.PowerSummary.ACPresent, Type: Feature, ReportID: 0x0c, Offset: 2, Size: 1, Value: 1
   0.124882     Path: UPS.PowerSummary.BelowRemainingCapacityLimit, Type: Feature, ReportID: 0x0c, Offset: 3, Size: 1, Value: 0
   0.125036     Path: UPS.PowerSummary.BatteryPresent, Type: Feature, ReportID: 0x0c, Offset: 4, Size: 1, Value: 1
   0.125192     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x0c, Offset: 5, Size: 3, Value: 0
   0.125346     Path: UPS.PowerSummary.Charging, Type: Input, ReportID: 0x0c, Offset: 0, Size: 1, Value: 1
   0.125502     Path: UPS.PowerSummary.Discharging, Type: Input, ReportID: 0x0c, Offset: 1, Size: 1, Value: 0
   0.125656     Path: UPS.PowerSummary.ACPresent, Type: Input, ReportID: 0x0c, Offset: 2, Size: 1, Value: 1
   0.125811     Path: UPS.PowerSummary.BelowRemainingCapacityLimit, Type: Input, ReportID: 0x0c, Offset: 3, Size: 1, Value: 0
   0.125966     Path: UPS.PowerSummary.BatteryPresent, Type: Input, ReportID: 0x0c, Offset: 4, Size: 1, Value: 1
   0.126120     Path: UPS.PowerSummary.Undefined, Type: Input, ReportID: 0x0c, Offset: 5, Size: 3, Value: 0
   0.127149     Path: UPS.PowerSummary.FullChargeCapacity, Type: Feature, ReportID: 0x04, Offset: 0, Size: 8, Value: 0
   0.127317     Path: UPS.PowerSummary.WarningCapacityLimit, Type: Feature, ReportID: 0x04, Offset: 8, Size: 8, Value: 0
   0.127474     Path: UPS.PowerSummary.CapacityGranularity1, Type: Feature, ReportID: 0x04, Offset: 16, Size: 8, Value: 1
   0.127632     Path: UPS.PowerSummary.CapacityGranularity2, Type: Feature, ReportID: 0x04, Offset: 24, Size: 8, Value: 1
   0.129914     Path: UPS.PowerSummary.Voltage, Type: Feature, ReportID: 0x05, Offset: 0, Size: 16, Value: 1
   0.130085     Path: UPS.PowerSummary.ConfigVoltage, Type: Feature, ReportID: 0x05, Offset: 16, Size: 16, Value: 0
   0.132649     Path: UPS.PowerSummary.Test, Type: Feature, ReportID: 0x08, Offset: 0, Size: 8, Value: 1
   0.135407     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x09, Offset: 0, Size: 8, Value: 1
   0.138147     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x32, Offset: 0, Size: 8, Value: 1
   0.140878     refresh_report_buffer: expected 5 bytes, but got 2 instead
   0.141044     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x33, Offset: 0, Size: 8, Value: 1
   0.143646     Path: UPS.PowerSummary.iProduct, Type: Feature, ReportID: 0x07, Offset: 0, Size: 8, Value: 0
   0.146402     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x3c, Offset: 0, Size: 8, Value: 0
   0.149150     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x3d, Offset: 0, Size: 8, Value: 0
   0.151899     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x3e, Offset: 0, Size: 8, Value: 1
   0.154659     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x3f, Offset: 0, Size: 8, Value: 0
   0.157408     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x40, Offset: 0, Size: 8, Value: 0
   0.160153     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x41, Offset: 0, Size: 8, Value: 0
   0.162905     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x42, Offset: 0, Size: 8, Value: 1
   0.165654     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x43, Offset: 0, Size: 8, Value: 1
   0.168403     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x44, Offset: 0, Size: 8, Value: 1
   0.171154     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x50, Offset: 0, Size: 8, Value: 0
   0.174123     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x51, Offset: 0, Size: 8, Value: 1
   0.176660     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x52, Offset: 0, Size: 8, Value: 0
   0.179407     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x53, Offset: 0, Size: 8, Value: 0
   0.182157     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x54, Offset: 0, Size: 8, Value: 0
   0.184910     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x55, Offset: 0, Size: 8, Value: 0
   0.187663     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x56, Offset: 0, Size: 8, Value: 0
   0.190410     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x57, Offset: 0, Size: 8, Value: 0
   0.193165     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x58, Offset: 0, Size: 8, Value: 1
   0.195913     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x59, Offset: 0, Size: 8, Value: 0
   0.198667     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x5a, Offset: 0, Size: 8, Value: 0
   0.201409     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x5b, Offset: 0, Size: 8, Value: 0
   0.204159     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x5c, Offset: 0, Size: 8, Value: 0
   0.206912     Path: UPS.PowerSummary.Undefined, Type: Feature, ReportID: 0x5d, Offset: 0, Size: 8, Value: 0
   0.207085     Report descriptor retrieved (Reportlen = 505)
   0.207210     Found HID device
   0.207337     Detected a UPS: Emerson Network Power/Liebert GXT4
   0.207549     Path: UPS.PowerSummary.RemainingCapacityLimit, Type: Feature, ReportID: 0x13, Offset: 0, Size: 8, Value: 20
   0.207716     Path: UPS.PowerSummary.WarningCapacityLimit, Type: Feature, ReportID: 0x04, Offset: 8, Size: 8, Value: 0
   0.207888     Path: UPS.PowerSummary.iDeviceChemistry, Type: Feature, ReportID: 0x02, Offset: 12, Size: 4, Value: 6
   0.210985     Path: UPS.PowerSummary.RemainingCapacity, Type: Feature, ReportID: 0x06, Offset: 0, Size: 8, Value: 100
   0.211195     Path: UPS.PowerSummary.Voltage, Type: Feature, ReportID: 0x05, Offset: 0, Size: 16, Value: 1
   0.211353     Path: UPS.PowerSummary.ConfigVoltage, Type: Feature, ReportID: 0x05, Offset: 16, Size: 16, Value: 0
   0.211484     ConfigVoltage = 0 -> assuming correction factor = 1e+08
   0.211649     Path: UPS.PowerSummary.Discharging, Type: Feature, ReportID: 0x0c, Offset: 1, Size: 1, Value: 0
   0.212135     Path: UPS.PowerSummary.Charging, Type: Feature, ReportID: 0x0c, Offset: 0, Size: 1, Value: 1
   0.212302     Path: UPS.PowerSummary.ACPresent, Type: Feature, ReportID: 0x0c, Offset: 2, Size: 1, Value: 1
   0.212753     find_nut_info: unknown info type: load.off.delay
   0.213320     find_nut_info: unknown info type: load.on.delay
   0.213641     find_nut_info: unknown info type: load.off.delay
   0.213843     upsdrv_initinfo...
   0.214223     upsdrv_updateinfo...
   0.215660     Got 6 HID objects...
   0.215822     Path: UPS.PowerSummary.Charging, Type: Input, ReportID: 0x0c, Offset: 0, Size: 1, Value: 1
   0.215965     Path: UPS.PowerSummary.Discharging, Type: Input, ReportID: 0x0c, Offset: 1, Size: 1, Value: 0
   0.216374     Path: UPS.PowerSummary.ACPresent, Type: Input, ReportID: 0x0c, Offset: 2, Size: 1, Value: 1
   0.216518     Path: UPS.PowerSummary.BelowRemainingCapacityLimit, Type: Input, ReportID: 0x0c, Offset: 3, Size: 1, Value: 0
   0.216661     Path: UPS.PowerSummary.BatteryPresent, Type: Input, ReportID: 0x0c, Offset: 4, Size: 1, Value: 1
   0.217076     Path: UPS.PowerSummary.Undefined, Type: Input, ReportID: 0x0c, Offset: 5, Size: 3, Value: 0
   0.217209     Quick update...
   0.217345     Path: UPS.PowerSummary.RemainingCapacity, Type: Feature, ReportID: 0x06, Offset: 0, Size: 8, Value: 100
   0.217484     Path: UPS.PowerSummary.Discharging, Type: Feature, ReportID: 0x0c, Offset: 1, Size: 1, Value: 0
   0.217881     Path: UPS.PowerSummary.Charging, Type: Feature, ReportID: 0x0c, Offset: 0, Size: 1, Value: 1
   0.218017     Path: UPS.PowerSummary.ACPresent, Type: Feature, ReportID: 0x0c, Offset: 2, Size: 1, Value: 1
   0.218274     dstate_init: sock /var/run/nut/usbhid-ups-Liebert open on fd 5
   0.218676     upsdrv_updateinfo...
   0.247656     Got 1 HID objects...
   0.248280     Path: UPS.PowerSummary.RemainingCapacity, Type: Input, ReportID: 0x06, Offset: 0, Size: 8, Value: 100
   0.248404     Quick update...
   0.248723     Path: UPS.PowerSummary.RemainingCapacity, Type: Feature, ReportID: 0x06, Offset: 0, Size: 8, Value: 100
   0.248853     Path: UPS.PowerSummary.Discharging, Type: Feature, ReportID: 0x0c, Offset: 1, Size: 1, Value: 0
   0.248973     Path: UPS.PowerSummary.Charging, Type: Feature, ReportID: 0x0c, Offset: 0, Size: 1, Value: 1
   0.249093     Path: UPS.PowerSummary.ACPresent, Type: Feature, ReportID: 0x0c, Offset: 2, Size: 1, Value: 1
   2.220693     upsdrv_updateinfo...
   2.253983     Got 6 HID objects...
   2.255104     Path: UPS.PowerSummary.Charging, Type: Input, ReportID: 0x0c, Offset: 0, Size: 1, Value: 1
   2.255546     Path: UPS.PowerSummary.Discharging, Type: Input, ReportID: 0x0c, Offset: 1, Size: 1, Value: 0
   2.256007     Path: UPS.PowerSummary.ACPresent, Type: Input, ReportID: 0x0c, Offset: 2, Size: 1, Value: 1
   2.256196     Path: UPS.PowerSummary.BelowRemainingCapacityLimit, Type: Input, ReportID: 0x0c, Offset: 3, Size: 1, Value: 0
   2.256654     Path: UPS.PowerSummary.BatteryPresent, Type: Input, ReportID: 0x0c, Offset: 4, Size: 1, Value: 1
   2.256839     Path: UPS.PowerSummary.Undefined, Type: Input, ReportID: 0x0c, Offset: 5, Size: 3, Value: 0
   2.257013     Quick update...
   2.259715     Path: UPS.PowerSummary.RemainingCapacity, Type: Feature, ReportID: 0x06, Offset: 0, Size: 8, Value: 100
   2.259808     Path: UPS.PowerSummary.Discharging, Type: Feature, ReportID: 0x0c, Offset: 1, Size: 1, Value: 0
   2.259874     Path: UPS.PowerSummary.Charging, Type: Feature, ReportID: 0x0c, Offset: 0, Size: 1, Value: 1
   2.259936     Path: UPS.PowerSummary.ACPresent, Type: Feature, ReportID: 0x0c, Offset: 2, Size: 1, Value: 1
clepple commented 3 years ago

@mattrivett what is interesting is that the debug log you posted on nut-upsuser showed a different path through the scaling code, though I guess that was from code newer than v2.7.4. From above:

   0.211353     Path: UPS.PowerSummary.ConfigVoltage, Type: Feature, ReportID: 0x05, Offset: 16, Size: 16, Value: 0
   0.211484     ConfigVoltage = 0 -> assuming correction factor = 1e+08

From the list:

   0.208056     [D3] Report[buf]: (5 bytes) => 05 36 00 30 00
   0.208187     [D2] Path: UPS.PowerSummary.Voltage, Type: Feature, ReportID: 0x05, Offset: 0, Size: 16, Value: 0
   0.208311     LineVoltage exponent looks wrong, but not correcting.
   0.208463     [D3] Report[buf]: (5 bytes) => 05 36 00 30 00
   0.208593     [D2] Path: UPS.PowerSummary.ConfigVoltage, Type: Feature, ReportID: 0x05, Offset: 16, Size: 16, Value: 0
   0.208718     ConfigVoltage exponent looks wrong, but not correcting.

Clearly needs some more debug info, especially since this version seems to still be truncating the scaled "Value" printouts.

@xztraz I posted an explanation on the list about where to look for some of the other values. It might be hard to implement with the current code structure, though, because NUT uses the "Path:" IDs for looking things up, and the "Undefined" items are indistinguishable from one another (except via the ReportID, which is really more of an internal ID, and is not exposed to the HID-to-NUT matching tables like in drivers/belkin-hid.c).

https://alioth-lists.debian.net/pipermail/nut-upsuser/2021-March/012321.html

mattrivett commented 3 years ago

In my earlier posts I installed NUT using apt-get nut on an RPI3. The RPI I also run as to get VPN access into my home network. I wanted to upgrade to get faster ethernet and processing however it really isn't required. The latest output is from compiling nut master on the RPI4.

Thanks for all the information. My goal is to get this data out of the UPS into MQTT that I then historize into a PI server. I am doing that using a modified version of this script for a CyberPower UPS and it works well. https://github.com/dniklewicz/ups-mqtt

image

I guess I can just leave the driver running and pipe it into a file for now. I've recorded video of this type of thing to provide data to decode sensors for rtl_433. Then you can see in real-time the output and the LCD and the data being received. That might help. I also have the software that came with the UPS that I haven't even installed yet. I could see if that provides any useful information.

On Thu, Mar 4, 2021 at 8:23 AM Charles Lepple notifications@github.com wrote:

@mattrivett https://github.com/mattrivett what is interesting is that the debug log you posted on nut-upsuser showed a different path through the scaling code, though I guess that was from code newer than v2.7.4. From above:

0.211353 Path: UPS.PowerSummary.ConfigVoltage, Type: Feature, ReportID: 0x05, Offset: 16, Size: 16, Value: 0 0.211484 ConfigVoltage = 0 -> assuming correction factor = 1e+08

From the list:

0.208056 [D3] Report[buf]: (5 bytes) => 05 36 00 30 00 0.208187 [D2] Path: UPS.PowerSummary.Voltage, Type: Feature, ReportID: 0x05, Offset: 0, Size: 16, Value: 0 0.208311 LineVoltage exponent looks wrong, but not correcting. 0.208463 [D3] Report[buf]: (5 bytes) => 05 36 00 30 00 0.208593 [D2] Path: UPS.PowerSummary.ConfigVoltage, Type: Feature, ReportID: 0x05, Offset: 16, Size: 16, Value: 0 0.208718 ConfigVoltage exponent looks wrong, but not correcting.

Clearly needs some more debug info, especially since this version seems to still be truncating the scaled "Value" printouts.

@xztraz https://github.com/xztraz I posted an explanation on the list about where to look for some of the other values. It might be hard to implement with the current code structure, though, because NUT uses the "Path:" IDs for looking things up, and the "Undefined" items are indistinguishable from one another (except via the ReportID, which is really more of an internal ID, and is not exposed to the HID-to-NUT matching tables like in drivers/belkin-hid.c https://github.com/networkupstools/nut/blob/v2.7.4/drivers/belkin-hid.c#L429 ).

https://alioth-lists.debian.net/pipermail/nut-upsuser/2021-March/012321.html

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/networkupstools/nut/issues/964#issuecomment-790614989, or unsubscribe https://github.com/notifications/unsubscribe-auth/AF7WZVDFE3XHEYLYCKWKTLTTB6CW7ANCNFSM4WPYR22Q .

xztraz commented 3 years ago

@xztraz I posted an explanation on the list about where to look for some of the other values..

Great! Anything i can do to help. photo of screen and some different loads with some log?

Loizzus commented 3 years ago

I'm in the same boat, I also have one of these things and need to get it to work properly. Anything I can do to help let me know.

mglants commented 3 years ago

I have the same thing with LIEBERT PSI 1000VA

jimklimov commented 2 years ago

Note that since 2020 several PRs were merged to update liebert-hid.c, so recent builds from NUT master branch (and eventual 2.8.0) might support this better. Any tests and reports back if it actually does would be welcome.

jimklimov commented 2 years ago

HCL/DDL part of the issue was handled with https://github.com/networkupstools/nut-ddl/pull/21 and #1396

jairbj commented 2 years ago

Note that since 2020 several PRs were merged to update liebert-hid.c, so recent builds from NUT master branch (and eventual 2.8.0) might support this better. Any tests and reports back if it actually does would be welcome.

Tested it today with NUT 2.8.0 and it's missing Battery Voltage, Power.

root@Servidor:~# upsc ups@localhost
battery.charge: 76
battery.charge.low: 20
battery.charge.warning: 0
battery.type: PbAc
battery.voltage: 1.0
battery.voltage.nominal: 0.0
device.mfr: Vertiv Co.
device.model: Liebert GXT4
device.serial: 1802100173AFD63
device.type: ups
driver.name: usbhid-ups
driver.parameter.pollfreq: 30
driver.parameter.pollinterval: 2
driver.parameter.port: auto
driver.parameter.productid: 0000
driver.parameter.synchronous: auto
driver.version: 2.8.0
driver.version.data: Belkin/Liebert HID 0.18
driver.version.internal: 0.47
driver.version.usb: libusb-1.0.26 (API: 0x1000108)
ups.mfr: Vertiv Co.
ups.model: Liebert GXT4
ups.productid: 0000
ups.serial: 1802100173AFD63
ups.status: OL CHRG
ups.vendorid: 10af
root@Servidor:~# upsd -V
Network UPS Tools upsd 2.8.0
sebastian-tennant commented 11 months ago

I have a similar issue where input and output voltage seem to be missing. If the UPS is plugged into my Synology, it will provide me the values - but when I plug it into a system with full NUT, I don't get them. I should see what they are doing..

# upsc -V
Network UPS Tools upscmd 2.8.0.1
# upsc ups@localhost   
battery.charge: 100
battery.charge.low: 38
battery.charge.warning: 38
battery.type: PbAc
battery.voltage: 0.0
battery.voltage.nominal: 0.0
device.mfr: Emerson Network Power
device.model: LiebertPSI
device.serial:           
device.type: ups
driver.debug: 0
driver.flag.allow_killpower: 0
driver.name: usbhid-ups
driver.parameter.pollfreq: 30
driver.parameter.pollinterval: 2
driver.parameter.port: auto
driver.parameter.synchronous: auto
driver.state: quiet
driver.version: 2.8.0.1
driver.version.data: Belkin/Liebert HID 0.18
driver.version.internal: 0.52
driver.version.usb: libusb-1.0.0 (API: 0x1000102)
input.frequency: 49.9
input.voltage: 0.0
output.voltage: 0.0
ups.load: 12
ups.mfr: Emerson Network Power
ups.model: LiebertPSI
ups.productid: 0001
ups.serial:           
ups.status: OL CHRG
ups.vendorid: 10af
jimklimov commented 11 months ago

@sebastian-tennant : what does Synology say (assuming it has another NUT version) about the driver.version.data (and the version itself)? Is it by chance MGE, maybe 2.7.4 based?

There is a overlap and difference of the two mapping tables, with some devices with same VID:PID marketed as one or other brand with different capabilities.

NUT 2.8.1 release (and later master branch code) added a subdriver option for usbhid-ups so users can pick their preference (and use USB IDs not built into binary drivers). Of course, bets are off here about actually supporting the device or confusing it into bricking... (well, gotta have a disclaimer here).

sebastian-tennant commented 11 months ago

@jimklimov They might be doing some proprietary magic. This is the output from the same UPS, just plugged into the Synology:

# upsc ups@localhost
Init SSL without certificate database
battery.charge: 100
battery.charge.low: 38
battery.charge.warning: 38
battery.type: PbAc
battery.voltage: 43.3
battery.voltage.nominal: 36.0
device.mfr: Emerson Network Power
device.model: LiebertPSI
device.serial:           
device.type: ups
driver.name: usbhid-ups
driver.parameter.pollfreq: 30
driver.parameter.pollinterval: 5
driver.parameter.port: auto
driver.parameter.synchronous: no
driver.version: DSM7-1-1-42930-workplus-version2-repack-42930-220712
driver.version.data: Belkin/Liebert HID 0.17
driver.version.internal: 0.41
input.frequency: 50.0
input.voltage: 240.5
output.voltage: 242.5
ups.load: 13
ups.mfr: Emerson Network Power
ups.model: LiebertPSI
ups.productid: 0001
ups.serial:           
ups.status: OL CHRG
ups.vendorid: 10af
# upsd -v
Network UPS Tools upsd DSM7-1-1-42930-workplus-version2-repack-42930-220712
jimklimov commented 11 months ago

Thanks! So, diff'ing the two data samples - I see they have a different synchronous setting (impacts how drivers send into the pipe to upsd) but with so few data points it should not matter regarding buffer overflows. Still, worth trying to flip yours on the "system with full NUT".

Another is the apparent difference of NUT releases involved, with Synology version looking like NUT v2.7.4; at least its sources have the identifying strings:

drivers/belkin-hid.c:#define BELKIN_HID_VERSION      "Belkin/Liebert HID 0.17"
drivers/usbhid-ups.c:#define DRIVER_VERSION             "0.41"

I'm not sure which exact commit your "2.8.0.1" build is made from, but versions 0.52 and 0.18 are around for some time, and are newer than 2.8.0 release.

From this, two possibilities pop out:

Also at least on the "full" system you can bump debug of the driver to see what it reports anything interesting about the data it sees (if it applies the descriptor fixes, something else...) - see https://github.com/networkupstools/nut/wiki/Changing-NUT-daemon-debug-verbosity