NAME

upsrw - Network UPS Tools device/driver variable administration tool

SYNOPSIS

upsrw [-l] ups

upsrw -h

upsrw -s variable [-A authconf] [-u username] [-p password] [-w] [-t <timeout>] ups

DESCRIPTION

upsrw allows you to view and change the read/write variables inside your UPS. It sends commands via the server upsd(8) to your driver, which configures the hardware for you. You must use credentials defined in upsd.users(5) file on that data server with appropriate permissions.

The list of variables that allow you to change their values is based on the capabilities of your UPS equipment. Not all models support this feature. Typically, cheaper hardware does not support any of them. Run upsrw with a UPS identifier to see what will work for you.

OPTIONS

-s variable

Specify the variable to be changed inside the UPS. For unattended mode such as in shell scripts, use the format VAR=VALUE to specify both the variable and the value, for example:

-s input.transfer.high=129

Without this argument, upsrw will just display the list of the variables and their possible values.

Some variables are strings, and can be set to any value within the length limit. Others are enumerated types and can only be set to one of those values. Others may be within an allowed range of values. Refer to the list to know what’s available in your hardware.

-l

Just display the list of the variables and their possible values.

Same as default activity without -s argument, provided for CLI similarity with other tools.

-u username

Set the NUT username for the connection to the server. This is optional, a value from authconf file would be used (if it resolves both a username and a password for the host and port involved), otherwise you will be prompted for this when using the -s option if you don’t specify -u on the command line.

NUT usernames are defined in upsd.users(5) on the server side, and are not linked to system usernames (although if a system user name can be resolved, it would be the default proposed value for interactive mode).

-p password

Set the password to authenticate to the server. This is also optional like -u, and will be used from authconf or you will be prompted for it if necessary.

-w

Wait for the completion of setting execution by the driver and return its actual result from the device. Note that this feature requires that both upsd(8) and the driver support TRACKING (NUT version 2.8.0 or higher), or it will otherwise fail.

The command will also block until an actual result is provided from the driver, or the timeout is reached (see -t).

-t seconds

Set a timeout when using -w. Defaults to 10 seconds.

ups

View or change the settings on this UPS. The format for this option is upsname[@hostname[:port]]. The default hostname is "localhost".

COMMON OPTIONS

-h

Show the command-line help message.

-D

Raise the debugging level. Use this option multiple times for more details. Overrides the optional NUT_DEBUG_LEVEL environment variable.

-V

Show NUT version banner. More details may be available if you also export NUT_DEBUG_LEVEL=1 or greater verbosity level.

-W secs

Set the timeout for initial network connections (by default they are indefinitely non-blocking, or until the system interrupts the attempt). Overrides the optional NUT_DEFAULT_CONNECT_TIMEOUT environment variable.

-A /path/to/nutauth.conf

Require use of the specified nutauth.conf(5) file (fail if absent, not accessible, or has content errors when parsed) to specify connection security settings and/or credentials for this run.

By silent default, the client tries best-effort (non-fatal) detection of a configuration file in per-user locations ${HOME}/.config/nut/nutauth.conf or ${HOME}/.nutauth.conf, or site default ${NUT_CONFPATH}/nutauth.conf.

Note
If the NUT_AUTHCONF_FILE environment variable is exported, only that exact full (relative or absolute) file path and name would be tried as the default; otherwise, if the NUT_AUTHCONF_PATH environment variable is exported, only a nutauth.conf file in that directory would be tried as the default (instead of looking at hard-coded default locations listed above).

Special values:

  • default: require a default file in one of the locations found per rules listed above;

  • none: do not even try to find and load any such file (legacy default).

UNATTENDED MODE

If you run this program inside a shell script or similar to set variables, you will need to specify all of the information on the command line. This means using -s VAR=VALUE, -u and -p. Otherwise it will put up a prompt and your program will hang.

This is not necessary when displaying the list, as the username and password are not required for read-only mode.

Moreover, if you run this program inside a shell script or similar, you should only consider using output from stdout, not stderr.

DIAGNOSTICS

upsrw can’t set variables on your UPS unless you provide a valid username and password. If you get "access denied" errors, make sure that your upsd.users(5) has an entry for you, and that the username you are using has permissions to SET variables.

upsrw without -w would somewhat confusingly show "OK" meaning just that the data server connection was established, and the server did not immediately reject the request due to e.g. unknown driver variable name. If you care to know the actual results, do use the -w (-t NUM) option(s) to wait for them.

VALUE FORMAT

When using upsrw to modify a numeric float value, that values must be given using decimal (base 10) english-based representation, so using a dot, in non-scientific notation. So hexadecimal, exponents, and comma for thousands separator are forbidden.

For example: "1200.20" is valid, while "1,200.20" and "1200,20" are invalid.

HISTORY

This program used to be called upsct2, which was ambiguous and confusing.

SEE ALSO

Internet resources:

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