[GELÖST] USV via USB an RaspberryMatic (NUT Server)

Einrichtung, Nutzung und Hilfe zu RaspberryMatic (OCCU auf Raspberry Pi)

Moderatoren: jmaus, Co-Administratoren

hetty
Beiträge: 19
Registriert: 08.12.2016, 08:22
Danksagung erhalten: 1 Mal

Re: USV via USB an RaspberryMatic (NUT Server)

Beitrag von hetty » 15.04.2017, 11:31

Hallo,
hier die versprochenen Anleitung, wie ich meine USV direkt am Homematic-Raspi zum Laufen bekommen habe.

Ich bin kein NUT Experte, habt Nachsicht mit mir, wenn in der Anleitung Fehler sind.

Meine USV benötigt den "usbhid-ups" Treiber.
Welchen Treiber man für seine USV benötigt, kann einfach auf der NUT Homepage nachgesehen werden.
Hinweis für alle, die auch diesen Treiber benötigen.
Der usbhid-ups Treiber hat Jens bereits im neusten Git integriert. Danke!!!

Wer diesen Treiber benötigt, muss den Git von Jens clonen, und das System selber erstellen,
oder auf das nächste Release warten.
Die Anleitung zum Erstellen des Images findet Ihr im Git.

Einrichten des NUT Server unter Homematic-Raspi:

Hinweis!
Ich übernehme keine Haftung für Schäden, die an euren Systemen entstehen.
Macht auf jeden Fall ein Backup der Daten, oder startet die Versuche mit einer zweiten SD-Karte.
Alle was ich hier beschreibe ist garantiert eleganter zu lösen, aber es ist ein Anfang!

ACHTUNG!!!
Ich verändere/erstelle Dateien im read-only File system, daher ist mit extremer Vorsicht vorzugehen.

Voraussetzung:

Zugang zum Raspi per SSH
z.B. Putty und WinSCP

Filesystem des Raspi auf rw mouten.

Folgender Datei habe ich angepasst:
/lib/udev/rules.d/62-nut-usbups.rules

von:

Code: Alles auswählen

LABEL="nut-usbups_rules_real"
...
...
# APC
#  APC AP9584 Serial->USB kit  - usbhid-ups
ATTR{idVendor}=="051d", ATTR{idProduct}=="0000", MODE="664", GROUP="nobody"
#  various models  - usbhid-ups
ATTR{idVendor}=="051d", ATTR{idProduct}=="0002", MODE="664", GROUP="nobody"
#  various 5G models  - usbhid-ups
ATTR{idVendor}=="051d", ATTR{idProduct}=="0003", MODE="664", GROUP="nobody"
...
...
auf:

Code: Alles auswählen

LABEL="nut-usbups_rules_real"
...
...
# APC
#  APC AP9584 Serial->USB kit  - usbhid-ups
ATTR{idVendor}=="051d", ATTR{idProduct}=="0000", MODE="664", GROUP="nogroup"
#  various models  - usbhid-ups
ATTR{idVendor}=="051d", ATTR{idProduct}=="0002", MODE="664", GROUP="nogroup"
#  various 5G models  - usbhid-ups
ATTR{idVendor}=="051d", ATTR{idProduct}=="0003", MODE="664", GROUP="nogroup"
...
...
Bitte nur die Werte in den ATTR Zeilen ändern!

Da der Nut Server beim Start zwei benötigte Verzeichnisse nicht automatisch anlegt,
musste ich mir eine weitere Datei erstellen, die beim Systemstart immer wieder diese fehlenden Verzeichnisse anlegt.

Unter /etc/init.d eine Datei mit dem Namen "S41preparenut" und folgendem Inhalt erstellen:

Code: Alles auswählen

#!/bin/sh
#
# init script for creating NUT (UPS) folder
#

mkdir -p /var/state/ups
chown root.nogroup /var/state/ups
chmod 770 /var/state/ups
mkdir /var/run/upsd
chown root.nogroup /var/run/upsd
chmod 770 /var/run/upsd

exit 0
Die Rechte der erstellten Datei (S41preparenut) auf 755 stellen.

Anpassung der config Dateien des NUT Servers:
Zu finden unter "/usr/local/etc/config/nut"

** ups.conf **

Code: Alles auswählen

[apc1500]
        driver = usbhid-ups
        port = auto
		  desc = "APC Back UPS Pro 1500VA"
Unter "driver =" muss der Treiber eingesetzt werden, der zur USV passt!
Ob der benötigte Treiber im System vorhanden ist, kann unter "/usr/bin" im Raspi überprüfen werden.

** nut.conf **

Code: Alles auswählen

MODE=netserver
** upsd.conf **

Code: Alles auswählen

LISTEN localhost 3493
LISTEN 192.168.x.x 3493
192.168.x.x ist die IP des Raspi.

** upsd.users **

Code: Alles auswählen

[upsmon]
	password  = 1111
	upsmon master
** upsmon.conf **
Folgende Zeile hinzufügen:

Code: Alles auswählen

MONITOR apc1500@localhost 1 upsmon 1111 slave
Nun kommt der Moment der Wahrheit!
Raspi neustarten.

Im Log des Raspi sollte jetzt in etwa folgendes zu sehen sein:

Code: Alles auswählen

homematic-raspi user.info kernel: [    3.293534] usb 1-1.4: Product: Back-UPS RS 1500G FW:878.L4 .I USB FW:L4 
homematic-raspi user.info kernel: [    3.293554] usb 1-1.4: Manufacturer: American Power Conversion
homematic-raspi user.info kernel: [    3.293573] usb 1-1.4: SerialNumber: xxxxxxxxxxxxxx
homematic-raspi user.info kernel: [    3.353196] hid-generic 0003:051D:0002.0001: hiddev0,hidraw0: USB HID v1.00 Device [American Power Conversion Back-UPS RS 1500G FW:878.L4 .I USB FW:L4 ] on usb-3f980000.usb-1.4/input0
homematic-raspi daemon.info usbhid-ups[493]: Startup successful
homematic-raspi daemon.warn upsd[494]: /etc/upsd.conf is world readable
homematic-raspi daemon.info upsd[494]: listening on 192.168.1.9 port 3493
homematic-raspi daemon.info upsd[494]: listening on localhost port 3493
homematic-raspi daemon.info upsd[494]: Connected to UPS [apc1500]: usbhid-ups-apc1500
homematic-raspi daemon.warn upsd[494]: /etc/upsd.users is world readable
homematic-raspi daemon.info upsd[495]: Startup successful
homematic-raspi daemon.info upsmon[497]: Startup successful
homematic-raspi daemon.info upsd[495]: User upsmon@127.0.0.1 logged into UPS [apc1500]
Und hier z.B. mein Windows Rechner, der sich über WinNUT mit dem Raspi verbindet:

Code: Alles auswählen

homematic-raspi daemon.info upsd[495]: User upsmon@192.168.x.x logged into UPS [apc1500]
Am Log erkennt man, das die Rechten noch überarbeitet werden müssen.

Hir noch ein Bild vom Windows Nut Client V1.5

Bild

Ich hoffe, das ich nichts vergessen habe!

Viel Spaß beim Experimentieren.

Gruß

Frank
Zuletzt geändert von hetty am 03.05.2017, 20:20, insgesamt 1-mal geändert.
RaspberryMatic - RPI3 mit 80 Aktoren/Sensoren
1x Raspi3 1x RTC DS3231 3x Lan-Gateway
Gesteuert werden:
Heizkörper, Heizung (Biostar 23), Beleuchtung, Multimedia, Pool, Teich

Benutzeravatar
jmaus
Beiträge: 9818
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 459 Mal
Danksagung erhalten: 1855 Mal
Kontaktdaten:

Re: USV via USB an RaspberryMatic (NUT Server)

Beitrag von jmaus » 15.04.2017, 22:46

hetty hat geschrieben: hier die versprochenen Anleitung, wie ich meine USV direkt am Homematic-Raspi zum Laufen bekommen habe.
Danke erst einmal für deine Mühen. Ich denke nun sollte ich inzwischen alle notwendige in RaspberryMatic geändert haben damit in einer zukünftigen Version auch USB angeschlossene USV Geräte problemlos funktionieren.
hetty hat geschrieben: [...]
Folgender Datei habe ich angepasst:
/lib/udev/rules.d/62-nut-usbups.rules

[...]
Unter /etc/init.d eine Datei mit dem Namen "S41preparenut" und folgendem Inhalt erstellen:
Vielen Dank für diese Hinweise. Habe diesbzgl. bereits Anpassungen/Fixes an RaspberryMatic vorgenommen damit diese manuellen Schritte nicht mehr notwendig sind (siehe https://github.com/jens-maus/RaspberryM ... d153f85ddd).
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

hetty
Beiträge: 19
Registriert: 08.12.2016, 08:22
Danksagung erhalten: 1 Mal

Re: USV via USB an RaspberryMatic (NUT Server)

Beitrag von hetty » 15.04.2017, 23:33

Hi,
habe die Änderungen im Git schon gesehen.
Ich starte morgen einen Testlauf :D

Danke für die schnelle Umsetzung.

Gruß

Frank
RaspberryMatic - RPI3 mit 80 Aktoren/Sensoren
1x Raspi3 1x RTC DS3231 3x Lan-Gateway
Gesteuert werden:
Heizkörper, Heizung (Biostar 23), Beleuchtung, Multimedia, Pool, Teich

hetty
Beiträge: 19
Registriert: 08.12.2016, 08:22
Danksagung erhalten: 1 Mal

Re: [GELÖST] USV via USB an RaspberryMatic (NUT Server)

Beitrag von hetty » 16.04.2017, 11:22

Hallo,
gute Nachrichten!

Ab der nächsten RaspberryMatic Version "größer 2.27.8.20170413 (rc1)" müssen nur noch die config Dateien angepasst werden. 8)

Siehe Anleitung weiter vorne!

Bei mir funktioniert alles einwandfrei!

Schönheitsfehler:
Das einzige, was mit aufgefallen ist:
NUT findet es nicht gut, das die symbolischen Links der config Files in /etc die Rechte 777 haben.

Code: Alles auswählen

homematic-raspi daemon.warn upsd[489]: /etc/upsd.conf is world readable
homematic-raspi daemon.warn upsd[489]: /etc/upsd.users is world readable
Ganzschön kleinlich, der NUT! :)
Das beeinträchtigt die Funktion des NUT Server aber in keiner Weise.

Ich kann abschießend nur noch sagen,
Jens macht hier einen super Job!

Gruß

Frank
RaspberryMatic - RPI3 mit 80 Aktoren/Sensoren
1x Raspi3 1x RTC DS3231 3x Lan-Gateway
Gesteuert werden:
Heizkörper, Heizung (Biostar 23), Beleuchtung, Multimedia, Pool, Teich

Hubiherzog
Beiträge: 143
Registriert: 15.10.2014, 20:04

Re: USV via USB an RaspberryMatic (NUT Server)

Beitrag von Hubiherzog » 02.05.2017, 10:36

Hallo,
JMaus hat nunmehr die Finale Version 2.27.8.20170501 des Images veröffentlicht (Installation hat bei mir bestens geklappt - Tausend Dank an Jens für seine Mühen), in der bereits ein NUT Server integriert ist; dieser muß jedoch noch eingerichtet werden.
Hierzu hat hetty bereits eine Anleitung gegeben; diese war aber für die Vorgängerversion der finalen Version.

MEINE FRAGE an hetty:
- konnstest Du die Finalversion mit dem darin eingerichtetem NUT schon testen ?
- gibt es Abweichungen oder Änderungen ?
Vielen Dank für ein Feedback.
Ich frage deshalb so ausführlich, da ich keine Erfahrung in der Programmierung habe und ganz auf Eure Hilfe angewiesen bin.

Meine Hardware:
Raspi3 mit der Finalversion
USV der Firma EATON Modell 3S 550 mit dem gleichen Treiber wie die APC
Anschluß der USV direkt über USB an den Raspi
hetty hat geschrieben:Hallo,
hier die versprochenen Anleitung, wie ich meine USV direkt am Homematic-Raspi zum Laufen bekommen habe.
Einrichten des NUT Server unter Homematic-Raspi:
Anpassung der config Dateien des NUT Servers:
Zu finden unter "/usr/local/etc/config/nut"

** ups.conf **

Code: Alles auswählen

[apc1500]
        driver = usbhid-ups
        port = auto
	desc = "APC Back UPS Pro 1500VA"
Unter "driver =" muss der Treiber eingesetzt werden, der zur USV passt!
Ob der benötigte Treiber im System vorhanden ist, kann unter "/usr/bin" im Raspi überprüfen werden.

** nut.conf **

Code: Alles auswählen

MODE=netserver
** upsd.conf **

Code: Alles auswählen

LISTEN localhost 3493
LISTEN 192.168.x.x 3493
192.168.x.x ist die IP des Raspi.

** upsd.users **

Code: Alles auswählen

[upsmon]
	password  = 1111
	upsmon master
** upsmon.conf **

Code: Alles auswählen

MONITOR apc1500@localhost 1 upsmon 1111 slave
Nun kommt der Moment der Wahrheit!
Raspi neustarten.
Vielen Dank für Eure Hilfe
Hubiherzog

hetty
Beiträge: 19
Registriert: 08.12.2016, 08:22
Danksagung erhalten: 1 Mal

Re: [GELÖST] USV via USB an RaspberryMatic (NUT Server)

Beitrag von hetty » 03.05.2017, 20:18

Hallo Hubiherzog,
habe die RaspberryMatic 2.27.8.20170501 Version noch nicht aufgespielt.

Werde es am Wochenende testen, und melde mich dann.

Sollte aber funktionieren.

ANMERKUNG:
In der ** upsmon.conf ** die von mir angegebene Zeile hinzufügen, und den Rest nicht löschen.
Also so:

Code: Alles auswählen

MONITOR apc1500@localhost 1 upsmon 1111 slave
MINSUPPLIES 1
SHUTDOWNCMD /sbin/poweroff
NOTIFYCMD /etc/config/nut/nut_notify.sh
POLLFREQ 5
POLLFREQALERT 5
HOSTSYNC 15
DEADTIME 15
POWERDOWNFLAG /var/tmp/killpower
NOTIFYFLAG ONLINE   SYSLOG+EXEC
NOTIFYFLAG ONBATT   SYSLOG+EXEC
NOTIFYFLAG LOWBATT  SYSLOG+EXEC
NOTIFYFLAG FSD      SYSLOG+EXEC
NOTIFYFLAG COMMOK   SYSLOG+EXEC
NOTIFYFLAG COMMBAD  SYSLOG+EXEC
NOTIFYFLAG SHUTDOWN SYSLOG+EXEC
NOTIFYFLAG REPLBATT SYSLOG+EXEC
NOTIFYFLAG NOCOMM   SYSLOG+EXEC
NOTIFYFLAG NOPARENT SYSLOG+EXEC
RBWARNTIME 43200
NOCOMMWARNTIME 300
FINALDELAY 5
Gruß

Frank
RaspberryMatic - RPI3 mit 80 Aktoren/Sensoren
1x Raspi3 1x RTC DS3231 3x Lan-Gateway
Gesteuert werden:
Heizkörper, Heizung (Biostar 23), Beleuchtung, Multimedia, Pool, Teich

hetty
Beiträge: 19
Registriert: 08.12.2016, 08:22
Danksagung erhalten: 1 Mal

Re: [GELÖST] USV via USB an RaspberryMatic (NUT Server)

Beitrag von hetty » 04.05.2017, 18:14

Hallo,
ich habe alles mit der 2.27.8.20170501 getestet (frisches System), und es funktioniert.
Das einspielen des Backups (mit NUT config Dateien) geht auch ohne Probleme.
Die USV wurde jedesmal erkannt.

Wenn es Probleme geben sollte, einfach mal in die "/var/log/messages" schauen!
Dort sollte in etwa folgedes stehen:

Code: Alles auswählen

usb 1-1.4: Product: Back-UPS RS 1500G FW:878.L4 .I USB FW:L4 
usb 1-1.4: Manufacturer: American Power Conversion
usb 1-1.4: SerialNumber: 3xxxxxxxxxxxxxxxxxxx  
hid-generic 0003:051D:0002.0001: hiddev0,hidraw0: USB HID v1.00 Device [American Power Conversion Back-UPS RS 1500G FW:878.L4 .I USB FW:L4 ] on usb-3f980000.usb-1.4/input0

usbhid-ups[493]: Startup successful
upsd[494]: /etc/upsd.conf is world readable
upsd[494]: listening on 192.168.x.x port 3493
upsd[494]: listening on localhost port 3493
upsd[494]: Connected to UPS [apc1500]: usbhid-ups-apc1500
upsd[494]: /etc/upsd.users is world readable
upsd[496]: Startup successful
upsmon[502]: Startup successful
upsd[496]: User upsmon@127.0.0.1 logged into UPS [apc1500]
Bitte bei Tests mit der USV nie einfach den Stecker ziehen, sondern eine schaltbare Steckdose vor der UPS verwenden,
da 230V ohne Erdung nicht besonders ratsam ist. :wink:


Gruß
Frank
RaspberryMatic - RPI3 mit 80 Aktoren/Sensoren
1x Raspi3 1x RTC DS3231 3x Lan-Gateway
Gesteuert werden:
Heizkörper, Heizung (Biostar 23), Beleuchtung, Multimedia, Pool, Teich

Hubiherzog
Beiträge: 143
Registriert: 15.10.2014, 20:04

Re: [GELÖST] USV via USB an RaspberryMatic (NUT Server)

Beitrag von Hubiherzog » 05.05.2017, 18:19

Hallo, Frank,
Dank Deiner Vorarbeit und meinem "Probierfleiß" ist es mir gelungen, den NUT Server zum laufen zu bringen.
Ob er zu 100% richtig läuft, kann ich noch nicht sagen - muß noch testen.

FAZIT
- wenn ich die USV per SCHALTER vom Netz trenne bekomme ich sofort eine Alarmmeldung ... ONBATT auf der WebUi
- nach einer gewissen Zeit - im Test waren es fast 45 Minuten und der Raspi schaltete sich aus - Spannung lag aber am Raspi noch an.
- danach habe ich den Spannungsschalter wieder eingeschaltet - die USV ladet wieder - aber der Raspi rührte sich nicht

- deshalb habe ich den Raspi vom Netzteil genommen und wieder angesteckt - somit startete er wieder und alles lief.
- Nach dem Neustart der WebUi bekam ich eine neue Alarmmeldung ... :SHUTDOWN (die war wahrscheinlich noch vor dem "Poweroff" des Raspi abgesetzt worden.

Mit diesem Ergebnis könnte ich leben: Bei Stromausfall wird der Raspi kurz vor der kompletten Entladung der Batterie vom Netz genommen.

Trotzdem habe ich einige Fragen an Dich:

- ist das von mir geschilderte Vorgehen des NUT in Ordnung ?
- kann man die Zeit bis zum Shutdown irgendwo einstellen; wenn ja, dann wo und wie ? Ich habe momentan noch den Eindruck, daß der Befehl zum Shutdown von der USV kommt (dort ist eingestellt: wenn Batterieladung unter 10% dann erfolgt Shutdown)

Mir hat Deine grafische Anzeige des WinNut Client gefallen und deshalb wollte ich sie installieren.
Aber er fragt mich nach "UPS host:" und dem "UPS port:" - und hier weiß ich nicht weiter, IP des Raspi hilft nicht.
Könnetst Du mir bitte sagen, was Du eingestellt hast ?

Viele Grüße
Rolf alias Hubiherzog

hetty
Beiträge: 19
Registriert: 08.12.2016, 08:22
Danksagung erhalten: 1 Mal

Re: [GELÖST] USV via USB an RaspberryMatic (NUT Server)

Beitrag von hetty » 06.05.2017, 08:49

Hallo Rolf,
dein Fazit ist richtig.
Die USV setzt kurz bevor die Akkus leer sind den Shutdown Befehl ab.
Dadurch fährt dein Raspi runter.
Danach schaltet meine USV kurze Zeit später die 230V Erzeugung ab.
Wenn es am USV Ausgang aber nicht zu einer Abschaltung kommt (z.B. Stromausfall beendet), ist der Shutdown genau so wie beim normaler PC.
Der Raspi fährt runter und bleibt aus.
Da der Raspi kein "Wake on USB" hat, bleibt nur das kurze Trenner von der Spannungsversorgung.

So, jetzt zum Shutdown:
Du kannst über den NUT-Server jeden angemeldeten Client (natürlich auch den Raspi selbst) per Zeit herunterfahren.
Das sollte über die "upssched.conf" realisierbar sein.
Meine NAS (auch NUT) hat dort z.B. folgenden Inhalt:

Code: Alles auswählen

AT ONLINE * EXECUTE online
AT LOWBATT * EXECUTE lowbatt
AT ONBATT * EXECUTE powerofflog
AT ONLINE * CANCEL-TIMER shutdown
AT ONBATT * START-TIMER shutdown 60
Die Zeile mit dem Inhalt "START-TIMER" sagt aus, dass der shutdown Befehl 60 sec. nach dem Umschalten auf Batterie abgesetzt wird.
Das sollte auch beim Raspi funktionieren.


Die Einstellungen des WinNut Client:
UPS host: 192.168.1.111 (IP des Raspi)
UPS port: 3493
UPS name: apc1500 (Ist der Name in der eckigen Klammer aus der ups.conf)

Bitte die LISTEN Einträge in der "upsd.conf" auf dem Raspi beachten.
Mit folgendem Eintrag sollte es immer funktionieren:

Code: Alles auswählen

LISTEN 0.0.0.0 3493
Ich habe dort localhost und die IP des Raspi eingetragen, und es funktioniert.

Gruß
Frank
RaspberryMatic - RPI3 mit 80 Aktoren/Sensoren
1x Raspi3 1x RTC DS3231 3x Lan-Gateway
Gesteuert werden:
Heizkörper, Heizung (Biostar 23), Beleuchtung, Multimedia, Pool, Teich

Hubiherzog
Beiträge: 143
Registriert: 15.10.2014, 20:04

Re: [GELÖST] USV via USB an RaspberryMatic (NUT Server)

Beitrag von Hubiherzog » 06.05.2017, 11:53

Hallo, Frank,

vielen Dank für Deine Mühe und die Ratschläge.
Hauptsache war, das NUT funktioniert; die Feineinstellungen sind noch etwas zum basteln.

WinNut zeigt auch an, also Deine Angaben haben zum Ziel geführt. Aber trotzdem gibt es noch eine Kleinigkeit: es werden nicht immer alle Werte angezeigt - manchmal wird einer angezeigt, dann dieser wieder nicht.
WinNut_klein.jpg
WinNut_klein.jpg (62.77 KiB) 4078 mal betrachtet
Die Einträge in der "upsd.conf" des Raspi stehen auf:
LISTEN localhost 3493
LISTEN 192.168.xx.xx (IP des Raspi) 3493

Gibt es dafür eine Erklärung oder liegt das an meiner NAS "Eaton"

Viele Grüße
Rolf

Antworten

Zurück zu „RaspberryMatic“