Zum Hauptinhalt springen

USV

Unterbrechungsfreie Stromversorgung über NUT: Erkennung, Status, Herunterfahren, Netzwerkserver.

Bunkerbox überwacht eine per USB angeschlossene USV mit NUT (Pakete nut-server und nut-client, vom Installationsskript eingerichtet) und fährt den Server bei einem Stromausfall rechtzeitig herunter. Das Herunterfahren erledigt NUT selbst (upsmon, upssched); es funktioniert also auch, wenn die Oberfläche hängt.

Einrichten​

  1. USV per USB anschließen und einschalten.
  2. System → USV → USV suchen: nut-scanner -U listet die gefundenen Geräte mit Treiber (meist usbhid-ups), USB-ID und Seriennummer.
  3. Verwenden übernimmt das Gerät; Bezeichnung und Richtlinie zum Herunterfahren anpassen, Übernehmen.

Bunkerbox schreibt die NUT-Konfiguration, aktiviert und startet nut-driver@ups, nut-server (upsd) und nut-monitor (upsmon). Kann NUT nicht starten (z. B. USV nicht angeschlossen), bleiben die Einstellungen gespeichert und die Meldung enthält die Ausgabe von systemctl/Journal. USV überwachen ausschalten setzt MODE=none und stoppt die Dienste.

Status​

Die Seite und die Dashboard-Karte zeigen alle 5 Sekunden (upsc ups@localhost):

WertQuelle
Zustandups.status: Netzbetrieb (OL), Batteriebetrieb (OB), Akku schwach (LB), wird heruntergefahren (FSD); nicht erreichbar, wenn Treiber oder upsd keine Daten liefern
Ladung, Restlaufzeit, Lastbattery.charge, battery.runtime, ups.load
Eingangsspannunginput.voltage
Statusflagsalle Flags, z. B. CHRG, DISCHRG, RB (Akku tauschen)
DiensteZustand von nut-driver@ups, nut-server, nut-monitor

Bei einem Stromausfall zeigen Seite und Dashboard die Dauer und – bei der Zeitrichtlinie – die verbleibende Zeit bis zum Herunterfahren.

Herunterfahren​

RichtlinieVerhalten
Bei schwachem Akku (Standard)upsmon fährt herunter, sobald die USV LB meldet. Nutzt die Akkulaufzeit voll aus.
Nach einer festen Zeit auf Batterie (30–7200 s)upssched startet beim Wechsel auf Batterie einen Zeitgeber und bricht ihn bei Rückkehr des Stroms ab. Läuft er ab, ruft /etc/nut/bunkerbox-upssched-cmd upsmon -c fsd auf. Ein schwacher Akku fährt weiterhin sofort herunter.

upsmon führt shutdown -h +0 aus. Damit der Server nach der Rückkehr des Stroms wieder startet, im BIOS „Nach Stromausfall einschalten“ aktivieren.

Benachrichtigungen​

Über die Benachrichtigungen, jeweils einmal pro Stromausfall:

EreignisWann
USV auf Batterie (Warnung)Wechsel auf Batterie, mit Ladung und Restlaufzeit
USV auf Batterie (Info)Strom zurück, mit Dauer des Ausfalls
USV-Akku schwach (kritisch)LB im Batteriebetrieb gemeldet (viele USVs melden LB auch beim Nachladen am Netz, das löst keine E-Mail aus)
Herunterfahren durch USV (kritisch)bei FSD, OB + LB oder 10 Sekunden bevor der Zeitgeber abläuft, damit die E-Mail noch hinausgeht

Netzwerkserver​

Mit Andere Geräte dürfen die USV überwachen läuft NUT im Modus netserver: upsd lauscht zusätzlich auf den eingetragenen Adressen (Port 3493, Standard 0.0.0.0) und ein zusätzlicher Benutzer (Standard monuser) darf die USV als secondary überwachen. Auf dem Client:

FeldWert
USV-Nameups
ServerIP-Adresse dieses Servers
Port3493
Benutzer / Passwortwie eingestellt

Synology DSM (Hardware & Energie → USV → Netzwerk-USV-Server) erwartet den Benutzer monuser. Clients fahren beim Stromausfall vor diesem Server herunter (HOSTSYNC 15 s). Port 3493 nur im lokalen Netz freigeben.

Dateien​

Alle Dateien unter /etc/nut/ werden von Bunkerbox verwaltet und bei jeder Änderung neu geschrieben (root:nut, 640; das Skript 750):

DateiInhalt
nut.confMODE=standalone, netserver oder none
ups.confAbschnitt [ups] mit driver, port, vendorid, productid, serial, desc
upsd.confLISTEN 127.0.0.1 3493 und die Adressen des Netzwerkservers
upsd.userslokaler Benutzer bunkerbox (upsmon primary, zufälliges Passwort) und der Netzwerkbenutzer (upsmon secondary)
upsmon.confMONITOR ups@localhost 1 bunkerbox … primary, SHUTDOWNCMD, bei der Zeitrichtlinie NOTIFYCMD /usr/sbin/upssched
upssched.conf, bunkerbox-upssched-cmdZeitgeber bunkerbox-shutdown

upsmon läuft als root (RUN_AS_USER root), weil das Skript des Zeitgebers den upsmon-Prozess signalisieren muss. Die Einstellungen stehen in /appdata/bunkerbox/data/ups.json (600), die Passwörter in data/secrets/ups-monitor-password und data/secrets/ups-net-password (600). Alle Werte werden vor dem Schreiben streng geprüft (keine Anführungszeichen, Backslashes oder Zeilenumbrüche). Beim Start des Dienstes werden die Dateien aus ups.json neu geschrieben, ohne NUT neu zu starten.

Im Mock-Modus ist eine CyberPower CP1500EPFCLCD im Netzbetrieb eingerichtet.