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
- USV per USB anschließen und einschalten.
- System → USV → USV suchen:
nut-scanner -Ulistet die gefundenen Geräte mit Treiber (meistusbhid-ups), USB-ID und Seriennummer. - 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):
| Wert | Quelle |
|---|---|
| Zustand | ups.status: Netzbetrieb (OL), Batteriebetrieb (OB), Akku schwach (LB), wird heruntergefahren (FSD); nicht erreichbar, wenn Treiber oder upsd keine Daten liefern |
| Ladung, Restlaufzeit, Last | battery.charge, battery.runtime, ups.load |
| Eingangsspannung | input.voltage |
| Statusflags | alle Flags, z. B. CHRG, DISCHRG, RB (Akku tauschen) |
| Dienste | Zustand 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
| Richtlinie | Verhalten |
|---|---|
| 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:
| Ereignis | Wann |
|---|---|
| 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:
| Feld | Wert |
|---|---|
| USV-Name | ups |
| Server | IP-Adresse dieses Servers |
| Port | 3493 |
| Benutzer / Passwort | wie 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):
| Datei | Inhalt |
|---|---|
nut.conf | MODE=standalone, netserver oder none |
ups.conf | Abschnitt [ups] mit driver, port, vendorid, productid, serial, desc |
upsd.conf | LISTEN 127.0.0.1 3493 und die Adressen des Netzwerkservers |
upsd.users | lokaler Benutzer bunkerbox (upsmon primary, zufälliges Passwort) und der Netzwerkbenutzer (upsmon secondary) |
upsmon.conf | MONITOR ups@localhost 1 bunkerbox … primary, SHUTDOWNCMD, bei der Zeitrichtlinie NOTIFYCMD /usr/sbin/upssched |
upssched.conf, bunkerbox-upssched-cmd | Zeitgeber 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.