This is an old revision of the document!
APC UPS Devices
Install the required packages:
apt install apcupsd apcupsd-cgi
Edit the conf file
nano /etc/apcupsd/apcupsd.conf:
UPSCABLE usb UPSTYPE usb #DEVICE /dev/ttyS0 POLLTIME 60 BATTERYLEVEL 10 MINUTES 3
Restart the UPS monitoring service:
systemctl restart apcupsd.service
Check /var/log/syslog for errors and check communication with:
apcaccess
NOTE: Currently this package is old and produces constant errors in the events log. - it may be better to use NUT
Using NUT for UPS
Install the required packages:
apt install nut
Edit the ups.conf file.
nano /etc/nut/ups.conf
Add the following at the bottom of the file.
[apc] driver = usbhid-ups port = auto #cable = 940-0095B desc = "Back-UPS BX750MI" #override.battery.charge.low = 50 onlinedischarge_calibration = set
Edit /etc/nut/upsd.conf
nano /etc/nut/upsd.conf
Uncomment and modify the following lines.
MAXAGE 30 LISTEN 127.0.0.1 3493 MAXCONN 10
Edit the file /etc/nut/upsd.users
nano /etc/nut/upsd.users
Add the following to the end of the file.
[upsuser] password=<secret> <-- This can be anything (make up some secret) upsmon master
Edit /etc/nut/upsmon.conf
nano /etc/nut/upsmon.conf
Uncomment and set the following lines…
MONITOR apc@localhost 1 upsuser <secret> master NOTIFYCMD /etc/nut/notify-email SHUTDOWNCMD "/sbin/shutdown -P +0" DEADTIME 20 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
Now create a script to send email notifications /etc/nut/notify-email
nano /etc/nut/notify-email
In /etc/nut/notify-email add: (you will need to prefix the file with a bash shell)
#!/bin/s<remove>h characters (this line is messed due to wiki not allowing them) SUBJECT="`hostname`: Power Event" FROM_ADDR="root@<host>.net" FROM_NAME="UPS" TO="<recepient>" echo "Subject: $SUBJECT\n\n$*" | sendmail -f "$FROM_ADDR" -F "$FROM_NAME" "$TO"
Set the necessary permissions:
chown root:nut ups.conf upsd.conf upsd.users upsmon.conf notify-email chmod 0640 ups.conf upsd.conf upsd.users upsmon.conf chmod 0750 notify-email
Change the following in /etc/nut/nut.conf:
MODE=standalone
Restart the UPS monitoring service:
systemctl restart nut-server.service systemctl restart nut-monitor.service
Check /var/log/syslog for errors and check communication with:
upsc apc@localhost
(You may need to reboot before the USB is allowed to talk to the UPS).
