Last Updated on: 21st Februar 2022, 12:57 pm
Mich hat es einige Zeit gekostet herauszufinden, welche Kommunikation eigentlich eingestellt sein muss, damit der apcupsd Daemon richtig mit der USV kommuniziert. Damit es bei anderen schneller geht, hier kurz notiert wie ich die Config ans Laufen bekommen habe. Meine USV ist die APC Back-UPS Pro 1500. Angeschlossen ist sie mit dem Kabel Serial to USB direkt an dem Server, den sie schützen soll. Dies lässt sich entsprechend prüfen:
~$ lsusb Bus 002 Device 003: ID 051d:0002 American Power Conversion Uninterruptible Power Supply Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 004: ID 04d9:1400 Holtek Semiconductor, Inc. PS/2 keyboard + mouse controller Bus 001 Device 003: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 003 Device 002: ID 058f:6387 Alcor Micro Corp. Flash Drive Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Der erste Eintrag zeigt, die USV ist verbunden.
Installation und Konfiguration des Daemons
sudo apt install apcupsd
Konfiguriert wird der Dienst über die Datei /etc/apcupsd/apcupsd.conf.
Wichtig dabei war bei mir die Einstellung UPSCABLE usb und vor allem das device nicht auf /dev/ttyS0, sondern einfach leer lassen, also einfach DEVICE.
UPSNAME Back-UPS BR1500GI UPSCABLE usb UPSTYPE usb DEVICE BATTERYLEVEL 25 MINUTES 10 TIMEOUT 0 ANNOY 0 ANNOYDELAY 0 NOLOGON disable KILLDELAY 0 NETSERVER on NISIP 0.0.0.0 NISPORT 3551 EVENTSFILE /var/log/apcupsd.events EVENTSFILEMAX 10 STATTIME 0 LOGSTATS off DATATIME 0
[...]
Anschließend muss man noch in der Datei /etc/default/apcupsd für den automatischen Systemstart auf yes ändern:
# Defaults for apcupsd initscript (unused with systemd as init). # Set to "yes" to enable startup of apcupsd. ISCONFIGURED=yes
Jetzt mal den Service starten
sudo systemctl restart apcupsd.service
Ereignisse abfragen:
cat /var/log/apcupsd.events 2019-12-23 17:48:51 +0100 apcupsd 3.14.14 (31 May 2016) debian startup succeeded
Sollte also geklappt haben.
Web-GUI installieren
Voraussetzung für die Web-GUI ist, dass der Apache Webserver installiert wurde. Falls dies nicht der Fall ist, zumindest die Grundinstallation durchführen:
sudo apt install apache2 apache2-doc
Die GUI für den Daemon dann mit
sudo apt install apcupsd-cgi apcupsd-doc
installieren und direkt Apache anweisen, cgi-Scripte auszuführen:
sudo a2enmod cgi
Erreichbar ist das Webinterfce dann unter Die Web-UI ist anschließend unter http://127.0.0.1/cgi-bin/apcupsd/multimon.cgi .
Wenn alles geklappt hat, sollte es etwa so aussehen:
beim Klick auf Local Host öffnet sich dann der Detailstatus:
APC USV testen
Für den Test der USV gibt es ein kleines Werkzeug namens apctest. Damit lassen sich Stromausfälle simmulieren und das System prüfen. Dafür muss der Daemon aber gestoppt sein, weil sich Daemon und Testprogramm sonst in die Haare bekommen, wenn sie beide auf die gleiche USV zugreifen wollen.
sudo systemctl stop apcupsd sudo apctest 2019-12-23 18:37:20 apctest 3.14.14 (31 May 2016) debian Checking configuration ... sharenet.type = Network & ShareUPS Disabled cable.type = USB Cable mode.type = USB UPS Driver Setting up the port ... Doing prep_device() ... You are using a USB cable type, so I'm entering USB test mode Hello, this is the apcupsd Cable Test program. This part of apctest is for testing USB UPSes. Getting UPS capabilities...SUCCESS Please select the function you want to perform. 1) Test kill UPS power 2) Perform self-test 3) Read last self-test result 4) View/Change battery date 5) View manufacturing date 6) View/Change alarm behavior 7) View/Change sensitivity 8) View/Change low transfer voltage 9) View/Change high transfer voltage 10) Perform battery calibration 11) Test alarm 12) View/Change self-test interval Q) Quit
Viel Spaß beim Testen.
Zugriff auf den integrierten Server der USV
Das Tool apcaccess ist dazu gedacht, auf den internen Server der USV zuzugreifen:
~$ apcaccess status APC : 001,036,0874 DATE : 2019-12-23 19:46:45 +0100 HOSTNAME : elmo VERSION : 3.14.14 (31 May 2016) debian UPSNAME : Back-UPS BR1500GI CABLE : USB Cable DRIVER : USB UPS Driver UPSMODE : Stand Alone STARTTIME: 2019-12-23 18:41:15 +0100 MODEL : Back-UPS RS 1500G STATUS : ONLINE LINEV : 235.0 Volts LOADPCT : 4.0 Percent BCHARGE : 100.0 Percent TIMELEFT : 156.2 Minutes MBATTCHG : 25 Percent MINTIMEL : 10 Minutes MAXTIME : 0 Seconds SENSE : Medium LOTRANS : 176.0 Volts HITRANS : 294.0 Volts ALARMDEL : No alarm BATTV : 27.2 Volts LASTXFER : No transfers since turnon NUMXFERS : 0 TONBATT : 0 Seconds CUMONBATT: 0 Seconds XOFFBATT : N/A SELFTEST : NO STATFLAG : 0x05000008 SERIALNO : 4B1937P13686 BATTDATE : 2019-09-11 NOMINV : 230 Volts NOMBATTV : 24.0 Volts NOMPOWER : 865 Watts FIRMWARE : 878.L5 .I USB FW:L5 END APC : 2019-12-23 19:47:07 +0100
Ein englische Anleitung, wie man zwei oder mehr PCs steuern kann, findet sich unter https://www.pontikis.net/blog/apc-ups-master-slave-setup-apcupsd