NEWS
[HowTo] USV: NUT Server auf SBC installieren
-
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.start
Und 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. -
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. -
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"
-
@Homoran klasse, vielen Dank! den gibt es bei mir auch und der arbeitet bei mir auch. Dann haben wir jetzt schon 3 Möglichkeiten
-
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:unknown
Also 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:unknown
Also 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 -
Supi, dann haben wir doch alles was es für eine zuverlässige Aktion braucht im Falle eins Stromausfalls!
Echt, ich find das Forum einfach geil!
-
sehe gerade, daß ich 2018 schon mal ein Skript eingestellt habe. Wobei das aktuelle wohl etwas anders aussieht
-
Hallo,
ich habe den Nut-Server jetzt längere Zeit erfolgreich am laufen.
Nur scheitere ich kläglich daran, dass der Server automatisch startet.
Im iobroker Log erscheint
error (1615) Error happend: Error: connect ECONNREFUSED 192.168.99.33:3493
So sieht meine rc.local aus
GNU nano 3.2 /etc/rc.local #!/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 GNU nano 3.2 /etc/rc.local # Print the IP address _IP=$(hostname -I) || true if [ "$_IP" ]; then printf "My IP address is %s\n" "$_IP" fi echo "test" > /usr/local/share/test.log #additions for nut server upsdrvctl start upsd #end additions for nut server exit 0
Beim Code kopieren am Handy zerschiest er teilweise die Zeileumbrüche.
Deshalb nochmal ein Bild:
Ausgeführt wird die remote.rc.
Das habe ich mit dem echo getestet.Wenn ich die Befehle manuell in der Konsole eingebe, klappt im iobroker alles.
Habt ihr eine Idee?
-
@David-G Vielleicht ein Rechte-Problem? sudo davor?
-
In der Konsole mache ich es mit sudo.
In der Datei habe ich es ohne angegeben, da in jeder Anleitung (Auch auf der seine von Rasparry) steht, dass Befehle aus dieser Datei immer als root mit sudo ausgeführt werden.Werde es aber mal testen.
-
@David-G Bei meinem OPi steht es auch ohne sudo. Und das hat auch funktioniert. Ohne nicht, damit schon. So steht es zumindest in meinen Notizen. Das Ding hat aber eine uptime von 492 Tagen und macht nur den NUT-Server.
Aber es muß ja einen Grund haben, daß es in der Console geht und im rc.local nicht. Und die Linuxrechteverwaltung ist immer einen Versuch wert. -
@David-G sagte in [HowTo] USV: NUT Server auf SBC installieren:
als root mit sudo
Das möchte ich sehen. Das ist nämlich Oberquark.
-
Wie muss ich vorgenenhen bei der Rechteverwaltung? Bin wie gesagt was Linux angeht ein ziemlicher Dau.
@Thomas-Braun
Unter raspberrypi.org/documentation findet man folgende Passage:One more point to note is that all commands will be executed by the root user. This can lead to unexpected behaviour: for example, if a folder is created by a mkdir command in the script, the folder would have root ownership and would not be accessible by anyone other than the root user.
Was ich auch interessant fand ist folgendes, jedoch ist es bisher ja bei niemandem nötig gewesen (und bezieht sich auf Dateien):
Also, be sure to reference absolute filenames rather than relative to your home folder; for example, /home/pi/myscript.py rather than myscript.py.
EDIT:
Der sudo hat nichts gebracht.Evtl. muss die ganze Geschichte was verzögert ausgeführt werden. Kann das sein? Wobei ich auch da kp hab wie ich das mache oder wonach ich suchen muss.
EDIT 2:
Ich habe eben übersudo sh /etc/rc.local
die rc.local nochmal verzögert manuell gestartet (als mir der Telegram Adapter eine Nachricht gesendet hat, dass er geladen ist).
Alles wurde korrekt gestartet.
Muss also irgendwie einen verzögerten Start hinbekommen. -
@David-G
Auf 'modernen' Linux-Systemen nutzt man systemd um daemons zu starten.
Das ist halt in der Konfig etwas biestig, dafür kann man es viel feiner einstellen.Nicht umsonst steht in der oben verlinkten Dokumentation nämlich:
NOTE: on Jessie, Stretch and Buster (which use systemd), rc.local has drawbacks: not all programs will run reliably, because not all services may be available when rc.local runs.
Richtig ist: Über rc.local angestoßene Dinge laufen im root-Kontext ab.
Das ist aber was anderes als 'als root mit sudo'Über systemd kann man den upsd wohl danach starten: