MQTT mit Python nutzen

MQTT ist ein leichtgewichtiges Benachrichtigungsprotokoll, welches mit Hilfe eines Python Modules in eigenen Projekten genutzt werden kann. Anhand von zwei Beispiel wird kurz die Verwendung und die Funktionsweise vorgestellt.

Es wird davon ausgegangen, dass ein MQTT Broker installiert ist und gestartet wurde. Ein Beispiel für die Installation eines MQTT Broker kann dem Artikel "[Mosquitto als MQTT Broker}({filename}/articles/2015/2015-04-11_mosquitto-als-mqtt-broker.de.md)" entnommen werden.

Bevor begonnen wird muss das benötigte Python Modul paho-mqtt mit dem folgenden Befehl zunächst installiert werden.

Für erste Tests empfiehlt es sich eine lokale Python-Umgebung wie zum Beispiel mit virtualenv oder dem virtualenvwrapper zu benutzen.

$ pip install paho-mqtt

Das folgenden Beispiel zeigt einen Sensor, welcher über das Topic test/temperature den Wert test bekannt gibt.

::: {.code-include lexer="Python"} ../../file/article/2015/04/12/mqtt-mit-python-nutzen/sensor.py :::

Im folgenden Beispiel ist ein Subscriber dargestellt, der alle Nachrichten im Topic test/ erhält.

::: {.code-include lexer="Python"} ../../file/article/2015/04/12/mqtt-mit-python-nutzen/subscriber.py :::

Beide Beispiele orientieren sich an Beispielen aus der offiziellen Dokumentation und lassen sich über sensor.py und subscriber.py herunterladen.

Der Sensor lässt sich mit folgendem Befehl starten und sendet anschließend alle 2 Sekunden einen Wert an den Broker.

$ python sensor.py 
Connected with result code 0

Der Subscriber lässt sich mit folgendem Befehl starten und sollte alle 2 Sekunden den Wert vom Broker erhalten.

$ python subscriber.py 
Connected with result code 0
test/temperature b'test'
test/temperature b'test'

Mit Hilfe der Tastenkombination Strg. + C{.interpreted-text role="kbd"} können beide Prozesse abgebrochen werden.

Links

  • Webseite: Python (englisch)
  • Webseite: Python Modul paho-mqtt (englisch)
  • Webseite: MQTT (englisch)

Verwandte Artikel