Configurar regras

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

Selecionar dispositivos de destino

Use a seção de dispositivos de destino para selecionar a que tipo de dispositivos essa regra se aplica. Os filtros permitem refinar ainda mais quais dispositivos devem ser incluídos. Os filtros usam propriedades no modelo de dispositivo para filtrar o conjunto de dispositivos. Os filtros em si não acionam uma ação. Na captura de tela a seguir, a regra tem como alvo dispositivos de geladeira . O filtro afirma que a regra deve incluir apenas Refrigeradores onde a propriedade do Estado Fabricado é igual a Washington.

Screenshot that shows a filter definition in a rule.

Use 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 deve ser acionada quando todas as condições forem verdadeiras ou qualquer uma das condições for verdadeira.

Na captura de tela a seguir, as condições verificam quando a temperatura é maior que 70° F e a umidade é inferior a 10%. Quando qualquer uma dessas afirmações é verdadeira, a regra é avaliada como verdadeira e desencadeia uma ação.

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

Nota

Atualmente, apenas as condições de telemetria são suportadas.

Usar uma propriedade de nuvem em um campo de valor

Você pode fazer referência a uma propriedade de nuvem a partir 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 dupla, somente as propriedades de nuvem do tipo double serão exibidas como opções na lista suspensa Valor.

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

Usar janelas agregadas

Você pode especificar uma agregação de tempo para acionar sua regra com base em uma janela de tempo. As condições da regra avaliam as janelas de tempo agregadas em dados de telemetria como janelas de queda. Se houver filtros de propriedade na regra, eles serão aplicados no final da janela de tempo. Na captura de tela a seguir, a janela de tempo é de cinco minutos. A cada cinco minutos, a regra avalia os últimos cinco minutos de dados de telemetria. Os dados só são avaliados uma vez na janela a que correspondem.

A diagram showing how tumbling windows are defined.

Criar uma ação de email

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

Screenshot that shows an email action for a rule.

Criar uma ação de webhook

Os Webhooks permitem conectar seu aplicativo IoT Central a outros aplicativos e serviços para monitoramento remoto e notificações. Os Webhooks notificam automaticamente outros aplicativos e serviços que você conecta sempre que uma regra é acionada em seu aplicativo IoT Central. Seu aplicativo IoT Central envia uma solicitação POST para o ponto de extremidade HTTP do outro aplicativo sempre que uma regra é acionada. A carga útil contém detalhes do dispositivo e detalhes do gatilho da regra.

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

  1. Navegue até RequestBin.

  2. Selecione Criar um RequestBin.

  3. Inicie sessão com um dos métodos disponíveis.

  4. Copie o URL do seu ponto de extremidade RequestBin.

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

    Screenshot that shows the webhook creation screen.

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

  7. Guardar a regra.

Agora, quando a regra é acionada, você vê uma nova solicitação aparecer no RequestBin.

Payload

Quando uma regra é acionada, ela faz uma solicitação HTTP POST para a URL de retorno de chamada. A solicitação contém uma carga JSON com os detalhes da telemetria, dispositivo, regra e aplicativo. A carga útil se parece com o seguinte trecho 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 de tempo, a carga útil conterá uma seção de telemetria semelhante a:

{
    "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 carga 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 uma ação de grupo do Azure Monitor

Esta seção descreve como usar os grupos de ação do Azure Monitorpara anexar várias ações a uma regra do IoT Central. Você pode anexar um grupo de ações 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 e-mail, 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 notificações por e-mail e SMS e chama um webhook:

Screenshot that shows an action group in the Azure portal.

Para usar um grupo de ações em uma regra do IoT Central, o grupo de ações 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ções na sua assinatura do Azure:

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

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

A tabela a seguir resume as informações enviadas para os tipos de ação suportados:

Tipo de ação Formato de saída
Correio Eletrónico 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: regra "${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ções:

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

Usar regras com módulos do IoT Edge

Uma restrição se aplica a regras aplicadas aos módulos do IoT Edge. As regras de 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 é uma telemetria de humidade no módulo B. Como as duas condições são de módulos diferentes, você tem um conjunto inválido de condições. A regra não é válida e gera um erro quando você tenta salvá-la.

Próximos passos

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