Ricks-Lab UPS Utilities
Reason this release was yanked:
Improved execution with error no config
Project description
rickslab-ups-utils
A set of utilities to monitor and react to the status of a set of supported UPSs.
Installation
There are currently 3 possible ways of installing rickslab-ups-utils as summarized here:
-
Repository - You can always clone the repository and run that version. This is useful if you want to contribute to the project.
-
PyPI - Meant for users wanting to run the very latest version. All PATCH level versions are released here first. This installation method is also meant for users not on a Debian distribution.
-
Rickslab.com Debian - Lags the PyPI release in order to assure robustness. May not include every PATCH version.
User Guide
For a detailed introduction, a community sourced User Guide is available. All tools are demonstrated and use cases are presented. Additions to the guide are welcome. Please submit a pull request with your suggested additions!
Commands
ups-ls
This utility displays most relevant parameters for installed and compatible UPSs listed in the config.json file. By default, all available parameters are displayed. The --input and --output options can be used to get relevant UPS input and output parameters. With the --list_commands option, the utility will list all available SNMP commands for the configured UPS. With the --list_params option, the daemon configuration parameters will be listed. The --list_decoders option will display list of all MiB decoders available for the UPS defined as daemon target. The --verbose will cause informational messages to be displayed and --no_markup option will result in plain text output instead of color coded text. The logger is enabled with the --debug option.
ups-daemon
With no options specified, the utility will give the current status of the UPS configured with daemon = true in the ups-config.json file. With the --daemon option, ups-daemon will continuously check the status of the UPS. When it detects that the UPS is sourcing powering from the battery, it will check the amount of time it has been running on battery and run the specified suspend script when the specified threshold is exceeded. It will execute the specified resume script when it detects power has resumed. When the utility detects a Battery Low event from the UPS or that time remaining for battery or the battery charge is below specified thresholds, then the shutdown script will be executed. If ups-daemon detects a return to line power has occurred before the shutdown has completed, it will execute the cancel shutdown script. With the --verbose option set, event update messages will be output, otherwise, only events are output. The --no_markup option will cause the output to be in plain text, with no color markup codes. The --logfile filename option is used to specify a logfile, but is not implemented at this time. The threshold and script definitions must be made in the config.py file using config.py.template as a template. The logger is enabled with the --debug option.
ups-mon
A utility to give the current state of all compatible UPSs. The default behavior is to continuously update a text based table in the current window until Ctrl-C is pressed. With the --gui option, a table of relevant parameters will be updated in a Gtk window. You can specify the delay between updates with the --sleep N option where N is an integer > 10 that specifies the number of seconds to sleep between updates. The --log option is used to write all monitor data to a psv log file. When writing to a log file, the utility will indicate this in red at the top of the window with a message that includes the log file name. The --status option will output a table of the current status. By default, unresponsive UPSs will not be displayed, but the --show_unresponsive can be used to force their display. The logger is enabled with the --debug option.
New in Current Release - v1.2.1
- Fixed issue in referencing PyPI install resource paths.
Known Issues
The utility currently supports:
- APC UPS with AP9630 and AP9641 NMC
- EATON UPS with PowerWalker NMC. I had an issue with voltage interpretation, and found that PowerWalker does not support the use of their NMC with Eaton UPS. But it mostly works anyway.
It monitors the specified UPSs using snmp v2c. I have not implemented the ability to listen to snmp traps yet, as I still have some research to do. If you have different UPS and would like to extend the dictionary in this code to support it, feel free to make a pull request.
Reference Material
- apc-ups-snmp
- Partial List of OIDs for APC UPS
- Another Partial List of OIDs for APC UPS
- Another Partial List of OIDs for APC UPS
- APC Reference
- snmp utilities
- MIB Browser
- Eaton PowerWalker NMC
History
New in Previous Release - v1.2.0
- Delay sys exit on failure to allow more information to be available for user to troubleshoot.
- Check file permissions for security issues and exit if not secure.
- Determine installation type (Local Git Repository, PyPI, or Debian), and force use of Debian location for configuration files if it is a debian installation.
- The ups-utils.ini file is now only required for ups-daemon. Other utilities will use defaults if missing.
- Added verbose option to ups-daemon to output status message for normal readings.
- Changes in documentation to describe steps necessary to secure snmp shared secret.
- Added check of configuration files readability.
- Implement code improvements from gpu-utils project.
- Move listing like functions from ups-daemon to ups-ls.
- Complete rewrite.
- USR1 signal will cause ups-mon and ups-daemon to reread daemon ini file.
- Moved logic of daemon parameter color coding to the daemon class.
New in Previous Release - v1.0.0
- Initial Release - Full functionality and working debian package!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file rickslab_ups_utils-1.2.2-py3-none-any.whl
.
File metadata
- Download URL: rickslab_ups_utils-1.2.2-py3-none-any.whl
- Upload date:
- Size: 91.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.1.0 requests-toolbelt/0.9.1 tqdm/4.58.0 CPython/3.7.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 018f7018cf820599615dbde0a7bfb4d73a4bdd5c396ff2845e23eee29d38aed9 |
|
MD5 | 8529cd25e39b9d97c3cff78dc6385c39 |
|
BLAKE2b-256 | 4f47af4ea523371e522b3f512273934e305bbc059396189e34c0eed586c06d06 |