Projekt: NUT-Server installieren und konfigurieren

Mit ** gekennzeichnete Links auf dieser Seite sind Affiliatelinks.

Projekt: NUT-Server installieren und konfigurieren
Projekt: NUT-Server installieren und konfigurieren
  • Matthias Kleine
  • 03.06.2018
  • Raspberry-Pi

Ich habe nun schon seit längerem eine USV in meinem Rack verbaut. Diese hat zwar munter die ganzen Synology-Diskstations über einen bevorstehenden Stromausfall informiert, nicht aber meine fhem-Installation. Um noch flexibler sein zu können, habe ich also einen separaten USV-Server neben der Synology DS aufgesetzt, welcher auch wirklich 24/7 läuft (denn das tun meine NAS aktuell nicht). In diesem Beitrag zeige ich, wie man einen NUT-Server installiert und konfiguriert, sodass dieser rund um die Uhr läuft. Die anderen Clients können sich dann gegen dieses System verbinden und den Status abfragen.

Was wird benötigt?

  • Ein Raspberry Pi mit Raspbian Stretch
  • Eine USV (Unterbrechungsfreie Stromversorgung) mit USB-Anschluss

Video

Hausbau-Kurs

Befehle

Server konfigurieren

sudo apt-get install nut usbutils
sudo vi /etc/nut/ups.conf

[cyberpower]
	driver = "usbhid-ups"
	port = "auto"
	desc = "CyberPower"
	pollinterval = 15

Diese Datei beschreibt die angeschlossene USV. Also wie sie heißt und was für ein Treiber genutzt wird um mit dieser zu sprechen. Theoretisch könnten hier natürlich mehrere Einträge enthalten sein.

sudo upsdrvctl start
sudo cp /lib/udev/rules.d/62-nut-usbups.rules /etc/udev/rules.d/
sudo reboot

sudo upsdrvctl start
sudo vi /etc/nut/nut.conf

MODE=netserver
sudo upsd
sudo upsc cyberpower@localhost
sudo vi /etc/nut/upsd.conf

LISTEN 127.0.0.1 3493
LISTEN 192.168.178.31 3493

Neustart des Dienstes erforderlich

sudo upsd -c stop
sudo upsd

Benutzer anlegen

sudo vi /etc/nut/upsd.users

[upsmaster]
        password = XWwsQXeC9DdAMD9Rk
        actions = SET
        instcmds = ALL
        upsmon master

[monuser]
	password = secret
	upsmon slave

Synology-NAS

Um ein Synology-NAS mit unserem NUT-Server zu verbinden, muss der Name der USV “ups” sein. Leider kann man in der Oberfläche des DSM nicht konfigurieren, nach welcher USV die Synology fragen soll. Daher passen wir uns diesem Standard an. Hat man kein Synology-NAS welches man an den Server koppeln möchte, nutzt man einfach weiter einen beliebigen Namen.

sudo vi /etc/nut/ups.conf

[ups]
	driver = "usbhid-ups"
	port = "auto"
	desc = "CyberPower"
	pollinterval = 15

(wichtig ist hier der Name “ups” - danach sucht die DiskStation)

in fhem

define USV NUT ups 192.168.178.31
attr USV asReadings battery.charge,battery.runtime,input.voltage,ups.load,ups.power,ups.realpower,ups.model
attr USV disable 0
attr USV event-on-change-reading .*
attr USV icon power
attr USV pollState 10
attr USV pollVal 60
attr USV stateFormat load: ups.load %
attr USV userReadings runtime-minutes {ReadingsNum($NAME, "battery.runtime", 0) / 60}

Docker

    nutserver:
        restart: always
        expose:
            - "3493"
        ports:
            - "3493:3493"
        image: instantlinux/nut-upsd
        privileged: true
        environment:
            - NAME=ups
            - DRIVER=usbhid-ups
            - PORT=auto
            - DESCRIPTION=CyberPower
            - API_USER=monuser
            - SERVER=master
            - SECRET=nut-upsd-password
        volumes:
            - ./nutserver/nut-upsd-password:/run/secrets/nut-upsd-password
        networks:
            - fhem-network
define USV NUT ups nutserver

Weitere Clients

sudo apt-get install nut-client
sudo vi /etc/nut/nut.conf

MODE=netclient
sudo vi /etc/nut/upsmon.conf

MONITOR ups@192.168.178.11 1 upsmon secret slave
sudo systemctl restart nut-client.service
sudo systemctl restart nut-monitor.service

upsc -c ups@192.168.178.11

upscmd

upscmd -l ups
upscmd -u upsmaster -p XWwsQXeC9DdAMD9Rk ups beeper.disable

Shutdown-Test

sudo upsmon -c fsd

Zusammenfassung

  • upsd: Stellt die Verbindung zu der USV her, nutzt dafür die Treiber und beantwortet Anfragen der Clients
  • upsmon: UPS monitor, behält den Status der USV im Auge und handelt entsprechend Konfiguration wenn Batterielevel knapp
  • upscmd: Admin-Tool um Befehle zu senden und die USV zu konfigurieren
Du willst mehr?

Smart-Home-Trainings von A-Z

Steig noch tiefer in die Themen ein und meistere Deine Projekte! Über 13.000 Teilnehmer konnten sich schon von der Qualität der Online-Kurse überzeugen.

ioBroker-Master-Kurs

ioBroker-Master-Kurs

Mehr Infos
Hausbau-Kurs

Hausbau mit KNX

Mehr Infos
Lox-Kurs

Lox-Kurs

Mehr Infos
Node-RED-Master-Kurs

Node-RED-Master-Kurs

Mehr Infos