[Nut-upsuser] Simulating an UPS
Roger Price
roger at rogerprice.org
Wed Jun 29 15:25:04 BST 2022
On Sat, 25 Jun 2022, PeReZ via Nut-upsuser wrote:
> Hi,I create a script to build a file for the dummy-ups to simulate an UPS from
> other two in redundant mode for devices that allows monitoring only one UPS.
>
> The diagram: https://imgur.com/a/z4ZUuNw
I tried this with three different browsers, but all I got was all-black
screens or a javascript error.
> I made some configurations that I put here:
> https://pastebin.com/yiQ1ju10
>
> Can you look at them and tell me if it can works before I try physically?
> Just saw an error on upsmon.conf where I put a symbolic IP address for the two UPSes but I must put the name in ups.conf instead.
>
> My doubts are in upsmon.conf where I defined a custom script to be called on NOTIFYCMD and I don't know if now the upssched will be called anyway by NUT.
> I don't know if upssched is needed to power off the UPSes.
>
> Then in upsd.conf should I put the static IP other than 127.0.0.1?
>
> There is also a dummy.dev file with default values to be sure that the dummy ups can read something even before the start of the script.
# *** ups.conf ***
[UPS1]
driver = usbhid-ups
...
[UPS2]
...
[SOT]
driver = dummy-ups
port = /etc/nut/dummy.dev
desc = "Sum Of Two"
# *** upsmon.conf ***
MONITOR UPS1 at 192.168.1.8 1 ups_admin PASSWORD master
MONITOR UPS2 at 192.168.1.9 1 ups_admin PASSWORD master
MINSUPPLIES 1
Why "1" ? Surely you need them both.
NOTIFYCMD "/etc/nut/notifycmd.sh"
This says which program is to be invoked when upsmon detects a NOTIFY event
flagged as EXEC. This is often used to point to /sbin/upssched, but in your
case you point directly to your own script. Does NUT expect a script or a
configuration file?
NOTIFYFLAG ONBATT SYSLOG+WALL+EXEC
...
# *** upssched.conf ***
This file is never used
CMDSCRIPT /etc/nut/upssched-cmd
This script is never called.
# *** notifycmd.sh ***
#! /bin/bash
# notifycmd.sh
# This script notify user of all updates on two physical UPSes
# then it creates the file that will be read from dummy-ups
EMAIL='youremail at domain.tld'
echo -e "Subject: [NUT] $NOTIFYTYPE\r\n\r\nUPS: $UPSNAME\r\nAlert type: $NOTIFYTYPE\r\n\r\n`upsc $UPSNAME`" | msmtp -a default $EMAIL
It would probably be useful for debugging to echo this to the command line
together with the arguments received by the script.
CHARGE = $( upsc $UPS1 battery.charge )
...
if [ $CHARGE -ge $CHARGE2 ]; then
$CHARGE = $CHARGE2
fi
...
cat > /etc/nut/dummy.dev << _EOF_
battery.charge: ${ CHARGE }
...
_EOF_
You rewrite dummy.dev for every UPS event.
Why don't you use upssched? What is it that prevents you from using the
upsmon.conf option MINSUPPLIES 2 ?
Roger
More information about the Nut-upsuser
mailing list