Tutorial: Überwachen von IoT-Geräten und Senden von Benachrichtigungen mit Azure Logic Apps

Verwenden Sie Azure Logic Apps, um eingehende Gerätetelemetrie über IoT Hub zu überwachen und Benachrichtigungen zu senden, wenn Warnungen ausgelöst werden.

End-to-end diagram

Azure Logic Apps unterstützt Sie bei der übergreifenden Orchestrierung von Workflows für lokale und cloudbasierte Dienste, für mehrere Unternehmen sowie für verschiedene Protokolle. Eine Logik-App beginnt mit einem Trigger, gefolgt von mindestens einer Aktion. Mehrere Aktionen können mithilfe integrierter Steuerungen sequenziert werden. Hierzu zählen etwa Bedingungen und Iteratoren. Diese Flexibilität macht Logic Apps zu einer idealen IoT-Lösung für die IoT-Überwachung. Beispielsweise kann das Eintreffen von Daten eines Geräts bei einem IoT Hub-Endpunkt Logik-App-Workflows auslösen, um die Daten in einem Azure Storage-Blob zu speichern, E-Mail-Benachrichtigungen mit einer Warnung vor Datenanomalien zu senden, den Einsatz eines Technikers zu planen, wenn ein Gerät einen Fehler meldet, und vieles mehr.

In diesem Tutorial führen Sie die folgenden Aufgaben aus:

Erstellen Sie eine Service Bus-Warteschlange. Erstellen Sie eine Route in Ihrem IoT-Hub, die Nachrichten an die Service Bus-Warteschlange sendet, wenn die Nachrichten anomale Temperaturwerte enthalten. Erstellen Sie eine Logik-App, die auf eingehende Nachrichten in der Warteschlange achtet und eine E-Mail-Warnung sendet.

Der auf Ihrem Gerät ausgeführte Clientcode legt für jede an Ihren IoT-Hub gesendete Telemetrienachricht die Anwendungseigenschaft temperatureAlert fest. Wenn der Clientcode eine Temperatur erkennt, die über einem bestimmten Schwellenwert liegt, wird diese Eigenschaft auf „true“ festgelegt. Andernfalls wird die Eigenschaft auf „false“ festgelegt.

Folgendes sieht Nachrichten ähnlich, die bei Ihrem IoT-Hub eingehen und die Telemetriedaten in Text und die temperatureAlert-Eigenschaft in den Anwendungseigenschaften enthalten (Systemeigenschaften werden nicht angezeigt):

{
  "body": {
    "messageId": 18,
    "deviceId": "Raspberry Pi Web Client",
    "temperature": 27.796111770668457,
    "humidity": 66.77637926438427
  },
  "applicationProperties": {
    "temperatureAlert": "false"
  }
}

Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.

Voraussetzungen

Erfüllen Sie die folgenden Voraussetzungen, bevor Sie mit diesem Tutorial beginnen.

  • Eine aktive Azure-Subscription.

  • Eine Azure IoT Hub-Instanz in Ihrem Abonnement.

  • Eine Client-App, die Temperaturdaten an Ihren Azure IoT-Hub sendet. In diesem Tutorial werden Geräte-zu-Cloud-Nachrichten basierend auf einer Nachrichteneigenschaft namens „temperatureAlert“ gefiltert. Einige Beispiele zum Generieren von Nachrichten mit dieser Eigenschaft sind:

Erstellen eines Service Bus-Namespace und einer Warteschlange

Erstellen Sie einen Service Bus-Namespace und eine Service Bus-Warteschlange. Später in diesem Artikel erstellen Sie eine Routingregel in Ihrem IoT-Hub, um Nachrichten zu leiten, die eine Temperaturwarnung für die Service Bus-Warteschlange enthalten. Eine Logik-App überwacht die Warteschlange auf eingehende Nachrichten und sendet eine Benachrichtigung für jede Warnung.

Erstellen eines Service Bus-Namespace

  1. Verwenden Sie im Azure-Portal die Suchleiste, um nach Service Bus zu suchen und die Option auszuwählen.

  2. Wählen Sie Erstellen aus, um einen Service Bus-Namespace zu erstellen.

  3. Geben Sie im Bereich Namespace erstellen folgende Informationen an:

    Parameter Wert
    Abonnement Wählen Sie dasselbe Abonnement aus, das Ihre IoT-Hub enthält.
    Ressourcengruppe Wählen Sie dieselbe Ressourcengruppe aus, die Ihre IoT-Hub enthält.
    Namespacename Geben Sie einen Namen für Ihren Service Bus-Namespace an. Der Namespace muss innerhalb von Azure eindeutig sein.
    Location Wählen Sie denselben Speicherort aus, den Ihr IoT-Hub verwendet.
    Preisstufe Wählen Sie Basic aus der Dropdownliste aus. Der Tarif „Basic“ ist für dieses Tutorial ausreichend.
  4. Klicken Sie auf Überprüfen + erstellen.

  5. Klicken Sie auf Erstellen.

  6. Warten Sie, bis die Bereitstellung abgeschlossen ist, und wählen Sie dann Zur Ressource wechseln aus.

Hinzufügen einer Service Bus-Warteschlange zum Namespace

  1. Wählen Sie auf der Seite Übersicht des Service Bus-Namespace die Option Warteschlange aus.

    Screenshot of the namespace overview page to add a queue.

  2. Geben Sie im Feld Name einen Namen für die Warteschlange an. Übernehmen Sie für die restlichen Felder die Standardwerte, und wählen Sie Erstellen.

  3. Wählen Sie im Service Bus-Namespace die Option Richtlinien für den gemeinsamen Zugriff im Abschnitt Einstellungen des Ressourcenmenüs aus.

  4. Wählen Sie die RootManageSharedAccessKey-Richtlinie aus, um die Details zu öffnen.

  5. Kopieren Sie den Wert der primären Verbindungszeichenfolge, und speichern Sie ihn, um ihn später in diesem Tutorial für die Konfiguration der Logik-App zu verwenden.

Hinzufügen eines benutzerdefinierten Endpunkts und einer Routingregel zu Ihrem IoT-Hub

Fügen Sie ihrem IoT-Hub einen benutzerdefinierten Endpunkt für die Service Bus-Warteschlange hinzu. Erstellen Sie dann eine Nachrichtenroutingregel, sodass Nachrichten, die eine Temperaturwarnung enthalten, an diesen Endpunkt weitergeleitet werden, wo sie von Ihrer Logik-App verwertet werden. Die Routingregel verwendet eine Routingabfrage (temperatureAlert = "true"), um Nachrichten auf der Grundlage des Werts der Anwendungseigenschaft temperatureAlert weiterzuleiten, die vom auf dem Gerät ausgeführten Clientcode festgelegt wurde. Weitere Informationen finden Sie unter Abfrage des Nachrichtenroutings basierend auf Nachrichteneigenschaften.

Hinzufügen eines benutzerdefinierten Endpunkts und einer benutzerdefinierten Route

  1. Navigieren Sie im Azure-Portal zu Ihrem IoT Hub.

  2. Wählen Sie im Ressourcenmenü unter Hubeinstellungen die Einstellung Nachrichtenrouting und dann Hinzufügen aus.

    Screenshot that shows location of the Add button, to add a new route in your IoT hub.

  3. Erstellen Sie auf der Registerkarte Endpunkt einen Endpunkt für Ihren Event Hub, indem Sie die folgenden Informationen angeben:

    Parameter Wert
    Endpunkttyp Wählen Sie Service Bus-Warteschlange aus.
    Endpunktname Geben Sie einen Namen für den neuen Endpunkt an, der Ihrer Service Bus-Warteschlange zugeordnet ist.
    Service Bus-Namespace Verwenden Sie das Dropdownmenü, um den Service Bus-Namespace auszuwählen, den Sie im vorherigen Abschnitt erstellt haben.
    Service Bus-Warteschlange Verwenden Sie das Dropdownmenü, um die Service Bus-Warteschlange auszuwählen, die Sie in Ihrem Namespace erstellt haben.

    Screenshot that shows how to create a service bus queue endpoint for your route.

  4. Wählen Sie Erstellen + Weiter aus.

  5. Geben Sie auf der Registerkarte Route die folgenden Informationen ein, um eine Route zu erstellen, die auf Ihren Service Bus-Warteschlangenendpunkt verweist:

    Parameter Wert
    Name Geben Sie einen eindeutigen Namen für die Route an.
    Datenquelle Behalten Sie die standardmäßige Datenquelle Gerätetelemetrienachrichten bei.
    Routingabfrage Geben Sie temperatureAlert = "true" als Abfragezeichenfolge ein.

    Screenshot that shows adding a route with a query.

  6. Wählen Sie Anreicherungen erstellen + überspringen aus.

Konfigurieren von Logic Apps für Benachrichtigungen

Im vorherigen Abschnitt haben Sie Ihren IoT-Hub eingerichtet, um Nachrichten, die eine Temperaturwarnung enthalten, an Ihre Service Bus-Warteschlange weiterzuleiten. In diesem Abschnitt richten Sie eine Logik-App ein, um die Service Bus-Warteschlange zu überwachen und eine E-Mail-Benachrichtigung zu senden, wenn der Warteschlange eine Nachricht hinzugefügt wird.

Erstellen einer Logik-App

  1. Suchen Sie im Azure-Portal nach Logic Apps, und wählen Sie diese Option aus.

  2. Wählen Sie + Hinzufügen aus, um eine neue Logik-App zu erstellen.

  3. Geben Sie die folgenden Informationen auf der Registerkarte Grundlagen der Seite Logik-App erstellen ein:

    Parameter Wert
    Ressourcengruppe Wählen Sie dieselbe Ressourcengruppe aus, die Ihre IoT Hub-Instanz enthält.
    Name Geben Sie einen Namen für Ihre Logik-App an.
    Region Wählen Sie einen Standort in Ihrer Nähe aus.
    Plantyp Wählen Sie den Verbrauch aus, der für dieses Lernprogramm ausreichend ist.

    Screenshot that shows creating a logic app in the Azure portal.

  4. Klicken Sie auf Überprüfen + erstellen.

  5. Klicken Sie auf Erstellen.

  6. Nachdem die Bereitstellung abgeschlossen ist, wählen Sie Zur Ressource wechseln aus, um Ihre Logik-App zu öffnen.

Konfigurieren des Logik-App-Triggers

  1. Öffnen Sie auf der Ressourcenseite ihrer Logik-App im Azure-Portal den Logik-App-Designer im Abschnitt Entwicklungstools des Ressourcenmenüs.

  2. Scrollen Sie im Designer nach unten zu Vorlagen, und wählen Sie Leere Logik-App aus.

    Screenshot that shows selecting the Blank Logic App template.

  3. Wählen Sie die Registerkarte Alle aus, um alle Connectors und Trigger anzuzeigen, und wählen Sie dann Service Bus aus.

    Select Service Bus to start creating your logic app in the Azure portal.

  4. Wählen Sie unter Trigger die Option Service Bus – Bei Empfang mindestens einer Nachricht in der Warteschlange (autom. abschließen) aus.

    Select the trigger for your logic app in the Azure portal.

  5. Erstellen Sie eine Service Bus-Verbindung.

    1. Geben Sie einen Verbindungsnamen an, und fügen Sie dann die Verbindungszeichenfolge ein, die Sie aus Ihrem Service Bus-Namespace kopiert haben.

    2. Klicken Sie auf Erstellen.

    3. Verwenden Sie im nächsten Bildschirm das Dropdownmenü, um die Warteschlange auszuwählen, die Sie im Service Bus-Namespace erstellt haben. Geben Sie dann unter Maximale Nachrichtenanzahl den Wert 175 ein.

      Screenshot that shows configuring queue settings in the Logic app designer.

  6. Wählen Sie Speichern im Menü des Logik-App-Designers aus, um Ihre Änderungen zu speichern.

Konfigurieren der Logik-App-Aktion

  1. Wählen Sie Neuer Schritt im Logik-App-Designer aus.

  2. Erstellen Sie eine SMTP-Dienstverbindung.

    1. Suchen Sie nach SMTP, und wählen Sie diese Option aus.

      Screenshot that shows selecting an SMTP connection in the logic app designer.

    2. Wählen Sie E-Mail senden (V3) als Aktion für diesen Schritt aus.

    3. Geben Sie einen Verbindungsnamen an, und füllen Sie dann die restlichen Felder mit den SMTP-Informationen für das E-Mail-Konto aus, das Sie zum Senden der Benachrichtigungen verwenden möchten.

      Verwenden Sie die folgenden Links, um Ihre SMTP-Informationen abhängig von Ihrem E-Mail-Anbieter zu finden:

      Hinweis

      Möglicherweise müssen Sie TLS/SSL deaktivieren, um die Verbindung herstellen zu können. Wenn dies der Fall ist und Sie TLS nach dem Herstellen der Verbindung wieder aktivieren möchten, führen Sie den optionalen Schritt am Ende dieses Abschnitts aus.

      Screenshot that shows configuring the SMTP connection settings in the logic app designer.

    4. Klicken Sie auf Erstellen.

  3. Konfigurieren Sie die Aktion E-Mail senden.

    1. Wählen Sie im Dropdownmenü Neuen Parameter hinzufügen im Schritt E-Mail senden die folgenden Parameter aus:

      • Von
      • An
      • Betreff
      • Text

      Klicken oder tippen Sie auf eine beliebige Stelle des Bildschirms, um das Auswahlfeld zu schließen.

      Choose SMTP connection email fields to include in email.

    2. Geben Sie die folgenden Informationen für die E-Mail-Parameter ein, die Sie im vorherigen Schritt ausgewählt haben:

      Parameter Wert
      Von Die E-Mail-Adresse, die Sie für die SMTP-Verbindung konfiguriert haben.
      An Die E-Mail-Adresse(n), an die Sie Benachrichtigungs-E-Mails senden möchten.
      Betreff High temperature detected.
      Text High temperature detected.

      Wenn das Dialogfeld Dynamische Inhalte hinzufügen geöffnet wird, wählen Sie Ausblenden aus, um es zu schließen. In diesem Tutorial verwenden Sie keine dynamischen Inhalte.

      Provide details for SMTP connection email fields.

  4. Wählen Sie Speichern aus, um die SMTP-Verbindung zu speichern.

  5. (Optional) Wenn Sie für die Verbindungsherstellung mit Ihrem E-Mail-Anbieter TLS deaktivieren mussten und es nun wieder aktivieren möchten, gehen Sie wie folgt vor:

    1. Wählen Sie im Bereich Logik-App unter Entwicklungstools die Option API-Verbindungen aus.

    2. Wählen Sie in der Liste mit den API-Verbindungen die SMTP-Verbindung aus.

    3. Wählen Sie im Bereich SMTP – API-Verbindung bearbeiten unter Allgemein die Option API-Verbindung bearbeiten aus.

    4. Aktivieren Sie im Bereich API-Verbindung bearbeiten das Kontrollkästchen SSL aktivieren?, geben Sie das Kennwort für Ihr E-Mail-Konto erneut ein, und wählen Sie Speichern aus.

      Edit SMTP API connection in your logic app in the Azure portal.

Ihre Logik-App kann nun Temperaturwarnungen aus der Service Bus-Warteschlange verarbeiten und Benachrichtigungen an Ihr E-Mail-Konto senden.

Testen der Logik-App

Beginnen Sie mit dem Senden von Temperaturnachrichten von Ihrem IoT-Gerät, um die Überwachungs- und Benachrichtigungspipeline zu testen.

  1. Starten Sie die Clientanwendung auf Ihrem Gerät. Der Clientcode gibt zufällige Telemetrienachrichten aus und legt die temperatureAlert-Eigenschaft auf „true“ fest, wenn die Temperatur 30 °C überschreitet.

  2. Daraufhin sollten Sie von der Logik-App gesendete E-Mail-Benachrichtigung erhalten.

    Hinweis

    Ihr E-Mail-Dienstanbieter muss ggf. die Identität des Absenders überprüfen, um sicherzustellen, dass die gesendete E-Mail von Ihnen stammt.

Bereinigen von Ressourcen

Wenn Sie die in diesem Tutorial erstellten Ressourcen nicht mehr benötigen, löschen Sie sie und die Ressourcengruppe im Portal. Wählen Sie hierzu die Ressourcengruppe mit Ihrer IoT Hub-Instanz aus, und wählen Sie Löschen aus.

Verwenden Sie alternativ hierzu die CLI:

# Delete your resource group and its contents
az group delete --name <RESOURCE_GROUP_NAME>

Nächste Schritte

In diesem Tutorial, haben Sie erfolgreich eine Logik-App erstellt, die Ihren IoT Hub und Ihr Postfach für die Temperaturüberwachung und Benachrichtigungen verbindet.

Informationen zu den weiteren ersten Schritten mit Azure IoT Hub und zum Kennenlernen aller erweiterten IoT-Szenarien finden Sie in den folgenden Artikeln: