IoT-Hub

Allgemeines

Der IoT-Hub wird als Andockstelle für IoT-Geräte benötigt. Registrierte Geräte können Nachrichten an die Cloud versenden oder an andere verbundene Geräte übermitteln lassen. Neben dem Versenden von Daten über den IoT-Hub ist es auch möglich, Dateien in die Cloud zu verschieben, Telemetriedaten zu versenden oder andere Geräte über die Cloud zu steuern.

Um eine vollständige End-to-End-Lösung zu entwicklen, lässt sich der IoT-Hub in andere Azure-Dienste integieren. Denkbar ist die Integeration in:

  • Azure-Event-Grid um schnell und zuverlässig auf kritische Ereignisse zu reagieren
  • Azure-Logic-Apps um Geschäftsprozesse zu automatisieren
  • Azure-Machine-Learning um Modelle für maschinelles Lernen und künstliche Intelligenzen zu nutzen
  • Azure-Stream-Analytics für Analyseberechnungen der Datenströme aus den Geräten in Echtzeit
  • Azure-Event-Hubs um Nachrichten an mehrere Dienste weiterzuleiten und Cloud-Anwendungen zu triggern

Um IoT-Anwendungen auf dem eigenen Gerät auszuführen, wird von Microsoft das Azure IoT-Geräte-SDK zur Verfügung gestellt. Es werden folgende Sprachen unterstützt:

  • C
  • C#
  • Java
  • Python
  • Node.js

Einrichten des IoT-Hub

Wie eine neue IoT-Hub-Instanz in der Cloud einzurichten ist, entnehmen sie bitte dem Teamprojekt-2018. Steht der IoT-Hub zur Verfügung, können neue IoT-Geräte angelegt werden. Das kann, wie hier beschrieben, direkt über das Azure Portal erfolgen, oder über die Azure-IoT-Hub Integration von Visual Studio Code.

Um die zweite Möglichkeit zu nutzen, wird zuerst Visual Studio Code benötigt. Dies wird als Download für alle gängigen Betriebssysteme von Mircosoft bereitgestellt. Nach erfolgreicher Installation, müssen die Azure IoT Tools installiert werden. Sie sind ein AddOn für VS Code und können über den Extensions Marketplace bezogen werden.

Azure IoT Toolkit im VS Code Marketplace

Um auf den Marketplace zuzugreifen, muss die markierte Schaltfläche angewählt werden. Im Suchfeld wird Azure IoT Toolkit eingegeben und im Anschluss auf Install geklickt. Nach erfolgreicher Installation, stehen im Explorer unter dem Reiter ‚Azure IoT Hub‘ alle benötigten Extensions zur Verfügung. Es werden alle Geräte angezeigt, die im IoT Hub vorhanden sind. Wird mit der Maus über den Reiter gehovert, erscheinen drei Punkte. Über den ersten Punkt Show Welcome Page, gelangt man zu einem Tutorial, zum Erstellen von Geräten und zur Interaktion mit diesen.

Darstellung der Devices und der Endpoints des ausgewählten Iot Hubs

IoT Hub Nachrichten

Es können zwei verschieden Arten von Nachrichten versendet werden. Device-to-Cloud und Cloud-to-Device Nachrichten. Wie die Bezeichnung verrät, ist einmal die Cloud der Empfänger und das andere Mal ein Gerät.

Alle Device-to-Cloud Nachrichten, die an den IoT Hub gesendet werden, können auf verschiedene Routen verteilt werden. In der Standardkonfiguration ist nur die Default-Route aktiviert. Dieser werden alle eingehenden Nachrichten zugeteilt. Jede Route verfügt über einen Endpoint welcher in der Regel ein anderer Azure-Dienst ist. Der Endpoint der Default-Route ist ein Event Hub. Dieser löst Events aus, die dann von dritten Azure-Diensten bearbeitet werden.

Soll eine Cloud-to-Device Nachricht versendet werden, ist der Auslöser einer solcher Nachrichten nicht die Cloud selbst, sondern ein anderes Gerät. Dieses weißt die Cloud an, die spezifizierte Nachricht an ein zweites Gerät zu versenden. Für das Gerät, dass die Nachricht empfängt, entsteht dennoch der Eindruck, es würde die Nachricht von der Cloud bekommen. Über diesen Weg, lassen sich Nachrichten an Geräte versenden, die in fremden Netzwerken liegen, zu denen keine Routen bestehen und in denen keine Portfreigaben existieren.

Der Inhalt von Device-to-Cloud sowie von Cloud-to-Device Nachtrichten ist immer ein String, in den der Nutzer seine Daten, in einer Codierung seiner Wahl, schreiben kann. Gängig sind Formate wie die JSON- oder XML-Codierung. Der Empfänger ist wiederum dafür verantwortlich die Nachricht zu decodieren, um ihren Inhalt zu verarbeiten.