Konfigurera regler

Regler i IoT Central fungerar som ett anpassningsbart svarsverktyg som utlöser aktivt övervakade händelser från anslutna enheter. I följande avsnitt beskrivs hur regler utvärderas. Du kan definiera en eller flera åtgärder som inträffar när en regel utlöses, den här artikeln beskriver åtgärdsgrupper för e-post, webhook och Azure Monitor. Mer information om andra åtgärdstyper finns i Använda arbetsflöden för att integrera ditt Azure IoT Central-program med andra molntjänster.

Välj målenheter

Använd avsnittet målenheter för att välja vilken typ av enheter den här regeln gäller för. Med filter kan du ytterligare förfina vilka enheter som ska ingå. Filtren använder egenskaper i enhetsmallen för att filtrera ned uppsättningen enheter. Själva filtren utlöser ingen åtgärd. I följande skärmbild riktar sig regeln mot kylskåpsenheter . Filtret anger att regeln endast ska innehålla kylskåp där egenskapen Manufactured State är lika med Washington.

Screenshot that shows a filter definition in a rule.

Använda flera villkor

Villkor avgör vilka enheter regeln utlöses på. Du kan lägga till flera villkor i en regel och ange om regeln ska utlösas när alla villkor är sanna eller något av villkoren är sanna.

I följande skärmbild kontrollerar förhållandena när temperaturen är större än 70° F och luftfuktigheten är mindre än 10 %. När någon av dessa instruktioner är sanna utvärderas regeln till true och utlöser en åtgärd.

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

Kommentar

För närvarande stöds endast telemetrivillkor.

Använda en molnegenskap i ett värdefält

Du kan referera till en molnegenskap från enhetsmallen i fältet Värde för ett villkor. Molnegenskapen och telemetrivärdet måste ha liknande typer. Om Temperatur till exempel är en dubbel, visas endast molnegenskaper av typen double som alternativ i listrutan Värde .

Om du väljer ett telemetrivärde för händelsetyp innehåller listrutan Värde alternativet Alla. Alternativet Alla innebär att regeln utlöses när programmet tar emot en händelse av den typen, oavsett nyttolast.

Använda samlingsfönster

Du kan ange en tidsaggregering för att utlösa regeln baserat på ett tidsfönster. Regelvillkor utvärderar aggregerade tidsfönster på telemetridata som rullande fönster. Om det finns några egenskapsfilter i regeln tillämpas de i slutet av tidsfönstret. I följande skärmbild är tidsfönstret fem minuter. Var femte minut utvärderas regeln för de senaste fem minuterna av telemetridata. Data utvärderas bara en gång i fönstret som de motsvarar.

A diagram showing how tumbling windows are defined.

Skapa en e-poståtgärd

När du skapar en e-poståtgärd måste e-postadressen vara ett användar-ID i programmet och användaren måste ha loggat in på programmet minst en gång. Du kan också ange en anteckning som ska inkluderas i e-postmeddelandet. IoT Central visar ett exempel på hur e-postmeddelandet ser ut när regeln utlöses:

Screenshot that shows an email action for a rule.

Skapa en webhook-åtgärd

Med Webhooks kan du ansluta din IoT Central-app till andra program och tjänster för fjärrövervakning och aviseringar. Webhooks meddelar automatiskt andra program och tjänster som du ansluter när en regel utlöses i din IoT Central-app. Din IoT Central-app skickar en POST-begäran till det andra programmets HTTP-slutpunkt när en regel utlöses. Nyttolasten innehåller information om enhetsinformation och regelutlösare.

I det här exemplet ansluter du till RequestBin för att testa meddelandet:

  1. Gå till RequestBin.

  2. Välj Skapa en RequestBin.

  3. Logga in med någon av de tillgängliga metoderna.

  4. Kopiera URL:en för din RequestBin-slutpunkt.

  5. Lägg till en åtgärd i regeln:

    Screenshot that shows the webhook creation screen.

  6. Välj webhook-åtgärden, ange ett visningsnamn och klistra in URL:en för RequestBin som motringnings-URL.

  7. Spara regeln.

Nu när regeln utlöses visas en ny begäran i RequestBin.

Nyttolast

När en regel utlöses gör den en HTTP POST-begäran till motringnings-URL:en. Begäran innehåller en JSON-nyttolast med information om telemetri, enhet, regel och program. Nyttolasten ser ut som följande JSON-kodfragment:

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

Om regeln övervakar aggregerad telemetri under en viss tidsperiod innehåller nyttolasten ett telemetriavsnitt som ser ut så här:

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

Meddelande om ändring av dataformat

Om du har skapat och sparat en eller flera webhooks före den 3 april 2020 tar du bort webhooken och skapar en ny. Äldre webhooks använder ett inaktuellt nyttolastformat:

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

Skapa en Azure Monitor-gruppåtgärd

I det här avsnittet beskrivs hur du använder Azure Monitor-åtgärdsgrupper för att koppla flera åtgärder till en IoT Central-regel. Du kan koppla en åtgärdsgrupp till flera regler. En åtgärdsgrupp är en samling aviseringsinställningar som definierats av ägaren av en Azure-prenumeration.

Du kan skapa och hantera åtgärdsgrupper i Azure-portalen eller med en Azure Resource Manager-mall.

En åtgärdsgrupp kan:

  • Skicka meddelanden som ett e-postmeddelande, ett SMS eller ringa ett röstsamtal.
  • Kör en åtgärd som att anropa en webhook.

Följande skärmbild visar en åtgärdsgrupp som skickar e-post- och SMS-meddelanden och anropar en webhook:

Screenshot that shows an action group in the Azure portal.

Om du vill använda en åtgärdsgrupp i en IoT Central-regel måste åtgärdsgruppen finnas i samma Azure-prenumeration som IoT Central-programmet.

När du lägger till en åtgärd i regeln i IoT Central väljer du Azure Monitor-åtgärdsgrupper.

Välj en åtgärdsgrupp från din Azure-prenumeration:

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

Välj Spara. Åtgärdsgruppen visas nu i listan över åtgärder som ska köras när regeln utlöses.

I följande tabell sammanfattas den information som skickas till de åtgärdstyper som stöds:

Åtgärdstyp Utdataformat
Email Standard e-postmall för IoT Central
SMS Azure IoT Central-avisering: ${applicationName} - "${ruleName}" triggered on "${deviceName}" at ${triggerDate} ${triggerTime}
Voice Azure I.O.T Central-avisering: regel "${ruleName}" triggered on device "${deviceName}" at ${triggerDate} ${triggerTime}, in application ${applicationName}
Webhook { "schemaId" : "AzureIoTCentralRuleWebhook", "data": {"regular webhook payload"}}

Följande text är ett exempel på ETT SMS från en åtgärdsgrupp:

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

Använda regler med IoT Edge-moduler

En begränsning gäller för regler som tillämpas på IoT Edge-moduler. Regler för telemetri från olika moduler utvärderas inte som giltiga regler. I följande exempel är regelns första villkor på en temperaturtelemetri från modul A. Det andra villkoret för regeln är en telemetri för luftfuktighet i modul B. Eftersom de två villkoren kommer från olika moduler har du en ogiltig uppsättning villkor. Regeln är inte giltig och genererar ett fel när du försöker spara regeln.

Nästa steg

Nu när du har lärt dig hur du konfigurerar en regel i ditt Azure IoT Central-program kan du lära dig hur du konfigurerar avancerade regler med Hjälp av Power Automate eller Azure Logic Apps.