Definições de entrada para modelos de detectores em AWS IoT Events - AWS IoT Events

Aviso de fim do suporte: em 20 de maio de 2026, AWS encerrará o suporte para AWS IoT Events. Depois de 20 de maio de 2026, você não poderá mais acessar o AWS IoT Events console ou os AWS IoT Events recursos. Para obter mais informações, consulte AWS IoT Events Fim do suporte.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Definições de entrada para modelos de detectores em AWS IoT Events

Queremos criar um modelo de detector que possa ser usado para monitorar e controlar a temperatura em várias áreas diferentes. Cada área pode ter vários sensores que informam a temperatura. Presumimos que cada área é servida por uma unidade de aquecimento e uma unidade de resfriamento que podem ser ligadas ou desligadas para controlar a temperatura na área. Cada área é controlada por uma instância de detector.

Como as diferentes áreas que monitoramos e controlamos podem ter características diferentes que exigem parâmetros de controle diferentes, definimos o 'seedTemperatureInput' para fornecer esses parâmetros para cada área. Quando enviamos uma dessas mensagens de entrada para o AWS IoT Events, é criada uma nova instância do modelo de detector com os parâmetros que queremos usar nessa área. Confira aqui a definição dessa entrada.

Comando da CLI:

aws iotevents create-input --cli-input-json file://seedInput.json

Arquivo: seedInput.json

{ "inputName": "seedTemperatureInput", "inputDescription": "Temperature seed values.", "inputDefinition": { "attributes": [ { "jsonPath": "areaId" }, { "jsonPath": "desiredTemperature" }, { "jsonPath": "allowedError" }, { "jsonPath": "rangeHigh" }, { "jsonPath": "rangeLow" }, { "jsonPath": "anomalousHigh" }, { "jsonPath": "anomalousLow" }, { "jsonPath": "sensorCount" }, { "jsonPath": "noDelay" } ] } }

Resposta:

{ "inputConfiguration": { "status": "ACTIVE", "inputArn": "arn:aws:iotevents:us-west-2:123456789012:input/seedTemperatureInput", "lastUpdateTime": 1557519620.736, "creationTime": 1557519620.736, "inputName": "seedTemperatureInput", "inputDescription": "Temperature seed values." } }
Observações
  • Uma nova instância de detector é criada para cada 'areaId' exclusivo recebido em qualquer mensagem. Veja o campo 'key' na definição 'areaDetectorModel'.

  • A temperatura média pode variar de 'desiredTemperature' até 'allowedError' antes que as unidades de aquecimento ou resfriamento sejam ativadas para a área.

  • Se algum sensor relatar uma temperatura acima de 'rangeHigh', o detector relatará um pico e iniciará imediatamente a unidade de resfriamento.

  • Se algum sensor relatar uma temperatura abaixo de 'rangeLow', o detector relatará um pico e iniciará imediatamente a unidade de aquecimento.

  • Se algum sensor relatar uma temperatura acima de 'anomalousHigh' ou abaixo de 'anomalousLow', o detector relatará uma leitura anômala do sensor, mas ignorará a leitura da temperatura relatada.

  • O 'sensorCount' informa ao detector quantos sensores estão reportando para a área. O detector calcula a temperatura média na área fornecendo o fator de peso apropriado para cada leitura de temperatura que recebe. Por causa disso, o detector não precisará acompanhar o que cada sensor relata, e o número de sensores pode ser alterado dinamicamente, conforme necessário. No entanto, se um sensor individual ficar off-line, o detector não saberá sobre ou aceitará essa situação. Recomendamos que você crie outro modelo de detector específico para monitorar o status da conexão de cada sensor. Ter dois modelos de detectores complementares simplifica o projeto de ambos.

  • O valor de 'noDelay' pode ser true ou false. Depois que uma unidade de aquecimento ou resfriamento é ligada, ela deve permanecer ligada por um certo tempo mínimo para proteger a integridade da unidade e prolongar sua vida útil. Se 'noDelay' estiver configurado como false, a instância do detector impõe um atraso antes de desligar as unidades de resfriamento e aquecimento, para garantir que elas funcionem pelo tempo mínimo. O número de segundos de atraso foi codificado na definição do modelo do detector porque não podemos usar um valor variável para definir um temporizador.

O 'temperatureInput' é usado para transmitir dados do sensor para uma instância do detector.

Comando da CLI:

aws iotevents create-input --cli-input-json file://temperatureInput.json

Arquivo: temperatureInput.json

{ "inputName": "temperatureInput", "inputDescription": "Temperature sensor unit data.", "inputDefinition": { "attributes": [ { "jsonPath": "sensorId" }, { "jsonPath": "areaId" }, { "jsonPath": "sensorData.temperature" } ] } }

Resposta:

{ "inputConfiguration": { "status": "ACTIVE", "inputArn": "arn:aws:iotevents:us-west-2:123456789012:input/temperatureInput", "lastUpdateTime": 1557519707.399, "creationTime": 1557519707.399, "inputName": "temperatureInput", "inputDescription": "Temperature sensor unit data." } }
Observações
  • O 'sensorId' não é usado por uma instância de detector de exemplo para controlar ou monitorar um sensor diretamente. Ele é automaticamente passado para as notificações enviadas pela instância do detector. A partir daí, ele pode ser usado para identificar os sensores que estão falhando (por exemplo, um sensor que envia regularmente leituras anômalas pode estar prestes a falhar) ou que estão off-line (quando usado como entrada para um modelo de detector adicional que monitora o batimento cardíaco do dispositivo). O 'sensorId' também pode ajudar a identificar zonas quentes ou frias em uma área se suas leituras regularmente diferirem da média.

  • O 'areaId' é usado para rotear os dados do sensor para a instância apropriada do detector. Uma instância de detector é criada para cada 'areaId' exclusivo recebido em qualquer mensagem. Veja o campo 'key' na definição 'areaDetectorModel'.