Настройка правил

Правила в IoT Central — это настраиваемый инструмент реагирования, который активируется отслеживаемыми событиями подключенных устройств. В разделах ниже описано, как вычисляются правила. Вы можете определить одно или несколько действий, выполняемых при срабатывании правила. В этой статье описываются группы действий для электронной почты, веб-перехватчика и Azure Monitor. Дополнительные сведения о других типах см. в статье Использование рабочих процессов для интеграции приложения Azure IoT Central с другими облачными службами.

Выбор целевых устройств

Используйте раздел целевых устройств, чтобы выбрать тип устройств, к чему применяется это правило. Фильтры позволяют дополнительно уточнить, какие устройства должны быть выбраны. Для фильтрации набора устройств используются свойства в шаблоне устройства. Сами по себе фильтры не активируют действие. На следующем снимке экрана правило предназначено для устройств Холодильника . Фильтр указывает, что правило должно включать в себя только устройства Refrigerator (Холодильник), у которых свойство Manufactured State (Штат производства) имеет значение Washington (Вашингтон).

Screenshot that shows a filter definition in a rule.

Применение нескольких условий

Условия определяют, на каких устройствах активируется правило. К правилу можно добавить несколько условий и указать, должно ли правило запускаться, если истинны все условия или любое из них.

На следующем снимке экрана условия проверка, если температура превышает 70° F, а влажность меньше 10 %. Если любой из этих операторов имеет значение True, правило принимает значение True и активирует действие.

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

Примечание.

Сейчас поддерживаются только условия телеметрии.

Использование облачного свойства в поле значения

Вы можете указать облачное свойство в шаблоне устройства в поле Value (Значение) для условия. Типы облачного свойства и значения телеметрии должны совпадать. Например, если значение Temperature (Температура) относится к типу Double, то только облачные свойства типа Double отображаются как параметры в раскрывающемся списке Value (Значение).

Если выбрано значение телеметрии типа события, то в раскрывающемся списке Value (Значение) доступен параметр Any (Любой). Параметр Any (Любой) означает, что правило срабатывает, когда приложение получает событие этого типа, независимо от полезных данных.

Использование объединенных временных окон

Вы можете указать агрегат времени, чтобы активировать правило на основе временного окна. Условия правила предполагают вычисление временных окон агрегатов для данных телеметрии в качестве "переворачивающихся" окон. Если в правиле есть фильтры свойств, они применяются в конце временного окна. На следующем снимке экрана период времени составляет пять минут. Каждые пять минут правило оценивает данные телеметрии за прошедшие пять минут. Данные оцениваются только один раз в пределах временного окна, которому они соответствуют.

A diagram showing how tumbling windows are defined.

Создание действия отправки сообщения

При создании действия электронной почты, нужно использовать адрес электронной почты, который указан как идентификатор пользователя в приложении, и этот пользователь должен хотя бы один раз выполнить вход в приложение. Можно также указать заметку, которая будет добавлена в сообщение электронной почты. IoT Central показывает пример того, как выглядит электронная почта при активации правила:

Screenshot that shows an email action for a rule.

Создание действия веб-перехватчика

Веб-перехватчики позволяют подключить приложение IoT Central к другим приложениям и службам для удаленного мониторинга и уведомления. Веб-перехватчики автоматически уведомляют другие приложения и службы, к которым вы подключаетесь, при каждой активации правила в приложении IoT Central. Приложение IoT Central отправляет запрос POST к конечной точке HTTP другого приложения при каждой активации правила. Наполнение запроса будет содержать сведения об устройстве и об активации правила.

В этом примере вы подключаетесь к RequestBin для проверки уведомления:

  1. Перейдите к RequestBin.

  2. Выберите "Создать requestBin".

  3. Войдите с помощью одного из доступных методов.

  4. Скопируйте URL-адрес конечной точки RequestBin.

  5. Добавьте действие в правило.

    Screenshot that shows the webhook creation screen.

  6. Выберите действие веб-перехватчика, введите отображаемое имя и вставьте URL-адрес RequestBin как URL-адрес обратного вызова.

  7. Сохранить правило.

Теперь при срабатывании правила в RequestBin должен появиться новый запрос.

Полезная нагрузка

При срабатывании правила создает запрос HTTP POST к URL-адресу обратного вызова. Запрос содержит полезные данные JSON с данными телеметрии, сведениями об устройстве, правиле и приложении. Полезные данные выглядят так, как следующий фрагмент кода 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"
    }
}

Если правило отслеживает агрегированные данные телеметрии за определенный период времени, полезные данные содержат раздел телеметрии, который выглядит так, как показано ниже.

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

Уведомление об изменении формата данных

Если вы создали и сохранили один или несколько веб-перехватчиков до 3 апреля 2020 г., удалите веб-перехватчик и создайте новый. Старые веб-перехватчики используют устаревший формат полезных данных:

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

Создание группы действий Azure Monitor

В этом разделе описывается, как использовать группы действий Azure Monitorдля присоединения нескольких действий к правилу IoT Central. Группу действий можно подключить к нескольким правилам. Группа действий — это коллекция параметров уведомлений, которые определены владельцем подписки Azure.

Вы можете создавать группы действий и управлять ими на портале Azure или с помощью шаблона Azure Resource Manager.

Группа действий может следующее.

  • Отправлять уведомления, например сообщения по электронной почте, текстовые сообщения или голосовые звонки.
  • Выполнять действие, например вызов веб-перехватчика.

На следующем снимке экрана показана группа действий, которая отправляет электронные письма и текстовые сообщения и вызывает веб-перехватчик:

Screenshot that shows an action group in the Azure portal.

Чтобы вы могли использовать группу действий в правиле IoT Central, она должна находиться в той же подписке Azure, что и приложение IoT Central.

При добавлении действия в правило в IoT Central выберите группы действий Azure Monitor.

Выберите группу действий из подписки Azure:

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

Выберите Сохранить. Теперь группа действий отображается в списке действий, выполняемых при активации правила.

В следующей таблице представлены сведения, которые передаются в поддерживаемые типы действий.

Тип действия Формат вывода
Адрес электронной почты Шаблон электронного письма IoT Central категории "Стандартный"
SMS Оповещение Azure IoT Central: ${applicationName} - "${ruleName}" triggered on "${deviceName}" at ${triggerDate} ${triggerTime}
Голосовая связь Оповещение Azure I.O.T Central: правило "${ruleName}" triggered on device "${deviceName}" at ${triggerDate} ${triggerTime}, in application ${applicationName}
webhook { "schemaId" : "AzureIoTCentralRuleWebhook", "data": {"regular webhook payload"}}

Следующий текст представляет собой пример текстового сообщения из группы действий:

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

Использование правил с модулями IoT Edge

На правила, применяемые к модулям IoT Edge, распространяется ограничение. Правила для телеметрии из разных модулей не оцениваются как допустимые правила. Если взять следующий пример, первое условие правила основано на данных телеметрии температуры из модуля А. Второе условие правила основано на данных телеметрии влажности из модуля Б. Так как два условия относятся к разным модулям, это недопустимый набор условий. Правило является недопустимым и выдает ошибку при попытке его сохранения.

Следующие шаги

Теперь, когда вы узнали, как настроить правило в приложении IoT Central Azure, вы можете узнать, как настроить дополнительные правила с помощью Power Automate или Azure Logic Apps.