NEWS
[HowTo] USV: NUT Server auf SBC installieren
[HowTo] USV: NUT Server auf SBC installieren
-
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,
bei mir klappt der Autostart am Pi irgendwie nicht.
Anbei meine rc.local.
Sieht da jemand einen Fehler?
#!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runleve$ # Make sure that the script will "exit 0" on success or any ot$ # value on error. # # In order to enable or disable this script just change the ex$ # bits. # # By default this script does nothing. # Print the IP address _IP=$(hostname -I) || true if [ "$_IP" ]; then printf "My IP address is %s\n" "$_IP" fi #additions for nut server upsdrvctl start upsd #end additions for nut server exit 0 -
Hallo @klassisch
kannst du mir bitte helfen, möglicherweise?seit ein paar Tagen läuft mein nut-Adapter nicht mehr. Habe es heute erst gemerkt.
Den Server hatte ich auch auf einem cubietruck getestet und dort installiert.
jetzt habe ich einiges an dem Cubie rumgespielt (mal wieder einen Akku drangehängt und die ganzen Daten in den rpi2 Adapter versucht einzupflegen, seit gestern dann noch einen dump1090 ADB-2 receiver)Bei der Überprüfung der ganzen Funktionen sehe ich ein ECONNREFUSED und habe mal auf dem Cubie nachgesehen und:
pi@cubietruck:~$ sudo upsd Network UPS Tools upsd 2.7.4 fopen /var/run/nut/upsd.pid: No such file or directory listening on 192.168.138.73 port 3493 listening on 127.0.0.1 port 3493 Can't connect to UPS [ups] (usbhid-ups-ups): No such file or directorysagt dir diese Meldung etwas?
-
Hallo @klassisch
kannst du mir bitte helfen, möglicherweise?seit ein paar Tagen läuft mein nut-Adapter nicht mehr. Habe es heute erst gemerkt.
Den Server hatte ich auch auf einem cubietruck getestet und dort installiert.
jetzt habe ich einiges an dem Cubie rumgespielt (mal wieder einen Akku drangehängt und die ganzen Daten in den rpi2 Adapter versucht einzupflegen, seit gestern dann noch einen dump1090 ADB-2 receiver)Bei der Überprüfung der ganzen Funktionen sehe ich ein ECONNREFUSED und habe mal auf dem Cubie nachgesehen und:
pi@cubietruck:~$ sudo upsd Network UPS Tools upsd 2.7.4 fopen /var/run/nut/upsd.pid: No such file or directory listening on 192.168.138.73 port 3493 listening on 127.0.0.1 port 3493 Can't connect to UPS [ups] (usbhid-ups-ups): No such file or directorysagt dir diese Meldung etwas?
Ich weiß nicht, ob es im Ansatz was mit zu tun hat, schreibe es aber einfach mal. Erst recht weil ich im Gegensatz zu dir ein Linux Dau bin
.Hatte das
No such file or directorynach den ersten beiden installationen vom Nut-Server als ich ich die Verzeichnisse wechseln wollte wo der Treiber und die User angelegt werden.
Erst nach einer dritten Wiederholung der Installation wurden die Dateien gefunden. -
Hallo @klassisch
kannst du mir bitte helfen, möglicherweise?seit ein paar Tagen läuft mein nut-Adapter nicht mehr. Habe es heute erst gemerkt.
Den Server hatte ich auch auf einem cubietruck getestet und dort installiert.
jetzt habe ich einiges an dem Cubie rumgespielt (mal wieder einen Akku drangehängt und die ganzen Daten in den rpi2 Adapter versucht einzupflegen, seit gestern dann noch einen dump1090 ADB-2 receiver)Bei der Überprüfung der ganzen Funktionen sehe ich ein ECONNREFUSED und habe mal auf dem Cubie nachgesehen und:
pi@cubietruck:~$ sudo upsd Network UPS Tools upsd 2.7.4 fopen /var/run/nut/upsd.pid: No such file or directory listening on 192.168.138.73 port 3493 listening on 127.0.0.1 port 3493 Can't connect to UPS [ups] (usbhid-ups-ups): No such file or directorysagt dir diese Meldung etwas?
@Homoran sagte in [HowTo] USV: NUT Server auf SBC installieren:
sagt dir diese Meldung etwas?
leider nicht. Habe meine Notizen durchgeschaut und da habe ich nichts dazu gefunden. Ich würde bei Linux auf ein Rechtethema oder USB-Durchreichung tippen.
Habe aber keine wirkliche Ahnung von Linux. Und da ich ioBroker unter Windows betreibe wird das auch immer weniger.
Hab noch einen OPi mit piVCCU, bei dem ich die Kernel-Updaterei deaktiviert habe und nur noch piVCCU update. Solange noch Stretch unterstützt wird.
Der NUT OPi hatte ja nach dem letzten Aufsetzen von armbian Stretch nur noch 1GB statt der 2GB zur Verfügung. Das hat mein Vertrauen in Linux auch nicht gerade gestärkt. Ich mache mit diesem OPi nichts, außer NUT. Völlige Verschwendung, aber das Ding hatUp time: 481 daysAlso alles stabil und deshalb mache ich nichts dran. Sorry. Läuft also parktisch schon seit dem Aufsetzen ohne Unterbrechung. Der erste Post in diesem Thread ist 476 Tage her, also wohl knapp eine Woche nach dem Aufsetzen.
Der OPi hängt ja selbst auch an der gepufferten Stromversorgung und hat deshalb nichts vom kürzlichen Austausch des Stromzählers mitbekommen.
Da ich jetzt sowohl RFLink als auch smartmeter über TCP statt USB betreibe, könnte ich meinen Windows Rechner translozieren und neben die USV stellen, dort einen NUT Server installieren und auch noch den NUT-OPi ausser Betrieb setzen. Windows handelt USB ja problemlos und einen NUT-Server unter Windows scheint es auch zu geben. Die Verlockung ist groß. Aber dann hätte ich wieder die räumliche Abhängigkeit, die ich nicht will. Also werden die paar Watt spendiert und der OPI NUTtet weiter. -
@Homoran sagte in [HowTo] USV: NUT Server auf SBC installieren:
sagt dir diese Meldung etwas?
leider nicht. Habe meine Notizen durchgeschaut und da habe ich nichts dazu gefunden. Ich würde bei Linux auf ein Rechtethema oder USB-Durchreichung tippen.
Habe aber keine wirkliche Ahnung von Linux. Und da ich ioBroker unter Windows betreibe wird das auch immer weniger.
Hab noch einen OPi mit piVCCU, bei dem ich die Kernel-Updaterei deaktiviert habe und nur noch piVCCU update. Solange noch Stretch unterstützt wird.
Der NUT OPi hatte ja nach dem letzten Aufsetzen von armbian Stretch nur noch 1GB statt der 2GB zur Verfügung. Das hat mein Vertrauen in Linux auch nicht gerade gestärkt. Ich mache mit diesem OPi nichts, außer NUT. Völlige Verschwendung, aber das Ding hatUp time: 481 daysAlso alles stabil und deshalb mache ich nichts dran. Sorry. Läuft also parktisch schon seit dem Aufsetzen ohne Unterbrechung. Der erste Post in diesem Thread ist 476 Tage her, also wohl knapp eine Woche nach dem Aufsetzen.
Der OPi hängt ja selbst auch an der gepufferten Stromversorgung und hat deshalb nichts vom kürzlichen Austausch des Stromzählers mitbekommen.
Da ich jetzt sowohl RFLink als auch smartmeter über TCP statt USB betreibe, könnte ich meinen Windows Rechner translozieren und neben die USV stellen, dort einen NUT Server installieren und auch noch den NUT-OPi ausser Betrieb setzen. Windows handelt USB ja problemlos und einen NUT-Server unter Windows scheint es auch zu geben. Die Verlockung ist groß. Aber dann hätte ich wieder die räumliche Abhängigkeit, die ich nicht will. Also werden die paar Watt spendiert und der OPI NUTtet weiter.@klassisch
@David-GDanke für den Input.
Ich hatte gestern Abend auch noch etwas unkoordiniert an dem Cubietruck rumgehackt und bin jetzt auch zu dem Schluss gekommen, dass es irgendwie mit dem USB Anschluss zu tun haben muss.Habe die APC jetzt an dem anderen USB angeschlossen, natürlich mehrfach gewechselt ohne Erfolg, dann diverse Schritte aus der Installation ebenfalls unkoordiniert wiederholt genauso wie mehrere Reboots.
Irgendwann lief es dann wieder.
Beim ersten nachvollziehen der Anleitung auf einem Pi klappte es ja auch erst, wenn bei der Installation die USV bereits angeschlossen war.
ggf. wird die Konfiguration automatisch dann irgendwie mit dem USB Anschluss verheiratet. -
@klassisch
@David-GDanke für den Input.
Ich hatte gestern Abend auch noch etwas unkoordiniert an dem Cubietruck rumgehackt und bin jetzt auch zu dem Schluss gekommen, dass es irgendwie mit dem USB Anschluss zu tun haben muss.Habe die APC jetzt an dem anderen USB angeschlossen, natürlich mehrfach gewechselt ohne Erfolg, dann diverse Schritte aus der Installation ebenfalls unkoordiniert wiederholt genauso wie mehrere Reboots.
Irgendwann lief es dann wieder.
Beim ersten nachvollziehen der Anleitung auf einem Pi klappte es ja auch erst, wenn bei der Installation die USV bereits angeschlossen war.
ggf. wird die Konfiguration automatisch dann irgendwie mit dem USB Anschluss verheiratet.@Homoran Prima, daß es jetzt wieder geht. Danke für die Rückmeldung. USB und Betriebsysteme ist mir ein Mysterium. Aber bei Windows fällt es nicht auf, weil es besser funktioniert. Bei Linux hakte es halt öfter bis fast immer. Diese ganze Mounterei ist aus der Zeit gefallen. Ist nicht mehr zeitgemäß. Und seit mein ioBroker Rechner per RemoteDesktop administrierbar ist, möchte ich nicht mehr auf headless zurück.
-
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,
vielen Dank für Deine tolle Anleitung.
Ich habe gerade den Punkt: "NUT-Server auf einem Kleinrechner (SBC)" auf einem Raspi 3B+ durchgeführt und erfolgreich an meine Synology NAS (DS216+II) über USB angeschlossen. Alle DP im ioBroker werden auch ordnungsgemäß befüllt.
Nun hätte ich zwei Fragen:
-
Wie kann ich, im Falle eines Stromausfalles, dem NUT-Server auf dem Raspi sagen wann er in den shutdown gehen soll (und das entsprechende Signal an alle anderen senden)? In der Synology gibt es dazu zwei Punkte: 1. Zeit selbst einstellen und 2. "Genauso wie Server".
-
Gibt es für den ioBroker NUT-Adapter eine Anleitung in der die Datenpunkte erklärt werden?
-
-
Hallo,
vielen Dank für Deine tolle Anleitung.
Ich habe gerade den Punkt: "NUT-Server auf einem Kleinrechner (SBC)" auf einem Raspi 3B+ durchgeführt und erfolgreich an meine Synology NAS (DS216+II) über USB angeschlossen. Alle DP im ioBroker werden auch ordnungsgemäß befüllt.
Nun hätte ich zwei Fragen:
-
Wie kann ich, im Falle eines Stromausfalles, dem NUT-Server auf dem Raspi sagen wann er in den shutdown gehen soll (und das entsprechende Signal an alle anderen senden)? In der Synology gibt es dazu zwei Punkte: 1. Zeit selbst einstellen und 2. "Genauso wie Server".
-
Gibt es für den ioBroker NUT-Adapter eine Anleitung in der die Datenpunkte erklärt werden?
@qqolli sagte in [HowTo] USV: NUT Server auf SBC installieren:
Gibt es für den ioBroker NUT-Adapter eine Anleitung in der die Datenpunkte erklärt werden?
Was willst du denn da wissen?
Sind zwar sehr viele Daten, aber eigentlich selbsterklärend -
-
Hallo,
vielen Dank für Deine tolle Anleitung.
Ich habe gerade den Punkt: "NUT-Server auf einem Kleinrechner (SBC)" auf einem Raspi 3B+ durchgeführt und erfolgreich an meine Synology NAS (DS216+II) über USB angeschlossen. Alle DP im ioBroker werden auch ordnungsgemäß befüllt.
Nun hätte ich zwei Fragen:
-
Wie kann ich, im Falle eines Stromausfalles, dem NUT-Server auf dem Raspi sagen wann er in den shutdown gehen soll (und das entsprechende Signal an alle anderen senden)? In der Synology gibt es dazu zwei Punkte: 1. Zeit selbst einstellen und 2. "Genauso wie Server".
-
Gibt es für den ioBroker NUT-Adapter eine Anleitung in der die Datenpunkte erklärt werden?
-
-
@qqolli Anleitung ist in Github und per Adapteransicht zu finden

Die Datenpunkte hängen von der USV ab.
Hi,
entweder bin ich blind oder ich finde die Informationen nicht. Ich habe sowohl auf Github als auch in der Adapteransicht nachgeschaut und die Infos sind IMHO recht dürftig.
Zum Beispiel, was bedeuten:

Wenn ich die USV vom Netz trenne, ändern sich hier keine DP:

und beim senden eines Commands gibt es eine Fehlermeldung:
nut.0 2020-10-29 16:41:03.016 error (32555) Err while getting NUT values: Other communication still running nut.0 2020-10-29 16:41:03.015 error (32555) Err while sending command test.panel.start: ACCESS-DENIED nut.0 2020-10-29 16:41:03.012 info (32555) send command test.panel.start nut.0 2020-10-29 16:41:03.010 info (32555) send password for command test.panel.start nut.0 2020-10-29 16:41:03.008 info (32555) send username for command test.panel.startUnd zu meiner vorherigen Frage: "Wie kann ich, im Falle eines Stromausfalles, dem NUT-Server auf dem Raspi sagen wann er in den shutdown gehen soll (und das entsprechende Signal an alle anderen senden)? In der Synology gibt es dazu zwei Punkte: 1. Zeit selbst einstellen und 2. "Genauso wie Server". - Gibt es da eine Einstellung und wenn ja, wo und wie?
Sorry für die vielen Fragen, hoffe Du bist nicht genervt

-
Hi,
entweder bin ich blind oder ich finde die Informationen nicht. Ich habe sowohl auf Github als auch in der Adapteransicht nachgeschaut und die Infos sind IMHO recht dürftig.
Zum Beispiel, was bedeuten:

Wenn ich die USV vom Netz trenne, ändern sich hier keine DP:

und beim senden eines Commands gibt es eine Fehlermeldung:
nut.0 2020-10-29 16:41:03.016 error (32555) Err while getting NUT values: Other communication still running nut.0 2020-10-29 16:41:03.015 error (32555) Err while sending command test.panel.start: ACCESS-DENIED nut.0 2020-10-29 16:41:03.012 info (32555) send command test.panel.start nut.0 2020-10-29 16:41:03.010 info (32555) send password for command test.panel.start nut.0 2020-10-29 16:41:03.008 info (32555) send username for command test.panel.startUnd zu meiner vorherigen Frage: "Wie kann ich, im Falle eines Stromausfalles, dem NUT-Server auf dem Raspi sagen wann er in den shutdown gehen soll (und das entsprechende Signal an alle anderen senden)? In der Synology gibt es dazu zwei Punkte: 1. Zeit selbst einstellen und 2. "Genauso wie Server". - Gibt es da eine Einstellung und wenn ja, wo und wie?
Sorry für die vielen Fragen, hoffe Du bist nicht genervt

@qqolli sagte in [HowTo] USV: NUT Server auf SBC installieren:
Sorry für die vielen Fragen, hoffe Du bist nicht genervt

Nein, aber ich hatte gerade noch anderes zu tun.
Bei mir sehen die Objekte z.B. so aus

Runtime wird z.B. aktualisiert, wenn Du die Last änderst. Bei mir eher langsam, weil ich auf Aktualisierungszeit von 5 Minuten eingestellt habe.
Das sieht dann längerfristig so aus

Soweit dazu.
Unabhängig von dee Pollingzeit scheint der NUT Server bei Stromausfall einen Broadcast zu verschicken. Ich schicke mir dann über ioBroker eine Mail.
Parallel dazu fahre ich die Synology nach ein paar Minuten runter und nicht mehr automatisch hoch. Denn die frißt Strom. Den Rest lasse ich laufen, denn der macht die Infrastruktur, die Hausautomatisierung und über ioBroker die Datenarchivierung der Hausautomatisierungsdaten. Mein ioBroker läuft auf einem Win10 Laptop. Also selbst wenn die UPS platt ist, wird der noch ein paar h weiter laufen. Und dann kann ein Laptop über sein eigenes Power Management in den Energiesparmodus oder Ruhezustand gehen. Habe ich aber noch nicht gebraucht.
Wenn Du einen Raspi runterfahren lassen willst, Mußt Du wahrscheinlich noch einen NUT Client drauf machen. Dabei könnte z.B. diese Anleitung https://zefanjas.de/server-bei-stromausfall-herunterfahren-ups-nut-co/ ab "Clients / Slaves einrichten (z.B. Server, andere Computer)"
Wie gesagt, ich fahre derzeit vor allem die Synology runter.
Die Synology habe ich natürlich als Client eingerichtet, die dann auf den NUT Server auf dem OPi hört. Das hat den Vorteil, daß ich beim Netzausfall über ioBroker auch noch die USV sehe. Wenn ich die Syno als Server nutzen würde, was viel einfacher ist, dann würde ich die USV nicht mehr sehen, wenn die Syno runtergefahren ist.
Meinen OPi, der den NUT Server trägt, lasse ich durchlafen, der braucht nicht viel Strom. -
@qqolli sagte in [HowTo] USV: NUT Server auf SBC installieren:
Sorry für die vielen Fragen, hoffe Du bist nicht genervt

Nein, aber ich hatte gerade noch anderes zu tun.
Bei mir sehen die Objekte z.B. so aus

Runtime wird z.B. aktualisiert, wenn Du die Last änderst. Bei mir eher langsam, weil ich auf Aktualisierungszeit von 5 Minuten eingestellt habe.
Das sieht dann längerfristig so aus

Soweit dazu.
Unabhängig von dee Pollingzeit scheint der NUT Server bei Stromausfall einen Broadcast zu verschicken. Ich schicke mir dann über ioBroker eine Mail.
Parallel dazu fahre ich die Synology nach ein paar Minuten runter und nicht mehr automatisch hoch. Denn die frißt Strom. Den Rest lasse ich laufen, denn der macht die Infrastruktur, die Hausautomatisierung und über ioBroker die Datenarchivierung der Hausautomatisierungsdaten. Mein ioBroker läuft auf einem Win10 Laptop. Also selbst wenn die UPS platt ist, wird der noch ein paar h weiter laufen. Und dann kann ein Laptop über sein eigenes Power Management in den Energiesparmodus oder Ruhezustand gehen. Habe ich aber noch nicht gebraucht.
Wenn Du einen Raspi runterfahren lassen willst, Mußt Du wahrscheinlich noch einen NUT Client drauf machen. Dabei könnte z.B. diese Anleitung https://zefanjas.de/server-bei-stromausfall-herunterfahren-ups-nut-co/ ab "Clients / Slaves einrichten (z.B. Server, andere Computer)"
Wie gesagt, ich fahre derzeit vor allem die Synology runter.
Die Synology habe ich natürlich als Client eingerichtet, die dann auf den NUT Server auf dem OPi hört. Das hat den Vorteil, daß ich beim Netzausfall über ioBroker auch noch die USV sehe. Wenn ich die Syno als Server nutzen würde, was viel einfacher ist, dann würde ich die USV nicht mehr sehen, wenn die Syno runtergefahren ist.
Meinen OPi, der den NUT Server trägt, lasse ich durchlafen, der braucht nicht viel Strom.Hi,
danke für die ausführliche Antwort. Du schriebst "Unabhängig von der Pollingzeit scheint der NUT Server bei Stromausfall einen Broadcast zu verschicken. Ich schicke mir dann über ioBroker eine Mail." Wie bekommt man den raus, bzw. wo in den DP wird angezeigt, das der Strom ausgefallen ist?
Zu meiner letzen Frage, hast Du vielleicht eine Idee, warum er "Access Denied" sagt (s. unten)? Rechteproblem auf dem NUT-Raspi evtl?
nut.0 2020-10-29 16:41:03.016 error (32555) Err while getting NUT values: Other communication still running nut.0 2020-10-29 16:41:03.015 error (32555) Err while sending command test.panel.start: ACCESS-DENIED nut.0 2020-10-29 16:41:03.012 info (32555) send command test.panel.start nut.0 2020-10-29 16:41:03.010 info (32555) send password for command test.panel.start nut.0 2020-10-29 16:41:03.008 info (32555) send username for command test.panel.start -
Hi,
danke für die ausführliche Antwort. Du schriebst "Unabhängig von der Pollingzeit scheint der NUT Server bei Stromausfall einen Broadcast zu verschicken. Ich schicke mir dann über ioBroker eine Mail." Wie bekommt man den raus, bzw. wo in den DP wird angezeigt, das der Strom ausgefallen ist?
Zu meiner letzen Frage, hast Du vielleicht eine Idee, warum er "Access Denied" sagt (s. unten)? Rechteproblem auf dem NUT-Raspi evtl?
nut.0 2020-10-29 16:41:03.016 error (32555) Err while getting NUT values: Other communication still running nut.0 2020-10-29 16:41:03.015 error (32555) Err while sending command test.panel.start: ACCESS-DENIED nut.0 2020-10-29 16:41:03.012 info (32555) send command test.panel.start nut.0 2020-10-29 16:41:03.010 info (32555) send password for command test.panel.start nut.0 2020-10-29 16:41:03.008 info (32555) send username for command test.panel.start@qqolli Bei meiner alten APC war es nut.0.status.severity und bei meiner Cyberpower (die auf der zweiten Instanz nut.1 läuft) "nut.1.status.severity". Also status.severity scheint verbreitet zu sein. Der Zustand wechselt dann von (0)idle auf (1)operating.
Es gibt bei mir auch noch 'status.discharging', welches von false auf true wechselt. Habe es gerade mal für Dich getestet, sieht dann so aus:

Zu dem Access Denied kann ich aus der Ferne leider nichts spezifisches segen. Zu viel ist möglich. Kommt das nur, wenn Du eine Aktion auslösen möchtest?
Das Auslösen von Aktionen habe ich mir abgewöhnt, nachdem ich bei einem Test einer mir nicht genau bekannten Aktion den Ausgang der USV abgeschaltet habe
Beschränke mich auf das Lesen von Werten und der Alarmirung per Mails. -
@qqolli Bei meiner alten APC war es nut.0.status.severity und bei meiner Cyberpower (die auf der zweiten Instanz nut.1 läuft) "nut.1.status.severity". Also status.severity scheint verbreitet zu sein. Der Zustand wechselt dann von (0)idle auf (1)operating.
Es gibt bei mir auch noch 'status.discharging', welches von false auf true wechselt. Habe es gerade mal für Dich getestet, sieht dann so aus:

Zu dem Access Denied kann ich aus der Ferne leider nichts spezifisches segen. Zu viel ist möglich. Kommt das nur, wenn Du eine Aktion auslösen möchtest?
Das Auslösen von Aktionen habe ich mir abgewöhnt, nachdem ich bei einem Test einer mir nicht genau bekannten Aktion den Ausgang der USV abgeschaltet habe
Beschränke mich auf das Lesen von Werten und der Alarmirung per Mails.Hi,
es ist genau so wie Du gesagt hast, wenn ich die USV vom Netz nehme geht nut.0.status.severity von idle(0) nach operating(0)

Supi, damit kann ich dann z. B. wie Du eine Nachricht generieren lassen und auch den PC, CCU3 und ioBroker-Raspi runterfahren, je nachdem wieviel Power die Batterie dann noch hat.
Na ja, das auslösen von Aktionen war eh nur Neugier
Ich mach es wie Du, einfach die Werte lesen und entsprechend reagieren. -
Hi,
es ist genau so wie Du gesagt hast, wenn ich die USV vom Netz nehme geht nut.0.status.severity von idle(0) nach operating(0)

Supi, damit kann ich dann z. B. wie Du eine Nachricht generieren lassen und auch den PC, CCU3 und ioBroker-Raspi runterfahren, je nachdem wieviel Power die Batterie dann noch hat.
Na ja, das auslösen von Aktionen war eh nur Neugier
Ich mach es wie Du, einfach die Werte lesen und entsprechend reagieren.@qqolli sagte in [HowTo] USV: NUT Server auf SBC installieren:
geht nut.0.status.severity von idle(0) nach operating(0)
da gibt es doch auch den State "onBattery" der auf true geht wenn die USV anspringt.
den nutze ich

Wenn false dann "Netz"
-
@qqolli sagte in [HowTo] USV: NUT Server auf SBC installieren:
geht nut.0.status.severity von idle(0) nach operating(0)
da gibt es doch auch den State "onBattery" der auf true geht wenn die USV anspringt.
den nutze ich

Wenn false dann "Netz"
-
@qqolli sagte in [HowTo] USV: NUT Server auf SBC installieren:
geht nut.0.status.severity von idle(0) nach operating(0)
da gibt es doch auch den State "onBattery" der auf true geht wenn die USV anspringt.
den nutze ich

Wenn false dann "Netz"
-
Bingo, so ist es. Bei mir ändern sich die folgenden, mit rot markierten Status im falle eines Netzausfalls:

Wenn man noch den "UPS" --> "Status" --> von "OL CHRG" nach "OB DISCHRG" mitnimmt wären es 4 Möglichkeiten

@qqolli Discharging habe ich ebenfalls mit als Monitor, während ich severity nicht benutze
-
Zu severtiy findet sich in meinem Script
states of severity: 0:idle;1:operating;2:operating_critical;3:action_needed;4:unknownAlso da kann man noch etwas mehr Info rausholen (falls unterstützt).
-
Zu severtiy findet sich in meinem Script
states of severity: 0:idle;1:operating;2:operating_critical;3:action_needed;4:unknownAlso da kann man noch etwas mehr Info rausholen (falls unterstützt).
@klassisch sagte in [HowTo] USV: NUT Server auf SBC installieren:
Zu severtiy findet sich in meinem Script
states of severity: 0:idle;1:operating;2:operating_critical;3:action_needed;4:unknownAlso da kann man noch etwas mehr Info rausholen (falls unterstützt).
Ja!
Als Auslöser wollte ich nur boolsche DPs nehmen
Severity bietet eben weitergehende Informationen
