Configurer des règles

Dans IoT Central, les règles servent d’outil de réponse personnalisable qui déclenche des événements faisant l’objet d’une supervision active à partir d’appareils connectés. Les sections suivantes expliquent comment les règles sont évaluées. Vous pouvez définir une ou plusieurs actions qui se produisent lorsqu’une règle se déclenche : cet article décrit les groupes d’actions de messagerie, de webhook et Azure Monitor. Pour en savoir plus sur les autres types d’action, consultez Utiliser des workflows pour intégrer votre application Azure IoT Central à d’autres services cloud.

Sélectionner les appareils cibles

Utilisez la section appareils cibles pour sélectionner le type d’appareils auxquels cette règle s’applique. Des filtres vous permettent d’affiner davantage les appareils à inclure. Les filtres utilisent des propriétés sur le modèle d’appareil pour filtrer l’ensemble d’appareils. Les filtres ne déclenchent pas eux-mêmes une action. Dans la capture d’écran suivante, la règle cible les appareils réfrigérateur . Le filtre indique que la règle doit inclure uniquement les réfrigérateurs (Refrigerator) où la propriété Manufactured State (État de fabrication) a la valeur Washington.

Screenshot that shows a filter definition in a rule.

Utiliser plusieurs conditions

Les conditions déterminent les appareils sur lesquels la règle se déclenche. Vous pouvez ajouter plusieurs conditions à une règle et spécifier si la règle doit se déclencher lorsque toutes les conditions sont vraies ou lorsque l’une d’entre elles est vraie.

Dans la capture d’écran suivante, les conditions vérifient que la température est supérieure à 70 °F et que l’humidité est inférieure à 10 %. Lorsque l’une de ces instructions est vraie, la règle prend la valeur true et déclenche une action.

Screenshot shows a refrigerator monitor with conditions specified for temperature and humidity.

Remarque

Actuellement, seules les conditions de télémétrie sont prises en charge.

Utiliser une propriété Cloud dans un champ de valeur

Vous pouvez référencer une propriété de Cloud du modèle d’appareil dans le champ Valeur pour une condition. La propriété de Cloud et la valeur de télémétrie doivent être de types similaires. Par exemple, si Température est un double, seules les propriétés Cloud de type double s’affichent en tant qu’options dans la liste déroulante Valeur.

Si vous choisissez une valeur de télémétrie de type d’événement, la liste déroulante Valeur comprend l’option Toute. L’option Toute signifie que la règle se déclenche quand votre application reçoit un événement de ce type, quelle que soit la charge utile.

Utiliser le fenêtrage des temps d’agrégation

Vous pouvez spécifier une agrégation de temps pour déclencher votre règle en fonction d’une fenêtre de temps. Les conditions de règle évaluent les fenêtres de temps d’agrégation sur les données de télémétrie comme des fenêtres bascule. Si la règle contient des filtres de propriété, ceux-ci sont appliqués à la fin de la fenêtre de temps. Dans la capture d’écran suivante, la fenêtre de temps est de cinq minutes. Toutes les cinq minutes, la règle évalue les cinq dernières minutes de données télémétriques. Les données ne sont évaluées qu’une seule fois dans la fenêtre à laquelle elles correspondent.

A diagram showing how tumbling windows are defined.

Créer une action de messagerie

Lorsque vous créez une action de messagerie, l’adresse e-mail doit être un ID d’utilisateur dans l’application, et l’utilisateur doit s’être connecté à l’application au moins une fois. Vous pouvez également spécifier une note à inclure dans l’e-mail. IoT Central montre un exemple de ce que ressemble l’e-mail lorsque la règle se déclenche :

Screenshot that shows an email action for a rule.

Créer une action de webhook

Les webhooks vous permettent de connecter votre application IoT Central à d’autres applications et services à des fins de surveillance à distance et de notification. Les webhooks informent automatiquement les autres applications et services connectés dès lors qu’une règle est déclenchée dans votre application IoT Central. Votre application IoT Central envoie une requête POST à l’autre point de terminaison HTTP de l’application chaque fois qu’une règle se déclenche. La charge utile contient les détails de l’appareil et les détails du déclencheur de la règle.

Dans cet exemple, vous vous connectez à RequestBin pour tester la notification :

  1. Accédez à RequestBin.

  2. Sélectionnez Créer un RequestBin.

  3. Connectez-vous avec l’une des méthodes disponibles.

  4. Copiez l’URL de votre point de terminaison RequestBin.

  5. Ajoutez une action à votre règle :

    Screenshot that shows the webhook creation screen.

  6. Choisissez l’action de webhook, entrez un nom d’affichage et collez l’URL de RequestBin comme URL de rappel.

  7. Enregistrez la règle.

Maintenant, lorsque la règle se déclenche, une nouvelle requête apparaît dans RequestBin.

Charge utile

Lorsqu’une règle se déclenche, elle envoie une requête HTTP POST à l’URL de rappel. La requête contient une charge utile JSON avec les détails de la télémétrie, de l’appareil, de la règle et de l’application. La charge utile ressemble à l’extrait de code JSON suivant :

{
    "timestamp": "2020-04-06T00:20:15.06Z",
    "action": {
        "id": "<id>",
        "type": "WebhookAction",
        "rules": [
            "<rule_id>"
        ],
        "displayName": "Webhook 1",
        "url": "<callback_url>"
    },
    "application": {
        "id": "<application_id>",
        "displayName": "Contoso",
        "subdomain": "contoso",
        "host": "contoso.azureiotcentral.com"
    },
    "device": {
        "id": "<device_id>",
        "etag": "<etag>",
        "displayName": "Refrigerator Monitor - 1yl6vvhax6c",
        "instanceOf": "<device_template_id>",
        "simulated": true,
        "provisioned": true,
        "approved": true,
        "cloudProperties": {
            "City": {
                "value": "Seattle"
            }
        },
        "properties": {
            "deviceinfo": {
                "firmwareVersion": {
                    "value": "1.0.0"
                }
            }
        },
        "telemetry": {
            "<interface_instance_name>": {
                "humidity": {
                    "value": 47.33228889360127
                }
            }
        }
    },
    "rule": {
        "id": "<rule_id>",
        "displayName": "Humidity monitor"
    }
}

Si la règle supervise la télémétrie agrégée sur une période donnée, la charge utile contient une section de télémétrie qui ressemble à ceci :

{
    "telemetry": {
        "<interface_instance_name>": {
            "Humidity": {
                "avg": 39.5
            }
        }
    }
}

Avis de modification du format de données

Si vous avez créé et enregistré un ou plusieurs webhooks avant le 3 avril 2020, supprimez-les et créez-en d’autres. Les webhooks plus anciens utilisent un format de charge utile déconseillé :

{
    "id": "<id>",
    "displayName": "Webhook 1",
    "timestamp": "2019-10-24T18:27:13.538Z",
    "rule": {
        "id": "<id>",
        "displayName": "High temp alert",
        "enabled": true
    },
    "device": {
        "id": "rm1",
        "displayName": "Refrigerator Monitor - rm1",
        "instanceOf": "<device-template-id>",
        "simulated": true,
        "provisioned": true,
        "approved": true
    },
    "data": [{
        "@id": "<id>",
        "@type": ["Telemetry"],
        "name": "temperature",
        "displayName": "Temperature",
        "value": 66.27310467496761,
        "interfaceInstanceName": "sensors"
    }],
    "application": {
        "id": "<id>",
        "displayName": "x - Store Analytics Checkout",
        "subdomain": "<subdomain>",
        "host": "<host>"
    }
}

Créer un groupe d’actions Azure Monitor

Cette section explique comment utiliser des groupes d’actionsAzure Monitor pour attacher plusieurs actions à une règle IoT Central. Vous pouvez attacher un groupe d’actions à plusieurs règles. Un groupe d’actions est une collection de préférences de notification définies par le propriétaire d’un abonnement Azure.

Vous pouvez créer et gérer des groupes d’actions dans le portail Azure ou avec un modèle Azure Resource Manager.

Un groupe d’actions peut :

  • Envoyer des notifications, comme un e-mail, un SMS, ou passer un appel vocal.
  • Exécuter une action, comme appeler un webhook.

La capture d’écran suivante montre un groupe d’actions qui envoie des notifications par e-mail et par SMS, et qui appelle un webhook :

Screenshot that shows an action group in the Azure portal.

Pour utiliser un groupe d’actions dans une règle IoT Central, le groupe d’actions doit être dans le même abonnement Azure que l’application IoT Central.

Quand vous ajoutez une action à la règle dans IoT Central, sélectionnez Groupes d’actions Azure Monitor.

Choisissez un groupe d’actions dans votre abonnement Azure :

Screenshot that shows an action group in an IoT Central rule.

Cliquez sur Enregistrer. Le groupe d’actions apparaît maintenant dans la liste des actions à exécuter lorsque la règle est déclenchée.

Le tableau suivant récapitule les informations envoyées aux types d’actions pris en charge :

Type d'action Format de sortie
Email Modèle d’e-mail standard IoT Central
SMS Alerte Azure IoT Central : ${applicationName} - "${ruleName}" triggered on "${deviceName}" at ${triggerDate} ${triggerTime}
Voix Alerte Azure I.O.T Central : règle "${ruleName}" triggered on device "${deviceName}" at ${triggerDate} ${triggerTime}, in application ${applicationName}
webhook { "schemaId" : "AzureIoTCentralRuleWebhook", "data": {"regular webhook payload"}}

Le texte suivant est un exemple de message SMS provenant d’un groupe d’actions :

iotcentral: Azure IoT Central alert: Contoso - "Low pressure alert" triggered on "Motion sensor 2" at March 20, 2019 10:12 UTC

Utiliser des règles avec des modules IoT Edge

Une restriction s’applique aux règles qui sont appliquées aux modules IoT Edge. Les règles sur les données de télémétrie provenant de différents modules ne sont pas évaluées en tant que règles valides. Prenons l’exemple suivant : la première condition de la règle concerne une télémétrie de température provenant du module A. La deuxième condition de la règle concerne une télémétrie d’humidité provenant du module B. Comme les deux conditions proviennent de modules différents, votre ensemble de conditions est non valide. La règle n’est pas valide et génère une erreur lorsque vous essayez de l’enregistrer.

Étapes suivantes

Maintenant que vous avez appris à configurer une règle dans votre application Azure IoT Central, vous pouvez apprendre à Configurer des règles avancées à l’aide de Power Automate ou d’Azure Logic Apps.