[Nut-upsuser] Liebert PSP

Will Cooke will at whizzy.org
Fri Sep 17 11:10:10 UTC 2010


Hi,

I posted about this to the list earlier this week, but it seems to
have got combined with a previous thread and lost, at least that's
what it looks like in the archive (and I didn't receive a copy as I
would have expected).

So forgive me if you've already seen this, but:

I've got a couple of LiebertPSP's connected to my equipment and I'd
like to use NUT to keep an eye on them.  As things stands they
piggyback on the Belkin USB HID drivers but this don't seem to support
the "OB"/"OL" status which is rather important.

I've tried to create a sub driver myself by hacking away at the Belkin
driver but I don't understand enough C to make any headway.

Here's an example from usbhid-ups in explore mode:


   0.577720     Path: UPS.PowerSummary.PresentStatus.Charging, Type:
Feature, ReportID: 0x07, Offset: 0, Size: 1, Value: 0.000000
   0.577731     Report[buf]: (2 bytes) => 07 0d
   0.577743     Path: UPS.PowerSummary.PresentStatus.Charging, Type:
Input, ReportID: 0x07, Offset: 0, Size: 1, Value: 0.000000
   0.577753     Report[buf]: (2 bytes) => 07 0d
   0.577764     Path: UPS.PowerSummary.PresentStatus.Discharging,
Type: Feature, ReportID: 0x07, Offset: 1, Size: 1, Value: 0.000000
   0.577774     Report[buf]: (2 bytes) => 07 0d
   0.577785     Path: UPS.PowerSummary.PresentStatus.Discharging,
Type: Input, ReportID: 0x07, Offset: 1, Size: 1, Value: 0.000000
   0.577794     Report[buf]: (2 bytes) => 07 0d
   0.577807     Path: UPS.PowerSummary.PresentStatus.ACPresent, Type:
Feature, ReportID: 0x07, Offset: 2, Size: 1, Value: 0.000000
   0.577816     Report[buf]: (2 bytes) => 07 0d
   0.577828     Path: UPS.PowerSummary.PresentStatus.ACPresent, Type:
Input, ReportID: 0x07, Offset: 2, Size: 1, Value: 0.000000
   0.577837     Report[buf]: (2 bytes) => 07 0d
   0.577849     Path: UPS.PowerSummary.PresentStatus.BatteryPresent,
Type: Feature, ReportID: 0x07, Offset: 3, Size: 1, Value: 0.000000
   0.577858     Report[buf]: (2 bytes) => 07 0d
   0.577870     Path: UPS.PowerSummary.PresentStatus.BatteryPresent,
Type: Input, ReportID: 0x07, Offset: 3, Size: 1, Value: 0.000000
   0.577879     Report[buf]: (2 bytes) => 07 0d
   0.577891     Path:
UPS.PowerSummary.PresentStatus.BelowRemainingCapacityLimit, Type:
Input, ReportID: 0x07, Offset: 4, Size: 1, Value: 0.000000
   0.577900     Report[buf]: (2 bytes) => 07 0d
   0.577912     Path:
UPS.PowerSummary.PresentStatus.BelowRemainingCapacityLimit, Type:
Feature, ReportID: 0x07, Offset: 4, Size: 1, Value: 0.000000
   0.577922     Report[buf]: (2 bytes) => 07 0d
   0.577933     Path: UPS.PowerSummary.PresentStatus.ShutdownImminent,
Type: Input, ReportID: 0x07, Offset: 5, Size: 1, Value: 0.000000
   0.577942     Report[buf]: (2 bytes) => 07 0d
   0.577954     Path: UPS.PowerSummary.PresentStatus.ShutdownImminent,
Type: Feature, ReportID: 0x07, Offset: 5, Size: 1, Value: 0.000000
   0.577963     Report[buf]: (2 bytes) => 07 0d
   0.577975     Path: UPS.PowerSummary.PresentStatus.NeedReplacement,
Type: Input, ReportID: 0x07, Offset: 6, Size: 1, Value: 0.000000
   0.577984     Report[buf]: (2 bytes) => 07 0d
   0.577996     Path: UPS.PowerSummary.PresentStatus.NeedReplacement,
Type: Feature, ReportID: 0x07, Offset: 6, Size: 1, Value: 0.000000
   0.578005     Report[buf]: (2 bytes) => 07 0d
   0.578016     Path: UPS.PowerSummary.PresentStatus.NeedReplacement,
Type: Input, ReportID: 0x07, Offset: 7, Size: 1, Value: 0.000000


I can tell you that the "07 0d" appears when the UPS is powered, and
when the power is taken away this changes to 07 0a.  It is my current
belief that the first bit indicates AC power, so I tried to write a
conversion function for "AC Present" to act on this bit but the value
that gets passed to the function always seems to be zero.

I'm now completely stuck.  I can offer my time and UPS to the cause
but my skills in actual coding will be of no help.

Thanks for any assistance you can offer.

Cheers, Will



More information about the Nut-upsuser mailing list