upsrw - UPS variable administration tool
upsrw -s variable [-u username] [-p password] ups
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.
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.
Display the help message.
- -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:
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.
- -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.
View or change the settings on this UPS. The format for this option is
upsname[@hostname[:port]]. The default hostname is "localhost".
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
-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.
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.
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 forbiden. For example: "1200.20" is valid, while "1,200.20" and "1200,20" are invalid.
This program used to be called upsct2, which was ambiguous and confusing.