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

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.

CLIcomando:

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.

CLIcomando:

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'.