Konfigurowanie reguł

Reguły w usłudze IoT Central służą jako narzędzie do dostosowywania odpowiedzi wyzwalające aktywne monitorowane zdarzenia z połączonych urządzeń. W poniższych sekcjach opisano sposób oceniania reguł. Możesz zdefiniować jedną lub więcej akcji, które mają miejsce po wyzwoleniu reguły. W tym artykule opisano wiadomości e-mail, element webhook i grupy akcji usługi Azure Monitor. Aby dowiedzieć się więcej o innych typach akcji, zobacz Integrowanie aplikacji usługi Azure IoT Central z innymi usługami w chmurze przy użyciu przepływów pracy.

Wybieranie urządzeń docelowych

Użyj sekcji Urządzenia docelowe, aby wybrać rodzaj urządzeń, do których ma zastosowanie ta reguła. Filtry umożliwiają dalsze uściślenie elementów, które powinny być dołączone do urządzeń. Filtry używają właściwości w szablonie urządzenia, aby filtrować zestaw urządzeń. Same filtry nie wyzwalają akcji. Na poniższym zrzucie ekranu reguła jest przeznaczona dla urządzeń Lodówka . Filtr stwierdza, że reguła powinna zawierać tylko lodówki , w których właściwość Manufactured State równa Waszyngton.

Screenshot that shows a filter definition in a rule.

Korzystanie z wielu warunków

Warunki określają, na których urządzeniach jest wyzwalana reguła. Możesz dodać wiele warunków do reguły i określić, czy reguła powinna być wyzwalana, gdy wszystkie warunki są prawdziwe, czy którekolwiek z warunków są spełnione.

Na poniższym zrzucie ekranu warunki sprawdzają, kiedy temperatura jest większa niż 70° F, a wilgotność jest mniejsza niż 10%. Jeśli dowolna z tych instrukcji jest prawdziwa, reguła oblicza wartość true i wyzwala akcję.

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

Uwaga

Obecnie obsługiwane są tylko warunki telemetrii.

Używanie właściwości chmury w polu wartości

Właściwość chmury można odwoływać się z szablonu urządzenia w polu Wartość warunku. Właściwość chmury i wartość telemetrii muszą mieć podobne typy. Jeśli na przykład temperatura jest podwójna, na liście rozwijanej Wartość są wyświetlane tylko właściwości chmury typu podwójne.

W przypadku wybrania wartości telemetrii typu zdarzenia lista rozwijana Wartość zawiera opcję Dowolna. Opcja Dowolna oznacza, że reguła jest uruchamiana, gdy aplikacja odbiera zdarzenie tego typu, niezależnie od ładunku.

Korzystanie z okien agregujących

Możesz określić agregację czasu, aby wyzwolić regułę na podstawie przedziału czasu. Warunki reguły oceniają zagregowane okna czasu na danych telemetrycznych jako okna wirowania. Jeśli w regule istnieją jakiekolwiek filtry właściwości, są one stosowane na końcu przedziału czasu. Na poniższym zrzucie ekranu przedział czasu wynosi pięć minut. Co pięć minut reguła oblicza dane telemetryczne z ostatnich pięciu minut. Dane są oceniane tylko raz w oknie, do którego odpowiada.

A diagram showing how tumbling windows are defined.

Tworzenie akcji wiadomości e-mail

Podczas tworzenia akcji poczty e-mail adres e-mail musi być identyfikatorem użytkownika w aplikacji, a użytkownik musi zalogować się do aplikacji co najmniej raz. Możesz również określić notatkę do uwzględnienia w wiadomości e-mail. Usługa IoT Central pokazuje przykład, jak wygląda wiadomość e-mail po wyzwoleniu reguły:

Screenshot that shows an email action for a rule.

Tworzenie akcji elementu webhook

Elementy webhook umożliwiają łączenie aplikacji usługi IoT Central z innymi aplikacjami i usługami na potrzeby zdalnego monitorowania i powiadomień. Elementy webhook automatycznie powiadamiają inne aplikacje i usługi, które łączą się za każdym razem, gdy reguła zostanie wyzwolona w aplikacji usługi IoT Central. Aplikacja usługi IoT Central wysyła żądanie POST do punktu końcowego HTTP innej aplikacji za każdym razem, gdy reguła zostanie wyzwolona. Ładunek zawiera szczegóły urządzenia i szczegóły wyzwalacza reguły.

W tym przykładzie połączysz się z narzędziem RequestBin , aby przetestować powiadomienie:

  1. Przejdź do pozycji RequestBin.

  2. Wybierz pozycję Utwórz element RequestBin.

  3. Zaloguj się przy użyciu jednej z dostępnych metod.

  4. Skopiuj adres URL punktu końcowego RequestBin.

  5. Dodaj akcję do reguły:

    Screenshot that shows the webhook creation screen.

  6. Wybierz akcję elementu webhook, wprowadź nazwę wyświetlaną i wklej adres URL RequestBin jako adres URL wywołania zwrotnego.

  7. Zapisz regułę.

Teraz, gdy reguła jest wyzwalana, w elemecie RequestBin pojawi się nowe żądanie.

Ładunek

Gdy reguła jest wyzwalana, wysyła żądanie HTTP POST do adresu URL wywołania zwrotnego. Żądanie zawiera ładunek JSON ze szczegółami telemetrii, urządzenia, reguły i aplikacji. Ładunek wygląda podobnie do następującego fragmentu kodu JSON:

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

Jeśli reguła monitoruje zagregowane dane telemetryczne w danym okresie, ładunek zawiera sekcję telemetrii, która wygląda następująco:

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

Powiadomienie o zmianie formatu danych

Jeśli masz co najmniej jeden element webhook utworzony i zapisany przed 3 kwietnia 2020 r., usuń element webhook i utwórz nowy. Starsze elementy webhook używają przestarzałego formatu ładunku:

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

Tworzenie akcji grupy usługi Azure Monitor

W tej sekcji opisano sposób dołączania wielu akcji do reguły usługi IoT Central za pomocą grup akcji usługi Azure Monitor. Grupę akcji można dołączyć do wielu reguł. Grupa akcji to kolekcja preferencji powiadomień zdefiniowanych przez właściciela subskrypcji platformy Azure.

Grupy akcji można tworzyć i zarządzać nimi w witrynie Azure Portal lub przy użyciu szablonu usługi Azure Resource Manager.

Grupa akcji może:

  • Wysyłanie powiadomień, takich jak wiadomość e-mail, wiadomość SMS lub nawiązywanie połączenia głosowego.
  • Uruchom akcję, taką jak wywoływanie elementu webhook.

Poniższy zrzut ekranu przedstawia grupę akcji, która wysyła powiadomienia e-mail i sms oraz wywołuje element webhook:

Screenshot that shows an action group in the Azure portal.

Aby użyć grupy akcji w regule usługi IoT Central, grupa akcji musi znajdować się w tej samej subskrypcji platformy Azure co aplikacja usługi IoT Central.

Po dodaniu akcji do reguły w usłudze IoT Central wybierz pozycję Grupy akcji usługi Azure Monitor.

Wybierz grupę akcji z subskrypcji platformy Azure:

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

Wybierz pozycję Zapisz. Grupa akcji jest teraz wyświetlana na liście akcji do uruchomienia po wyzwoleniu reguły.

Poniższa tabela zawiera podsumowanie informacji wysyłanych do obsługiwanych typów akcji:

Typ akcji Format wyjściowy
Poczta e-mail Szablon wiadomości e-mail usługi IoT Central w warstwie Standardowa
Wiadomości SMS Alert usługi Azure IoT Central: ${applicationName} - "${ruleName}" triggered on "${deviceName}" at ${triggerDate} ${triggerTime}
Głos Alert usługi Azure I.O.T Central: reguła "${ruleName}" triggered on device "${deviceName}" at ${triggerDate} ${triggerTime}, in application ${applicationName}
Webhook { "schemaId" : "AzureIoTCentralRuleWebhook", "data": {"regular webhook payload"}}

Poniższy tekst to przykładowa wiadomość SMS z grupy akcji:

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

Używanie reguł z modułami usługi IoT Edge

Ograniczenie dotyczy reguł stosowanych do modułów usługi IoT Edge. Reguły dotyczące danych telemetrycznych z różnych modułów nie są oceniane jako prawidłowe reguły. W poniższym przykładzie pierwszy warunek reguły dotyczy danych telemetrycznych temperatury z modułu A. Drugi warunek reguły dotyczy telemetrii wilgotności w module B. Ponieważ dwa warunki pochodzą z różnych modułów, masz nieprawidłowy zestaw warunków. Reguła jest nieprawidłowa i zgłasza błąd podczas próby zapisania reguły.

Następne kroki

Teraz, gdy wiesz już, jak skonfigurować regułę w aplikacji usługi Azure IoT Central, możesz dowiedzieć się, jak skonfigurować zaawansowane reguły przy użyciu usługi Power Automate lub Azure Logic Apps.