APC USV Monitoring /w Raspberry + MQTT
Sie haben eine USV nahe vom Server oder Smart Home stehen, können diese aber nicht Monitoren? Meine Server hängen alle am USV Strom, ich wusste aber nicht, wann mal tatsächlich auch nur kurz der Strom ausgefallen ist ;( Jetzt lief das Setup bereits mehrere Jahre(!) fehlerfrei, aber die dann starb der Raspberry bzw. dessen SD-Karte. Wie immer…
SD-Karten Tausch aka Neu-Setup
Ich habe gerade wieder einmal dem Raspberry im Zählerkasten eine neue SD-Karte verpasst, da die alten kaputt war. Was ich gelernt habe: kein node-red auf einer SD-Karte installieren, da diese Software zwar sehr cool und umfangreich ist, aber auch viel mit der SD-Karte plaudert und damit nicht gut ist ;(
Hier eine kurze (Check-)Liste, was ich nun wieder einmal neu installiert habe:
- Raspberry lite auf SD-Karte 32Gb kopiert
- leeres “ssh” file auf das FAT Verzeichnis kopiert
- korrekte wpa_supplicant.conf gleich mit drauf, damit das WLAN gleich mal funktioniert
- booten lassen!
- Im DHCP Server / Firewall nachsehen, welche IP das Ding bekommen hat
- mit pi / raspberry mittels ssh einloggen
- passwd -> default Passwort ändern!
- dhcpd.conf editieren für fixe IP Adresse
- ntp.conf einrichten, damit die Uhrzeit stimmt
- apcupsd installiert, damit später die USV Überwachung funktioniert
sudo apt-get install apcupsd
sudo nano /etc/apcupsd/apcupsd.conf
UPSCABLE usb
UPSTYPE usb
DEVICE (delete that after here - important)
--
sudo reboot
Hier weitere Details über die korrekte Vorgehensweise für die USV Überwachung:
So testen Sie den Status der USB Verbindung zur USV – ich musste den String nach DEVICE löschen, da hier etwas stand. Den Daemon immer neu starten!
apcaccess status
Jetzt noch der Teil mit MQTT Senden!
Hier die weiteren Schritte, wie man Ressourcen schonend die Infos der USV an den MQTT Brocker gesendet bekommt. Diese Anleitung verwende ich seither: hier
pip install paho-mqtt
in der Datei /etc/apcupsd/mqtt_events_publisher.py folgende Zeile einfügen, da mein Brocker User und Passwort verlangen:
mqttc.username_pw_set(username="steve",password="password")
# now can connect
thats all folks!