Configurar regras

As regras no IoT Central atuam como ferramenta de resposta personalizável que aciona eventos ativamente monitorados nos dispositivos conectados. As seções a seguir descrevem como as regras são avaliadas. Você pode definir uma ou mais ações que ocorrem quando uma regra é disparada, este artigo descreve os grupos de ações de email, webhook e Azure Monitor. Para aprender sobre outros tipos de ação, confira Usar fluxos de trabalho para integrar o aplicativo do Azure IoT Central a outros serviços de nuvem.

Selecionar dispositivo de destino

Use a seção Dispositivos de destino para selecionar a que tipo de dispositivos essa regra se aplica. Os filtros permitem refinar ainda mais os dispositivos que devem ser incluídos. Os filtros usam as propriedades no modelo de dispositivo para filtrar o conjunto de dispositivos. Os próprios filtros não disparam uma ação. Na captura de tela a seguir, a regra tem como alvo dispositivos de geladeira . O filtro indica que a regra deve incluir apenas os Refrigeradores em que a propriedade Estado de fabricação é igual a Washington.

Screenshot that shows a filter definition in a rule.

Usar várias condições

As condições determinam em quais dispositivos a regra é acionada. Você pode adicionar várias condições a uma regra e especificar se a regra deverá ser disparada quando todas as condições forem verdadeiras ou se qualquer uma das condições for verdadeira.

Na captura de tela a seguir, as condições verificam quando a temperatura é maior do que 70 °F e a umidade é menor do que 10%. Quando qualquer uma dessas instruções é true, a regra é avaliada como true e dispara uma ação.

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

Observação

No momento, há suporte apenas para condições de telemetria.

Usar uma propriedade de nuvem em um campo de valor

Você pode fazer referência a uma propriedade de nuvem do modelo de dispositivo no campo Valor para uma condição. A propriedade de nuvem e o valor de telemetria devem ter tipos semelhantes. Por exemplo, se Temperatura for double, apenas as propriedades de nuvem do tipo double serão exibidas como opções no menu suspenso Valor.

Se você escolher um valor de telemetria do tipo de evento, a lista suspensa Valor incluirá a opção Qualquer. A opção Qualquer significa que a regra é acionada quando o aplicativo recebe um evento desse tipo, seja qual for a carga.

Funções de janelas de agregação

Você pode especificar uma agregação de tempo para disparar sua regra com base em uma janela de tempo. As condições de regra avaliam as janelas de tempo de agregação em dados telemétricos como janelas em cascata. Se houver filtros de propriedade na regra, eles serão aplicados no fim da janela de tempo. Na captura de tela a seguir, a janela de tempo é de cinco minutos. A cada cinco minutos, a regra é avaliada nos últimos cinco minutos dos dados telemétricos. Os dados são avaliados apenas uma vez na janela à qual correspondem.

A diagram showing how tumbling windows are defined.

Criar uma ação de email

Ao criar uma ação por email, o endereço de email deve ser uma ID de usuário no aplicativo, e o usuário deve entrar no aplicativo pelo menos uma vez. Você também pode especificar uma nota para incluir no email. O IoT Central mostra um exemplo da aparência do email quando a regra é acionada:

Screenshot that shows an email action for a rule.

Ação Criar um webhook

Os webhooks permitem que você conecte o aplicativo do IoT Central a outros aplicativos e serviços para fins de monitoramento remoto e notificações. Webhooks notificam automaticamente os outros aplicativos e serviços conectados sempre que uma regra é acionada no aplicativo IoT Central. O aplicativo do IoT Central envia uma solicitação POST ao ponto de extremidade HTTP do outro aplicativo sempre que uma regra for disparada. O conteúdo contém detalhes do dispositivo e detalhes do gatilho da regra.

Neste exemplo, você se conecta ao RequestBin para testar a notificação:

  1. Navegue até RequestBin.

  2. Selecione Criar um RequestBin.

  3. Entre usando um dos métodos disponíveis.

  4. Copie a URL do ponto de extremidade RequestBin.

  5. Adicione uma ação à sua regra:

    Screenshot that shows the webhook creation screen.

  6. Escolha a ação do webhook, insira um nome para exibição e cole a URL do RequestBin como a URL do Retorno de Chamada.

  7. Salvar a regra.

Agora, quando a regra é disparada, você deve ver uma nova solicitação aparecer no RequestBin.

Conteúdo

Quando uma regra é disparada, ela faz uma solicitação HTTP POST para a URL de retorno de chamada. A solicitação contém uma carga JSON com a telemetria, o dispositivo, a regra e os detalhes do aplicativo. A carga se parece com o seguinte snippet 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"
    }
}

Se a regra monitorar a telemetria agregada durante um período, a carga conterá uma seção de telemetria parecida com a seguinte:

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

Aviso de alteração do formato de dados

Se você tiver um ou mais webhooks criados e salvos antes de 3 de abril de 2020, exclua o webhook e crie um novo. Webhooks mais antigos usam um formato de conteúdo preterido:

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

Criar um grupo de ação do Azure Monitor

Esta seção descreve como usar grupos de ação do Azure Monitor para anexar várias ações a uma regra do IoT Central. Você pode anexar um grupo de ação a várias regras. Um grupo de ações é uma coleção de preferências de notificação definidas pelo proprietário de uma assinatura do Azure.

Você pode criar e gerenciar grupos de ação no portal do Azure ou com um modelo do Azure Resource Manager.

Um grupo de ação pode:

  • Envie notificações como um email, um SMS ou faça uma chamada de voz.
  • Execute uma ação como chamar um webhook.

A captura de tela a seguir mostra um grupo de ação que envia email e notificações de SMS e chama um webhook:

Screenshot that shows an action group in the Azure portal.

Para usar um grupo de ação em uma regra do IoT Central, o grupo de ação deve estar na mesma assinatura do Azure que o aplicativo IoT Central.

Ao adicionar uma ação à regra no IoT Central, selecione Grupos de ação do Azure Monitor.

Escolha um grupo de ação da sua assinatura do Azure:

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

Selecione Salvar. O grupo de ações agora aparece na lista de ações a serem executadas quando a regra é disparada.

A tabela a seguir resume as informações enviadas aos tipos de ação com suporte:

Tipo de ação Formato da saída
Email Modelo de email padrão do IoT Central
SMS Alerta do Azure IoT Central: ${applicationName} - "${ruleName}" triggered on "${deviceName}" at ${triggerDate} ${triggerTime}
Voz Azure I.O.T Central alert: rule "${ruleName}" triggered on device "${deviceName}" at ${triggerDate} ${triggerTime}, in application ${applicationName}
webhook { "schemaId" : "AzureIoTCentralRuleWebhook", "data": {"regular webhook payload"}}

O texto a seguir é um exemplo de mensagem SMS de um grupo de ação:

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

Usar regras com os módulos do IoT Edge

Uma restrição se aplica às regras que são aplicadas aos módulos do IoT Edge. As regras na telemetria de diferentes módulos não são avaliadas como regras válidas. Veja o exemplo a seguir: a primeira condição da regra está em uma telemetria de temperatura do Módulo A. A segunda condição da regra está em uma telemetria de umidade no Módulo B. Como as duas condições são de módulos diferentes, tem-se um conjunto de condições inválido. A regra não é válida e lança um erro quando você tenta salvá-la.

Próximas etapas

Agora que você aprendeu a configurar uma regra do aplicativo Azure IoT Central, pode aprender a Configurar regras avançadas usando o Power Automate ou os Aplicativos Lógicos do Azure.