Now that upsstats.cgi works, I've noticed that dummy-ups changes state every 5 
minutes between OL and OB (probably when the 300 second timer expires). The UPS 
state stays online.
Also "online" and "onbatt" are broadcast to the console probably via WALL. (The 
state changes don't seem to be form the ups as upsshed-cmd doesn't run).   
Upssched-cmd does run when the UPS is actually unplugged and plugged back in.
It happens on two different installation.

See attached screenshot and configuration.

Dan

===============================================================================================================
heartbeat.conf:

ups.status: OL
TIMER 300
ups.status: OB
TIMER 300

================================================================================================================
 

    NUT configuration  2023-06-16 17:52:21 UTC

        ########### Operating system ###########
Kernel release 6.1.21-v7+ GNU/Linux
PRETTY_NAME="Raspbian GNU/Linux 11 (bullseye)"
NAME="Raspbian GNU/Linux"
VERSION_CODENAME=bullseye
Network UPS Tools upsd 2.8.0.1
Bash version 5.1.4(1)-release
User root
updated-nut-report version: 2020-08-07

        ########### USB attached UPS units ###########
Bus 001 Device 006: ID 051d:0002 American Power Conversion Uninterruptible 
Power Supply
Bus 001 Device 004: ID 0b38:0010 Gear Head 107-Key Keyboard

        ########### /etc/nut//nut.conf ###########
MODE=standalone

        ########### /etc/nut//ups.conf ###########
maxretry = 2
[ups]
        driver=usbhid-ups
        desc="APS BR1600G UPS"
        port=auto
        lowbatt=97
        offdelay=60
[heartbeat]
        driver=dummy-ups
        port=heartbeat.conf
        mode=dummy-loop
        desc="Heart beat verification of NUT"

        ########### /etc/nut//upsd.conf ###########
LISTEN 192.168.123.49 3493

        ########### /etc/nut//upsd.users ###########
        [upsmonitor]
                password  =  ****m****
                actions = SET
                instcmds = ALL
                upsmon primary
        [heartbeat]
                password  =  ****m****
                actions = SET
                instcmds = ALL
                upsmon primary
        [admin]
                password  =  ****m****
                actions = SET
                instcmds = ALL
        [dan]
                password  =  ****m****
                actions = SET
                instcmds = ALL

        ########### /etc/nut//upsmon.conf ###########
RUN_AS_USER root
MONITOR ups@localhost 1 upsmonitor  ****m****  primary
MONITOR heartbeat@localhost 0 heartbeat  ****m****  secondary
MINSUPPLIES 1
SHUTDOWNCMD "/sbin/shutdown -h +10"
NOTIFYCMD /usr/sbin/upssched
POLLFREQ  5
POLLFREQALERT 5
HOSTSYNC 15
DEADTIME  15
POWERDOWNFLAG /etc/killpower
NOTIFYMSG ONLINE        "online"
NOTIFYMSG ONBATT        "onbatt"
NOTIFYMSG LOWBATT       "lowbatt"
NOTIFYMSG FSD           "fsd"
NOTIFYMSG COMMOK        "commok"
NOTIFYMSG COMMBAD       "commbad"
NOTIFYMSG SHUTDOWN      "shutdown"
NOTIFYMSG REPLBATT      "replacebatt"
NOTIFYMSG NOCOMM        "nocomm"
NOTIFYMSG NOPARENT      "noparent"
NOTIFYFLAG ONLINE       SYSLOG+WALL+EXEC
NOTIFYFLAG ONBATT       SYSLOG+WALL+EXEC
NOTIFYFLAG LOWBATT      SYSLOG+WALL+EXEC
NOTIFYFLAG FSD          SYSLOG+WALL+EXEC
NOTIFYFLAG COMMOK       SYSLOG+WALL+EXEC
NOTIFYFLAG COMMBAD      SYSLOG+WALL+EXEC
NOTIFYFLAG SHUTDOWN     SYSLOG+WALL+EXEC
NOTIFYFLAG REPLBATT     SYSLOG+WALL+EXEC
NOTIFYFLAG NOCOMM       SYSLOG+WALL+EXEC
NOTIFYFLAG NOPARENT     SYSLOG+WALL+EXEC
RBWARNTIME 43200
NOCOMMWARNTIME 60
FINALDELAY 15

        ########### /etc/nut//upssched.conf ###########
CMDSCRIPT /etc/nut/upssched-cmd
PIPEFN /var/state/ups/upssched/upssched.pipe
LOCKFN /var/state/ups/upssched/upssched.lock
AT ONBATT   ups@localhost  START-TIMER onbatt-timer 5
AT ONBATT   ups@localhost  CANCEL-TIMER lowbatt-timer
AT ONBATT   ups@localhost  CANCEL-TIMER shutdown-timer
AT LOWBATT  ups@localhost  EXECUTE lowbatt
AT LOWBATT  ups@localhost  START_TIMER shutdown-timer 125
AT COMMBAD  ups@localhost  EXECUTE commbad
AT COMMOK   ups@localhost  CANCEL-TIMER nocomm-timer
AT COMMOK   ups@localhost  EXECUTE  commok
AT NOCOMM   ups@localhost  START-TIMER nocomm-timer 30
AT SHUTDOWN ups@localhost  EXECUTE powerdown
AT FSD      ups@localhost  EXECUTE fsd
AT NOPARENT ups@localhost  EXECUTE noparent
AT REPLBATT ups@localhost  EXECUTE replacebatt
AT ONLINE   ups@localhost  CANCEL-TIMER onbatt-timer
AT ONLINE   ups@localhost  CANCEL-TIMER shutdown-timer
AT ONLINE   ups@localhost  EXECUTE online
AT ONBATT   heartbeat@localhost  CANCEL-TIMER heartbeat-failure-timer
AT ONBATT   heartbeat@localhost  START-TIMER heartbeat-failure-timer 660

        ########### /etc/nut/upssched-cmd ###########
logger -t upssched-cmd: "upssched-cmd running"
UPS="ups@localhost"
STATUS=$( upsc $UPS ups.status)
CHARGE=$( upsc $UPS battery.charge)
CHMSG="[$STATUS] : $CHARGE%"
FILE="/tmp/u"
FILE1="/tmp/w"
FILE2="/tmp/x"
FILE3="/tmp/y"
FILE4="/tmp/z"
case $1 in
        online)
        logger -t upssched-cmd: "online"
        if [[ -f $FILE ]];
         then
        echo
        else
        touch $FILE
        rm -f $FILE1
        rm -f $FILE2
        rm -f $FILE3
        rm -f $FILE4
        MSG2="\nCurrent status: $CHMSG  $1"
        cat /etc/nut/online.txt >/tmp/message
        echo -e "$MSG2" >> /tmp/message
        msmtp -t </tmp/message
        fi
;;
        onbatt)
        rm $FILE
        logger -t upssched-cmd: "onbatt"
;;
        lowbatt)
        logger -t upssched-cmd: "lowbatt"
        MSG1="\nUPS low batt \n"
        MSG2="Current status: $CHMSG $1"
        cat /etc/nut/lowbatt.txt >/tmp/message
        echo -e "$MSG1 $MSG2" >>/tmp/message
        msmtp -t </tmp/message
;;
        commok)
        rm -f $FILE3
        logger -t upssched-cmd: "commok"
        msmtp -t [email protected] </etc/nut/commok.txt
;;
        commbad)
        logger -t upssched-cmd: "commbad"
        if [[ -f $FILE3 ]];
         then
        echo
        else
        touch $FILE3
        msmtp -t [email protected] </etc/nut/commbad.txt
        fi
;;
        shutdown-timer)
        logger -t upssched-cmd: "shutdown"
        msmtp -t [email protected] </etc/nut/shutdown.txt
        /usr/sbin/upsmon -c shutdown
;;
        replacebatt)
        logger -t upssched-cmd: "replacebatt"
        if [[ -f $FILE2 ]];
         then
        echo
        else
        touch $FILE2
        msmtp -t [email protected] </etc/nut/replacebatt.txt
        fi
;;
        nocomm)
        logger -t upssched-cmd: "nocomm"
        if [[ -f $FILE2 ]];
         then
        echo
        else
        touch $FILE2
        msmtp -t [email protected] </etc/nut/nocomm.txt
        fi
;;
        noparent)
        logger -t upssched-cmd: "noparent"
        if [[ -f $FILE4 ]];
         then
        echo
        else
        touch $FILE4
        msmtp -t [email protected] </etc/nut/noparent.txt
        fi
;;
        fsd)
        logger -t upssched-cmd: "fsd"
        msmtp -t [email protected] </etc/nut/fsd.txt
;;
        heartbeat-failure-timer)
        logger -t upssched-cmd: "heart beat fails"
         MSG1="\nNUT hearbeat fails"
        MSG2="\nCurrent status: $CHMSG $1"
        MSG3="\n$(ps -elf |grep -E 'ups[dms] |nut')"
        cat /etc/nut/heartbeatfails.txt >/tmp/message
        echo -e "$MSG1 $MSG2 $MSG3" >>/tmp/message
        msmtp -t </tmp/message
;;
        onbatt-timer)
        logger -t upssched-cmd:  "onbatt-timer-expired"
        MSG1="\nUPS is on battery"
        MSG2="\nCurrent status: $CHMSG $1"
        cat /etc/nut/onbatt.txt >/tmp/message
        echo -e "$MSG1 $MSG2" >>/tmp/message
         msmtp -t </tmp/message
;;
        nocomm-timer)
        logger -t upssched-cmd:  "nocomm-timer-expired"
        if [[ -f $FILE2 ]];
         then
        echo
        else
        touch $FILE2
        msmtp -t [email protected] </etc/nut/nocomm.txt
        fi
;;
        *)
        logger -t upssched-cmd:  "Unknown command: $1"   
        MSG1="\nUnknown command: $1"
        cat /etc/nut/unknowncommand.txt >/tmp/message
        echo -e "$MSG1" >>/tmp/message
        msmtp -t </tmp/message
;;
esac
exit 0

        ########### /etc/hosts.allow ###########

        ########### ps -eLf ###########
root      1329     1  1329  0    1 13:41 ?        00:00:00 /usr/sbin/upsd -F
root      1333     1  1333  0    1 13:41 ?        00:00:00 /usr/sbin/upsmon -F
root      1335  1333  1335  0    1 13:41 ?        00:00:00 /usr/sbin/upsmon -F
root      1484     1  1484 99    1 13:46 ?        00:06:31 /usr/sbin/upssched 
onbatt

        ########### Ownership and permissions of executables ###########
-rwxr-xr-x 1 root root 333348 Jun 14 10:33 /usr/sbin//upsd*
-rwxr-xr-x 1 root root 163600 Jun 14 10:33 /usr/sbin//upsdrvctl*
-rwxr-xr-x 1 root root   6466 Jun 14 10:33 /usr/sbin//upsdrvsvcctl*
-rwxr-xr-x 1 root root 182636 Jun 14 10:33 /usr/sbin//upsmon*
-rwxr-xr-x 1 root root 133088 Jun 14 10:33 /usr/sbin//upssched*

        ########### Ownership and permissions of configuration files ###########
-rw-r--r-- 1 root root 15269 Jun  7 15:55 /etc/nut//\
-rw-r--r-- 1 root root   136 Jun 12 20:15 /etc/nut//commbad.txt
-rw-r--r-- 1 root root   141 Jun 12 20:16 /etc/nut//commok.txt
-rw-r--r-- 1 root root   123 Jun 12 20:17 /etc/nut//fsd.txt
-rw-r--r-- 1 root root    50 Jun  7 12:52 /etc/nut//heartbeat.conf
-rw-r--r-- 1 root root   121 Jun 12 20:12 /etc/nut//heartbeatfails.txt
-rwxr-xr-x 1 root root    86 Jun 11 20:48 /etc/nut//hosts.conf*
-rw-r--r-- 1 root root   131 Jun 14 09:35 /etc/nut//lowbatt.txt
-rw-r--r-- 1 root root   135 Jun 12 20:18 /etc/nut//nocomm.txt
-rw-r--r-- 1 root root   129 Jun 12 20:18 /etc/nut//noparent.txt
-rw-r--r-- 1 root root    17 Jun 14 20:47 /etc/nut//nut.conf
-rw-r--r-- 1 root root   125 Jun 12 20:19 /etc/nut//onbatt.txt
-rw-r--r-- 1 root root   101 Jun 12 20:13 /etc/nut//online.txt
-rw-r--r-- 1 root root   166 Jun 12 20:19 /etc/nut//replacebatt.txt
-rw-r--r-- 1 root root   121 Jun 12 20:13 /etc/nut//shutdown.txt
-rw-r--r-- 1 root root   229 Jun 16 13:24 /etc/nut//start
-rw-r--r-- 1 root root   328 Jun  7 12:52 /etc/nut//stop
-rw-r--r-- 1 root root   103 Jun 12 20:13 /etc/nut//unknowncommand.txt
-rwxr-xr-x 1 root root   207 Jun 14 20:43 /etc/nut//ups.conf*
-rwxr-xr-x 1 root root    28 Jun 12 14:26 /etc/nut//upsd.conf*
-rwx------ 1 root root   309 Jun 13 13:33 /etc/nut//upsd.users*
-rwxr-xr-x 1 root root   995 Jun 14 09:54 /etc/nut//upsmon.conf*
-rwxr-xr-x 1 root root  2829 Jun 14 14:51 /etc/nut//upssched-cmd*
-rwxr-xr-x 1 root root  1058 Jun 15 17:37 /etc/nut//upssched.conf*

        ########### Custom NOTIFYCMD scheduler /usr/sbin/upssched ###########
Custom NOTIFYCMD scheduler /usr/sbin/upssched is not a script

        ########### nut-journal ###########

        Current boot
Jun 16 13:41:01 Raspberry-Pi-3 nut-server[1329]: fopen /var/state/ups/upsd.pid: 
No such file or directory
Jun 16 13:41:01 Raspberry-Pi-3 nut-server[1329]: Could not find PID file 
'/var/state/ups/upsd.pid' to see if previous upsd instance is already running!
Jun 16 13:41:01 Raspberry-Pi-3 nut-server[1329]: /etc/nut/upsd.conf is world 
readable
Jun 16 13:41:01 Raspberry-Pi-3 upsd[1329]: /etc/nut/upsd.conf is world readable
Jun 16 13:41:01 Raspberry-Pi-3 upsd[1329]: listening on 192.168.123.49 port 3493
Jun 16 13:41:01 Raspberry-Pi-3 upsd[1329]: Connected to UPS [heartbeat]: 
dummy-ups-heartbeat
Jun 16 13:41:01 Raspberry-Pi-3 upsd[1329]: Connected to UPS [ups]: 
usbhid-ups-ups
Jun 16 13:41:01 Raspberry-Pi-3 upsd[1329]: Found 2 UPS defined in ups.conf
Jun 16 13:41:05 Raspberry-Pi-3 nut-monitor[1333]: fopen /run/upsmon.pid: No 
such file or directory
Jun 16 13:41:05 Raspberry-Pi-3 nut-monitor[1333]: Could not find PID file to 
see if previous upsmon instance is already running!
Jun 16 13:41:08 Raspberry-Pi-3 upsd[1329]: Running as foreground process, not 
saving a PID file
Jun 16 13:41:08 Raspberry-Pi-3 nut-server[1329]: User [email protected] 
logged into UPS [ups]
Jun 16 13:41:08 Raspberry-Pi-3 upsd[1329]: User [email protected] 
logged into UPS [ups]
Jun 16 13:41:08 Raspberry-Pi-3 upsd[1329]: User [email protected] logged 
into UPS [heartbeat]
Jun 16 13:46:03 Raspberry-Pi-3 nut-monitor[1479]: Network UPS Tools upsmon 
2.8.0.1
Jun 16 13:51:03 Raspberry-Pi-3 nut-monitor[1597]: Network UPS Tools upsmon 
2.8.0.1
_______________________________________________
Nut-upsuser mailing list
[email protected]
https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/nut-upsuser

Reply via email to