Schweizer Taschenmesser für IoT-Lösungen

Das Museum ist vor allem morgens gut besucht. Zudem gab es zuletzt deutlich mehr Besucher
Das Museum ist vor allem morgens gut besucht. Zudem gab es zuletzt deutlich mehr Besucher

Telemetriedaten

Zusätzlich zu den Eigenschaften digitaler Zwillinge gibt es vor allem in IoT-Szenarien Momentaufnahmen aktueller Zustände: Beispielsweise eine aktuelle Temperaturmessung. Mit der DTDL können die einzelnen Eigenschaften oder Felder eines Modells auch als Telemetrie markiert und dadurch besonders behandelt werden. Diese Werte ändern sich mit hoher Frequenz und der aktuelle Wert hat eher weniger Bedeutung. Leider gibt es aktuell noch keine native Verknüpfung von Geräten im IoT Hub und Digital Twins im Digital Twin Service. Aushilfsweise erfolgt dies über eine Azure Function, die Telemetriedaten von Geräten vom IoT-Hub entgegennimmt und an den Digital Twins Service weitergibt. Die relevanten Schnittstellen des Digital Twins Service sind aktuell auf 1000 Aufrufe pro Sekunde beschränkt, lassen sich aber mittels Support Ticket auf Anfrage erhöhen. Bei größeren Datenmengen sollten Nutzer den Data Explorer verwenden und die Daten über Event Hub einspeisen. Der Data Explorer kann ein Mapping der Events auf die Spalten einer Tabelle definieren und es ist somit kein zusätzlicher Code notwendig.

Abfragen am Digital Twin durch den Data Explorer

Für dieses Szenario wurde ein digitaler Zwilling für das Museum erstellt, dieser mit Eigenschaften und Geo-Daten befüllt und die Daten von GPS-Geräten über einen Event Hub in den Data Explorer geleitet. Die ursprüngliche Frage war, wieviel Kunden sich derzeit im Museum aufhalten. Hierfür bietet Data Explorer die Möglichkeit, innerhalb einer Query auf die Daten im Azure Digital Twin Service zuzugreifen. Dazu definieren die Entwickeler zuerst Variablen für den zu betrachtenden Zeitraum und den Digital-Twin-Endpunkt.

Dann wird eine Query formuliert, die durch das evaluate Schlüsselwort und dem Azure Digital Twin Plugin des Data Explorers gegen den Azure Digital Twin ausgeführt wird. Im Beispiel interessiert das GeoJSON-Polygon des Museums, das im Coordinates-Feld des Zwillings gespeichert ist. Die Koordinaten danach in einen dynamic-Typ umgewandelt.

Der letzte Teil der Query ist eine Query-Abfrage gegen die Data Explorer Datenbank PersonTrackingData. Hier filtert die Query zuerst nach allen Positionen in den letzten zehn Minuten. Danach werden alle Einträge anhand ihrer Längen- und Breitengrade, die im Polygon des Museums liegen müssen, gefiltert. Dies geschieht durch die im Data Explorer integrierte Funktion geo_point_in_polygon. Die Funktion count zählt zum Abschluss alle Zeilen der Rückgabe-Query.

Nun kann durch das Ändern der Zeitstempel in der Query auch auf jeden anderen beliebigen Zeitpunkt in der Vergangenheit gefiltert werden und es können Visualisierungen direkt durch den Data Explorer ausgegeben werden. Dadurch kann die Frage beantwortet werden: „Zu welcher Zeit ist das Museum am besten besucht?“.

Statt am Ende der Query count aufzurufen, werden die Personendaten auf ein Vier-Stunden-Fenster aggregiert und es wird eine Serie daraus erstellt. Der Client wird abschließend durch den render Operator dazu aufgefordert, die Rückgabewerte als Zeitdiagramm zu rendern.

Alles an einem Platz

Mit Digital Twins steht also ein Dienst bereit, der auf die Anforderungen aktueller IoT-Szenarien abgestimmt wurde. Er ist in weitere Dienste des Azure-Ökosystems integriert. Das gleiche gilt für Data Explorer: Neben Digital Twins können auch viele weitere Dienste als Datenquellen eingebunden werden und manuelle Abfragen verschiedener Systeme entfallen. Er glänzt zudem durch die mächtige Query-Language, der Geschwindigkeit und der Skalierung. Gemeinsam dürften die beiden Dienste das Herzstück vieler kommender IoT-Lösungen darstellen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert