Provided by: nut-server_2.8.1-3.1ubuntu2_amd64 bug

NAME

       blazer_usb - Driver for Megatec/Q1 protocol USB based UPS equipment

NOTE

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

NOTE

       Please note that this driver is deprecated and will not receive new development. If it
       works for managing your devices — fine, but if you are running it to try setting up a new
       device, please consider the newer nutdrv_qx(8) instead, which should handle all Q*
       protocol variants for NUT.

       Please do also report if your device works with this driver, but nutdrv_qx(8) would not
       actually support it with any subdriver!

SUPPORTED HARDWARE

       The blazer driver is known to work with various UPSes from Blazer, Energy Sistem, Fenton
       Technologies, General Electric, Mustek and many others. The NUT compatibility table lists
       all the known supported models. Keep in mind, however, that other models not listed there
       may also be supported, but haven’t been tested.

       All devices with a serial interface (use the blazer_ser driver) and many with a USB
       interface (use the blazer_usb driver) are supported.

EXTRA ARGUMENTS

       You may need to override or provide defaults for some values, depending on the make and
       model of your UPS. The following are the ones that most likely will need changing (see
       ups.conf(5)):

       default.battery.voltage.high = value
           Maximum battery voltage that is reached after about 12 to 24 hours charging. If you
           want the driver to report a guesstimated battery.charge, you need to specify this (see
           BATTERY CHARGE GUESSTIMATION).

       default.battery.voltage.low = value
           Minimum battery voltage just before the UPS automatically shuts down. If you want the
           driver to report a guesstimated battery.charge, you need to specify this (see BATTERY
           CHARGE GUESSTIMATION).

       default.battery.voltage.nominal = value, override.battery.voltage.nominal = value
           Some devices show a wrong nominal battery voltage (or none at all), so you may need to
           override or set a default value.

       override.battery.packs = value
           Some devices report a part of the total battery voltage. For instance, if
           battery.voltage.nominal is 24 V, but it reports a battery.voltage of around 2 V, the
           number of battery.packs to correct this reading would be 12. The driver will attempt
           to detect this automatically, but if this fails somehow, you may want to override this
           value.

       ondelay = value
           Time to wait before switching on the UPS (minutes). Note that a value below 3 minutes,
           may cause earlier firmware versions to not switch on automatically, so it defaults to
           3 minutes. The acceptable range is 0..9999 minutes.

       offdelay = value
           Time to wait before shutting down the UPS (seconds). This value is truncated to units
           of 6 seconds (less than 60 seconds) or 60 seconds (more than 60 seconds). Defaults to
           30 seconds. The acceptable range is 12..600 seconds.

       norating
           Some UPSes will lock up if you attempt to read rating information from them. Setting
           this flag will make the driver skip this step.

       novendor
           Some UPSes will lock up if you attempt to read vendor information from them. Setting
           this flag will make the driver skip this step.

       protocol = string
           Skip autodetection of the protocol to use and only use the one specified. Supported
           values megatec, megatec/old, mustek and zinto.

       runtimecal = value,value,value,value
           Parameter used in the (optional) runtime estimation. This takes two runtimes at
           different loads. Typically, this uses the runtime at full load and the runtime at half
           load. For instance, if your UPS has a rated runtime of 240 seconds at full load and
           720 seconds at half load, you would enter

               runtimecal = 240,100,720,50

           The first load should always be higher than the second. If you have values available
           for loads other than 100 and 50 % respectively, you can use those too, but keep them
           spaced apart as far as reasonably possible. Just don’t get too close to no load
           (prediction of runtime depends more on idle load for the battery then).

       chargetime = value
           The time needed to fully recharge the battery after being fully discharged. If not
           specified, the driver defaults to 43200 seconds (12 hours). Only used if runtimecal is
           also specified.

       idleload = value
           Minimum battery load used by the driver to estimate the runtime. If not specified, the
           driver defaults to 10%. Only used if runtimecal is also specified.

   USB INTERFACE ONLY
       port = string
           Some value must be set, typically auto.

               Note
               This could be a device filesystem path like /dev/usb/hiddev0 but current use of
               libusb API precludes knowing and matching by such identifiers. They may also be
               inherently unreliable (dependent on re-plugging and enumeration order). At this
               time the actual value is ignored, but syntactically some port configuration must
               still be there.

       It is possible to control multiple UPS units simultaneously by running several instances
       of this driver, provided they can be uniquely distinguished by setting some combination of
       the vendor, product, vendorid, productid, serial, bus and/or device options detailed
       below. For devices or operating systems that do not provide sufficient information, the
       allow_duplicates option can be of use (limited and risky!)

       vendorid = regex, productid = regex, vendor = regex, product = regex, serial = 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) for more information on regular
           expressions), which must match the UPS’s entire respective vendor/product/serial
           string (minus any surrounding whitespace), or the whole 4-digit hexadecimal code for
           vendorid and productid.

           Try lsusb(8) or running this NUT driver with -DD command-line argument for finding out
           the strings to match.

           Examples:

           •   -x vendor="Foo.Corporation.*"

           •   -x vendorid="051d*" (APC)

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

       bus = regex
           Select a UPS on a specific USB bus or group of buses. The argument is a regular
           expression that must match the bus name where the UPS is connected (e.g.  bus="002" or
           bus="00[2-3]") as seen on Linux in /sys/bus/usb/devices or lsusb(8); including leading
           zeroes.

       device = regex
           Select a UPS on a specific USB device or group of devices. The argument is a regular
           expression that must match the device name where the UPS is connected (e.g.
           device="001" or device="00[1-2]") as seen on Linux in /sys/bus/usb/devices or
           lsusb(8); including leading zeroes.

               Note
               device numbers are not guaranteed by the OS to be stable across re-boots or device
               re-plugging.

       busport = regex
           If supported by the hardware, OS and libusb on the particular deployment, this option
           should allow to specify physical port numbers on an USB hub, rather than logical
           device enumeration values, and in turn — this should be less volatile across reboots
           or re-plugging. The value may be seen in the USB topology output of lsusb -tv on
           systems with that tool, for example.

               Note
               this option is not practically supported by some NUT builds (it should be ignored
               with a warning then), and not by all systems that NUT can run on.

       allow_duplicates
           If you have several UPS devices which may not be uniquely identified by the options
           above (e.g. only VID:PID can be discovered there), this flag allows each driver
           instance where it is set to take the first match if available, or proceed to try
           another.

           Normally the driver initialization would abort at this point claiming "Resource busy"
           or similar error, assuming that the otherwise properly matched device is unique — and
           some other process already handles it.

               Warning
               This feature is inherently non-deterministic! The association of driver instance
               name to actual device may vary between runs!

               If you only care to know that at least one of your no-name UPSes is online, this
               option can help.

               If you must really know which one, it will not!

       usb_set_altinterface = bAlternateSetting
           Force redundant call to usb_set_altinterface(), especially if needed for devices
           serving multiple USB roles where the UPS is not represented by the interface number 0
           (default).

       subdriver = string
           Select a serial-over-USB subdriver to use. You have a choice between phoenix, ippon,
           cypress, and krauler. When using this option, it is mandatory to also specify the
           vendorid and productid.

       langid_fix = value
           Apply the language ID workaround to the krauler subdriver. This is mandatory for some
           devices to work (LDLC, Dynamix and others). You must to provide value (0x409 or
           0x4095), according to your device entry in NUT hardware compatibility list (HCL).

UPS COMMANDS

       This driver supports some instant 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 (see KNOWN PROBLEMS).

       shutdown.return
           Turn off the load and return when power is back. Uses the timers defined by ondelay
           and offdelay.

       shutdown.stayoff
           Turn off the load and remain off (see KNOWN PROBLEMS). Uses the timer defined by
           offdelay.

       shutdown.stop
           Stop a shutdown in progress.

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

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

       test.battery.start value
           Perform a battery test for the duration of value minutes.

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

BATTERY CHARGE GUESSTIMATION

       Due to popular demand, this driver will report a guesstimated battery.charge value and
       optionally battery.runtime, provided you specified a couple of the EXTRA ARGUMENTS listed
       above.

       If you specify both battery.voltage.high and battery.voltage.low in ups.conf(5), but don’t
       enter runtimecal, it will guesstimate the state of charge by looking at the battery
       voltage alone. This is not reliable under load, as this only gives reasonably accurate
       readings if you disconnect the load, let the battery rest for a couple of minutes and then
       measure the open cell voltage. This just isn’t practical if the power went out and the UPS
       is providing power for your systems.

                                battery.voltage - battery.voltage.low
           battery.charge =  ------------------------------------------ x 100 %
                             battery.voltage.high - battery.voltage.low

       There is a way to get better readings without disconnecting the load, but this requires
       one to keep track on how much (and how fast) current is going in- and out of the battery.
       If you specified the runtimecal, the driver will attempt to do this. Note however, that
       this heavily relies on the values you enter and that the UPS must be able to report the
       load as well. There are quite a couple of devices that report 0% (or any other fixed
       value) at all times, in which case this obviously doesn’t work.

       The driver also has no way of determining the degradation of the battery capacity over
       time, so you’ll have to deal with this yourself (by adjusting the values in runtimecal).
       Also note that the driver guesses the initial state of charge based on the battery
       voltage, so this may be less than 100%, even when you are certain that they are full.
       There is just no way to reliably measure this between 0 and 100% full charge.

       This is better than nothing (but not by much). If any of the above calculations are giving
       you incorrect readings, remember that you are the one who put in the values in
       ups.conf(5), so don’t complain to the author. If you need something better, consider buy
       an UPS that reports battery.charge and battery.runtime all by itself without the help of a
       NUT driver.

NOTES FOR THE PREVIOUS USER OF MEGATEC DRIVERS

       The blazer drivers having replaced the megatec ones, some configuration changes may be
       required by users switching to blazer.

       Part of this, the following megatec options, in ups.conf, have to be changed:

       battvolts
           You need to use default.battery.voltage.high and default.battery.voltage.low

       dtr and rts
           You need to use cablepower

       ignoreoff
           This parameter can simply be discarded, since it was a wrong understanding of the
           specification.

KNOWN PROBLEMS

       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.

       Both the load.off and shutdown.stayoff instant commands are meant to turn the load off
       indefinitely. However, some UPS models don’t allow this.

       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 and load value is known to be bogus in some models.

AUTHORS

       •   Arjen de Korte <adkorte-guest at alioth.debian.org>

       •   Alexander Gordeev <lasaine at lvk.cs.msu.su>

SEE ALSO

       blazer_ser(8), nutupsdrv(8), upsc(8), upscmd(8), upsrw(8)

   Internet Resources:
       •   The NUT (Network UPS Tools) home page: https://www.networkupstools.org/

       •   The NUT HCL: https://www.networkupstools.org/stable-hcl.html