Die icom Data Suite ermöglicht das Senden von Daten an den Microsoft Azure IoT Hub von einem INSYS Smart Device und das Empfangen von Befehlen, die vom Microsoft Azure IoT Hub an das INSYS Smart Device gesendet wurden.

Situation

Der Wert eines Datenpunkts eines INSYS Smart Device soll durch die icom Data Suite an den Microsoft Azure IoT Hub gesendet werden. Der IoT Hub hingegen sendet eine Meldung an das Smart Device, um einen Ausgang des Routers umzuschalten.

Lösung

Folgende einfache Beispielanwendung überträgt den Zählerstand eines Timers der icom Data Suite in regelmäßigen Abständen an den IoT Hub. Die icom Data Suite wird so konfiguriert, dass sie den Zustand eines Ausgangs jedes mal ändert, wenn sie eine bestimmte Meldung vom IoT Hub erhält.

Konfiguration von Microsoft Azure

Folgende Vorbedingungen werden vorausgesetzt:

  • Sie verfügen über einen Microsoft Azure Account

  • Der IoT Hub ist in der Azure-Umgebung installiert [1]

  • Der Azure IoT Explorer ist auf Ihrem lokalen Computer installiert [2]

Im Folgenden wird im IoT Hub ein neues Gerät (Device) angelegt sowie mit Hilfe des IoT Explorer ein Security Token für dieses Gerät erzeugt.

  1. Die Microsoft Azure Webseite mit einem Browser aufrufen: https://portal.azure.com

  2. Mit Ihren Microsoft-Zugangsdaten anmelden.

  3. Den IoT Hub unter Alle Ressourcen auswählen.

    cg de ids cloud sending value to azure 01

  4. IoT-Geräte im Abschnitt Explorer auswählen.

    cg de ids cloud sending value to azure 02

  5. Klicken Sie auf Neu in der Kopfzeile.

    cg de ids cloud sending value to azure 10

  6. Eine beschreibende Device ID für Ihr Gerät eingeben; weitere Einstellungen müssen nicht vorgenommen werden.

    cg de ids cloud sending value to azure 03

  7. Klicken Sie auf Speichern.

  8. Unter Richtlinien für gemeinsamen Zugriff durch einen Klick auf die Richtlinie iothubowner die Connection Strings (Verbindungszeichenfolgen) des IoT Hubs anzeigen und dann auf das Kopieren-Symbol () hinter Verbindungszeichenfolge – Primärschlüssel kopieren.

    cg de ids cloud sending value to azure 04

  9. Die Software Azure IoT Explorer öffnen.

  10. Die oben kopierte Verbindungszeichenfolge – Primärschlüssel in das Feld Select or type an IoT hub connection string einfügen (wenn der Azure IoT Explorer zum ersten Mal mit diesem IoT Hub verwendet wird) und auf Connect klicken.

    cg ids cloud sending value to azure iot hub 01

  11. Im IoT Explorer auf das Gerät klicken und unter Connection String with SAS token​ auf den Pfeil nach unten () klicken, um die Parameter für die Generierung des Tokens anzuzeigen.

  12. Im Feld Symmetric key Primary key auswählen, eine ausreichend lange Gültigkeitsdauer im Feld Expiration (minutes) eingeben und auf Generate klicken. [3]

    cg ids cloud sending value to azure iot hub 02

  13. Dieses Azure IoT Explorer Fenster für die weitere Verwendung offen lassen, da dieses Token für die Konfiguration der icom Data Suite benötigt wird. Der String muss beginnend mit SharedAccessSignature sr= (hinter SharedAccessSignature=) bis zum Ende kopiert werden.

Beispiel-String

HostName=<client>.azure-devices.net;DeviceId=xxx;SharedAccessSignature=SharedAccessSignature sr=<client>.azure-devices.net%2Fdevices%2Fxxx\&sig=Uc9yPCZABVtTo7XasecB%2Fe3ldBLXTYndVmxNc37uw80%3D\&se=1511321749

Konfiguration der icom Data Suite

Es wird vorausgesetzt, dass Sie Zugriff auf das Web-Interface der icom Data Suite haben. Das Smart Device (Ihr icom OS-Router) muss über eine Internet-Verbindung verfügen. Folgende Anweisungen setzen voraus, dass sich die icom Data Suite in den Grundeinstellungen befindet und über die erforderliche Lizenz verfügt.

  1. Das Web-Interface der icom Data Suite mit einem Browser aufrufen:

  2. Im Menü DatenpunkteDigitale I/Os unter Ausgänge einen neuen Ausgang hinzufügen ():

    • Beschreibung: Output 3.1

    • Ausgang: 3.1 [4]

  3. Auf Einstellungen speichern klicken.

    cg de ids cloud sending value to azure 08

  4. Im Menü DatenpunktTimer einen neuen Timer hinzufügen () und diesen bearbeiten ():

    • Beschreibung: Count sample timer

    • Typ: Intervall, jede 30 Sekunden ausgelöst [5]

  5. Auf Einstellungen speichern klicken.

  6. Im Menü DatenpunktTimer einen neuen Timer hinzufügen () und diesen bearbeiten ():

    • Beschreibung: Message trigger timer

    • Typ: Intervall, jede 4 Sekunden ausgelöst

  7. Auf Einstellungen speichern klicken.

  8. Im Menü NachrichtenMQTT einen neuen Broker hinzufügen () und diesen bearbeiten ():

    • Beschreibung: Azure

    • Server: <client>.azure-devices.net [6]

    • Port: 8883

    • Version: v3.1.1

    • Benutzername: <client>.azure-devices.net/<Device Id>/api-version=2018-06-30 [7]

    • Passwort: Den oben gekennzeichneten Teil des mit dem Azure IoT Explorer oben erzeugte SAS Tokens eingeben.

    • Client-ID: <Device Id> [8]

    • SSL/TLS verwenden:

  9. Auf Einstellungen speichern klicken.

    cg de ids cloud sending value to azure 06

  10. Im Menü NachrichtenMQTT einen neuen Meldung hinzufügen () und diese bearbeiten ():

    • Beschreibung: Azure message

    • Topic: devices/<Device Id>/messages/events/

    • Nachricht:
      {
      "count": $timer1
      }

  11. Auf Einstellungen speichern klicken. [5]

    cg de ids cloud sending value to azure 07

  12. Im Menü Ereignis ein neues Ereignis hinzufügen () und dieses bearbeiten ():

    • Beschreibung: Send message to Azure

    • Ereignis: Timer ist abgelaufen

      • Timer: timer2 - Message trigger timer

    • Aktion: Nachricht versenden

      • Nachricht …​ versenden: mqttMsg1 - Azure message

  13. Auf Einstellungen speichern klicken.

  14. Im Menü Ereignis ein neues Ereignis hinzufügen () und dieses bearbeiten ():

    • Beschreibung: Receive message from Azure

    • Ereignis: MQTT-Nachricht wurde empfangen

      • Von MQTT-Broker: mqttBrkr1 - Azure

      • Topic: devices/<Device Id>/messages/#

      • Text: Switch [9]

    • Aktion: Digitalen Datenpunkt setzen

      • Datenpunkt: output1 - Output 3.1 und umschalten

  15. Auf Einstellungen speichern klicken.

  16. Das Profil aktivieren ().

Erfolgskontrolle

Den Verbindungszustand mit dem Azure IoT Explorer prüfen.

  1. Im Azure IoT Explorer im Menü Devices auf Refresh () klicken und prüfen, ob der Connection state des Geräts Connected (verbunden) ist.

  2. Auf das Gerät klicken und im Abschnitt Telemetry auf Start () klicken, um zu prüfen, ob Nachrichten empfangen werden.

    cg ids cloud sending value to azure iot hub 03

  3. Im Abschnitt Cloud-to-device message den Message body Switch eingeben und auf Send message to device () klicken, um zu prüfen, ob das Smart Device auf die Nachricht reagiert, indem es den konfigurierten Ausgang umschaltet.

    cg ids cloud sending value to azure iot hub 04 Der Zustand des Ausgangs kann im Menü StatusAktuelle Werte der icom Data Suite überprüft werden.

Fehlersuche

  • Im Menü StatusAktuelle Werte der icom Data Suite prüfen, ob die icom Data Suite mit dem MQTT-Broker (IoT Hub) verbunden ist. Wenn nicht, die Konfiguration des MQTT-Brokers überprüfen.

  • Wenn Probleme beim Versand der MQTT-Nachricht auftreten, die Konfiguration von Topic und Nachricht überprüfen. Der letzte Schrägstrich (/) des Topic wird häufig übersehen, ist aber wichtig.

  • Darauf achten, den richtigen Teil des mit Hilfe des Azure IoT Explorer erzeugten Token-Strings zu kopieren.

  • Im Menü StatusLog-Ansicht der icom Data Suite den MQTT Log anzeigen und die Log-Einträge überprüfen.

    cg de ids cloud sending value to azure 09


Zurück zu den Configuration Guides für die icom Connectivity Suite

Zurück zur Übersicht


1. Der IoT Hub kann unter Alle Ressourcen hinzugefügt werden. Dazu auf Hinzufügen () klicken und IoT Hub im Suchfeld eingeben (Screenshot).
2. Klicken Sie auf der Github-Seite auf releases, um die Windows MSI-Datei und Linux-Pakete zu finden (Screenshot).
3. Die Gültigkeitsdauer beschränkt die Gültigkeit des Tokens. Nach deren Ablauf ist keine Verbindung zum IoT Hub mehr möglich.
4. Es kann auch ein anderer Ausgang verwendet werden. Die Nummer des Ausgangs hängt von der Hardware-Konfiguration des INSYS Smart Device ab.
5. Bei einem Übertragungsintervall von 30 Sekunden und einem übertragenen Messwert können bei einer Mobilfunkverbindung ca. 10 MByte Datenvolumen auflaufen. Der Wert steigt bei Änderung der Häufigkeit oder mehreren Messwerten.
6. Die Server-Adresse ist der Hostname Ihres IoT Hubs. Diesen aus dem IoT Hub unter Übersicht durch einen Klick auf das Kopieren-Symbol ( ) hinter Hostname kopieren (Screenshot). Der erste Teil der Server-Adresse ist auch die ID Ihres Geräts im IoT Hub.
7. Der Benutzername setzt sich zusammen aus der Server-Adresse (hostname), der ID Ihres Geräts im IoT Hub und dem api-version String zusammen; Groß- und Kleinschreibung wird berücksichtigt.
8. Die ID Ihres Geräts wie im IoT Hub unter Konfiguration von Microsoft Azure oben eingegeben; Groß- und Kleinschreibung wird berücksichtigt. Die ID Ihres Geräts im IoT Hub ist auch der erste Teil der Server-Adresse oben.
9. Dieser Text-String muss von Azure zum Smart Device gesendet werden, damit das Smart Device die Aktion auslöst; Groß- und Kleinschreibung wird berücksichtigt.