NEWS
[HowTo] USV: NUT Server auf SBC installieren
[HowTo] USV: NUT Server auf SBC installieren
-
@klassisch danke für diese super Anleitung. Kann ich diese auch nehmen, wenn meine USV direkt per USB angeschlossen ist ? ich sehe in der Anleitung, dass er auf IP Adressen hört. Ich bin jetzt nicht so der Profi in diesen Dingen.
Danke
@gelberlemmy Ich habe die Version drittes Bild "NUT-Server auf einem Kleinrechner (SBC)" umgesetzt und noch immer so in Betrieb. Die USV ist über USB direkt an einen Kleinrechner (SBC) angeschlossen.
-
@klassisch danke für diese super Anleitung. Kann ich diese auch nehmen, wenn meine USV direkt per USB angeschlossen ist ? ich sehe in der Anleitung, dass er auf IP Adressen hört. Ich bin jetzt nicht so der Profi in diesen Dingen.
Danke
Die Anleitung ist wie ich es in Erinnerung habe (schon was her) ausschließlich für USB Geräte.
Im Adapter am ioborker musst du die IP eingeben, wo du den nut Server installiert hast (was auch der Rechner mit iobroker sein kann).
-
@gelberlemmy Ich habe die Version drittes Bild "NUT-Server auf einem Kleinrechner (SBC)" umgesetzt und noch immer so in Betrieb. Die USV ist über USB direkt an einen Kleinrechner (SBC) angeschlossen.
@klassisch danke, läuft perfekt.....

-
@klassisch danke, läuft perfekt.....

@gelberlemmy vielen Dank für die Rückmeldung
-
Was macht NUT?
Mit NUT (Network UPS Tools) kann man eine unterbrechungsfreie Stromversorgung (USV, UPS) mit Computern verbinden und Daten von den UPS bekommen.
Für ioBroker gibt es den nut Adapter von @Apollon77, Github und ioBrokerForum . Dieser Adapter stellt einen NUT-Cient bereit und legt eine Datenstruktur im Objektbereich an.
Ich nutze den Adapter hauptsächlich zum mitloggen der Daten wie verbleibende Akuulaufzeit und zur Detektion von Netzspannungsausfällen.Geeignete UPS (USV)
Die meisten UPS unterstützen diesen Datenaustausch. Entweder per serieller Schnittstelle (nur noch selten anzutreffen), meist per USB oder die edleren direkt über Ethernet.
Luxus: UPS mit eingebauter Netzwerkkarte
Die Luxuslösung sieht dann so aus:

Man kann dann z.B. den NAS einige Minuten nach einem Spannungsausfall herunterfahren und die anderen Geräte wie ioBroker, Router, Switches, Homematic weiter betreiben.
Im ioBroker nut-Adapter trägt man die IP-Adresse der Netzwerkkarte der UPS, deren Port (i.d.R 3493), den Namen der UPS sowie Benutzernamen und Passwort, die auf der Netzwerkkarte der UPS festgelegt sind.
Ein konkretes Beispiel kann ich hier leider nicht geben, da ich leider eine andere Lösung habe.Einfache Lösung mit Haken: NAS als NUT-Server
Wer über ein geeignetes NAS-Gerät verfügt - in meinem Beispiel Synology - kann das USB-Kabel der UPS direkt dort einstecken und den eingebauten NAS-Server nutzen.

In diesem Fall detektiert die Synology die angeschlossene UPS. Im Menue Hardware & Energie, Tab USV kann man den NUT Server aktivieren und die IP-Adressen der Clients - also auch des ioBroker-Rechners - einstellen.
Im ioBroker Adapter gibt man die IP Adresse der Synology an, sowie wieder Port 3493. Bei Synology muß der Name der UPS sowie dessen Benutzername ups lauten und das password secret .
Das funktioniert recht problemlos und stabil, hat aber einen Haken. Wenn die Synology bei einem Stromausfall heruntergefahren wird, stellt auch deren NUT Server den Dienst ein und der ioBroker wird nicht mehr mit den Daten der UPS versorgt. Also gerade dann, wenn es eigentlich am interessantesten ist.
Um das zu vermeiden, kann man den NUT-Server auf einem (eigenen) Kleinrechner betreiben. Alle anderen Geräte werden dann als Cient betrieben.NUT-Server auf einem Kleinrechner (SBC)
In meinem Fall ist der SBC ein Orange Pi Plus 2e, der für diese Aufgabe zwar viel zu groß ist, aber durch Migration von ioBoker auf einen Windows Rechner frei wurde.

Das Aufsetzen des NUT-Server erfolgt auf den Spuren von Haus-Automatisierung und Wiki Ubuntuusers
Zuerst System aktualisieren bzw. neu aufsetzen mit µSD Karteapt update apt upgradeEdit: Den NUT-Rechner mit der USV per USB verbinden. Darauf hat @Homoran hingewiesen.
Nut installation:sudo apt install nut usbutilsBei älteren Systemen sudo apt-get install nut usbutils
sudo nano /etc/nut/ups.confEinfügen:
[ups] driver = "usbhid-ups" port = "auto" desc = "CyberPower" pollinterval = 30Bei Verwendung einer Synology muß [ups] verwendet werden.
Sudo rebootsudo upsdrvctl start sudo cp /lib/udev/rules.d/62-nut-usbups.rules /etc/udev/rules.d/ sudo rebootsudo upsdrvctl start sudo nano /etc/nut/nut.confEintragen:
MODE=netserverDanach den Dienst starten:
sudo upsdWenn alles funktioniert hat, kann man jetzt Daten ausgeben:
sudo upsc ups@localhostHier muss eine sinnvolle Liste gelistet werden: Beispiel:
root@opi2e_reserve:~# sudo upsc ups@localhost Init SSL without certificate database battery.charge: 100 battery.charge.low: 10 battery.charge.warning: 20 battery.mfr.date: CPS battery.runtime: 6690 battery.runtime.low: 300 battery.type: PbAcid battery.voltage: 24.0 battery.voltage.nominal: 24 device.mfr: CPS device.model: CP1500EPFCLCD device.serial: CRABCD12345678 device.type: ups driver.name: usbhid-ups driver.parameter.pollfreq: 30 driver.parameter.pollinterval: 30 driver.parameter.port: auto driver.parameter.synchronous: no driver.version: 2.7.4 driver.version.data: CyberPower HID 0.4 driver.version.internal: 0.41 input.transfer.high: 260 input.transfer.low: 170 input.voltage: 235.0 input.voltage.nominal: 230 output.voltage: 267.0 ups.beeper.status: enabled ups.delay.shutdown: 20 ups.delay.start: 30 ups.load: 5 ups.mfr: CPS ups.model: CP1500EPFCLCD ups.productid: 0501 ups.realpower.nominal: 900 ups.serial: CRABCD12345678 ups.status: OL ups.test.result: No test initiated ups.timer.shutdown: -60 ups.timer.start: -60 ups.vendorid: 0764 root@opi2e_reserve:~#Weiter gehts
sudo nano /etc/nut/upsd.confEintragen:
LISTEN 127.0.0.1 3493 LISTEN 192.168.178.123 3493Also IP-Adresse der eigenen (Nut-Server) Eth Schnittstelle
Starten und stoppen, damit das conf-file wieder eingelesen wirdsudo upsd -c stop sudo upsdJetzt werden Benutzerkonten angelegt, unter denen man von anderen Geräten auf den NUT-Server zugreifen kann. In meinem Beispiel:
Drei user werden erstellt
- upsmaster für den Administrator, der damit aber nichts macht
- monuser für die Synology
- upsmon_remote für den ioBrokerDazu:
sudo nano /etc/nut/upsd.usersEintragen:
[upsmaster] password = irgendwasabergutmerken actions = SET instcmds = ALL upsmon master [monuser] password = secret upsmon slave [upsmon_remote] password = secret upsmon slaveWieder übernehmen
sudo upsd -c stop sudo upsdJetzt müssen wir das Ganze auch noch reboot-fest machen.
Bei neueren Linux-Systemen geschieht das über systemd. @Thomas-Braun und @David-G haben diese Anpassung dankenswerterweise ausgearbeitet und getestet (siehe dort mit Nutzung dieser Fundstelle):
Zuerst mitcat /etc/systemd/system/multi-user.target.wants/nut-server.serviceprüfen, ob diese Datei vorhanden ist und nut bereits die Vorkehrungen für systemd getroffen hat.
Falls diese Datei existiert, Mit nano öffnen:sudo nano /etc/systemd/system/multi-user.target.wants/nut-server.serviceDiese Datei sieht dann erst mal so aus:
[Unit] Description=Network UPS Tools - power devices information server After=local-fs.target network.target nut-driver.service # We don't Require drivers to be successfully started! This would be # a change of behavior compared to init SysV, and could prevent from # accessing successfully started, at least to audit a system. Wants=nut-driver.service Before=nut-monitor.service [Service] ExecStart=/sbin/upsd Type=forking [Install] WantedBy=multi-user.targetDamit genügend Zeit zur Installation der USB Treiber bleibt, nach der Zeile [Service] noch die Verzögerung
ExecStartPre=/bin/sleep 30eintragen und die geänderte Datei abspeichern.
Die Datei sollte nun so aussehen[Unit] Description=Network UPS Tools - power devices information server After=local-fs.target network.target nut-driver.service # We don't Require drivers to be successfully started! This would be # a change of behavior compared to init SysV, and could prevent from # accessing successfully started, at least to audit a system. Wants=nut-driver.service Before=nut-monitor.service [Service] ExecStartPre=/bin/sleep 30 ExecStart=/sbin/upsd Type=forking [Install] WantedBy=multi-user.target{
Hier die Methode für alte Systeme, bei denen die Datei /etc/systemd/system/multi-user.target.wants/nut-server.service nicht existiert. Darf nicht verwendet werden, wenn diese Datei vorhanden ist und die vorherigen Schritte schon ausgeführt wurdensudo nano /etc/rc.localHier VOR exit=0 einfügen
#additions for nut server upsdrvctl start upsd #end additions for nut server} Ende der Einstellungen für Altsysteme. Bei neueren Sytsemen nicht mehr verwenden]
Jetzt wird noch der ioBroker Adapter eingestellt. Beispiel
IP des NUT Servers: 192.168.178.123 #Beispiel Port des NUT Servers: 3493 NUT Name der UPS: ups Aktualisierungsintervall 300s Username der UPS: upsmon_remote Passwort der UPS: secretBei der Synology wird eingestellt (Hardware & Energie, Tab USV):
Anhaken: USV-Unterstützung aktivieren
Netzwerk-USV-Typ: Synology USV Server
Netzwerk-USV-Server-IP: 192.168.178.123 #BeispielDie Zeit einstellen, nach der die Synology heruntergefahren werden soll + anhaken.
NUT-Server und ioBroker auf einem Rechner
Diese Konfiguration hatte ich nie in Betrieb. Sie müßte aber mit den o.g. Installationsschritten möglich sein. Als IP-Adresse des NUT Servers kann innerhalb des Host Rechners dann localhost oder 127.0.0.1 verwendet werden.

Edit:
Welcher Treiber passt zu meiner USV?
Auswahltabelle Treiber auf der Seite des NUT-ProjektsHallo zusammen, auch wenn Post 1 von 2019 ist, sehe ich hier noch Aktivitäten. Ich habe mir auhc die 200 Beiträge durchgelesen aber dennoch eine grundsätzliche Frage.
Mein Setup ist sehr klein. Es läuft ein RPI4 mit iobroker und ein bisschen angeschlossene Peripherie um Smart Home Geräte einzubinden. Aufgrund einiger Stromausfälle geht es mir lediglich um das sichere Herunterfahren des Pi. EIn NAS habe ich nicht, nur eine Festplatte am Pi eingebunden.
In Post 1 stand im HowTo
@klassisch sagte in [HowTo] USV: NUT Server auf SBC installieren:
NUT-Server und ioBroker auf einem Rechner
Diese Konfiguration hatte ich nie in Betrieb.Beiträge konnte ich auch nicht dazu lesen. Daher meine Frage was würdet ihr mir denn empfehlen, als einfachste Lösung. Ich bin auch in Linux nicht bewandert und möchte daher meine ioBroker Konfiguration nicht crashen

Vielen Dank

-
Hallo zusammen, auch wenn Post 1 von 2019 ist, sehe ich hier noch Aktivitäten. Ich habe mir auhc die 200 Beiträge durchgelesen aber dennoch eine grundsätzliche Frage.
Mein Setup ist sehr klein. Es läuft ein RPI4 mit iobroker und ein bisschen angeschlossene Peripherie um Smart Home Geräte einzubinden. Aufgrund einiger Stromausfälle geht es mir lediglich um das sichere Herunterfahren des Pi. EIn NAS habe ich nicht, nur eine Festplatte am Pi eingebunden.
In Post 1 stand im HowTo
@klassisch sagte in [HowTo] USV: NUT Server auf SBC installieren:
NUT-Server und ioBroker auf einem Rechner
Diese Konfiguration hatte ich nie in Betrieb.Beiträge konnte ich auch nicht dazu lesen. Daher meine Frage was würdet ihr mir denn empfehlen, als einfachste Lösung. Ich bin auch in Linux nicht bewandert und möchte daher meine ioBroker Konfiguration nicht crashen

Vielen Dank

Und was ist konkret die Frage?
nut kann man natürlich auch auf dem Pi betreiben. Hab ich so. -
Und was ist konkret die Frage?
nut kann man natürlich auch auf dem Pi betreiben. Hab ich so.@thomas-braun Ah, ja das war nicht eindeutig definiert. Hier daher meine Fragen:
- Funktioniert die Anleitung aus Beitrag 1 noch immer?
- Ist eine Neueinrichtung oder Neuinstallation des ioBroker erforderlich? (Ich habe in einem anderen Thema gelesen, dass es wohl erforderlich sei)
- Gibt es für mein Minimal-Setup vielleicht noch eine andere Lösung?
- Welche USV hast du im Einsatz?
-
@thomas-braun Ah, ja das war nicht eindeutig definiert. Hier daher meine Fragen:
- Funktioniert die Anleitung aus Beitrag 1 noch immer?
- Ist eine Neueinrichtung oder Neuinstallation des ioBroker erforderlich? (Ich habe in einem anderen Thema gelesen, dass es wohl erforderlich sei)
- Gibt es für mein Minimal-Setup vielleicht noch eine andere Lösung?
- Welche USV hast du im Einsatz?
@marc_el_k sagte in [HowTo] USV: NUT Server auf SBC installieren:
@thomas-braun Ah, ja das war nicht eindeutig definiert. Hier daher meine Fragen:
- Funktioniert die Anleitung aus Beitrag 1 noch immer?
- Ist eine Neueinrichtung oder Neuinstallation des ioBroker erforderlich? (Ich habe in einem anderen Thema gelesen, dass es wohl erforderlich sei)
- Gibt es für mein Minimal-Setup vielleicht noch eine andere Lösung?
- Welche USV hast du im Einsatz?
-
Ja, zumindest als ich es vor einem halben Jahr probiert hatte
-
nein, ich hab es auch auf einen Slave installiert
-
Was genau stellst du dir vor?
-
@thomas-braun Ah, ja das war nicht eindeutig definiert. Hier daher meine Fragen:
- Funktioniert die Anleitung aus Beitrag 1 noch immer?
- Ist eine Neueinrichtung oder Neuinstallation des ioBroker erforderlich? (Ich habe in einem anderen Thema gelesen, dass es wohl erforderlich sei)
- Gibt es für mein Minimal-Setup vielleicht noch eine andere Lösung?
- Welche USV hast du im Einsatz?
1 Ja
2 Nein
3 Gibt für den Pi auch HATs für die GPIO-Leiste, die funktionieren soweit ich weiß ohne nut.
4 Eine von Schneider/APC -
Hallo zusammen,
die Anleitung funktioniert super
Vielen Dank dafür.Der NUT Adapter ist grün und die Daten werden übertragen.

Nun bekomme ich aber alle 5 Minuten bei Verbindung mit Putty noch folgende Nachricht. Vermutlich habe ich etwas falsch eingetragen. Wie bekomme ich das weg?Broadcast message from nut@raspberrypi (somewhere) (Sun Mar 17 10:18:49 2024): UPS serverups@localhost is unavailableVielen Dank!
-
Hallo zusammen,
könnte ich bitte nochmal eure Erfahrung anfragen

Ich weiß noch nicht wann genau es passiert, es kommt aber vor, dass der Adapter gelb bleibt. Wenn ich dann die beiden Befehle ausführe und den Adapter anschließend neustarte wird es wieder grün. Vielleicht liegt es an einem Neustart des Servers, sodass es noch nicht boot-sicher ist, ich habe aber das Gefühl, dass es auch im laufenden Betrieb vorkommt.
Habt ihr eine Idee?
XXX.:~ $ sudo upsdrvctl start Network UPS Tools - UPS driver controller 2.7.4 Network UPS Tools - Generic HID driver 0.41 (2.7.4) USB communication driver 0.33 Using subdriver: MGE HID 1.40 XXX.:~ $ sudo systemctl restart nut-server -
Hallo zusammen,
könnte ich bitte nochmal eure Erfahrung anfragen

Ich weiß noch nicht wann genau es passiert, es kommt aber vor, dass der Adapter gelb bleibt. Wenn ich dann die beiden Befehle ausführe und den Adapter anschließend neustarte wird es wieder grün. Vielleicht liegt es an einem Neustart des Servers, sodass es noch nicht boot-sicher ist, ich habe aber das Gefühl, dass es auch im laufenden Betrieb vorkommt.
Habt ihr eine Idee?
XXX.:~ $ sudo upsdrvctl start Network UPS Tools - UPS driver controller 2.7.4 Network UPS Tools - Generic HID driver 0.41 (2.7.4) USB communication driver 0.33 Using subdriver: MGE HID 1.40 XXX.:~ $ sudo systemctl restart nut-serverOhne LogFile kann man dazu nichts sagen.
-
Hallo zusammen,
könnte ich bitte nochmal eure Erfahrung anfragen

Ich weiß noch nicht wann genau es passiert, es kommt aber vor, dass der Adapter gelb bleibt. Wenn ich dann die beiden Befehle ausführe und den Adapter anschließend neustarte wird es wieder grün. Vielleicht liegt es an einem Neustart des Servers, sodass es noch nicht boot-sicher ist, ich habe aber das Gefühl, dass es auch im laufenden Betrieb vorkommt.
Habt ihr eine Idee?
XXX.:~ $ sudo upsdrvctl start Network UPS Tools - UPS driver controller 2.7.4 Network UPS Tools - Generic HID driver 0.41 (2.7.4) USB communication driver 0.33 Using subdriver: MGE HID 1.40 XXX.:~ $ sudo systemctl restart nut-server@marc_el_k ich meine in den Systemlogs könnte irgendwo stehen das er die Verbindung zu der USV verliert. Solange die nicht verbunden ist klappt die Abfrage des Adapters nicht.
Die erste Zeile bei dir startet ja eben diese USB-Treiber. Kommt die Meldung sofort (als Status) oder kannst du dabei zusehen wie er die nacheinander startet? Die müssten ja eigentlich schon laufen.Ich nutze den NUT-Server unter Windows (jupp, gibt es auch) und habe auch dort das Neustart-Problem. Es gibt zwar einen Windows Dienst. Der meldet recht schnell gestartet, lädt dann aber in Wirklichkeit im Hintergrund den ganzen Rest. Das hatte einmal am Anfang geklappt, sein dem nicht mehr. Ich starte das inzwischen auch per Hand (per Skript). Zuerst stoppe ich die USB-Driver (falls die noch laufen) und starte dann nut.
Eventuell ist es ein ähnliches Timing-Problem, da müsste man mal schauen wann was wie startet.
-
Ohne LogFile kann man dazu nichts sagen.
@thomas-braun, @BananaJoe Vielen Dank euch. Wie kann ich denn das Log erfassen?
-
@thomas-braun, @BananaJoe Vielen Dank euch. Wie kann ich denn das Log erfassen?
-
Hallo zusammen,
könnte ich bitte nochmal eure Erfahrung anfragen

Ich weiß noch nicht wann genau es passiert, es kommt aber vor, dass der Adapter gelb bleibt. Wenn ich dann die beiden Befehle ausführe und den Adapter anschließend neustarte wird es wieder grün. Vielleicht liegt es an einem Neustart des Servers, sodass es noch nicht boot-sicher ist, ich habe aber das Gefühl, dass es auch im laufenden Betrieb vorkommt.
Habt ihr eine Idee?
XXX.:~ $ sudo upsdrvctl start Network UPS Tools - UPS driver controller 2.7.4 Network UPS Tools - Generic HID driver 0.41 (2.7.4) USB communication driver 0.33 Using subdriver: MGE HID 1.40 XXX.:~ $ sudo systemctl restart nut-server@marc_el_k sagte in [HowTo] USV: NUT Server auf SBC installieren:
Habt ihr eine Idee?
Beschreibe doch mal grundsätzlich dein System.
-
@thomas-braun sagte in [HowTo] USV: NUT Server auf SBC installieren:
Zum Beispiel mittels
journalctl -u nut-serverHabe ich gemacht und mal das letzte geloggten Datum kopiert. Nur meine IP habe ich mit XXX versehen.
Mär 30 14:41:15 raspberrypi systemd[1]: Stopping Network UPS Tools - power devices information server... Mär 30 14:41:15 raspberrypi upsd[1173]: mainloop: Interrupted system call Mär 30 14:41:15 raspberrypi upsd[1173]: Signal 15: exiting Mär 30 14:41:15 raspberrypi systemd[1]: nut-server.service: Succeeded. Mär 30 14:41:15 raspberrypi systemd[1]: Stopped Network UPS Tools - power devices information server. Mär 30 14:41:15 raspberrypi systemd[1]: nut-server.service: Consumed 22.050s CPU time. -- Boot 07970854bb1149ef992b8c5f23cc5836 -- Mär 30 14:41:28 raspberrypi systemd[1]: Starting Network UPS Tools - power devices information server... Mär 30 14:41:58 raspberrypi upsd[1146]: fopen /run/nut/upsd.pid: No such file or directory Mär 30 14:41:58 raspberrypi upsd[1146]: not listening on XXX.XXX.XXX.XXX port 3493 Mär 30 14:41:58 raspberrypi upsd[1146]: listening on 127.0.0.1 port 3493 Mär 30 14:41:58 raspberrypi upsd[1146]: no listening interface available Mär 30 14:41:58 raspberrypi upsd[1146]: not listening on XXX.XXX.XXX.XXX port 3493 Mär 30 14:41:58 raspberrypi upsd[1146]: listening on 127.0.0.1 port 3493 Mär 30 14:41:58 raspberrypi upsd[1146]: no listening interface available Mär 30 14:41:58 raspberrypi upsd[1146]: Network UPS Tools upsd 2.7.4 Mär 30 14:41:58 raspberrypi systemd[1]: nut-server.service: Control process exited, code=exited, status=1/FAILURE Mär 30 14:41:58 raspberrypi systemd[1]: nut-server.service: Failed with result 'exit-code'. Mär 30 14:41:58 raspberrypi systemd[1]: Failed to start Network UPS Tools - power devices information server. Mär 30 15:24:08 raspberrypi systemd[1]: Starting Network UPS Tools - power devices information server... Mär 30 15:24:38 raspberrypi upsd[24948]: fopen /run/nut/upsd.pid: No such file or directory Mär 30 15:24:38 raspberrypi upsd[24948]: listening on XXX.XXX.XXX.XXX port 3493 Mär 30 15:24:38 raspberrypi upsd[24948]: listening on 127.0.0.1 port 3493 Mär 30 15:24:38 raspberrypi upsd[24948]: listening on XXX.XXX.XXX.XXX port 3493 Mär 30 15:24:38 raspberrypi upsd[24948]: Connected to UPS [ups]: usbhid-ups-ups Mär 30 15:24:38 raspberrypi upsd[24948]: listening on 127.0.0.1 port 3493 Mär 30 15:24:38 raspberrypi upsd[24948]: Connected to UPS [ups]: usbhid-ups-ups Mär 30 15:24:38 raspberrypi upsd[24949]: Startup successful Mär 30 15:24:38 raspberrypi systemd[1]: Started Network UPS Tools - power devices information server.Der Adapter ist momentan grün.
@Meister-Mopper Das System ist ein Raspberry Pi 4 mit iobroker und der Nut Server Installtion. Die USV ist Eaton.
-
Was macht NUT?
Mit NUT (Network UPS Tools) kann man eine unterbrechungsfreie Stromversorgung (USV, UPS) mit Computern verbinden und Daten von den UPS bekommen.
Für ioBroker gibt es den nut Adapter von @Apollon77, Github und ioBrokerForum . Dieser Adapter stellt einen NUT-Cient bereit und legt eine Datenstruktur im Objektbereich an.
Ich nutze den Adapter hauptsächlich zum mitloggen der Daten wie verbleibende Akuulaufzeit und zur Detektion von Netzspannungsausfällen.Geeignete UPS (USV)
Die meisten UPS unterstützen diesen Datenaustausch. Entweder per serieller Schnittstelle (nur noch selten anzutreffen), meist per USB oder die edleren direkt über Ethernet.
Luxus: UPS mit eingebauter Netzwerkkarte
Die Luxuslösung sieht dann so aus:

Man kann dann z.B. den NAS einige Minuten nach einem Spannungsausfall herunterfahren und die anderen Geräte wie ioBroker, Router, Switches, Homematic weiter betreiben.
Im ioBroker nut-Adapter trägt man die IP-Adresse der Netzwerkkarte der UPS, deren Port (i.d.R 3493), den Namen der UPS sowie Benutzernamen und Passwort, die auf der Netzwerkkarte der UPS festgelegt sind.
Ein konkretes Beispiel kann ich hier leider nicht geben, da ich leider eine andere Lösung habe.Einfache Lösung mit Haken: NAS als NUT-Server
Wer über ein geeignetes NAS-Gerät verfügt - in meinem Beispiel Synology - kann das USB-Kabel der UPS direkt dort einstecken und den eingebauten NAS-Server nutzen.

In diesem Fall detektiert die Synology die angeschlossene UPS. Im Menue Hardware & Energie, Tab USV kann man den NUT Server aktivieren und die IP-Adressen der Clients - also auch des ioBroker-Rechners - einstellen.
Im ioBroker Adapter gibt man die IP Adresse der Synology an, sowie wieder Port 3493. Bei Synology muß der Name der UPS sowie dessen Benutzername ups lauten und das password secret .
Das funktioniert recht problemlos und stabil, hat aber einen Haken. Wenn die Synology bei einem Stromausfall heruntergefahren wird, stellt auch deren NUT Server den Dienst ein und der ioBroker wird nicht mehr mit den Daten der UPS versorgt. Also gerade dann, wenn es eigentlich am interessantesten ist.
Um das zu vermeiden, kann man den NUT-Server auf einem (eigenen) Kleinrechner betreiben. Alle anderen Geräte werden dann als Cient betrieben.NUT-Server auf einem Kleinrechner (SBC)
In meinem Fall ist der SBC ein Orange Pi Plus 2e, der für diese Aufgabe zwar viel zu groß ist, aber durch Migration von ioBoker auf einen Windows Rechner frei wurde.

Das Aufsetzen des NUT-Server erfolgt auf den Spuren von Haus-Automatisierung und Wiki Ubuntuusers
Zuerst System aktualisieren bzw. neu aufsetzen mit µSD Karteapt update apt upgradeEdit: Den NUT-Rechner mit der USV per USB verbinden. Darauf hat @Homoran hingewiesen.
Nut installation:sudo apt install nut usbutilsBei älteren Systemen sudo apt-get install nut usbutils
sudo nano /etc/nut/ups.confEinfügen:
[ups] driver = "usbhid-ups" port = "auto" desc = "CyberPower" pollinterval = 30Bei Verwendung einer Synology muß [ups] verwendet werden.
Sudo rebootsudo upsdrvctl start sudo cp /lib/udev/rules.d/62-nut-usbups.rules /etc/udev/rules.d/ sudo rebootsudo upsdrvctl start sudo nano /etc/nut/nut.confEintragen:
MODE=netserverDanach den Dienst starten:
sudo upsdWenn alles funktioniert hat, kann man jetzt Daten ausgeben:
sudo upsc ups@localhostHier muss eine sinnvolle Liste gelistet werden: Beispiel:
root@opi2e_reserve:~# sudo upsc ups@localhost Init SSL without certificate database battery.charge: 100 battery.charge.low: 10 battery.charge.warning: 20 battery.mfr.date: CPS battery.runtime: 6690 battery.runtime.low: 300 battery.type: PbAcid battery.voltage: 24.0 battery.voltage.nominal: 24 device.mfr: CPS device.model: CP1500EPFCLCD device.serial: CRABCD12345678 device.type: ups driver.name: usbhid-ups driver.parameter.pollfreq: 30 driver.parameter.pollinterval: 30 driver.parameter.port: auto driver.parameter.synchronous: no driver.version: 2.7.4 driver.version.data: CyberPower HID 0.4 driver.version.internal: 0.41 input.transfer.high: 260 input.transfer.low: 170 input.voltage: 235.0 input.voltage.nominal: 230 output.voltage: 267.0 ups.beeper.status: enabled ups.delay.shutdown: 20 ups.delay.start: 30 ups.load: 5 ups.mfr: CPS ups.model: CP1500EPFCLCD ups.productid: 0501 ups.realpower.nominal: 900 ups.serial: CRABCD12345678 ups.status: OL ups.test.result: No test initiated ups.timer.shutdown: -60 ups.timer.start: -60 ups.vendorid: 0764 root@opi2e_reserve:~#Weiter gehts
sudo nano /etc/nut/upsd.confEintragen:
LISTEN 127.0.0.1 3493 LISTEN 192.168.178.123 3493Also IP-Adresse der eigenen (Nut-Server) Eth Schnittstelle
Starten und stoppen, damit das conf-file wieder eingelesen wirdsudo upsd -c stop sudo upsdJetzt werden Benutzerkonten angelegt, unter denen man von anderen Geräten auf den NUT-Server zugreifen kann. In meinem Beispiel:
Drei user werden erstellt
- upsmaster für den Administrator, der damit aber nichts macht
- monuser für die Synology
- upsmon_remote für den ioBrokerDazu:
sudo nano /etc/nut/upsd.usersEintragen:
[upsmaster] password = irgendwasabergutmerken actions = SET instcmds = ALL upsmon master [monuser] password = secret upsmon slave [upsmon_remote] password = secret upsmon slaveWieder übernehmen
sudo upsd -c stop sudo upsdJetzt müssen wir das Ganze auch noch reboot-fest machen.
Bei neueren Linux-Systemen geschieht das über systemd. @Thomas-Braun und @David-G haben diese Anpassung dankenswerterweise ausgearbeitet und getestet (siehe dort mit Nutzung dieser Fundstelle):
Zuerst mitcat /etc/systemd/system/multi-user.target.wants/nut-server.serviceprüfen, ob diese Datei vorhanden ist und nut bereits die Vorkehrungen für systemd getroffen hat.
Falls diese Datei existiert, Mit nano öffnen:sudo nano /etc/systemd/system/multi-user.target.wants/nut-server.serviceDiese Datei sieht dann erst mal so aus:
[Unit] Description=Network UPS Tools - power devices information server After=local-fs.target network.target nut-driver.service # We don't Require drivers to be successfully started! This would be # a change of behavior compared to init SysV, and could prevent from # accessing successfully started, at least to audit a system. Wants=nut-driver.service Before=nut-monitor.service [Service] ExecStart=/sbin/upsd Type=forking [Install] WantedBy=multi-user.targetDamit genügend Zeit zur Installation der USB Treiber bleibt, nach der Zeile [Service] noch die Verzögerung
ExecStartPre=/bin/sleep 30eintragen und die geänderte Datei abspeichern.
Die Datei sollte nun so aussehen[Unit] Description=Network UPS Tools - power devices information server After=local-fs.target network.target nut-driver.service # We don't Require drivers to be successfully started! This would be # a change of behavior compared to init SysV, and could prevent from # accessing successfully started, at least to audit a system. Wants=nut-driver.service Before=nut-monitor.service [Service] ExecStartPre=/bin/sleep 30 ExecStart=/sbin/upsd Type=forking [Install] WantedBy=multi-user.target{
Hier die Methode für alte Systeme, bei denen die Datei /etc/systemd/system/multi-user.target.wants/nut-server.service nicht existiert. Darf nicht verwendet werden, wenn diese Datei vorhanden ist und die vorherigen Schritte schon ausgeführt wurdensudo nano /etc/rc.localHier VOR exit=0 einfügen
#additions for nut server upsdrvctl start upsd #end additions for nut server} Ende der Einstellungen für Altsysteme. Bei neueren Sytsemen nicht mehr verwenden]
Jetzt wird noch der ioBroker Adapter eingestellt. Beispiel
IP des NUT Servers: 192.168.178.123 #Beispiel Port des NUT Servers: 3493 NUT Name der UPS: ups Aktualisierungsintervall 300s Username der UPS: upsmon_remote Passwort der UPS: secretBei der Synology wird eingestellt (Hardware & Energie, Tab USV):
Anhaken: USV-Unterstützung aktivieren
Netzwerk-USV-Typ: Synology USV Server
Netzwerk-USV-Server-IP: 192.168.178.123 #BeispielDie Zeit einstellen, nach der die Synology heruntergefahren werden soll + anhaken.
NUT-Server und ioBroker auf einem Rechner
Diese Konfiguration hatte ich nie in Betrieb. Sie müßte aber mit den o.g. Installationsschritten möglich sein. Als IP-Adresse des NUT Servers kann innerhalb des Host Rechners dann localhost oder 127.0.0.1 verwendet werden.

Edit:
Welcher Treiber passt zu meiner USV?
Auswahltabelle Treiber auf der Seite des NUT-ProjektsERLEDIGT *** Problem gelöst und ja, wer lesen kann ...

Hallo,
ich habe den Server schon lange auf meinem Raspi erfolgreich laufen. Aber nach einem Update/Upgrade hat es den etwas zerschossen. Auf dem Raspi angezeigt bekomme ich nun folgendes:
pi@NUT-Server:~ $ systemctl status nut-monitor.service ● nut-monitor.service - Network UPS Tools - power device monitor and shutdown controller Loaded: loaded (/lib/systemd/system/nut-monitor.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2024-04-25 19:36:29 CEST; 10min ago Process: 462 ExecStart=/sbin/upsmon (code=exited, status=0/SUCCESS) Main PID: 465 (upsmon) Tasks: 2 (limit: 1597) CPU: 289ms CGroup: /system.slice/nut-monitor.service ├─464 /lib/nut/upsmon └─465 /lib/nut/upsmon Apr 25 19:46:06 NUT-Server upsmon[465]: UPS [ups@localhost]: connect failed: Connection failure: Connection refused Apr 25 19:46:11 NUT-Server upsmon[465]: UPS [ups@localhost]: connect failed: Connection failure: Connection refused Apr 25 19:46:16 NUT-Server upsmon[465]: UPS [ups@localhost]: connect failed: Connection failure: Connection refused Apr 25 19:46:21 NUT-Server upsmon[465]: UPS [ups@localhost]: connect failed: Connection failure: Connection refused Apr 25 19:46:26 NUT-Server upsmon[465]: UPS [ups@localhost]: connect failed: Connection failure: Connection refused Apr 25 19:46:31 NUT-Server upsmon[465]: UPS [ups@localhost]: connect failed: Connection failure: Connection refused Apr 25 19:46:36 NUT-Server upsmon[465]: UPS [ups@localhost]: connect failed: Connection failure: Connection refused Apr 25 19:46:36 NUT-Server upsmon[465]: UPS ups@localhost is unavailable Apr 25 19:46:41 NUT-Server upsmon[465]: UPS [ups@localhost]: connect failed: Connection failure: Connection refused Apr 25 19:46:46 NUT-Server upsmon[465]: UPS [ups@localhost]: connect failed: Connection failure: Connection refusedIm Moment kann ich diese Fehlermeldung nicht ganz zuordnen. Hab ihr vielleicht eine Idee dazu?
-
Hallo
wollte nach langem mal wieder meine USV einbinden, nach dem ich ein neues System zu gelegt habe für Proxmox und Iobroker.
Meine "doofe" Frage, wo muss ich diese Befehle alle absetzen? In der Shell von Iobroker oder in der von Proxmox?
-
Hallo
wollte nach langem mal wieder meine USV einbinden, nach dem ich ein neues System zu gelegt habe für Proxmox und Iobroker.
Meine "doofe" Frage, wo muss ich diese Befehle alle absetzen? In der Shell von Iobroker oder in der von Proxmox?
@stefu87_ch Nachdem Du ja bestimmt den gesamten Proxmox-Host und nicht nur iobroker im Fall eines Stromausfalls sauber herunterfahren willst, musst Du das natürlich direkt im Proxmox-Host einrichten.
Wenn der runterfährt, werden die laufenden VM und LXC automatisch vorher sauber heruntergefahren.Gruss, Jürgen