MQTT ist ein leichtgewichtiges Protokoll, welches für den Nachrichtenaustausch zwischen Sensoren und Aktoren verwendet werden kann. In diesem Beitrag werden erste Schritte mit moquitto vorgestellt.
Bei der Verwendung des MQ Telemetry Transport Protokoll (MQTT) gibt es 3 wichtige Bestandteile. Einen zentralen Broker, mindestens einen Subscriber/Aktor und mindestens einen Publisher/Sensor. Der Subscriber meldet sich beim Broker an und teilt ihm mit welche Nachrichten er haben möchte. Dabei gibt das Topic die Nachricht bzw. eine Klasse von Nachrichten an. Sendet ein Sensor nun eine Nachricht an dem Broker entscheidet dieser, welcher Subscriber diese erhalten soll und schickt sie an diesen weiter.
Mosquitto stellt einen Broker für MQTT und weitere Tools bereit. Es steht für verschiedene Systeme zur Verfügung und kann über die Seite "Mosquitto Download" heruntergeladen werden.
Bei Arch Linux steht ein entsprechendes Paket über das Arch User Repository (AUR) zur Verfügung. Damit dieses installiert werden kann, muss der Download mit Hilfe von GPG überprüft werden. Hierfür ist es notwendig, dass der benötigte Schlüssel zunächst importiert und ihm anschließend vertraut wird.
$ gpg --recv-keys 779B22DFB3E717B7
$ gpg --edit-key 779B22DFB3E717B7 trust
Ist der Schlüssel importiert sollte sich das Paket mit dem folgenden Befehl erstellen und installieren lassen.
$ yaourt -S mosquitto
Für einen ersten Start bietet es sich an, die Beispiel-Konfiguration einfach zu kopieren.
Achtung: Bevor die Software produktiv eingesetzt wird, sollten die Sicherheitsmechanismen geprüft und konfiguriert werden.
$ cd /etc/mosquitto
$ sudo cp mosquitto.conf.example mosquitto.conf
Nach dem Kopieren der Konfigurationsdatei kann der Dienst gestartet werden.
$ sudo systemctl enable mosquitto.service
$ sudo systemctl start mosquitto.service
Für einen ersten Test werden die bereits im Paket enthaltenen Tools verwendet. Hierfür wird zunächst ein Subscriber gestartet, der dem Broker mitteilt, dass er alle Nachrichten des Topic "test/" und darunterliegende beziehen möchte.
$ quitto_sub -t 'test/#' -v
test/abc foo
Anschließend wird eine Nachricht über einen Sensor/Publisher gesendet. Daraufhin sollte die zweite Zeile im vorangegangenen Beispiel erscheinen.
$ mosquitto_pub -t 'test/abc' -m 'foo'
Die hier vorgestellten Befehle sind sehr einfach gehalten, welche weiteren Konfigurationsmöglichkeiten sie bieten lässt sich mit dem Kommandozeilenparameter --help
in Erfahrung bringen.
Links
- Webseite: Arch Linux (englisch)
- Webseite: Mosquitto (englisch)
- Webseite: MQ Telemetry Transport (englisch)