Azure IoT Hub
Das Azure IoT Hub-Modul dient dem Senden von Nachrichten an einen Azure IoT Hub.
Eingehende Nachrichten werden über das Modul gesammelt und in einen Zwischenspeicher geschrieben. Alle 2,5 Sekunden werden die enthaltenen Nachrichten gebündelt zum IoT Hub gesendet und der Zwischenspeicher geleert. Außerdem besteht die Möglichkeit einer Datenkomprimierung. Vor dem Senden wird die Batchgröße überprüft. Ist diese größer als 256 KB, wird der Batch gesplittet. Diese gesplitteten Batches werden aller 0,5 Sekunden gesendet. Das Timeout für das Senden ist auf 5 Sekunden gesetzt.
Des Weiteren besteht die Möglichkeit Funktionen für eine Cloud2Device-Kommunikation zu konfigurieren.
Konfigurationsparameter
Connection
Für die Verbindung mit dem Azure IoT Hub sind die in nachfolgender Tabelle beschriebenen Parameter zu konfigurieren.
Parameter | Beschreibung |
---|---|
Device Connection |
Zugangspfad sowie die Authentifizierung des Gerätes am entsprechenden IoT-Hub. Zu finden ist dieser im angelegten Device des IoT Hubs im Azure Portal [1] unter Menü (links oben) → Alle Dienste → IoT Hub. Die Auswahl IoT Hub führt zu Explore IoT Devices. Dort muss das entsprechende Gerät gewählt und der Connection String (Primary Key) kopiert werden. |
Proxy |
Die Verwendung eines Proxys bei der Verbindung zwischen Gerät und Azure IoT-Hub ist optional. |
Protocol |
Bei der Datenüberragung zum Azure IoT Hub werden folgende Protokolle unterstützt:
|
Compression |
Eine Kompression von Telemetry-Nachrichten vor dem Senden ist mittels Deflate oder GZip möglich.
|
Die gruppierte Anzeige für die Connection String Info zeigt Metainformationen aus dem Device Connection String an. Wichtig ist hier auf die Anzeige „isValid“ zu achten.
Bei der Verwendung des HTTP-Protokolls ist keine Cloud2Device-Kommunikation (siehe Permissions) möglich. Das bedeutet:
-
Keine TWIN-Updates
-
keine Cloud2Device Messages
-
keine Direct Method Calls
Permissions
Es besteht die Möglichkeit, eine Cloud2Device-Kommunikation mit dem Azure IoT Hub mit folgenden Konfigurationsoptionen zu erlauben:
- Receive Cloud Messages
-
Erlaubt das Empfangen von Cloud Messages.
- Receive Configuration from Desired Properties
-
Erlaubt die Verarbeitung von Desired Property Updates des Device Twins. Bei dieser Option steht das HTTP-Protokoll nicht zur Verfügung.
- Submit Message Headers as Azure Message Properties
-
Edge Message Headers werden als Message Properties übermittelt
- Send ModuleStatus to Reported Properties
-
Erlaubt das Senden des Modulstatus in die Reported Properties des Device Twins. Bei dieser Option steht das HTTP-Protokoll nicht zur Verfügung.
Nachrichten / Topics
Topics sind logische Instanzen, in welchen zusammengehörende Nachrichten gesammelt und verarbeitet werden. Es können Topics für verschiedene Datenkategorien/-verwendungszwecke erstellt werden, welche in Tabelle 2 erläutert sind.
Um die Nachrichten eines Input-Moduls, konkreter Input Topics eines Input-Moduls, zu sammeln und zu verarbeiten, muss der Name des gewünschten Input Topics im Azure IoT Hub-Modul als "New Topic" oder "Output Topic" definiert werden.
Kategorie | Beschreibung |
---|---|
Telemetry Messages |
Neue Topics können durch Eingabe des Topic Namens und einem Klick auf „+“ hinzufügt werden. Im Anschluss muss das Dateneingabe-Modul definiert werden, dessen Daten ausgewertet werden sollen. |
Cloud2Device Messages (optional) |
Das Output Topic legt fest, unter welchen Topic ankommende Cloud Messages publiziert werden. |
Direct Methods |
Die Methoden können über Azure aufgerufen werden. Der Name der Direct Method kann in der lokalen RoboGate Edge UI erfasst werden. Es erfolgt ein Mapping zwischen Azure Direct Method und Edge Method. |
Blob Upload |
Der IoT Hub bietet die Möglichkeit, größere Datenmengen in einen verbunden Azure Blob Storage zu speichern. Eingehende Nachrichten werden als Datei im Blob Storage abgelegt. Name und Speicherort kann mit einem Pattern festgelegt werden. |
Für den Blob Upload ist ein bestimmtes Pattern anzugeben. Dabei kann sich an nachfolgender Übersicht orientiert werden.
Default Pattern: {prefix}{ticks}
Folder Separator: /
Variable | Content Default |
---|---|
{year} |
Current UTC Year (4 Digits) |
{month} |
Current UTC Month (2 Digits) |
{day} |
Current UTC Day (2 Digits) |
{hour} |
Current UTC 24h Hour (2 Digits) |
{minute} |
Current UTC Minute (2 Digits) |
{second} |
Current UTC Second (2 Digits) |
{ticks} |
Count of 100ns Intervals since 0001-01-01 00:00:00 UTC (64-bit number) |
{prefix} |
Edge Message Header prefix |
{name} |
Edge Message Header name |
{ext} |
Edge Message Header ext |
{hub} |
IoT Hub Name |
{host} |
IoT Hub DeviceId |
{Source} |
Edge Message Header Source |
{scope} |
Edge Message Header scope |
Device Provisioning (DPS)
Um eine Bereitstellung ohne Konfiguration des IoT-Hubs bzw. ohne werkseitige Konfiguration zu erreichen, bietet Azure den Device Provisioning Service an. DPS ermöglicht eine skalierbare und sichere Bereitstellung von mehreren RoboGate Edge.
Damit der DPS verwendet werden kann, muss der "Device Connection String" in der Connection-Konfiguration leer sein. Die Verbindungszeichenfolge wird dann vom DPS bezogen. Damit diese bereit gestellt werden kann, müssen mindestens zwei Einstellungen der folgenden DPS Konfiguration übergeben werden:
-
Scope
-
EnrollmentType (Art der Bereitstellung)
Kategorie | Beschreibung |
---|---|
Scope ID |
Legt den DPS ID-Bereich fest. Diese Einstellung muss zwingend übergeben werden. Dieser muss von Azure bezogen werden. (ID-Bereich) |
Mode |
EnrollmentType:
|
ID |
Die ID ist folgendermaßen anzugeben:
|
Symmetric Key (base64) |
Ist ein Schlüssel zur Authentifzierung des Gerätes. Je nach Registrierungs-Breitstellung-Konfiguration kann dieser Key weggelassen werden, da er automatisch erzeugt wird (siehe Enrollment Type: Individual). |
Advanced settings |
Endpunkt (URL) für den DPS. Wenn dieser nicht übergeben wird, findet der default-Endpoint Verwendung. |
Konfiguration in der UI
Nach Auswahl des Moduls Azure IoT Hub auf der Startseite oder über die linke Menüleiste der RoboGate Edge UI kann mit einem Klick auf „New“ eine Verbindung zu einem Azure IoT Hub konfiguriert werden.
Connection konfigurieren
Im ersten Schritt ist die Verbindung hinsichtlich der zuvor beschriebenen Parameter zu konfigurieren. Neue Topics für die Auswertung der Daten aus den Input-Modulen können per Klick auf „+“ hinzugefügt werden. Beispielhaft ist in Abbildung 1 das Output-Topic „Modbus_1“ eingegeben.
Nach Fertigstellung der Konfiguration des Azure IoT Hub kann diese gespeichert werden (Abbildung 2). Durch das Speichern der Modul-Konfiguration werden die Daten der ausgewählten Topics an Microsoft Azure gesendet und stehen zur Auswertung im IoT Hub bereit.
Im Bereich "Module State" lässt sich erkennen, ob das Modul eine Verbindung zu Azure herstellen konnte.
Topic löschen
Topics können aus der Konfiguration des Azure IoT Hub-Moduls entfernt werden. Dazu muss das Kreuz hinter dem zu löschenden Topic geklickt werden. Dadurch wird die markierte Zeile gelöscht (Abbildung 3). Durch das anschließende Klicken auf den Speicher-Button wird die geänderte Konfiguration übernommen.
Konfiguration zurücksetzen
Über die Schaltfläche in der horizontalen Menüleiste lässt sich die komplette Konfiguration des Moduls auf Werkseinstellungen zurücksetzen. Nach einem Klick auf die Schaltfläche folgt ein Bestätigungsdialog mit "Yes" und "No" zur Rückfrage ob der Vorgang wirklich ausgeführt werden soll.
Damit wird auch die gesamte Historie auf dem RoboGate Edge gelöscht!