Wichtige Info

Die Inhalte, die du hier siehst stelle ich dir ohne Werbeanzeigen und ohne Tracking deiner Daten zur Verfügung. Trotzdem muss ich die Server bezahlen sowie Zeit in Recherche, Umsetzung sowie Mail Support stecken.
Um dies leisten zu können, verlinke ich in einigen Artikeln auf die Plattform Amazon. Alle diese Links nennen sich Afiliate Links. Wenn du dir mit diesem Link etwas kaufst, dann erhalte ich eine kleine Provision. Dies ändert jedoch NICHT den Preis, den du bezahlst!
Falls du mich also unterstützen möchtest, kannst du auf den Link zum Produkt klicken und hilfst mir dabei, dieses Hobby weiter zu betreiben.
Da ich Keine Werbung schalte und keine Spenden sammle, ist dies die einzige Möglichkeit, meine Systeme und mich zu finanzieren. Ich hoffe du kannst das verstehen :)



Homeassistant - USV integrieren


Einleitung

Ich baue relativ viel an meiner Hausverteilung herum und bin auch sonst jemand, der gerne an der Hauselektrik spielt. Ob es neue Steckdosen, Individuelle Anschlusslösungen oder anderes ist, bei mir wird fast wöchentlich die Hausinstallation angepasst.
Da ich aber nicht nur Technikinteressiert sondern manchmal auch ein wenig dumm bin, kann es passieren, dass mir hier und da mal der FI auslösen könnte, oder ein LS den Stromkreis kappt (wenn ich das nicht eh getan habe). Aus diesem Grund hatte ich mich bereits zu Anfang dazu entschienden, meinen Virtualisierungsrechner hinter einer Online USV zu betreiben, welche es mir ermöglicht, die Technik auch ohne Netzspannung für mindestens 30 Minuten zu betreiben. Das ist nicht viel, muss es aber auch garnicht, da ich keinen Stromausfall überbrücken will (da in diesem Fall ohnehin nichts funktionieren würde) sondern nur kurze Stromlücken abfedern will und zuletzt auch die Technik schützen (ein netter Nebeneffekt der USV).
Dementsprechend habe ich mir eine günstige USV Anlage gekauft, welche meine gesamte Haus IT betreibt (Router, Virtualisierungshost, NAS, Switch usw.). Dabei ist aber zu sagen, dass einen USV *NICHT* dazuverleiten sollte, weniger oder gar keine Backups zu erstellen! – Eine gute Backup Strategie ist das wichtigste, gerade auch bei Smarthome um im Falle eines Fehlers oder Hardware Ausfall das System zeitnah wiederherstellen zu können.
Bei mir werden Backups täglich auf einer SSD gesichert, sodass die Daten immer zumindest doppelt verfügbar sind.
Wichtig ist, dass eine USV nicht unbedingt gegen Datenverlust oder Schäden am PC schützen soll, eine USV hat als Hauptsinn durchweg die angeschlossenen Systeme mit Spannung zu versorgen und ggf. ein sicheres Herunterfahren zu ermöglichen. Daten werden daurch jedoch nicht geschützt, sobald die USV leer ist und die Systeme nicht heruntergefahren worden sind, ist auch bei den Geräten das Licht aus.
Daher zeige ich im folgenden Beitrag, wie man eine USB USV in Homeassistant integrieren kann und auf die jeweilgen States reagieren kann.

Anbindung zu Homeassistant

In meinem Fall ist die USV per USB Kabel verbunden. Es gibt die Möglichkeit per NUT (Network UPS Tools) die USV zu integrieren. Dank breiter Treiberuntersützung sind sehr viele Geräte unterstützt.
In meinem Fall benötige ich den “Standard USB Treiber” – usbhid-ups.
Um die Integration zu Verwenden benötigen wir zuerst den NUT-Server. Dieser stellt eine Verbindung zu der USV her und kann die Werte dann weitergeben.
Dafür installieren wir unter “Settings > Addons > Add-ON Store > “NUT”” das “NUT” Addon.
Vor dem Start muss auf den reiter “Configuration” geklickt werden um die notwendigen Daten einzutragen. Hier müsst ihr nach der Dokumentation die für euch passenden Werte eintragen, die Konfiguration der jeweiligen USV’s zzgl. der Trteiber findet ihr hier bzw. hier.
Meine Konfiguration mit einer EATON Eclipse ECO 650 sieht folgendermaßen aus:

devices:
  - name: myups
    driver: usbhid-ups
    port: auto
    host: a0d7b954-nut ;Diese Einstellung ermöglicht die direkte Kommunikation zwischen Addon und Integration!
    config: []
    pollfreq: 2
mode: netserver
shutdown_host: false ;Wenn true wird Homeassistant heruntergefahren
users:
  - actions: []
    instcmds:
      - all
    password: AUserPassword
    username: AUsername
leave_front_door_open: false ;Username and Password is not required - do not use...

Nachdem die Konfiguration erstellt ist, kann das Addon gestartet werden und der zugehgörige Log sollte großteilig Grün sein und ca. so aussehen:


s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
cont-init: info: running /etc/cont-init.d/00-banner.sh
-----------------------------------------------------------
 Add-on: Network UPS Tools
 Manage battery backup (UPS) devices
-----------------------------------------------------------
 Add-on version: 0.11.0
 You are running the latest version of this add-on.
 System: Home Assistant OS 
 Home Assistant Core: << none >>
 Home Assistant Supervisor: << none >>
-----------------------------------------------------------
 Please, share the above information when looking for help
 or support in, e.g., GitHub, forums or the Discord chat.
-----------------------------------------------------------
cont-init: info: /etc/cont-init.d/00-banner.sh exited 0
cont-init: info: running /etc/cont-init.d/01-log-level.sh
cont-init: info: /etc/cont-init.d/01-log-level.sh exited 0
cont-init: info: running /etc/cont-init.d/02-set-timezone.sh
[18:12:54] INFO: Configuring timezone
cont-init: info: /etc/cont-init.d/02-set-timezone.sh exited 0
cont-init: info: running /etc/cont-init.d/nut.sh
[18:12:54] INFO: Setting mode to netserver...
[18:12:54] INFO: Generating /etc/nut/upsd.users...
[18:12:54] INFO: Configuring user: AUsername
[18:12:55] INFO: Password is NOT in the Have I Been Pwned database! Nice!
[18:12:55] INFO: Configuring Device named myups...
[18:12:55] INFO: Starting the UPS drivers...
Using subdriver: MGE HID 1.40
Network UPS Tools - Generic HID driver 0.41 (2.7.4)
USB communication driver 0.33
Network UPS Tools - UPS driver controller 2.7.4
cont-init: info: /etc/cont-init.d/nut.sh exited 0
cont-init: info: running /etc/cont-init.d/nutclient.sh
cont-init: info: /etc/cont-init.d/nutclient.sh exited 0
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
services-up: info: copying legacy longrun upsd (no readiness notification)
services-up: info: copying legacy longrun upsmon (no readiness notification)
s6-rc: info: service legacy-services successfully started
[18:13:00] INFO: Starting the UPS information server...
   0.000000	fopen /run/nut/upsd.pid: No such file or directory
   0.000248	listening on 0.0.0.0 port 3493
   0.000418	Connected to UPS [myups]: usbhid-ups-myups
[18:13:01] INFO: Starting the UPS monitor and shutdown controller...
   0.000000	fopen /run/nut/upsmon.pid: No such file or directory
   0.000151	Using power down flag file /etc/killpower
   0.000235	UPS: myups@localhost (master) (power value 1)
   0.000300	debug level is '1'
   0.000473	Init SSL without certificate database
   0.001564	Trying to connect to UPS [myups@localhost]
   0.499896	User upsmonmaster@127.0.0.1 logged into UPS [myups]
   0.002174	Logged into UPS myups@localhost

Wenn das so ähnlich aussieht, dann ist die UPS Konfiguriert und werde können abgefragt werden. Nun muss das Gerät als “Device” hinzugefügt werden, dementsprechend wird als nächstes unter “Settings > Devices & Services > Add-Integration > “Nut” ” die Intergration installiert und danach als Host der vergebene Host bzw. “a0d7b954-nut” angegeben, damit die Integration direkt mit dem UPS Server sprechen kann. Ggf. wird noch Username und Password eingegeben und dann sollte die USV direkt angezeigt werden. Das kann je nach Modell dann folgendermaßen aussehen:

Für den Fall, dass das System zum Beispiel automatisch Herunterfahren soll (und das nicht in der Konfiguration aktiviert ist), kann man nun per Automation den Stand der Batterie abfragen und die Geräte nacheinander (inkl. Homeassistant) herunterfahren lassen oder andere Funktionen auslösen.


Back…