[Nut-upsuser] [Announcement] Python3 scripts to replace upsmon, upssched, upssched-cmd

Roger Price roger at rogerprice.org
Sat Oct 24 19:52:49 BST 2020


UPSmon.py
---------

I have been experimenting with a Python3 re-implementation of upsmon,
upssched and upssched-cmd.  This is currently in use on openSUSE and
Debian boxes. It provides a much richer "language" for UPS management.
For example, the key part of the well known "warn on [OB], shutdown on
[LB]" approach is written as

  # Warnings when on-battery, wait for low battery
  LET Msg-OB = banner " Power failure, possible shutdown, save your work ..."
  LET Msg-shutdown  = banner " On battery, shutting down now ..."
  WHEN [UPS] REPORTS OL->OB : NOTIFY Msg-OB NUTLOG Msg-OB WALL Msg-OB
  # Shutdown on low battery
  WHEN Eaton REPORTS None->LB : NOTIFY Msg-shutdown NUTLOG Msg-shutdown
                                WALL Msg-shutdown STARTTIMER final-delay 5
  WHEN Eaton TIMEOUT final-delay : SHUTDOWNCMD "/sbin/shutdown -h 0"

All communication with upsd is TLS encrypted. The status is
"experimental", intended for experiment and demonstration. The scripts
and documentation are available at http://rogerprice.org/NUT/ .  The
file ConfigExamples.A5.pdf is extended with a new Part 2 covering the
Python3 scripts.

If you are curious, I have put my timed shutdown at the end of this message

upsdTLS.py
----------

Since UPSmon.py requires the latest TLS, upsd needs help.  This help is
provided by daemon upsdTLS.py which runs alongside upsd providing TLS
support.

mkNUTcert.py
------------

The certificates required for current TLS are more restrictive.  Script
mkNUTcert.py generates private and public certificates suitable for
NUT.

mkUPSmonconf.py
---------------

This script generates "standard" and timed shutdown configuration
files for UPSmon.py.

Comments welcome in this list.  I will write separately with a
detailed description of the differences between upsmon and UPSmon.py.

Roger



More information about the Nut-upsuser mailing list