APC UPS in openHAB integrieren
Diese Anleitung erläutert, wie man eine APC UPS (USV) anschließt, diese dann via Network UPS Tool ausliest und dann mit dem NUT Binding diese in openHAB integriert. Ich nutze hier eine APC Back UPS BX750MI die via USB an einen Raspberry Pi 4 angeschlossen ist. Auf dem Pi selbst läuft openHAB welches via Docker deployt ist.
Voraussetzungen
- USV von APC (APC Back UPS BX750MI)
- Raspberry Pi 4
- OpenHAB 3 Docker Installation
Installation Network UPS Tool
Als erstes schließen wir die USV via USB Kabel an den Raspberry PI und prüfen diese erkannt wird:
lsusb
sieht dann so aus:
lsusb Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 030: ID 051d:0002 American Power Conversion Uninterruptible Power Supply Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Nun können wir unter Raspberry Pi OS NUT Tools installieren:
apt install nut
und anschließend konfigurieren wir diese:
Dazu hängt folgendes der Datei an:
/etc/nut/ups.conf
[apc-Technikraum] driver = usbhid-ups port = auto desc = "apcupsd client"
hier steht [apc-Technikraum]
für den Namen den ihr der USV geben möchtet. desc
ist die Beschreibung, die anderen beiden Parameter konfigurieren den Anschluss der USV.
Nun konfigurieren wir den Network Service:
/etc/nut/upsd.conf
LISTEN 127.0.0.1 3493
und erstellen den Benutzer über den der Zugriff auf den Network Service stattfinden darf:
/etc/nut/upsd.users
[admin] password = topsecret actions = SET instcmds = ALL upsmon master
Das legt einen Admin User admin
mit dem Passwort topsecret
an.
Zum Schluss sagen wir noch als was der NUT Service laufen soll (netserver
)
/etc/nut/nut.conf
MODE=netserver
Zu Guter letzt starten wir alle NUT Dienste durch:
systemctl restart nut-driver.service
systemctl restart nut-server.service
systemctl restart nut-monitor.service
Ist der Neustart erfolgreich abgeschlossen kann man die Verbindung zur USV prüfen:
upsc apc-Technikraum@localhost
folgende Ausgabe sollte nun erscheinen.
Init SSL without certificate database battery.charge: 100 battery.charge.low: 10 battery.mfr.date: 2001/01/01 battery.runtime: 1505 battery.runtime.low: 120 battery.type: PbAc battery.voltage: 13.6 battery.voltage.nominal: 12.0 device.mfr: American Power Conversion device.model: Back-UPS BX750MI device.serial: 9B2221A20903 device.type: ups driver.name: usbhid-ups driver.parameter.pollfreq: 30 driver.parameter.pollinterval: 2 driver.parameter.port: auto driver.parameter.synchronous: no driver.version: 2.7.4 driver.version.data: APC HID 0.96 driver.version.internal: 0.41 input.sensitivity: medium input.transfer.high: 295 input.transfer.low: 145 input.voltage: 234.0 input.voltage.nominal: 230 ups.beeper.status: disabled ups.delay.shutdown: 20 ups.firmware: 295202G -302202G ups.load: 22 ups.mfr: American Power Conversion ups.mfr.date: 2022/05/20 ups.model: Back-UPS BX750MI ups.productid: 0002 ups.realpower.nominal: 410 ups.serial: 9B2221A20903 ups.status: OL ups.test.result: Aborted ups.timer.reboot: 0 ups.timer.shutdown: -1 ups.vendorid: 051d
somit ist es möglich die USV auszulesen und wir können uns nun um openHAB kümmern
Mehr zum Network UPS Tool:
openHAB NUT Binding
Unter Einstellungen --> Bindings --> Suche kann nach dem Network UPS Tools Binding gesucht und dieses installiert werden.
zur Konfiguration gehen wir zu den Things und fügen ein neues Network UPS Tools Binding hinzu. Die Konfiguration sollte dann wie folgt aussehen:
Wichtig ist, das ihr hier den Selben Namen der USV verwendet, wie auch in der ups.conf
. Im Anschluss könnt ihr beliebige ITEMS über die Channel erstellen. Jenach USV können die auslesbaren sehr variieren!