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!
|
|
IP-Adresse des Brokers, in diesem Beispiel die IP-Adresse des Raspberry pi auf dem Mosquitto läuft. |
|
|
Bezeichner des Topics, das der Subscriber-Client abonnieren soll. |
|
|
Die Nachricht, die veröffentlicht werden soll. |
Die Nachricht sollte, sobald sie vom Publisher veröffentlicht wird, im Terminal des Subscribers aud dem Raspberry pi auftauchen.