Datenintegration in Ubidots

Der Ablauf der Konfiguration für die Datenintegration in Ubidots sieht folgendermaßen aus:

  • Anmeldung bei Ubidots
  • Plugin für Webhook bei Ubidots erstellen
  • Webhook bei TTN V3 einrichten
  • Prüfung der Webhook-Funktionalität

Anmeldung bei Ubidots und Plugin für Webhook einrichten

Um die empfangenen LoRa-Daten von TTN nach Ubidots übertragen zu können, müssen wir für den Datenempfang ein Plugin für einen Webhook in Ubidots einrichten. Ein Webhook ist eine Art Echtzeit-Datenweiterleitung. Jedes mal wenn Daten vom Bootsmonitor bei TTN V3 eintreffen, werden diese direkt an Ubidots weitergeleitet. Für die Datenübermittlung von TTN V3 via Webhook benötigen wir den API-Key von Ubidots und noch einige andere Daten. Als erstes müssen wir bei Ubidots einen kostenlosen Account erstellen. Dazu registrieren wir uns über diese Webseite:

https://stem.ubidots.com

Wenn das Konto erstellt wurde, können wir oben rechts über das runde Logo auf API Credentials gehen. Es erscheint dann im oberen Bereich eine Zeile mit dem API-Key.

Abb.: Ubidots API-Key

Diesen Key können wir uns anzeigen lassen, indem wir in das Feld klicken. Über den Knopf rechts daneben kann der API-Key in die Zwischenablage kopiert werden. Der API-Key sollte so ähnlich aussehen wie unten abgebildet. Diesen Key merken wir uns für später. Er wird bei der Einrichtung des Webhook bei TTN V3 benötigt.

BBFF-77fdf9bd902ab9c46b47529ab2dbe6871 (Bitte nicht verwenden! Nur Demo)

Danach erzeugen wir uns über Devices -> Plugins ein neues Plugin für einen Webhook über den rechten grünen Plus-Knopf und wählen The Thinks Stack aus.

Abb.: Plugin hinzufügen

In der darauf folgenden Konfigurationsabfolge ist unter Ubitots Token der Default Token auszuwählen. Am Ende wurde ein Plugin für TTN V3 erstellt, das rudimentäre Funktionen bereitstellt und noch weiter konfiguriert werden muss.

Abb.: Erstelltes Plugin

Als nächstes öffnen wir auf das erstellt Plugin The Things Stack und wählen auf der linken Seite Configuration aus.

Abb.: Plugin Configuration

Dann kopieren wir uns die HTTPs Endpoint URL. Achten Sie darauf den kompletten String zu kopieren. Er sollte dann so aussehen:

https://dataplugin.ubidots.com/api/web-hook/J1j4ndx_tnHGYPCZlsfSkT45dh=

Diesen String zerlegen wir in 3 Teile:

Webhook Base URL: https://dataplugin.ubidots.com

Webhook Endpoint Folder: /api/web-hook/

Webhook Customer ID: J1j4ndx_tnHGYPCZlsfSkT45dh=

Den letzten Teile merken wir uns, denn wir benötigen ihn später bei der Einrichtung des Webhook.

Anschließend müssen wir noch die korrekte Decoding Function für den LoRa-Bootsmonitor eintragen. Mit der Decoding Function werden die vom Webhook übergebenen Daten aus TTN V3 so aufbereitet, dass die Messwerte wieder sichtbar werden. Das ist noch einmal genau das Selbe wie der Payload Formatter bei TTN V3. Dieses Mal benötigen wir ihn noch einmal, da TTN V3 nur Rohdaten verschickt und wir die Dekodierung noch einmal bei Ubidots vornehmen müssen.

Wenn Sie auf der Seite ganz nach unten scrollen, gelangen Sie zu einem Eingabefenster für JavaScript Code. Löschen Sie den gesamten Code und ersetzen ihn durch den Inhalt dieser Datei.

Abb.: Decoding Function

Danach müssen die Änderungen unbedingt noch über den grünen Knopf Save & Make Live gespeichert und aktiviert werden. Damit ist die Plugin-Konfiguration in Ubidots abgeschlossen.

Webhook bei TTN V3 einrichten

An dieser Stelle wird jetzt der Webhook für Ubidots bei TTN V3 eingerichtet. Der Webhook leitet jedes Mal die ankommenden Daten vom Bootsmonitor bei TTN V3 direkt an Ubidots weiter.

Als nächstes wechseln wir zu TTN V3 und loggen uns dort in die Console ein:

https://eu1.cloud.thethings.network/console/

Dann gehen wir über Applications auf unsere erstellte Applikation LoRa Boat Monitoring und klicken im linken Auswahlbereich Intergations an.

Abb.: Integrations

Wenn wir links im Auswahlbereich auf Webhook klicken, gelangen wir zu einer Seite auf der wir einen neuen Webhook mit der rechten blauen Taste Add Webhook erstellen können.

Abb.: Webhook erstellen

Auf der sich dann öffnenden Seite wählen wir ganz unten Ubidots aus und geben dann in der Konfigurationsseite folgende Daten ein:

Abb.: Webhook konfigurieren

Für die Webhook ID vergeben wir einen sinnvollen Namen. Achten sie auf Kleinschreibung und verwenden Sie nur Bindestriche. Die Plugin ID ist der dritte Teil des Strings den wir zuvor in Ubidots erstellt und anschließend zerlegt hatten (J1j4ndx_tnHGYPCZlsfSkT45dh=). Der Ubidots Token ist der Token der bei der Registrierung des Accounts erstellt wurde (BBFF-77fdf9bd902ab9c46b47529ab2dbe6871).

Zum Abschluss werden die eingegebenen Daten über den Knopf Create Ubidots Webhook gespeichert. Am Ende sollte alles so aussehen. der Webhook ist jetzt fertig eingerichtet.

Abb.: Fertig eingerichteter Webhook

Prüfung der Webhook Funktionalität

Sobald Daten vom LoRa-Bootsmonitor bei TTN V3 eintreffen, sollten diese Daten auf der Seite End Devices unter dem jeweiligen Device zu sehen sein. Unter Live Data werden die ankommenden Telegramme aufgelistet.

Abb.: Device Live Data (aktuell ohne Daten)

Wenn Daten vom LoRa-Bootsmonitor eintreffen, dann sollte der Status des Webhook von Pending auf Healthy wechseln und mit einem blauen Punkt gekennzeichnet sein.

Abb: Webhook Status

In Ubidots wird automatisch ein neues Device angelegt, wenn Daten vom LoRa-Bootsmonitor aus TTN V3 an Ubidots weitergeleitet werden. Das Device trägt dann den Namen mit der Device EUI, so wie es in TTN V3 erstellt worden ist (eui-70b3d57ed0057bad).

Abb.: Ubidots Device Status (hier ist ein anderes Device gelistet)

Klickt man auf den Device-Namen, so werden die übermittelten Daten des Bootsmonitors in Kurzform angezeigt. Das Feld Last Activity kennzeichnet den Zeitpunkt des letzten Dateneingangs.

Abb.: Device-Daten

Wenn die Daten bei Ubidots korrekt angekommen sind, ist die Überprüfung abgeschlossen.