dummy-ups - Driver for multi purpose UPS emulation
This man page only documents the specific features of the dummy-ups
driver. For information about the core driver, see nutupsdrv(8).
This program is a multi purpose UPS emulation tool. Its behavior
depends on the running mode:
looks like a standard UPS driver to upsd(8) and allows to change
any value for testing purposes. It is both interactive,
controllable through the upsrw(1) and upscmd(1) commands (or
equivalent graphical tool), and batchable through script files.
It can be configured, launched and used as any other real
driver. This mode is mostly useful for development and testing
acts as a NUT client, simply forwarding data. This can be useful
for supervision purposes. This can also allow some load sharing
between several UPS instances, using a point-to-point
communication with the UPS.
The port specification depends on the running mode, and allows the
automatic guessing of it.
Port is a definition file name for dummy-ups. This can either be
an absolute or a relative path name. In the latter case the NUT
sysconfig directory (ie /etc/nut, /usr/local/ups/etc, ...) is
This file is generally named something.dev. It contains a list
of all valid data and associated values, and has the same format
as an upsc dump (<varname>: <value>). So you can easilly create
definition files from an existing UPS using "upsc > file.dev".
It can also be empty, in which case only a basic set of data is
available: device.*, driver.*, ups.mfr, ups.model, ups.status
Samples definition files are available in the "data" directory
of the nut source tree, and generally in the sysconfig directory
of your system distribution.
Since dummy-ups will loop on reading this file, you can
dynamically modify it to interact with the driver.
You can also use the "TIMER <seconds>" instruction to create
scheduled events sequences. For example, the following sequence
will loop on switching ups.status between "OL", "OB" and "OB LB"
It is wise to end the script with a TIMER. Otherwise dummy-ups
will directly go back to the beginning of the file.
Port is the name of a remote UPS, using the NUT form, ie:
You will need add to at least one entry in ups.conf(5) like:
driver = dummy-ups
port = evolution500.dev
desc = "dummy-ups in dummy mode"
driver = dummy-ups
port = ups@hostname
desc = "dummy-ups in repeater mode"
You can declare as many entries, and so run multiple instances, as you
Once the driver is loaded in dummy mode, you can change any variables,
except those of the driver.* and server.* collections. You can do this
by either editing the definition file, or use the upsrw(1) and
In repeater mode, the driver acts according to the capabilities of the
UPS, and so support the same instant commands and settable values.
This driver was written in one evening to replace the previous
dummycons testing driver. It was too limited and required to work from
a terminal to interact.
dummy-ups is useful for NUT client development, and other testing
It also helps the NUT Quality Assurance effort, by automating some
tests on the NUT framework.
It now offers a repeater mode. This will help in building the Meta UPS
approach, which allows to build a virtual device, composed of several
other devices (either UPS, PDUs).
Instant commands are not yet supported in Dummy Mode, and data need
name / value checking enforcement, as well as boundaries or enumeration
upscmd(1), upsrw(1), ups.conf(5), nutupsdrv(8)
The NUT (Network UPS Tools) home page: http://www.networkupstools.org/
Tue Oct 6 2009