BLAZER_USB(8) | NUT Manual | BLAZER_USB(8) |
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
default.battery.voltage.low = value
default.battery.voltage.nominal = value, override.battery.voltage.nominal = value
override.battery.packs = value
ondelay = value
offdelay = value
norating
novendor
protocol = string
runtimecal = value,value,value,value
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
idleload = value
USB INTERFACE ONLY¶
port = string
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
Try lsusb(8) or running this NUT driver with -DD command-line argument for finding out the strings to match.
Examples:
bus = regex
device = regex
Note
device numbers are not guaranteed by the OS to be stable across re-boots or device re-plugging.
busport = regex
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
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
subdriver = string
langid_fix = value
UPS COMMANDS¶
This driver supports some instant commands (see upscmd(8)):
beeper.toggle
load.on
load.off
shutdown.return
shutdown.stayoff
shutdown.stop
test.battery.start.deep
test.battery.start.quick
test.battery.start value
test.battery.stop
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
dtr and rts
ignoreoff
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¶
SEE ALSO¶
blazer_ser(8), nutupsdrv(8), upsc(8), upscmd(8), upsrw(8)
Internet Resources:¶
02/19/2024 | Network UPS Tools 2.8.1 |