Kommunikation via MQTT im LAN

Mosquitto MQTT Broker

Mosquitto (Link zu Mosquitto) ist ein ressourcenschonender MQTT Broker, der auf vielen Plattformen läuft. So auch auf dem Raspberry pi.

MQTT ist ein offenes Protokoll, das von der OASIS (Organization for the Advancement of Structured Information Standards) standardisiert wird (Link zu OASIS MQTT).

Konfiguration von Mosquitto

Mosquitto muss für die Kommunikation im LAN konfiguriert werden. Dazu muss die Konfigurationsdatei mosquitto.conf angepasst werden, die sich bei der Installation auf dem Raspberry pi im Verzeichnis /etc/mosquitto befindet.
Die Datei kann nur mit Root-Rechten geschrieben werden. Dies muss man beachten, wenn man die Datei z.B. mit Nano editieren möchte.

Am Ende der Datei müssen zwei Einträge ergänzt werden:

listener 1883

allow_anonymous true

Der erste Eintrag bewirkt, dass Mosquitto auf den Port 1883 hört.

Der zweite Eintrag bewirkt, dass Mosquitto auch nicht registrierte (anonyme) Clients zulässt.

Nach dem Speichern der Konfigurationsdatei muss Mosquitto neu gestartet werden. Das Kommando für den Neustart kann je nach Linux-System variieren. Bei der Installation auf einem Raspberry pi kann Mosquitto mit folgendem Befehl neu gestartet werden:

:~> sudo systemctl restart mosquitto

Test der Kommunikation via MQTT im LAN

Ermitteln der IP Adresse des Brokers

Die IP-Adresse des Rechners (in diesem Beispiel der Raspberry pi) auf dem der Mosquitto Broker läuft muss ermittelt werden. Dazu gibt man folgenden Befehl in einem Terminal ein:

:~> ip addr show

Aus der Bildschirmausgabe kann die IP-Adresse abgelesen werden.
Die IP-Adresse wird für jeden Client benötigt, der über das LAN mit dem Broker kommunizieren muss.

Test der Kommunikation

In einem Terminal auf dem Raspberry pi wird ein Mosquitto Subscriber-Client gestartet.

:~> mosquitto_sub -h localhost -t test1

Auf einem anderen Rechner im LAN wird in einem Terminal wird ein Mosquitto Publisher-Client gestartet.

:~> mosquitto_pub -h Broker-IP -t test1 -m Hallo!

mosquitto_pub -h localhost -t test1 -m Hallo!

-h

Broker-IP

IP-Adresse des Brokers, in diesem Beispiel die IP-Adresse des Raspberry pi auf dem Mosquitto läuft.

-t

test1

Bezeichner des Topics, das der Subscriber-Client abonnieren soll.

-m

Hallo!

Die Nachricht, die veröffentlicht werden soll.
Nachrichten, die mehrere mit Space getrennte Wörter enthalten, müssen in Anführungszeichen gesetzt werden.

Die Nachricht sollte, sobald sie vom Publisher veröffentlicht wird, im Terminal des Subscribers aud dem Raspberry pi auftauchen.

Link to the video in English language