Appearance
Zigbee2MQTT
Zigbee2MQTT stellt die Verbindung zwischen den Zigbee-Sensoren im Wohnmobil und dem MQTT-Broker Mosquitto her.
Die Anwendung läuft als Docker-Container auf dem Raspberry Pi tsg-bobil.
Zugriff
Die Weboberfläche von Zigbee2MQTT ist im Womo-Netz unter folgender Adresse erreichbar:
http://192.168.8.10:8080
| Eigenschaft | Wert |
|---|---|
| Anwendung | Zigbee2MQTT |
| Container | zigbee2mqtt |
| Port | 8080 |
| Adresse im Womo-Netz | 192.168.8.10:8080 |
| MQTT-Broker intern | mqtt://mosquitto:1883 |
| Docker-Netzwerk | womo-net |
Zigbee-Koordinator
Als Zigbee-Koordinator wird ein ConBee II von Dresden Elektronik verwendet.
Der Stick ist über USB direkt mit dem Raspberry Pi verbunden.
Unter Linux wird der ConBee II über einen stabilen Gerätepfad unter
/dev/serial/by-id/
angesprochen.
Dadurch bleibt die Zuordnung des Zigbee-Sticks auch dann eindeutig, wenn später weitere USB-Geräte am Raspberry Pi angeschlossen werden.
Aufgabe
Zigbee2MQTT empfängt die Zigbee-Funktelegramme der Sensoren und stellt deren Messwerte anschließend als MQTT-Nachrichten zur Verfügung.
Der Datenweg sieht vereinfacht so aus:
text
Zigbee-Sensor
│
│ Zigbee
▼
ConBee II
│
▼
Zigbee2MQTT
│
│ MQTT
▼
MosquittoZigbee2MQTT veröffentlicht die Daten unter MQTT-Topics nach dem Schema:
zigbee2mqtt/<Gerätename>
Ein Sensor mit dem Namen
RTF_Test_Pi8
veröffentlicht seine Werte beispielsweise unter:
zigbee2mqtt/RTF_Test_Pi8
Raumklimasensoren
Im Wohnmobil werden Aqara WSDCGQ11LM Zigbee-Sensoren eingesetzt.
Die Sensoren erfassen:
- Temperatur
- relative Luftfeuchtigkeit
- Luftdruck
Die Messwerte werden drahtlos über Zigbee an den ConBee II übertragen.
Zigbee2MQTT wandelt die empfangenen Daten anschließend in MQTT-Nachrichten um.
Ein typischer Datensatz enthält beispielsweise:
json
{
"battery": 90,
"humidity": 50.84,
"pressure": 991.5,
"temperature": 28.73
}Diese Werte können anschließend von Node-RED über Mosquitto empfangen und weiterverarbeitet werden.
MQTT-Verbindung
Zigbee2MQTT verwendet Mosquitto als MQTT-Broker.
Beide Anwendungen laufen als Docker-Container und befinden sich im gemeinsamen Docker-Netzwerk
womo-net
Zigbee2MQTT erreicht Mosquitto deshalb intern über:
mqtt://mosquitto:1883
Als MQTT-Basistopic wird verwendet:
zigbee2mqtt
Die Verbindung zum MQTT-Broker ist durch Benutzername und Passwort geschützt.
Zigbee2MQTT verwendet dafür den MQTT-Benutzer:
womo-mqtt
MQTT-Zugangsdaten▶
Das MQTT-Passwort wird nicht im Handbuch oder im Git-Repository gespeichert.
Die Zugangsdaten werden separat in Bitwarden verwaltet.
Interne Docker-Adresse▶
Die Adresse mqtt://mosquitto:1883 wird für die Kommunikation zwischen Zigbee2MQTT und Mosquitto innerhalb des Docker-Netzwerks womo-net verwendet.
Andere Geräte im normalen Womo-Netz erreichen Mosquitto dagegen über:
192.168.8.10:1883
Aufgabentrennung▶
Zigbee2MQTT verbindet die Zigbee-Funkwelt mit MQTT.
Mosquitto transportiert und verteilt die MQTT-Nachrichten.
Node-RED empfängt und verarbeitet die Messwerte anschließend weiter.
Geräte anlernen
Neue Zigbee-Geräte werden über die Zigbee2MQTT-Weboberfläche angelernt.
Dazu wird das Anlernen neuer Geräte kurzzeitig freigegeben und der jeweilige Sensor in den Pairing-Modus versetzt.
Nach erfolgreichem Anlernen erscheint das Gerät in Zigbee2MQTT und kann dort einen eindeutigen Namen erhalten.
Gerätenamen▶
Die Gerätenamen werden Bestandteil der MQTT-Topics.
Änderungen an einem Gerätenamen können deshalb auch Anpassungen in Node-RED oder anderen MQTT-Teilnehmern erforderlich machen.
Weiterverarbeitung
Die von Zigbee2MQTT veröffentlichten Messwerte werden von Node-RED über MQTT empfangen.
Node-RED kann die Daten anschließend für unterschiedliche Zwecke verwenden:
- Bereitstellung aktueller Werte für das Womo-Handbuch
- Speicherung historischer Messwerte in InfluxDB
- weitere Automatisierungen und Auswertungen
Der Datenweg sieht damit derzeit so aus:
text
Aqara-Sensor
│
│ Zigbee
▼
ConBee II
│
▼
Zigbee2MQTT
│
│ MQTT
▼
Mosquitto
│
▼
Node-RED
│
├────────► Womo-Handbuch
│ Live-Daten
│
▼
InfluxDB
│
▼
GrafanaDamit können dieselben Sensordaten sowohl für die aktuelle Anzeige im Womo-Handbuch als auch für die historische Auswertung verwendet werden.