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 sertrue
oufalse
. 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 comofalse
, 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'
.