USV im ioBroker überwachen (inkl. Anbindung an NAS von QNAP und Synology)

Wer (einigermaßen ernsthaft) einen Homeserver betreibt, kommt früher oder später am Thema USV natürlich nicht vorbei. Damit wird die Technik vor Spannungsveränderungen (nach oben und unten!) sowie Stromausfällen geschützt. Es ist ja bekanntlich für einen Server nicht sonderlich gut, wenn er im laufenden Betrieb einfach abgeschaltet wird, ohne alle Dienste und Speichermedien vorher runter zu fahren.

Ich habe mir hierzu passend für den Netzwerkschrank als 19″-Modell die PowerWalker VI 500 R1U von der Firma Bluewalker☆ angeschafft. Die Leistung von 500VA / 300W klingt auf den ersten Blick wenig, ich habe jedoch eine Auslastung von gerade mal 20-25% mit Homeserver, Switch, Router und so weiter…, also noch genug Reserve nach oben. Bei vollem Akku kann ich ca. eine Zeit von 25-30 Minuten überbrücken! Wer seine USV nicht in einem Netzwerkschrank verbauen möchte, kommt natürlich preiswerter weg, hier sind z.B. die Modelle der Firma APC für unter 100,- EUR☆ sehr beliebt.

Initial setze ich voraus, dass die USV einen USB-Port besitzt (tun die beiden oben verlinkten Modelle natürlich!) und auf einem Linux-System noch Ressourcen für diesen wirklich kleinen Dienst sind. Das kann locker auf jedem anderen Gerät mit ausgeführt werden. Wer mag, kann hierfür natürlich auch eine virtuelle Maschine auf seinem Server erstellen (USB-Port durchreichen nicht vergessen!). Bei meinem Beispiel handelt es sich um einen Raspberry Pi, welcher noch diese Zusatzaufgabe bekommt. USB-Port muss natürlich einer frei sein, mit diesem verbinden wir nun die USV.

Dann führen wir folgende Befehle auf dem System mit unserem normalen Login aus, welcher aber über sudo-Rechte verfügen muss. Zuerst wird die Software zur Kontrolle und Steuerung der USV sowie die Tools für die USB-Kommunikation installiert.

sudo apt-get install -y nut usbutils

Die Fehlermeldungen ignorieren, wir haben noch nichts konfiguriert! Er probiert jetzt eine USV mit den Standard-Einstellungen zu finden. Sollten keine Fehlermeldungen kommen: Glückwunsch! Grosser Zufall! Diese Meldungen werden uns im Verlauf öfter verfolgen. Einfach ignorieren und weiter machen… 😉

Nun bearbeiten wir die Datei /etc/nut/ups.conf (mit dem Befehl „sudo nano /etc/nut/ups.conf„) und fügen am Ende folgenden Inhalt hinzu

[meineusv]
driver = "usbhid-ups" 
port = "auto" 
desc = "Beschreibung meiner USV" 
pollinterval = 10

Der Teil in den eckigen Klammern ist der spätere Name der USV, mit welchem wir diese identifizieren und ansprechen werden. Dieser darf acht Zeichen lang sein und keine Leerzeichen enthalten! Solltet Ihr als Client später auch ein Synology-NAS anbinden wollen, muss der Name [ups] lauten, da Synology DSM keine anderen erkennt! Driver ist der Treiber für die Kommunikation zwischen dem Server und der USV. Dieser funktioniert bei quasi annähernd jeder USV mit USB-Port! Den Port wählt das System bei USB dann automatisch aus, eine Beschreibung können wir optional angeben, die wird bei manchen Anwendungen angezeigt. Als letztes wird definiert, wie oft die Daten ausgetauscht werden.

Jetzt werden die folgenden Befehle nacheinander ausgeführt:

sudo upsdrvctl start
sudo cp /lib/udev/rules.d/62-nut-usbups.rules /etc/udev/rules.d/
sudo reboot

Jetzt wird der Rechner neu gestartet. Einfach abwarten und wieder einloggen, dann geht es weiter:

sudo upsdrvctl start 

Jetzt öffnen wir die Datei /etc/nut/nut.conf und ändern am Ende die Zeile für den Modus wie folgt ab:

MODE=netserver

Nun starten wir den Dienst. Bei der zweiten Zeile drauf achten, dass wir den von uns in der Konfiguration gewählten Namen verwenden! Damit wird eine Verbindung mit dem USV-Dienst aufgebaut und wir bekommen alle relevanten Werte angezeigt. Sollten diese nicht kommen, ist was schief gelaufen…

sudo upsd
sudo upsc meineusv@localhost

Nun wird die Datei /etc/nut/upsd.conf noch angepasst. Wir suchen dort den Teil mit den LISTEN-Anweisungen und fügen diese beiden Zeilen hinzu:

LISTEN 127.0.0.1 3493
LISTEN 192.168.1.17 3493

Die erste Zeile bleibt bestehen, die zweite Zeile fügen wir selbst hinzu. Hier geben wir die Adresse des Systems selbst an (nicht die eines späteren Client!)

Zurück auf der Konsole setzen wir noch diese beiden Befehle ab um den Dienst nach der Änderung der Einstellungen zu beenden und wieder neu zu starten:

sudo upsd -c stop
sudo upsd

Zum Schluss definieren wir noch die Benutzer, welche auf die USV zugreifen dürfen. Ich habe hier einen Admin und einen Monitor-User angelegt. Hierzu wird die Datei /etc/nut/upsd.users geöffnet und am Ende folgendes hinzugefügt:

[admin]
password = passwortdesadmin
actions = SET
instcmds = ALL
upsmon master  

[upsmon]
password = passwortdesmon
upsmon slave 

#Nur für QNAP-User:
[admin]
password = 123456
actions = SET
instcmds = ALL
upsmon master

#Nur für Synology-User:
[monuser]
password = secret
upsmon slave

Bitte in dieser Datei die Passwörter/Benutzer entsprechend anpassen. Wer eine NAS von QNAP oder Synology anbinden möchte, muss hier wieder eine Besonderheit beachten: Bei QNAP muss der User admin wie oben stehend definiert werden. Bei Synology muss der User „monuser“ heißen, das Passwort muss „secret“ lauten! Wer keine NAS einbinden möchte, übernimmt die beiden letzten Absätze bitte NICHT in seine Konfiguration!

Der USV-Kontrollserver ist nun fertig installiert. Es sollte nun alles laufen. Jetzt müssen wir diesen nur noch über den ioBroker-Adapter „Network UPS Adapter“ hinzufügen. In den Einstellungen machen wir folgende Angaben:

IP / Port: sollte selbsterklärend sein
NUT Name: der von uns selbst definierte Name der USV
Username / Passwort: die in der letzten Datei definierten

In den ioBroker-Objekten erscheinen nun massenhaft neue Datenpunkte, hier kann man alle Infos der USV auslesen und einige Dinge steuern. Ich finde diese Lösung super, hier kann man dann über den ioBroker weitere Aktionen bei Stromausfall ausführen, bevor die Akkus leer sind und das System sich abschaltet…

Ersten Kommentar schreiben

Antworten

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


*


Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.