USV mit Raspberry überwachen (inkl. Grafana)

Ich habe eine kleine USV von APC (APC Back-UPS BX – BX700UI mit 700VA/390W * Affiliatelink) an die ich den Netzwerkspeicher, Router, Raspberry und Haupt-Switch angeschlossen habe.

Die USV könnte ich auch mittels der Synology DiskStation überwachen (was ich auch lange Zeit getan habe), der Funktionsumfang war mir aber deutlich zu gering. Zusätzlich musste ich die Daten per SNMP über das NAS abfragen wenn ich diese visualisieren wollte. War das NAS abgeschaltet gab es folglich keine Daten mehr.

Also: USV per USB an Raspberry PI anschließen.

apcupsd installieren und konfigurieren

apt-get install apcupsd

In der Datei /etc/apcupsd/apcupsd.conf muss nur folgendes geändert/eingefügt werden:

UPSTYPE usb
DEVICE

In der Datei /etc/default/apcupsd muss dem Dienst noch mitgegeben werden dass er nach einem Neustart ebenfalls wieder starten soll:

ISCONFIGURED=yes

Deamon starten und Infos auslesen:

service apcupsd start
apcaccess status

Folgendes sollte angezeigt werden:

pi@raspberrypi:~ $ apcaccess status
APC      : 001,036,0882
DATE     : 2020-05-25 21:25:31 +0200
HOSTNAME : raspberrypi
VERSION  : 3.14.14 (31 May 2016) debian
UPSNAME  : raspberrypi
CABLE    : USB Cable
DRIVER   : USB UPS Driver
UPSMODE  : Stand Alone
STARTTIME: 2020-05-23 21:29:39 +0200
MODEL    : Back-UPS XS 700U
STATUS   : ONLINE
LINEV    : 234.0 Volts
LOADPCT  : 15.0 Percent
BCHARGE  : 100.0 Percent
TIMELEFT : 36.7 Minutes
MBATTCHG : 5 Percent
MINTIMEL : 3 Minutes
MAXTIME  : 0 Seconds
SENSE    : Medium
LOTRANS  : 140.0 Volts
HITRANS  : 300.0 Volts
ALARMDEL : 30 Seconds
BATTV    : 13.7 Volts
LASTXFER : Automatic or explicit self test
NUMXFERS : 0
TONBATT  : 0 Seconds
CUMONBATT: 0 Seconds
XOFFBATT : N/A
SELFTEST : NO
STATFLAG : 0x05000008
SERIALNO : XXXXXXXXXX
BATTDATE : 2017-10-25
NOMINV   : 230 Volts
NOMBATTV : 12.0 Volts
NOMPOWER : 390 Watts
FIRMWARE : 924.Z3 .I USB FW:Z3
END APC  : 2020-05-25 21:25:31 +0200

In InfluxDB per Telegraf einlesen

Einfacher gehts fast kaum. In der Datei /etc/telegraf/telegraf.conf einfach folgendes einfügen:

# APC UPS
[[inputs.apcupsd]]
# APC UPS-Server (Standard: Localhost:3551)
servers = ["tcp://127.0.0.1:3551"]
timeout = "5s"

In der Tabelle apcupsd sind die entsprechenden Werte nun zu finden und können in ein Grafana-Dashboard eingefügt werden:

Mein aktuelles Dashboard

[Update 20.03.2021]

Es handelt sich hierbei tatsächlich nicht nur um einen Monitoring-Dienst sondern um einen aktiven Dienst der auch in den Raspi eingreift wenn die USV leer wird.

Folgende Meldungen kommen:

Broadcast message from root@raspberrypi (somewhere) (Fri Mar 19 07:34:46 2021):
Power failure on UPS raspberrypi. Running on batteries.
Broadcast message from root@raspberrypi (somewhere) (Fri Mar 19 07:34:58 2021):
Power has returned on UPS raspberrypi…

Vielen Dank an Christian der mich drauf gebracht hat mal das Handbuch von Dienst zuende zu lesen.

6 Kommentare

  • Hallo,
    wird der Pi automatisch runtergefahren wenn die Batterie das eingestellte Level erreicht hat?

    Danke

    Antworten
    • Hallo, nein, das ist nicht der Fall, hier wird nur überwacht, bzw. Werte ausgelesen. Zum Shutdown müsste man noch ein Script schreiben was dann den Ladezustand aus den Daten ausliest und abhängig vom Zustand den Shutdown startet. Viele Grüße

      Antworten
      • Hallo Simon,
        ich dachte das „apccontrol doshutdown“ ausgeführt wird wenn entweder TIME, BATTERYLEVEL oder RUNTIME eintritt.

        doshutdown
        When the UPS is running on batteries and one of the limits expires (time, run, load), this event is generated to cause the machine to shutdown.
        Default: Shuts down the system using shutdown -h or similar

        Quelle: http://www.apcupsd.org/manual/#customizing-event-handling [Link hinzugefügt und anderen Beitrag gelöscht, Anm. von Simon]

        ich kann es leider jetzt nicht kontrollieren ob es ein skript doshutdown gibt.
        Ich bin leider debian Neuling und steig da nicht dahinter.

        Antworten
        • Profi bin ich leider auch nicht, aber du hast vollkommen recht.
          Den Teil des Manuals hab ich total ignoriert.
          Morgen mach ich mal einen Test hiermit:
          http://www.apcupsd.org/manual/#simulated-power-fail-test
          und füge das Ergebnis hier an.
          Ich erwarte aber tatsächlich, dass der Raspi runter fahren sollte. Bisher nutze ich das nur als Abfederung für Spannungsschwankungen und wenn ich mal wieder an der Stromversorgung arbeite (wie mit dem Janitza-Messgerät), da hat mich das gute Dienste geleistet 🙂

          Antworten
  • Guten Tag, welches grafana template sind schon benutzen für lesen die apcupsd im gragana? Es gibt etwas mehr Konfiguration zu stelen nach die apcupsd genau funktioniert? Bei mir, die Grafana ist die letzer configuration das brauche ich zu erstelle, und habe ich nicht gefunden wie machen diese grafana lesen die apcupsd data auf.
    Vielen dank im voraus.

    Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.