Datenintegration in Ubidots

Registrierung bei Ubidots

Ubidots ist ein kommerzieller Cloud-Dienstleister zur Visualisierung und Datenspeicherung für IoT-Geräte. Für Privatanwender und Bildungseinrichtungen gibt es einen Ableger von Ubidots mit dem Namen Steam. Das ist eine kostenlose und im Funktionsumfang eingeschränkte Version von Ubidots. Die Limitierungen sind dabei folgende:

  • Geräte: Bis zu 10 Geräte. Die ersten 3 Geräte kostenlos, dann $ 4,5 / Gerät / Monat
  • Variablen: Bis zu 10 Variablen pro Gerät
  • Plugins: Bis zu 1 Plugin mit 10.000 Plugin-Ausführungen pro Monat
  • Datenaufnahme: 4.000 Punkte pro Tag auf allen Ihren Geräten
  • Datenextraktion: 500.000 Punkte pro Tag in Ihrem gesamten Konto
  • Datenrate: 1 Anforderung pro Sekunde auf allen Ihren Geräten
  • Vorratsdatenspeicherung: 1 Monat
  • Dashboards: Bis zu 3 Dashboards mit jeweils bis zu 10 Widgets
  • SMS- und Sprachanrufe: 10 SMS und 1 Sprachanruf kostenlos pro Monat (nur USA und Kanada)
  • Alarmierung: 1 Mailadresse

Zur Bootsüberwachung ist die kostenlose Steam-Version völlig ausreichend, obwohl man schon darauf achten muss, nicht all zu viele Daten zu übertragen und abzufragen. Falls Limitierungen verletzt sein sollten, stellt Ubidots den Dienst ein und stellt am darauf folgenden Tag den Dienst wieder her, so lange keines der Limits verletzt worden ist. Die Fehlersuche ist dann etwas aufwändig, da man nicht auf den ersten Blick erkennt, warum irgendwas nicht funktioniert. Daher sollte man darauf achten möglichst innerhalb der Limits zu bleiben.

Für den Bootsmonitor werden folgende Ressourcen benötigt:

  • Geräte: 1
  • Variablen: 10
  • Plugins: 1
  • Datenaufnahme: 4.000 Punkte pro Tag
  • Datenextraktion: 500.000 Punkte pro Tag
  • Datenrate: 1 Anforderung alle 5 Minuten
  • Vorratsdatenspeicherung: 1 Monat
  • Dashboards: 1 Dashboard mit jeweils bis zu 10 Widgets.
  • Alarmierung: 1 Mailadresse

Berechnung des Datenaufkommens

Der LoRa-Bootsmonitor verwendet 12 Messwerte die an Ubidots übergeben werden. Das sind 2 Variablen mehr als erlaubt. Wir werden aber nur 10 Messwerte in Ubidots von den 12 Messwerten importieren. Wie vielleicht schon aufgefallen ist, werden die GPS-Daten in verschiedenen Formaten doppelt übertragen. Das hat den Hintergrund, da für die Verortung des LoRa-Bootsmonitors innerhalb von TTN V3 und Ubidots verschiedene Formatierungen verwendet werden und sie daher doppelt übertragen werden. So ist sichergestellt, dass in Ubidots auch das Boot in der Landkarte angezeigt werden kann.

{
"alarm1": 1,
"dewpoint": 10.4,
"humidity": 29.35,
"latitude": 51.193901,
"longitude": 6.796773,
"position": {
"context": {
"lat": 51.193901,
"lng": 6.796773
},
"value": 0
},
"pressure": 1020.8,
"tempbattery": 17.2,
"voltage": 11.28
}

Bei 4000 Datenpunkten pro Tag ergibt das eine höchst mögliche Senderate von 5 min ((60*24)/(4000/12)=4,32). Wenn die Anzahl der zu übertragenden Messwerte reduziert werden, lässt sich die Senderate erhöhen. Eine Senderate von 5 min sollte aber vollkommen ausreichend sein.

Bei der Abfrage von historischen Daten müssen wir ein wenig aufpassen, da wir schnell die 500.000 Datenpunkte pro Tag verletzen können. Erstellen wir ein Linien-Diagramm mit z.B. 5 unterschiedlichen Messwerten, so können bei einer einfachen Monatsabfrage der Daten schnell  43.200 Datenpunkte zusammen kommen (12*5*24*30=43.200). Fragt man das Diagramm 12x hintereinander ab, so sind die 500.000 Datenpunkte für die Abfragen verbraucht und es können keine weiteren Abfragen mehr gemacht werden. Das Diagramm zeigt dann keine Daten an. Daher sollte man möglichst sparsam mit der Datenabfrage über große Zeiträume sein.

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

Die genaue Konfiguration dieser 4 Punkte kann hier im Detail eingesehen werden.

Messwertdarstellung und Alarmierung im Ubidot Dashboard

Mit dem Ubidot Dashboard können die Daten vom LoRa-Bootsmonitor angezeigt werden. Zur Erstellung neuer Anzeigen und Diagramme kann auf der rechten Seite der grüne Plus-Knopf gedrückt werden. Damit lassen sich eine Vielzahl von Anzeigeelementen nutzen. Bei der Parametrierung wird nach einer Datenquelle gefragt. Als Quelle wird das Device angezeigt und es können aufgelistete Werte der Datenquelle für das Anzeigeelement benutzt werden.

Wer mehr zur Benutzung des Dashboards erfahren möchte kann die Hilfe von Ubidots benutzen.

Achtung: Generell ist zu beachten, dass nur 10 Anzeigeelemente in der Free-Version verwendet werden können. Bei Verletzung dieser Regel werden sonst keine Daten mehr angezeigt.

Eine selbst erstellte Dashboard-Seite könnte wie im folgenden Bild aussehen.

Abb.: Dashboard mit Daten vom LoRa-Bootsmonitor

Tipp: Erstellte Dashboards können auch per Link anderen Benutzern zur Verfügung gestellt werden. Die Dashboards können nur betrachtet und nicht verändert werden. Sie lassen sich auch in eigene Webseiten einbinden. Details siehe hier.

Für die Alarmierung bei Grenzwertüberschreitungen kann für alle Messwerte ein Triggersignal gesetzt werden, das eine Mail-Nachricht absetzt. Die Konfiguration der Alarmierung erfolgt unter Data -> Events. Wie die Konfiguration genau vorgenommen wird, kann der Hilfe zur Eventerstellung entnommen werden.

Achtung: In der Free-Version können nur E-Mail-Benachrichtigungen verschickt werden. Wer andere Alarmierungsmöglichkeiten benötigt, muss in die Pay-Version von Ubidots wechseln.