OpenWRT & Home Assistant: auswerten-visualisieren-reagieren
Der Zugriff im eigenen Netzwerk findet meist zentral über den Router statt, entsprechend können über dessen Daten bestimmte Rückschlüsse gezogen werden. Die Daten eines OpenWRT-Routers können neben der Auslastung des Internetzugangs oder der einzelnen Interfaces auch Aufschluss über den Status bestimmter Geräte geben. Als Beispiel kann der Anwesenheitsstatus bestimmter Geräte im WLAN über den Device-Tracker erfasst werden. Mittels collectd und mqtt ist es zudem möglich die CPU und RAM-Auslastung sowie die aktuelle Bandbreite einzelner Interfaces auszulesen. Nachdem ich mehrere OpenWrt-Geräte als Access-Points für ein gemeinsames WLAN verwende, bietet Home Assistant die Möglichkeit die Leistungsdaten der einzelnen Geräte in einer Übersicht darzustellen.
Device-Tracker
Wie bereits erwähnt, listet der Device-Tracker den Anwesenheitsstatus aller Netzwerkgeräte. Voraussetzung für den Device-Tracker ist das OpenWrt-Paket: luci-mod-rpc, siehe: Home-Assistant-Integrationen.
Seitens Home-Assistant kann der Device-Tracker in der configuration.yaml-Datei hinzugefügt werden.
Leistungsdaten und Bandbreite -> Collectd -> MQTT -> HA
OpenWrt kann dessen Leistungsdaten mit dem Collectd-Deamon sammeln und laut dem folgenden Beispiel an einen MQTT-Broker senden, welcher die Daten in Home Assistant zur Verfügung stellt.
Setup OpenWrt
Nachdem das Einrichten von MQTT am Router über einen SSH-Zugang erfolgt, habe ich die notwendigen Pakete nicht in der GUI, sondern auch in der SSH-Session mit opkg install aktiviert.
Zunächst habe ich dazu mittels Putty eine Verbindung auf die IP-Adresse des ersten OpenWrt-Gerätes aufgebaut:
Im Terminal können die Pakete dann mit folgendem Befehl installiert werden:
Natürlich muss die IP-Adresse des MQTT-BROKER, der Benutzername und das Passwort für die Verbindung angepasst werden.
Nach einem Neustart des OpenWrt-Routers können wir ab diesem Zeitpunkt in Home-Assistant bereits bestimmte Daten anzeigen lassen. Dazu in die Einstellungen der MQTT-Integration:
auf "Konfigurieren"
Mittels "Anhören von" und dem konfigurierten Thema: "collectd/OpenWrt/#" können die übermittelten Daten angezeigt werden:
Für die Verwendung in Home-Assistant als Entitäten habe ich die Topics in der configuration.yaml-Datei angelegt und mittels "value_template" aufbereitet. Hier ein Auszug aus meiner configuration.yaml-Datei für den Main-Router. Meine zusätzlichen Access-Points habe ich der einfachheitshalber weggelassen.
Nachdem für OpenWrt eine Custom HACS-Integration existiert, habe ich diese auch kurz getestet, leider werden für meinen Router: WRT3200 nur einige wenige Counter zur Verfügung gestellt: https://github.com/kvj/hass_openwrt. Im Gegensatz zu der hier beschriebenen MQTT-Anbindung verbindet sich Home Assistant aktiv auf das OpenWrt-Gerät, wofür am Router ein eigener Benutzer und Berechtigungen verwendet werden:
Zunächst werden für die erwähnte HACS-Integration auf dem OpenWrt folgende Pakete benötigt:
config rpcd
option socket /var/run/ubus/ubus.sock
option timeout 30
config login
option username 'root'
option password '$p$root'
list read '*'
list write '*'
config login
option username 'hass'
option password '$p$hass'
list read hass
list read unauthenticated
list write hass
~
In Home Assistant kann das Repository heruntergeladen und die Integration hinzugefügt werden:
Fazit
Sowohl OpenWrt als auch Home Assistant sind zwei Systeme die auf offene Standards setzen. Dadurch können als Beispiel die Leistungsdaten des Routers und der AccessPoints in Home Assistant visualisiert, oder der Anwesenheitsstatus einzelner WLAN-Geräte für bestimmte Automatisierungen verwendet werden.
OpenWrt - Webhook: curl and cron
erstellt:
07.08.2025
von
Bernhard
Mit einem simplen Cron-Job (Scheduled Tasks) auf einem Openwrt Access-Point, kann alles, was das Linux-Terminal zur Verfügung stellt an Home-Assistant übertragen werden. Als Beispiel stellen meine OpenWrt-Geräte folgende Informationen zur Verfügung:
... weiterlesen
Du meinst den MQTT-Broker und dessen Benutzername / Passwort? Ich nehme an, du verwendest HAOS und das Home Assistant Add-on: Mosquitto broker? Ev. kannst du mal versuchen in den Mosquitto broker - Options, im Bereich "Logins" einen Usernamen / Passwort zu hinterlegen?
Falls du den MQTT-Broker als eigenen Docker-Container betreibst, kannst du über den Container einen User anlegen: Befehl:
mosquitto_passwd -b -c passwd openwrt passwd4openwrt
siehe: https://www.libe.net/mqtt
B
Bernhard
Du meinst den MQTT-Broker und dessen Benutzername / Passwort? Ich nehme an, du verwendest HAOS und das Home Assistant Add-on: Mosquitto broker? Ev. kannst du mal versuchen in den Mosquitto broker - Options, im Bereich "Logins" einen Usernamen / Passwort zu hinterlegen?
Falls du den MQTT-Broker als eigenen Docker-Container betreibst, kannst du über den Container einen User anlegen: Befehl:
mosquitto_passwd -b -c passwd openwrt passwd4openwrt
siehe: https://www.libe.net/mqtt
Fragen / Kommentare