MQTT im TTN für Einsteiger

Christian Hammel

The Things Network User

Posted on 22-05-2018

MQTT ist ein standardisiertes Protokoll zur Bereitstellung und „Abholung“ von Daten im IoT. Das funktioniert wie ein Abonnement. Bei TTN ist MQTT zur Bereitstellung von Daten ohnehin Standard, so dass wir nichts tun müssen, außer unsere Daten mit einem Programm zu abonnieren, das das beherrscht.

Im Detail erklärt TTN das API hier: https://www.thethingsnetwork.org/docs/applications/mqtt/

Zum Abholen der Daten muss man keine TTN-Integrations anlegen oder komplexere SDKs bemühen. Ein einfacher Client genügt.
Details der Bedienung beschreibt TTN anhand des Clients mosquitto – weit verbreitet aber vom look und feel eher für Programmiererfahrene, da das ein Command Line Interface ist. Anfängergeeignete Clients ermöglichen oft nur live-Betrachtung und einfache Interaktionen, dafür führen sie einfach zu einem ersten Ergebnis. Man muss in solchen Programmen nämlich nur seine Zugangsdaten angeben und angeben, welche Daten man abonnieren will.

Eure Zugangsdaten sind:
Host: eu.thethings.network
Port: 1883
Username: App-ID
Password: App-Access Key (den findet Ihr in der Konsole bei Eurer Application)

Zum Abonnieren Eurer Daten müsst Ihr wissen, wie das „Topic“ heißt, das Ihr abonnieren müsst. Das Topic heißt: AppID/devices/deviceID/up (/EUERDATENFELD).
Ohne /EUERDATENFELD liefert das alles aus, was euer device so sendet. Wenn euch nur ein bestimmtes Datum interessiert: /EUERDATENFELD heißt genau so, wie ihr es im payload-decoder benannt habt. Angaben zwischen den // kann man durch + ersetzen, dann kommt alles, was davor und dahinter passt (+ statt deviceID liefert also die Daten aller eurer devices innerhalb der Application).

Ich habe folgende Clients ausprobiert: LinearMQTT (f. Android) kann einen live-Graph darstellen, MQTTDash (f. Android, Screenshot oben) kann z.B. ein Widget darstellen, das blinkt, wenn ein Schwellwert überschritten ist. Beide Apps leider mit recht unvollständigen Angaben, mit wem man es bei den Herstellern zu tun hat. Ob man die installiert oder Zugangsdaten eingibt, muss jeder selber wissen. Zu bedienen sind sie immerhin sehr einfach. MQTT-Lens (f. Chrome) zeigt einfach die Daten an und eignet sich zum Prüfen, ob alles stimmt, hängt sich bei mir aber gern mal auf.

Ich mutmaße, für IOS und Firefox wird ähnliches verfügbar sein. Wenn Ihr Anwendungen für den Desktop kennt, die ohne Datenbanken und Webserver funktionieren, ergänzt das bitte hier! MQTTBox, das TTN nennt, habe ich bisher nicht ausprobiert. Dem Vernehmen nach können auch viele Home Automation Server wie https://fhem.de/ mit MQTT umgehen (für so etwas wurde es ja erfunden) – habe ich aber ebenfalls noch nicht probiert.

Etwas genauer steht’s in meiner Anfänger-Bastelanleitung: https://github.com/technologiestiftung/workshops/blob/master/basteltreff.pdf

Die komplizierten Wege zu professionellerem Vorgehen sind z.B.: Datenbank auf einem Server im Netz installieren, MQTT-Daten hineinschieben und dann mit einem anderen Tool visualisieren. Oder, falls man mit vielen Quellen umgehen muss: Eigenen MQTT-Broker installieren.