upsrw - Man Page

Network UPS Tools device/driver variable administration tool

Synopsis

upsrw [-l] ups

upsrw -h

upsrw -s variable [-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, and 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), and are not linked to system usernames​.

-p password

Set the password to authenticate to the server​. This is also optional like -u, and 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​.

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

upsd(8), upscmd(8)

Internet resources

The NUT (Network UPS Tools) home page: https://www​.networkupstools​.org/historic/v2​.8​.5/

Referenced By

bicker_ser(8), blazer_ser(8), blazer_usb(8), clone(8), clone-outlet(8), dummy-ups(8), failover(8), huawei-ups2000(8), nut(7), nutdrv_qx(8), NUT-Monitor(8), nutupsdrv(8), oneac(8), phoenixcontact_modbus(8), powerpanel(8), powervar_cx_ser(8), powervar_cx_usb(8), socomec_jbus(8), tripplite_usb(8), upscmd(8), ups.conf(5), upsd(8), upslog(8), upsmon(8), upsset.cgi(8).

08/25/2026 Network UPS Tools 2.8.5 NUT Manual