ThingsBoard Widgets selbst gemacht

Inhalt

Widgets ermöglichen es Ihnen, die Open Source Plattform ThingsBoard an Ihre eigenen Bedürfnisse anzupassen und das Potenzial von ThingsBoard voll auszuschöpfen.

Die Internet of Things Lösung beinhaltet von Haus aus schon zahlreiche Widgets. Sollte es allerdings kein passendes Widget für Ihren konkreten Anwendungsfall geben, so können Sie die IoT-Plattform mit eigenen Widgets erweitern.

Wie Sie die die Chart-Bibliotheken von ThingsBoard mit eigenen Widgets flexibel erweitern, erfahren Sie in diesem Beitrag.

Was sind ThingsBoard Widgets?

ThingsBoard Widgets sind zusätzliche UI-Module. Sie können diese leicht in jedes IoT-Dashboard einbinden. Die Widgets ermöglichen Ihnen unter anderem Daten zu visualisieren, Alarm-Management- und Remote-Gerätesteuerung zu betreiben und selbst erstellten, statischen HTML-Content anzuzeigen.

Eigene Visualisierungsformen für ThingsBoard gestalten: So gelingt es

ThingsBoard bietet von Haus aus schon über viele Visualisierungsmöglichkeiten. Sie haben jedoch die völlige Freiheit, die visuelle Gestaltung genauso anzupassen, wie Sie es möchten.
Diese Vorteile bietet Ihnen die IoT-Plattform ThingsBoard bei der Erweiterung des Chartangebots:

  • Ergänzen Sie fehlende Visualisierungsformen
  • Erweitern Sie den Funktionsumfang bereits bestehender Widgets
  • Implementieren Sie eigene Logiken
  • Nutzen Sie eine Vielzahl externer Javascript-Bibliotheken wie z.B. 3D.js
  • Schreiben Sie eigenen Quellcode mit der integrierten Entwicklungsumgebung von ThingsBoard
  • Kopieren und verschieben Sie selbst erstellte Widgets zwischen verschiedenen Systemen mit der multikompatiblen JSON-Konfigurationsdatei
Verschiedene Custom Visualisierungen ThingsBoard
Verschiedene Custom Visualisierungen |© it-novum

Praxisbeispiel: So erstellen Sie in ThingsBoard Ihre eigenen Custom Widgets

Sind Sie in ThingsBoard (Pro) eingeloggt, finden Sie auf der linken Seite unter „Custom Widgets“ den Bereich, mit dem Sie Ihre eigenen Widgets erstellen können:

Widget Bundles in ThingsBoad
Widget Bundles in ThingsBoad | © it-novum

Anschließend finden Sie auf der rechten Seite eine Übersicht der Widget Bundles. Bei den Widget Bundles handelt es sich um Themenbereiche zu verschiedenen Widgets. So beinhaltet das „Alarm widgets“-Bundle beispielsweise alle Widgets Alarmen.
Rechts oben können Sie mit „Create new widgets bundle“ ein neues Widget erstellen.

Im nächsten Schritt stellt ThingsBoard Ihnen 5 Widget types zur Verfügung, aus denen Sie auswählen können:

  • Time series
  • Latest values
  • Control widget
  • Alarm widget
  • Static widget

In unserem Beispiel wählen wir „Latest values“.

Auf dem folgenden Bildschirm sehen Sie die die integrierte Entwicklungsumgebung. Dort können Sie im oberen Teil beispielsweise eigenen HTML-Code und CSS schreiben oder verschiedene Einstellungen für das Widget vornehmen. Im unteren Bereich sehen Sie den eigentlichen JavaScript Code und eine Vorschau des zu erstellenden Widgets. ThingsBoard beninhaltet bereits einige JavaScript-Funktionen wie die onInit()-Funktion, die beim Laden des Widgets ausgeführt wird oder onDataUpdated, die aufgerufen wird, wenn ein neuer Sensor-Wert in ThingsBoard eintrifft.

Integrierte Entwicklungsumgebung von ThingsBoard
Integrierte Entwicklungsumgebung von ThingsBoard | © it-novum

So verwenden Sie externe JavaScript-Bibliotheken in ThingsBoard

Als anschauliches Beispiel einer externen JavaScript-Bibliothek dient „Apex Charts“. Die Bibliothek hat folgende Vorteile:

  • Besitzt moderne interaktive Charts
  • Auch bei Streaming Daten flottes Tempo
  • Leichter Einstieg und verständliche Dokumentation
  • Kommt auch bei ThingsBoard Trendz Analytics zum Einsatz

Beispiele für Apex Charts in ThingsBoard

XY-Charts: Standardmäßig bildet ThingsBoard bei Liniendiagrammen nur Informationen im Zeitverlauf, der X-Achse, ab. Wenn Sie zwei Sensorwerte miteinander vergleichen möchten, ist die Apex Charts Bibliothek genau das richtige für Sie. In einem Scatter Chart erstellen Sie beispielsweise Diagramme, wo Sie Sensorwerte ohne die standardmäßig feste X-Achse mit dem Zeitverlauf.

Scatter Chart mit Apex Charts in ThingsBoard
Scatter Chart mit Apex Charts in ThingsBoard | © it-novum

Kalender: Verfügen Sie beispielsweise über eine Flotte mit zyklischen Wartungsterminen, ist ein Kalender unverzichtbar. Mit Apex Charts erstellen Sie im Handumdrehen übersichtliche Kalender für ThingsBaord, in der Sie solche Termine eintragen können.

Kalender mit Apex Charts in ThingsBoard
Kalender mit Apex Charts in ThingsBoard | © it-novum

Forecasts: Standardmäßig stellt ThingsBoard Echtzeit-Daten und Vergangenheitswerte dar. ThingsBoard ist aber auch in der Lage, Zukunftswerte zu speichern. So können Sie Forecasts, beispielsweise mit Machine Learning und AI-Methoden, generieren. Mit einem Custom Widget können Sie die zukünftigen Werte in visueller Form darstellen.

Forecast Visualisierung mit Apex Line Chart
Forecast Visualisierung mit Apex Line Chart (unteres Fenster) | © it-novum

Custom Actions mit Formularen in ThingsBoard erstellen – Metadaten auf bequeme Weise pflegen

Formulare in ThingsBoard sind Custom Actions mit HTML-Templates. Sie können diese Custom Actions praktisch jedem Widget leicht hinzufügen. Vorteile der Formulare sind:

  • Verbesserte User Experience und einfachere Bedienung für den Endanwender
  • Der Endanwender benötigt keine tiefergehendes ThingsBoard-Know-how
  • Auf nur einer Seite (Single-Page) bedienbar. Ohne weitere Schritte im ThingsBoard-Menü
  • Zugriff auf die ThingsBoard Datenbank per Rest-API mit CRUD Operationen (Create, Read, Update & Delete)

Mit einem Formular können Sie beispielsweise neue Benutzer bequem anlegen. Der angelegte Benutzer soll in einem weiteren Schritt einer Benutzergruppe hinzugefügt werden und verschiedene Berechtigungen erhalten. Zudem sollen Beziehungen zu den Benutzern untereinander hergestellt und die Benutzer verschiedenen Devices des Kunden zugeordnet werden können.

Erstelltes Formular, um Benutzer in ThingsBoard anzulegen
Erstelltes Formular, um Benutzer in ThingsBoard anzulegen | © it-novum

Um Anwender bzw. Benutzer anzulegen, Rechte zu vergeben und Beziehungen herzustellen, sind normalerweise viele manuelle Schritte nötig. Mithilfe einer Custom Action automatisieren Sie diese Prozess. Dazu erstellen Sie mittels Angular den Code für die Template Syntax, da das ThingsBoard-Frontend auf dem Angular-Framework beruht. Beispielcode bzw. verschiedene vorhandene Funktionen erleichtern Ihnen dabei den Einstieg in das Programmieren von Custom Actions. Der Quellcode zu ThingsBoard wird bei GitHub gehostet und die Dokumentation geben Ihnen weitere Hilfen an die Hand.

Custom Actions in ThingsBoard programmieren
Custom Actions in ThingsBoard programmieren| © it-novum

FAQ: Häufig gestellte Fragen zu ThingsBoard Widgets

Wenn die Widgets innerhalb der Entwicklungsumgebung erstellt wurden, kann entweder das gesamte Bundle mit allen Widgets oder einzelne Widgets als JSON-Datei exportiert werden. Danach kann die JSON-Datei einfach in einer anderen Umgebung wieder importiert werden.

Innerhalb der Entwicklungsumgebung kann auf die klassischen Entwickler-Tools des jeweiligen Browsers wie bei Firefox oder Chrome zugegriffen werden. So kann beispielsweise der Inhalt der Variablen vom JavaScript-Code per Log-Befehl in der Konsole ausgegeben werden oder den Debugger des Browsers nutzen.

Über ein entsprechendes Angebot stellen wir Ihnen gerne unser komplettes Bundle zur Verfügung. Auch die Dokumentation oder die „grüne Wiese“ von ThingsBoard enthalten weitere Code-Beispiele.