Skip to content

Mosquitto ​

Mosquitto ist der MQTT-Broker des Wohnmobils.

Der Dienst lĂ€uft als Docker-Container auf dem Raspberry Pi tsg-bobil und ĂŒbernimmt den Austausch von MQTT-Nachrichten zwischen verschiedenen Anwendungen und GerĂ€ten.

Zugriff ​

Mosquitto verwendet den MQTT-Standardport:

1883

EigenschaftWert
AnwendungEclipse Mosquitto
Containermosquitto
Port1883
Broker im Womo-Netz192.168.8.10:1883
Broker im Docker-Netzmosquitto:1883
Docker-Netzwerkwomo-net

Mosquitto besitzt keine eigene WeboberflÀche.

Aufgabe ​

MQTT arbeitet nach dem Publish/Subscribe-Prinzip.

Ein GerĂ€t oder eine Anwendung veröffentlicht eine Nachricht unter einem bestimmten Topic. Andere Teilnehmer können dieses Topic abonnieren und erhalten anschließend die dort veröffentlichten Nachrichten.

Mosquitto ĂŒbernimmt dabei die Vermittlung zwischen Sendern und EmpfĂ€ngern.

text
             MQTT
              │
              ▌
          Mosquitto
         MQTT-Broker
              │
      ┌───────┮───────┐
      │               │
 Zigbee2MQTT       Node-RED

Verwendung im Wohnmobil ​

Derzeit wird Mosquitto unter anderem fĂŒr die Übertragung der Zigbee-Sensordaten verwendet.

Zigbee2MQTT veröffentlicht die empfangenen Messwerte als MQTT-Nachrichten.

Node-RED abonniert die entsprechenden Topics und kann die Messwerte anschließend weiterverarbeiten.

Der Datenweg lautet damit:

text
Zigbee-Sensor
     │
     │ Zigbee
     ▌
Zigbee2MQTT
     │
     │ MQTT
     ▌
 Mosquitto
     │
     │ MQTT
     ▌
  Node-RED

Node-RED kann die empfangenen Daten anschließend beispielsweise:

  • fĂŒr die Live-Anzeige im Womo-Handbuch bereitstellen
  • fĂŒr die historische Speicherung an InfluxDB ĂŒbergeben
  • fĂŒr weitere Automatisierungen und Auswertungen verwenden
â„čMQTT-Broker▶

Mosquitto speichert die historischen Messwerte nicht.

Der Broker ist in erster Linie fĂŒr den Transport und die Verteilung der MQTT-Nachrichten zustĂ€ndig.

Die dauerhafte Speicherung ausgewĂ€hlter Messwerte erfolgt ĂŒber Node-RED in InfluxDB.

Kommunikation im Docker-Netzwerk ​

Mosquitto ist gemeinsam mit den anderen beteiligten Diensten in das interne Docker-Netzwerk

womo-net

eingebunden.

Docker-Container können den MQTT-Broker dadurch direkt ĂŒber seinen Containernamen erreichen:

mosquitto:1883

Dies wird beispielsweise von Zigbee2MQTT und Node-RED verwendet.

text
        womo-net

Zigbee2MQTT ──â–ș mosquitto:1883
                       â–Č
                       │
                  Node-RED

FĂŒr Anwendungen oder GerĂ€te außerhalb von Docker wird dagegen die IP-Adresse des Raspberry Pi verwendet.

Im Womo-Netz lautet die Adresse:

192.168.8.10:1883

â„čInterne und externe Adresse▶

Innerhalb des Docker-Netzwerks wird Mosquitto ĂŒber mosquitto:1883 angesprochen.

GerÀte im normalen Womo-Netz verwenden dagegen 192.168.8.10:1883.

Dadurch bleibt die Kommunikation zwischen den Docker-Containern unabhÀngig von der jeweiligen IP-Adresse des Raspberry Pi.

Zugriffsschutz ​

Der MQTT-Broker ist durch Benutzername und Passwort geschĂŒtzt.

FĂŒr die Kommunikation der Dienste wird der MQTT-Benutzer

womo-mqtt

verwendet.

Zigbee2MQTT und Node-RED verwenden diesen Benutzer fĂŒr die Anmeldung am Broker.

Das Passwort wird nicht im Handbuch dokumentiert.

⚠MQTT-Zugangsdaten▶

MQTT-Passwörter sind Zugangsdaten und dĂŒrfen nicht im Handbuch oder im Git-Repository gespeichert werden.

Die Zugangsdaten werden separat in Bitwarden verwaltet.

MQTT-Topics ​

MQTT-Nachrichten werden ĂŒber sogenannte Topics organisiert.

Zigbee2MQTT verwendet beispielsweise Topics nach folgendem Schema:

text
zigbee2mqtt/<GerÀtename>

FĂŒr den derzeit verwendeten Raumklimasensor lautet das Topic beispielsweise:

text
zigbee2mqtt/RTF_Test_Pi8

Eine Nachricht kann dabei unter anderem folgende Werte enthalten:

json
{
  "battery": 90,
  "humidity": 50.84,
  "pressure": 991.5,
  "temperature": 28.73
}

Node-RED kann dieses Topic abonnieren und die enthaltenen Werte anschließend weiterverarbeiten.

Weitere Verwendung ​

Über Mosquitto können zukĂŒnftig auch weitere GerĂ€te und Anwendungen Daten austauschen.

Damit kann derselbe MQTT-Broker beispielsweise fĂŒr zusĂ€tzliche Sensoren oder die Übertragung von Messwerten der Victron-Komponenten verwendet werden.

Die bestehende MQTT-Struktur kann dadurch erweitert werden, ohne dass fĂŒr jede Datenquelle eine eigene Kommunikationsverbindung aufgebaut werden muss.

← ZurĂŒck zum IT-System