APC UPS in openHAB integrieren

Aus Laub-Home Wiki

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

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!