MQTT Installation auf dem Raspberry PI

Was ist MQTT und wozu?

MQTT ist ein Nachrichtenprotokoll aus dem M2M (Maschine-to-Maschine) Umfeld, welches darauf ausgelegt ist mit geringen Ressourcen auszukommen und Nachrichten auch in langsamen und unzuverlässigen Netzwerken zu übertragen. Wenngleich auch Kleingeräte wie Sensoren mit MQTT arbeiten können sollen, können MQTT-Broker auch deutlich größer sein und Millionen von Nachrichten verarbeiten. Die offizielle Website ist unter mqtt.org zu finden.

MQTT Clients und Pythonmodule auf dem Raspberry installieren

Um MQTT auf dem Raspberry zu nutzen müssen der Mosquitto Broker, ein Client und ggf. noch Programmierbibliotheken installiert werden, namentlich:

  • mosquitto: Der Broker
  • mosquitto-client: Der Client
  • python-mosquitto: Die Programmierbibliothek für Python

Die Installation kann mit der folgenden Kommandofolge in einem Zuge erfolgen.

  • sudo apt-get install mosquitto mosquitto-clients python{,3}-mosquitto

Da der Mosquitto Broker während der Installation automatisch gestartet wurde, muss er anschließend zur Konfiguration gestoppt werden.

  • sudo /etc/init.d/mosquitto stop

In der Konfiguration (/etc/mosquitto/mosquitto.conf) sollte wenigstens die IP auf der der Server lauschen soll angepasst werden, siehe:

  • bind_address 192.168.10.2

Sind keine weiteren Anpassungen vorzunehmen (Benutzeraccounts, Zertifikate u.ä.) kann der Broker anschließend wieder gestartet werden:

Der Mosquitto Broker steht damit zur Verfügung. An diesem können sich nun Clients für Topics anmelden oder/und Nachrichten zum Broker senden.

Beispielskripte für Python

Für ein einfaches Beispiel eines MQTT Nachrichtenversand/-empfang braucht allerdings kein eigener MQTT-Broker aufgesetzt werden. Hierfür steht der URL test.mosquitto.org zur Verfügung. Das erste Skript meldet den Client für den Empfang von Nachrichten für ein bestimmtes Topic an, das Zweite verschickt eine Nachricht an eben jenes Topic.

Dir originalen Skripte entstammen den unten angegebenen Links und sind hier der Einfachheit halber aufgeführt.

Bevor die Scripte ausgeführt werden können muss das Python-Modul paho-mqtt installiert werden.

  • sudo pip install paho-mqtt

Anschließend ist zuerst das „Subscribtion Script“ zu starten, welches letztlich in ein Endlosschleife fällt. Anschließend können mit dem Push Script Nachrichten geschickt werden. Wenn im Push-Script das Topic geändert wird (und NUR dort) so kommen die Nachrichten nicht mehr beim Client an, da die Subscription nicht mehr überein stimmt. Subscriptions können allerdings auch Platzhalter enthalten sein.

Subscribtion Script:

Push Script:

Im Falle dass beide Scripte erfolgreich ausgeführt werden konnten sollte sich eine Ausgabe wie auf dem folgenden Bild ergeben.

mqtt-output
Ausgabe des Sucription-Scriptes

Damit steht die grundlegende Infrastuktur für eigene Anwendungen mit MQTT Nachrichtenversand.

Weitere Links

Ersten Kommentar schreiben

Antworten

Deine E-Mail-Adresse wird nicht veröffentlicht.


*


13 + drei =