megatec_usb(8) Driver for Megatec protocol based USB UPS equipment

NOTE

This man page only documents the hardware-specific features of the megatec_usb driver. For information about the core driver, see nutupsdrv(8).

Note. This driver is experimental at the moment. It is currently being worked on and may change over time. However, it is stable in execution and does what is needed.

SUPPORTED HARDWARE

The megatec_usb driver is known to work with various UPSes from Krauler, Agiler, and Upsonic (Ablerex interface). Others that use the Megatec protocol may work, but haven't been tested.

This driver supports the USB versions of UPSs, if you have only serial interface then use the straight megatec(8) driver.

If you find that this driver does not work, and you are sure that your hardware speaks megatec protocol, then you can easily extend this driver. However, you will need to do some analysis of the commands that are sent to the UPS. Please see the forums for discussions on this and how to extend this driver.

EXTENSIONS TO MEGATEC

This driver extends the standard megatec(8) driver to work with certain UPSes that have a USB interface. These devices do not obey the normal rules for HID USB devices and therefore the newhidups(8) driver will not work for them.

This driver takes the standard serial interface and passes this over USB to the UPS. This means that most, but not all, commands available for the serial driver will work. For Krauler, Agiler, and Upsonic (with Ablerex interface) UPSes it appears to give very similar results to the serial interface. The driver supports monitoring most of the usual UPS variables, and also supports automatic shutdown.

EXTRA ARGUMENTS

mfr=string

Optional. Specify the UPS manufacturer name.

model=string

Optional. Specify the UPS model name.

serial=string

Optional. Specify the UPS serial number.

lowbatt=float

Optional. Low battery level (%). Overrides the hardware default level.

ondelay=int

Optional. Delay before the UPS is turned back on (minutes).

offdelay=int

Optional. Delay before the UPS is turned off (minutes).

battvolts=float:float

Optional. The battery voltage interval <empty:full> (volts).

vendor=regex
product=regex
vendorid=regex
productid=regex

Select a specific UPS, in case there is more than one connected via USB. Each option specifies an extended regular expression (see regex(7)) that must match the UPS's entire vendor/product/serial string (minus any surrounding whitespace), or the whole 4-digit hexadecimal code for vendorid and productid. Try -DD for finding out the strings to match.

Examples:


    -x vendor="Foo.Corporation.*"


    -x vendorid=05b8 (Agiler)


    -x product=".*(Smart|Back)-?UPS.*"

bus=regex

Select a UPS on a specific USB bus or group of busses. The argument is a regular expression that must match the bus name where the UPS is connected (e.g. bus="002", bus="00[2-3]").

subdriver=string

Select a serial-over-USB subdriver to use. You have a choice between "agiler" and "krauler" subdrivers currently.

UPS COMMANDS

This driver supports some extra commands (see upscmd(8)):

beeper.toggle
Toggle the UPS beeper. (Not available on some hardware.)

load.on
Turn on the load immediately.

load.off
Turn off the load immediately. (Not yet supported)

reset.input.minmax
Reset minimum and maximum input voltage status. (Not yet supported)

reset.watchdog
Restarts the UPS watchdog timeout. The watchdog is started if it isn't running, which means the UPS shuts down one minute after this command is executed for the last time, restarting one minute afterwards. To cancel the watchdog, run the "shutdown.stop" command.

shutdown.return
Turn off the load and return when power is back. (Not yet supported)

shutdown.stayoff
Turn off the load and remain off. (Not yet supported)

shutdown.stop
Stop a shutdown in progress.

test.battery.start.deep
Perform a long battery test (Not available on some hardware.)

test.battery.start
Perform a (10 second) battery test.

test.battery.stop
Stop a running battery test. (Not available on some hardware.)

USER VARIABLES

The behavior of the driver can be controlled by some user definable variables (see upsrw(8)):

ups.delay.shutdown
Interval to wait after shutdown with delay command (seconds)

ups.delay.start
Interval to wait before (re)starting the load (seconds)

KNOWN PROBLEMS

The battery charge (%) value is only a best-effort calculation and may be incorrect, or non-existant, for some UPS models. In any case, you can always resort to finding the voltages at which the battery becomes fully discharged and fully charged, and specify them manually using the "battvolts" option. If you do this, please notify the author of this driver.

Some UPS commands aren't supported by all models. In most cases, the driver will send a message to the system log when the user tries to execute an unsupported command. Unfortunately, some models don't even provide a way for the driver to check for this, so the unsupported commands will silently fail.

Some models report a bogus value for the beeper status (will always be "enabled" or "disabled"). So, the "beeper.toggle" command may appear to have no effect in the status reported by the driver when, in fact, it is working fine.

The temperature value is also known to be bogus in some models.

AUTHORS

Carlos Rodrigues <carlos.efr at mail.telepac.pt>
Andrey Lelikov <nut-driver at lelik.org>
Alexander Gordeev <lasaine at lvk.cs.msu.su>
Jon Gough <jon.gough at eclipsesystems.com.au>

Internet resources:

The NUT (Network UPS Tools) home page: http://www.networkupstools.org/