MQTT

Datacake bietet einen MQTT Broker mit TLS-Verschlüsselung, welcher sowohl das Subscriben auf Messwerte, als auch das Speichern von Messwerten ermöglicht.

Die Datacake Plattform bietet einen MQTT Broker mit TLS-Verschlüsselung, welcher sowohl das Abonnieren, als auch das Speichern von Messwerten ermöglicht.

Mit Hilfe dieses Brokers können Sie:

  • Eingehende Messwerte über MQTT an externe Dienste weiterleiten

  • Messwerte per MQTT in die Datacake Cloud einspielen

In Verbindung mit Integrationen wie z.B. der Particle.io Integration:

  • Eine Device-MQTT-Bridge ohne Programmierung aufstellen

MQTT Client

Wenn Sie aus der Datacake Cloud eine Client-Funktionalität nutzen wollen, um sich z.B. mit einen fremden Broker zu verbinden (und Daten auszutauschen), dann verwenden Sie Cake Red, unser managed Node-RED Service.

Mit Hilfe von Cake Red können Sie sich über die Node-RED MQTT Funktionalität mit fremden MQTT Broker verbinden. Erfahren Sie hier mehr zu dem Thema.

Tinkerforge MQTT

Die Datacake Cloud bietet eine native Integration für Tinkerforge Produkte. Dies geschieht über einen sog. MQTT Proxy, welcher auf Tinkerforge Linux Hardware ausgeführt wird.

Diese Tinkerforge Integration erfolgt automatisiert im Hintergrund und adaptiert auf die Datacake Cloud. Sie können Ihre eingebundenen Tinkerforge Geräte also ebenfalls über die Datacake MQTT Integration abrufen.

Aktivierung

Damit Ihre Geräte Messwerte über MQTT veröffentlichen, muss das Feature einmalig in der Gerätekonfiguration aktiviert werden. Ein grüner Punkt neben dem MQTT.org-Logo signalisiert dabei eine aktive MQTT Integration, ein grauer Punkt eine deaktivierte.

Um den Status der Integration zu ändern, klicken Sie auf den Button "konfigurieren". Im erscheinenden Modal können Sie die Integration aktivieren bzw. deaktivieren. Dort finden Sie ebenfalls eine Übersicht der Topic-Struktur des ausgewählten Gerätes.

Mit dem Broker verbinden

Um sich mit dem Broker zu verbinden, nutzen Sie bitte folgende Domain: mqtt.datacake.co Wir unterstützen die folgenden Verbindungsarten:

  • Unverschlüsselt, über Port 1883

  • TLS-Verschlüsselt, über Port 8883

Wir empfehlen Ihnen, dass Sie eine Verbindung grundsätzlich verschlüsselt herstellen. Unverschlüsselte Verbindungen eigenen sich in der Regel nur für erste Prototypen oder schnelle Tests.

Zertifikat

Port 8883 nutzt ein CA-signiertes Server-Zertifikat.

Authentifizierung

Um Verbindung mit dem Broker herstellen zu können, müssen Sie sich mit Hilfe eines individuellen API-Key authentifizieren. Lesen Sie hier wie Sie eine solchen Schlüssel erstellen. Diesen API-Key verwenden Sie bitte für sowohl Benutzername als auch Passwort.

Lese- und Schreibzugriff

Mit Hilfe dieses Schlüssels haben Sie ausserdem die Option für Lese- und Schreibzugriff eigene Berechtigungen festzulegen, welche dann an Ihrem jeweiligen API-Key gebunden werden.

Wie Sie einen solchen Schlüssel erstellen und wie Sie diese Rechte festlegen, erfahren Sie unter folgendem Link: Link.

Grundsätzlich gilt:

  • Um Messwerte per MQTT abonnieren zu können, benötigen sie Leserechte für das jeweilige Gerät.

  • Um Messwerte in ein Gerät einspielen zu können, benötigen Sie Schreibrechte für das jeweilige Gerät.

  • Um Messwerte aller Geräte eines Produktes abonnieren zu können, benötigen Sie Leserechte für das jeweilige Produkt.

  • Um Messwerte über das Produkt in jeweilige Geräte einzuspielen, benötigen Sie Schreibrechte für das jeweilige Produkt.

Client-ID

Der Datacake Broker verwaltet die Client-IDs intern. Sie müssen sich nicht um eine Client-ID kümmern. Sollte Ihr Client die Angabe einer Client-ID optional unterstützen, so lassen Sie diese Angabe bitte frei. Ihr Client erstellt dann eine zufällig generierte ID.

Sollten Sie eine eindeutige Client-ID nutzen wollen, dann kann es passieren, dass z.B. bei mehrfacher Verbindung, die älteren Verbindungen gekappt werden. Stellen Sie daher sicher, dass Ihre Client-ID individuell ist und nicht mehrfach verwendet wird.

MQTT Struktur

Subscribe

Die Veröffentlichung der Messwerte findet nach folgender Struktur statt: dtck/<product_slug>/<device_id>/<field_name> Abonnieren (Subscribe) Sie Topics nach dieser Struktur, um Messwerte per MQTT zu erhalten, sobald Sie in der Datacake Cloud eintreffen.

Publish

Um Messwerte in die Datacake Cloud und einem Gerät einzuspielen, veröffentlichen (Publish) Sie den Messwert auf die jeweilige Topic Struktur. Aufgrund der Natur von MQTT unterscheidet sich das Topic-Präfix wie folgt: dtck-pub/<product_slug>/<device_id>/<field_name>

Präfix

Für das Veröffentlichen der Messwerte verwenden wir immer das Präfix dtck, für das Einspielen von Messwerten dtck-pub.

<product_slug>

Dieser Abschnitt in der Topic-Struktur identifiziert das Produkt des Gerätes über die Kurzform des sog. Product Slug. Diesen können Sie entweder selbst bestimmen oder aber er wurde automatisiert hinzugefügt.

Zum Zeitpunkt des Schreibens dieser Dokumentation ist die Funktion des Product Slug überwiegend nur im Backend realisiert. Es fehlen die entsprechenden Gegenstellen im Front-End. Dies ist ein bewusster Schritt. In einem folgenden Update wird diese Funktion auch ins Frontend geführt. Dennoch ist die Struktur grundsätzlich so aufgebaut, dass ein Gerät immer zu einem Produkt gehört.

<device_id>

Dieser Abschnitt der Topic-Struktur identifiziert das jeweilige Gerät, welches die Daten veröffentlicht hat. Die Device-ID wird Intern erzeugt und ist in der Regel eine absolut eindeutige UUID (Ausnahme sind hier ggf. White Label Produkte unserer Kunden).

<field_name>

Als letztes Element in der Topic-Strukur steht der Feldname des Messwertes, so wie er auch in der Datenbank vorkommt oder wie er von Ihnen über z.B. ein API-Device angelegt wurde.

Hierbei spielt die Gross/Kleinschreibung des Feldnamens keine Rolle, es wird jedoch empfohlen, diesen immer in GROSSBUCHSTABEN wie auch im Portal angegeben zu verwenden.

Der Feldname ist nicht zu verwechseln mit dem angezeigten Namen eines Feldes. Der Feldname wird beim Anlegen des Feldes einmalig zugewiesen und kann danach nicht mehr geändert werden.

Beispiele

Abonnieren von Messwerten

Einzelne Messwerte eines Geräts abonnieren

Ein eindeutiges Gerät des Produkts my-product veröffentlicht Temperatur-Messwerte über MQTT unter folgendem MQTT-Topic: subscribe dtck/my-product/6b98a3bb-9ae1-418f-9375-f23091a849cd/TEMPERATURE Im Payload der MQTT-Nachricht befindet sich dann der Messwert. Im Falle der Temperatur z.B. 24.23

Wie dieser Messwert aufgebaut ist, wird durch das jeweilige Feld des Gerätes bestimmt. Hier wird auch Typ (Float, Integer, String, usw.) und ggf. Präzision (Nachkommastellen) festgelegt. Die Einstellungen, die dort festgelegt werden, bestimmen also wie der Messwert im Payload versendet wird.

Sämtliche Messwerte eines Geräts abonnieren

Um sämtliche Messwerte eines Geräts zu abonnieren, abonnieren Sie folgende Topic-Struktur: subscribe dtck/my-product/6b98a3bb-9ae1-418f-9375-f23091a849cd/+

Einzelne Messwerte eines Produkts abonnieren

Um sämtliche Temperatur-Messwerte ALLER Geräte eines Produktes zu abonnieren, verwenden Sie folgende Topic-Struktur: subscribe dtck/my-product/+/TEMPERATURE

Sämtliche Messwerte eines Produkts abonnieren

Um sämtliche Temperatur-Messwerte ALLER Geräte eines Produktes zu abonnieren, verwenden Sie folgende Topic-Struktur: subscribe dtck/my-product/+/+

Messwerte einspielen

Um Messwerte in die Datacake Cloud und einem Gerät einzuspielen, veröffentlichen (Publish) Sie den Messwert auf die jeweilige Topic Struktur.

Präfix

Aufgrund der Natur von MQTT unterscheidet sich das Topic-Präfix wie folgt: dtck-pub/<product_slug>/<device_id>/<field_name>

FAQs

Muss ich für die MQTT Integration etwas extra zahlen?

Nein. MQTT ist nativer Bestandteil der Datacake Cloud und in Ihrer Subscription vorhanden.