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

Fry's Electronic China UPS #2307

Open denveronly opened 9 months ago

denveronly commented 9 months ago

Howdy!

Ive been struggling a full day to hook a Chineese UPS to a NUT server. Tried it on homeassistant and Unraid instances, just to make sure there is no USB driver issues. So i have a brand "2E" RE650VA UPS, which goes to a server 2u Rack. It is pretty neat, but lacks of NUT support. Unraid Monitor gave me a setup like this to try.

All are failing to start, but the original program that came on a CD UPSmart works.

image

> [nutdev1]
> driver = "nutdrv_qx"
> port = "auto"
> vendorid = "0001"
> productid = "0000"
> bus = "001"
> device = "006"
> busport = "004"
> ###NOTMATCHED-YET###bcdDevice = "0100"

Ubuntu VM with a nut-scanner proposed nutdrv_actl_usb

lsusb -v give such an answer on connected device

> Bus 001 Device 006: ID 0001:0000 Fry's Electronics 
> Device Descriptor:
>   bLength                18
>   bDescriptorType         1
>   bcdUSB               2.00
>   bDeviceClass            0 
>   bDeviceSubClass         0 
>   bDeviceProtocol         0 
>   bMaxPacketSize0        64
>   idVendor           0x0001 Fry's Electronics
>   idProduct          0x0000 
>   bcdDevice            1.00
>   iManufacturer           0 
>   iProduct                1 
>   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      1 Boot Interface Subclass
>       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     0x82  EP 2 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
> Device Status:     0x0000
>   (Bus Powered)
jimklimov commented 9 months ago

Hello, can you try stopping the NUT programs and starting the drivers from command line in probe mode, e.g. nutdrv_qx -a myups -DDDDDD -d 1 so they would report in more detail what they tried and how that failed?

jimklimov commented 9 months ago

In the screenshot, "Mega" protocol is mentioned. I assume it means a variant of Megatec Q protocol family, so generally nutdrv_qx should be a good match.

There were some fixes merged recently for this driver, to help it handle devices this played loose with the spec (e.g. ending some messages with zero-bytes instead of zero characters in a sort of flag bit map entry). I am not sure if that was done for a specific subdriver (IIRC Ablerex) or for the whole ecosystem, however.

If you have a chance to build NUT from git sources - it may be possible to see if the fix takes effect and helps with your device.

More details at https://github.com/networkupstools/nut/wiki/Building-NUT-for-in%E2%80%90place-upgrades-or-non%E2%80%90disruptive-tests - note you do not have to replace a packaged NUT just to test the driver (can do from build workspace).

denveronly commented 9 months ago

Hello, can you try stopping the NUT programs and starting the drivers from command line in probe mode, e.g. nutdrv_qx -a myups -DDDDDD -d 1 so they would report in more detail what they tried and how that failed?

im not sure how to start it in probe mode, the only idea i tried is image

denveronly commented 9 months ago

In the screenshot, "Mega" protocol is mentioned. I assume it means a variant of Megatec Q protocol family, so generally nutdrv_qx should be a good match.

There were some fixes merged recently for this driver, to help it handle devices this played loose with the spec (e.g. ending some messages with zero-bytes instead of zero characters in a sort of flag bit map entry). I am not sure if that was done for a specific subdriver (IIRC Ablerex) or for the whole ecosystem, however.

If you have a chance to build NUT from git sources - it may be possible to see if the fix takes effect and helps with your device.

More details at https://github.com/networkupstools/nut/wiki/Building-NUT-for-in%E2%80%90place-upgrades-or-non%E2%80%90disruptive-tests - note you do not have to replace a packaged NUT just to test the driver (can do from build workspace).

Maybe it is easier just to replace the driver file from /usr/lib/nut , the file nutdrv_qx from other version?

rm file and cp from other location, stupid idea ?

jimklimov commented 9 months ago

In Unix/Linux, you have to provide a path to programs (if not in a PATH listed location), e.g. ./nutdrv_qx -a myups -DDDDDD -d 1 (assuming myups is the device configuration section name in your ups.conf).

To "rm and cp" you have to build that newer driver program first :) And if after testing from the build workspace it behaves better, the make install would do a better job to copy the new files into your system (the wiki article ends with this optional replacement step).

denveronly commented 9 months ago

In Unix/Linux, you have to provide a path to programs (if not in a PATH listed location), e.g. ./nutdrv_qx -a myups -DDDDDD -d 1 (assuming myups is the device configuration section name in your ups.conf).

To "rm and cp" you have to build that newer driver program first :) And if after testing from the build workspace it behaves better, the make install would do a better job to copy the new files into your system (the wiki article ends with this optional replacement step).

oh i get, still learning. sorry. I tried the probe mode, but the info is not so informative changed in ups.conf the name.

image

image

jimklimov commented 9 months ago

Hm, I was under impression you had NUT 2.8.x, must have mistaken with another issue of the day. Probably have to build a new one or find packaged.

CristiXP commented 8 months ago

Any fix for this? I have the same problem in Homeassistant.

marios8543 commented 5 days ago

Any news about this ? Also struggling with a similar UPS

jimklimov commented 4 days ago

"Similar" being "2E" branded, or with ID 0000:0001 indicating that the vendor did not even bother to get an ID?

marios8543 commented 4 days ago

It is ID 0000:0001 with a "Fry's Electronics" vendor. It also works with the UPSmart with the Mega (USB) option as per the original post. I have tried the nutdrv_qx driver with megatec and megatec/old protocol and pretty much every subdriver but it always fails to start with Device not supported! (It prints it 2 times).