Regels configureren

Regels in IoT Central fungeren als een aanpasbaar antwoordprogramma dat activeert op actief bewaakte gebeurtenissen van verbonden apparaten. In de volgende secties wordt beschreven hoe regels worden geëvalueerd. U kunt een of meer acties definiëren die plaatsvinden wanneer een regel wordt geactiveerd. In dit artikel worden e-mail-, webhook- en Azure Monitor-actiegroepen beschreven. Zie Werkstromen gebruiken om uw Azure IoT Central-toepassing te integreren met andere cloudservices voor meer informatie over andere actietypen.

Doelapparaten selecteren

Gebruik de sectie Doelapparaten om te selecteren op welk type apparaten deze regel van toepassing is. Met filters kunt u verder verfijnen welke apparaten moeten worden opgenomen. De filters gebruiken eigenschappen op de apparaatsjabloon om de set apparaten omlaag te filteren. Filters zelf activeren geen actie. In de volgende schermopname is de regel gericht op Koelkastapparaten . Het filter geeft aan dat de regel alleen koelkasten moet bevatten waar de eigenschap Manufactured State gelijk is aan Washington.

Screenshot that shows a filter definition in a rule.

Meerdere voorwaarden gebruiken

Voorwaarden bepalen op welke apparaten de regel wordt geactiveerd. U kunt meerdere voorwaarden toevoegen aan een regel en opgeven of de regel moet worden geactiveerd wanneer aan alle voorwaarden wordt voldaan of aan een van de voorwaarden wordt voldaan.

In de volgende schermopname controleren de voorwaarden wanneer de temperatuur groter is dan 70° F en de vochtigheid kleiner is dan 10%. Wanneer een van deze instructies waar is, resulteert de regel in waar en wordt een actie geactiveerd.

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

Notitie

Momenteel worden alleen telemetrievoorwaarden ondersteund.

Een cloudeigenschap gebruiken in een waardeveld

U kunt verwijzen naar een cloudeigenschap van de apparaatsjabloon in het veld Waarde voor een voorwaarde. De cloudeigenschap en telemetriewaarde moeten vergelijkbare typen hebben. Als temperatuur bijvoorbeeld een dubbele waarde is, worden alleen cloudeigenschappen van het type dubbel weergegeven als opties in de vervolgkeuzelijst Waarde .

Als u een telemetriewaarde voor het gebeurtenistype kiest, bevat de vervolgkeuzelijst Waarde de optie Any. De optie Alle betekent dat de regel wordt geactiveerd wanneer uw toepassing een gebeurtenis van dat type ontvangt, ongeacht de nettolading.

Statistische vensters gebruiken

U kunt een tijdaggregatie opgeven om uw regel te activeren op basis van een tijdvenster. Regelvoorwaarden evalueren geaggregeerde tijdvensters op telemetriegegevens als tumblingvensters. Als er eigenschapsfilters in de regel staan, worden deze toegepast aan het einde van het tijdvenster. In de volgende schermopname is het tijdvenster vijf minuten. Elke vijf minuten evalueert de regel op de laatste vijf minuten telemetriegegevens. De gegevens worden slechts eenmaal geëvalueerd in het venster waarop deze overeenkomen.

A diagram showing how tumbling windows are defined.

Een e-mailactie maken

Wanneer u een e-mailactie maakt, moet het e-mailadres een gebruikers-id in de toepassing zijn en moet de gebruiker ten minste één keer zijn aangemeld bij de toepassing. U kunt ook een notitie opgeven die u wilt opnemen in het e-mailbericht. IoT Central toont een voorbeeld van hoe het e-mailbericht eruitziet wanneer de regel wordt geactiveerd:

Screenshot that shows an email action for a rule.

Een webhookactie maken

Met webhooks kunt u uw IoT Central-app verbinden met andere toepassingen en services voor externe bewaking en meldingen. Webhooks melden automatisch andere toepassingen en services die u verbindt wanneer een regel wordt geactiveerd in uw IoT Central-app. Uw IoT Central-app verzendt een POST-aanvraag naar het HTTP-eindpunt van de andere toepassing wanneer een regel wordt geactiveerd. De nettolading bevat apparaatdetails en details van regeltriggers.

In dit voorbeeld maakt u verbinding met RequestBin om de melding te testen:

  1. Navigeer naar RequestBin.

  2. Selecteer Een RequestBin maken.

  3. Meld u aan met een van de beschikbare methoden.

  4. Kopieer de URL van uw RequestBin-eindpunt.

  5. Voeg een actie toe aan uw regel:

    Screenshot that shows the webhook creation screen.

  6. Kies de webhookactie, voer een weergavenaam in en plak de RequestBin-URL als de Callback-URL.

  7. Sla de regel op.

Wanneer de regel wordt geactiveerd, ziet u nu dat er een nieuwe aanvraag wordt weergegeven in RequestBin.

Nettolading

Wanneer een regel wordt geactiveerd, wordt er een HTTP POST-aanvraag naar de callback-URL verzonden. De aanvraag bevat een JSON-nettolading met de telemetrie, het apparaat, de regel en de toepassingsgegevens. De nettolading ziet eruit als het volgende JSON-fragment:

{
    "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"
    }
}

Als de regel gedurende een bepaalde periode geaggregeerde telemetrie bewaakt, bevat de nettolading een telemetriesectie die er als volgt uitziet:

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

Wijzigingsmelding voor gegevensindeling

Als u vóór 3 april 2020 een of meer webhooks hebt gemaakt en opgeslagen, verwijdert u de webhook en maakt u een nieuwe webhook. Oudere webhooks gebruiken een afgeschafte payload-indeling:

{
    "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>"
    }
}

Een Azure Monitor-groepsactie maken

In deze sectie wordt beschreven hoe u Azure Monitor-actiegroepen gebruikt om meerdere acties toe te voegen aan een IoT Central-regel. U kunt een actiegroep aan meerdere regels koppelen. Een actiegroep is een verzameling meldingsvoorkeuren die zijn gedefinieerd door de eigenaar van een Azure-abonnement.

U kunt actiegroepen maken en beheren in Azure Portal of met een Azure Resource Manager-sjabloon.

Een actiegroep kan:

  • Meldingen verzenden, zoals een e-mailbericht, een sms of een spraakoproep.
  • Voer een actie uit, zoals het aanroepen van een webhook.

In de volgende schermopname ziet u een actiegroep waarmee e-mail- en sms-meldingen worden verzonden en een webhook wordt aanroepen:

Screenshot that shows an action group in the Azure portal.

Als u een actiegroep in een IoT Central-regel wilt gebruiken, moet de actiegroep zich in hetzelfde Azure-abonnement bevinden als de IoT Central-toepassing.

Wanneer u een actie toevoegt aan de regel in IoT Central, selecteert u Azure Monitor-actiegroepen.

Kies een actiegroep uit uw Azure-abonnement:

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

Selecteer Opslaan. De actiegroep wordt nu weergegeven in de lijst met acties die moeten worden uitgevoerd wanneer de regel wordt geactiveerd.

De volgende tabel bevat een overzicht van de informatie die naar de ondersteunde actietypen wordt verzonden:

Actietype Uitvoerindeling
Email Standaard-e-mailsjabloon voor IoT Central
Sms Azure IoT Central-waarschuwing: ${applicationName} - "${ruleName}" triggered on "${deviceName}" at ${triggerDate} ${triggerTime}
Spraak Azure I.O.T Central-waarschuwing: regel "${ruleName}" triggered on device "${deviceName}" at ${triggerDate} ${triggerTime}, in application ${applicationName}
Webhook { "schemaId" : "AzureIoTCentralRuleWebhook", "data": {"regular webhook payload"}}

De volgende tekst is een voorbeeld van een sms-bericht van een actiegroep:

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

Regels gebruiken met IoT Edge-modules

Een beperking is van toepassing op regels die worden toegepast op IoT Edge-modules. Regels voor telemetrie van verschillende modules worden niet geëvalueerd als geldige regels. In het volgende voorbeeld bevindt de eerste voorwaarde van de regel zich op een temperatuurtelemetrie van module A. De tweede voorwaarde van de regel is gebaseerd op een vochtigheidstelemetrie op module B. Omdat de twee voorwaarden afkomstig zijn van verschillende modules, hebt u een ongeldige set voorwaarden. De regel is niet geldig en genereert een fout wanneer u de regel probeert op te slaan.

Volgende stappen

Nu u hebt geleerd hoe u een regel configureert in uw Azure IoT Central-toepassing, kunt u leren hoe u geavanceerde regels configureert met behulp van Power Automate of Azure Logic Apps.