Thomas Golding wrote:
> I'm working with usbhid-ups and a Tripplite OMNI1000LCD. I used a USB
packet
> sniffer to discover something cool about the watchdog feature in this unit.
> (not sure if the other OMNI-X-LCD models work the same or not.) Basically
> there's a single HID variable at Report ID 0x52
> (UPS.OutletSystem.Outlet.ffff0092) that's one byte (0-255 int) and it
> contains the Watchdog timeout value. If it's set to zero, the watchdog
is
> effectively disabled. If it's set to >0, it represents the amount of
time
> (in seconds) the UPS will count down to reboot if it looses comms with the
> PC. Tripplite's PowerAlert software just writes a user-assigned number
to
> this location to enable watchdog.
That is a highly dangerous feature. If someone accidentally removes the
USB plug, it would trip the watchdog.
> I've looked at the code for 2.2.0, 2.2.1-pre, and SVN rev. 1170
(12-08-2007)
> and none of them seems to implement watchdog in usbhid-ups at all.
No, although it can be done pretty easily in the subdriver. There is no
need to do this in usbhid-ups (and we won't do that either, see below).
> Could anyone point me in the right direction on how to code
> ups.watchdog.status and reset.watchdog in usbhid-ups?
See if what I came up with in the trunk (r1175) suits your needs. The
following commands control the watchdog:
upsc <upsname> ups.watchdog.status (shows time left)
upscmd -u <user> -p <pass>] <ups> reset.watchdog[=seconds]
By default, the latter command will write '60' to this variable if
called without the optional seconds, but you can override this. You'll
need to hack up a script that periodically calls this command to keep
your watchdog happy.
This feature is far too dangerous to include in the mainstream NUT, so
adding these variables to the tripplite-hid subdriver is as far as I
want to go.
Best regards, Arjen