Was passiert wenn der Strom weg ist? Nix mehr , oder zumindest nicht mehr viel bzw nicht mehr lange. Da meine Infrastruktur durch mehrere USV abgesichert ist habe ich noch eine gewisse Reserve wenn der Strom weg ist. Diese Zeit nutze ich dazu alle Systeme nach ca 10min herunter zu fahren. da an einer USV mehrere Geräte hängen nutze ich hierzu NUT (https://networkupstools.org/) in einer Client Server Architektur , dazu kommt noch mal ein anderer Artikel.
Da ich aber gerne noch benachrichtigtwerden möchte, wenn Stromausfall ist und wissen möchte wann der Akku der USV getauscht werden muss möchte ich die Daten in OpenHAB (meiner Hausautomatisierung) haben . Das Mittel der Wahl ist hier MQTT. Die Installation finktioniert wie folgt:
sudo apt install python3 python3-pip nut
sudo pip install paho-mqtt
cd /etc
git clone https://github.com/dniklewicz/ups-mqtt.git
cd ups-mqtt
mkdir conf
das ist schon die halbe magie. Jetzt noch die config anpassen mit
nano config.ini
auf dem Rechner auf dem der UPSD läuft muss noch der neue client noch freigeben werden. Das Skrippt kann man mit
python3 ups-mqtt.py
starten. Jetzt sollte am MQTT server etwas ankommen. Ich nehme da zum Testen übrigens den mqtt-explorer.
Wenn das ganze als Service laufen soll verweise ich mal auf diese Seite und packe hier nur die Code Schnipsel ohne viel Erklärung rein
useradd -r -s /bin/false pyserveruser
chown -R pyserveruser:pyserveruser /etc/pyserver
Die Unit datei (/etc/systemd/system/ups-mqtt.service) sieht so aus:
[Unit]
Description=ups2mqtt
After=syslog.target
[Service]
Type=simple
User=pyserveruser
Group=pyserveruser
WorkingDirectory=/etc/ups-mqtt
ExecStart=/etc/ups-mqtt/ups-mqtt.py
SyslogIdentifier=ups2mqtt
StandardOutput=syslog
StandardError=syslog
Restart=always
RestartSec=3
[Install]
WantedBy=multi-user.target
Steuern kann man den Server nun mit den normalen systemd Kommandos:
systemctl status pyserver
systemctl start pyserver
systemctl stop pyserver
systemctl restart pyserver
Seine Logausgaben sieht man so:
journalctl -u pyserver