This file is read by the driver controller \fBupsdrvctl\fR(8), the UPS drivers that use the common core (see \fBnutupsdrv\fR(8), and \fBupsd\fR(8))\&. The file begins with global directives, and then each UPS has a section which contains a number of directives that set parameters for that UPS\&.
.sp
A UPS section begins with the name of the UPS in brackets, and continues until the next UPS name in brackets or until EOF\&. The name "default" is used internally in upsd, so you can\(cqt use it in this file\&.
.sp
You must define the \fIdriver\fR and \fIport\fR elements for each entry\&. Anything after that in a section is optional\&. A simple example might look like this:
.sp
.ifn\{\
.RS4
.\}
.nf
[myups]
driver = blazer_ser
port = /dev/ttyS0
desc = "Web server UPS"
.fi
.ifn\{\
.RE
.\}
.sp
A slightly more complicated version includes some extras for the hardware\-specific part of the driver:
.sp
.ifn\{\
.RS4
.\}
.nf
[bigups]
driver = apcsmart
port = /dev/cua00
cable = 940\-0095B
sdtype = 2
desc = "Database server UPS"
.fi
.ifn\{\
.RE
.\}
.sp
In this case, the \fBapcsmart\fR(8) driver will receive variables called "cable" and "sdtype" which have special meanings\&. See the man pages of your driver(s) to learn which variables are supported and what they do\&.
.SH"GLOBAL DIRECTIVES"
.PP
\fBchroot\fR
.RS4
Optional\&. The driver will chroot(2) to this directory during initialization\&. This can be useful when securing systems\&.
.RE
.PP
\fBdriverpath\fR
.RS4
Optional\&. Path name of the directory in which the UPS driver executables reside\&. If you don\(cqt specify this, the programs look in a built\-in default directory, which is often /usr/local/ups/bin\&.
.RE
.PP
\fBmaxstartdelay\fR
.RS4
Optional\&. Same as the UPS field of the same name, but this is the default for UPSes that don\(cqt have the field\&.
Optional\&. The status of the UPS will be refreshed after a maximum delay which is controlled by this setting\&. This is normally 2 seconds\&. This may be useful if the driver is creating too much of a load on your system or network\&.
Optional\&. The drivers work by default in asynchronous mode initially but can fall back to synchronous mode if writes to server socket failed (i\&.e
\fBsynchronous=auto\fR)\&. This means that all data are pushed by the driver on the communication socket to upsd (Unix socket on Unix, Named pipe on Windows) without waiting for these data to be actually consumed\&. With some HW, such as ePDUs, that can produce a lot of data, asynchronous mode may cause some congestion, resulting in the socket to be full, and the driver to appear as not connected\&. In such case, the driver will provide the following debug message:
(i\&.e\&. asynchronous mode) for backward compatibility of the driver behavior, until communications fail with a "Resource temporarily unavailable" condition, which happens when the driver has many data points to send in a burst, and the server can not handle that quickly enough so the buffer fills up\&.
Optional\&. Overrides the compiled\-in default unprivileged username for all NUT device drivers\&. See the discussion of the
\-u
option in
\fBnutupsdrv\fR(8)
for details\&.
.RE
.PP
\fBgroup\fR
.RS4
Optional\&. Overrides the compiled\-in (and/or global\-section) default unprivileged group name for all NUT device drivers, used for the socket file access\&. See the discussion of the
\-g
option in
\fBnutupsdrv\fR(8)
for details\&. This may be specifically useful for ensuring access to dynamic device filesystem nodes, such as USB (or serial\-over\-USB) hot\-plug support, or with device filesystems re\-generated by an OS for every reboot\&.
.RE
.PP
\fBdebug_min\fR\fIINTEGER\fR
.RS4
Optional\&. Specify a minimum debug level for all driver daemons, e\&.g\&. for troubleshooting a deployment, without impacting foreground or background running mode directly\&. Command\-line option
Optional\&. Overrides the compiled\-in (and/or global\-section) default unprivileged username for a particular NUT device driver\&. See the discussion of the
\-u
option in
\fBnutupsdrv\fR(8)
for details\&. This may be specifically useful for ensuring access to dynamic device filesystem nodes, such as USB (or serial\-over\-USB) hot\-plug support, or with device filesystems re\-generated by an OS for every reboot\&.
.RE
.PP
\fBgroup\fR
.RS4
Optional\&. Overrides the compiled\-in (and/or global\-section) default unprivileged group name for a particular NUT device driver, used for the socket file access\&. See the discussion of the
\-g
option in
\fBnutupsdrv\fR(8)
for details\&. This may be specifically useful for ensuring access to dynamic device filesystem nodes, such as USB (or serial\-over\-USB) hot\-plug support, or with device filesystems re\-generated by an OS for every reboot\&.
Optional\&. When you have multiple UPSes on your system, you usually need to turn them off in a certain order\&. upsdrvctl shuts down all the 0s, then the 1s, 2s, and so on\&. To exclude a UPS from the shutdown sequence, set this to \-1\&.
.sp
The default value for this parameter is 0\&.
.RE
.PP
\fBdesc\fR
.RS4
Optional\&. This allows you to set a brief description that upsd will provide to clients that ask for a list of connected equipment\&.
.RE
.PP
\fBnolock\fR
.RS4
Optional\&. When you specify this, the driver skips the port locking routines every time it starts\&. This may allow other processes to seize the port if you start more than one accidentally\&.
.sp
You should only use this if your system won\(cqt work without it\&.
Optional\&. When you specify this, the driver ignores a low battery condition flag that is reported by the UPS (some devices will switch off almost immediately after setting this flag, or will report this as soon as the mains fails)\&. Instead it will use either of the following conditions to determine when the battery is low:
Optional\&. This can be set as a global variable above your first UPS definition and it can also be set in a UPS section\&. This value controls how long upsdrvctl will wait for the driver to finish starting\&. This keeps your system from getting stuck due to a broken driver or UPS\&.
Optional\&. Same as the global directive of the same name, but this is for a specific device\&.
.RE
.PP
\fBusb_set_altinterface\fR[=\fIaltinterface\fR]
.RS4
Optional\&. Force the USB code to call
usb_set_altinterface(0), as was done in NUT 2\&.7\&.2 and earlier\&. This should not be necessary, since the default for
bAlternateSetting
(as shown in lsusb) is zero on all USB devices seen to date\&. However, this redundant call to
usb_set_altinterface()
prevents certain UPSes from working on Mac OS X\&. If your UPS requires explicitly setting the alternate interface, include this flag, and email the nut\-upsdev list with details about your UPS and operating system\&.
Optional\&. Set a default value for <variable> which is used in case the UPS doesn\(cqt provide a value, but will be overwritten if a value is available from the UPS:
.sp
.ifn\{\
.RS4
.\}
.nf
default\&.input\&.voltage\&.nominal = 230
.fi
.ifn\{\
.RE
.\}
.sp
The above will report the nominal input voltage to be 230, unless the UPS tells us differently\&.
.RE
.PP
\fBoverride\&.<variable>\fR
.RS4
Optional\&. Set a value for <value> that overrides any value that may be read from the UPS\&. Used for overriding values from the UPS that are clearly wrong (some devices report wrong values for battery voltage for instance):
.sp
.ifn\{\
.RS4
.\}
.nf
override\&.battery\&.voltage\&.nominal = 12
.fi
.ifn\{\
.RE
.\}
.sp
Use with caution! This will only change the appearance of the variable to the outside world, internally in the UPS the original value is used\&.
Optional\&. Specify a minimum debug level for this driver daemon, e\&.g\&. for troubleshooting a deployment, without impacting foreground or background running mode directly\&. If the global
debug_min
is also set, this driver\-level setting overrides it\&. Command\-line option
\fBupsdrvctl\fR(8) uses this file to start and stop the drivers\&.
.sp
The drivers themselves also obtain configuration data from this file\&. Each driver looks up its section and uses that to configure itself\&.
.sp
\fBupsd\fR(8) learns about which UPSes are installed on this system by reading this file\&. If this system is called "doghouse" and you have defined a UPS in your \fBups\&.conf\fR called "snoopy", then you can monitor it from \fBupsc\fR(8) or similar as "snoopy@doghouse"\&.