Definizioni di input per i modelli di rilevatori in AWS IoT Events - AWS IoT Events

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Definizioni di input per i modelli di rilevatori in AWS IoT Events

Vogliamo creare un modello di rilevatore che possiamo utilizzare per monitorare e controllare la temperatura in diverse aree. Ogni area può avere diversi sensori che segnalano la temperatura. Partiamo dal presupposto che ogni area sia servita da un'unità di riscaldamento e un'unità di raffreddamento che possono essere accese o spente per controllare la temperatura nell'area. Ogni area è controllata da un'istanza del rilevatore.

Poiché le diverse aree che monitoriamo e controlliamo possono avere caratteristiche diverse che richiedono parametri di controllo diversi, definiamo e forniamo tali parametri per ciascuna area. 'seedTemperatureInput' Quando inviamo uno di questi messaggi di input a AWS IoT Events, viene creata una nuova istanza del modello di rilevatore con i parametri che vogliamo utilizzare in quell'area. Ecco la definizione di quell'input.

Comando CLI:

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

File: 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" } ] } }

Risposta:

{ "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." } }
Note
  • Viene creata una nuova istanza del rilevatore per ogni messaggio univoco 'areaId' ricevuto. Vedi il 'key' campo nella 'areaDetectorModel' definizione.

  • La temperatura media può variare di tanto in 'desiredTemperature' tanto 'allowedError' prima che le unità di riscaldamento o raffreddamento vengano attivate nell'area.

  • Se un sensore riporta una temperatura superiore a quella'rangeHigh', il rilevatore segnala un picco e avvia immediatamente l'unità di raffreddamento.

  • Se un sensore riporta una temperatura inferiore a'rangeLow', il rilevatore segnala un picco e avvia immediatamente l'unità di riscaldamento.

  • Se un sensore riporta una temperatura superiore 'anomalousHigh' o inferiore a'anomalousLow', il rilevatore segnala una lettura anomala del sensore, ma ignora la lettura della temperatura riportata.

  • 'sensorCount'Indica al rilevatore quanti sensori rilevano i dati relativi all'area. Il rilevatore calcola la temperatura media dell'area assegnando il fattore di peso appropriato a ciascuna lettura della temperatura che riceve. Per questo motivo, il rilevatore non dovrà tenere traccia di ciò che ogni sensore riporta e il numero di sensori può essere modificato dinamicamente, in base alle esigenze. Tuttavia, se un singolo sensore va offline, il rilevatore non lo saprà né lo terrà conto. Ti consigliamo di creare un altro modello di rilevatore specifico per monitorare lo stato della connessione di ciascun sensore. La presenza di due modelli di rilevatori complementari semplifica la progettazione di entrambi.

  • Il 'noDelay' valore può essere true o. false Dopo l'accensione, un'unità di riscaldamento o raffreddamento deve rimanere accesa per un certo periodo di tempo minimo per proteggere l'integrità dell'unità e prolungarne la durata operativa. Se 'noDelay' è impostato sufalse, l'istanza del rilevatore impone un ritardo prima di spegnere le unità di raffreddamento e riscaldamento, per garantire che funzionino per il tempo minimo. Il numero di secondi di ritardo è stato codificato nella definizione del modello di rilevatore perché non siamo in grado di utilizzare un valore variabile per impostare un timer.

'temperatureInput'Viene utilizzato per trasmettere i dati del sensore a un'istanza del rilevatore.

Comando CLI:

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

File: temperatureInput.json

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

Risposta:

{ "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." } }
Note
  • 'sensorId'Non viene utilizzato da un'istanza di rilevatore di esempio per controllare o monitorare direttamente un sensore. Viene automaticamente passato alle notifiche inviate dall'istanza del rilevatore. Da lì, può essere utilizzato per identificare i sensori che non funzionano (ad esempio, un sensore che invia regolarmente letture anomale potrebbe essere sul punto di guastarsi) o che sono andati offline (quando viene utilizzato come input per un modello di rilevatore aggiuntivo che monitora il battito cardiaco del dispositivo). Inoltre, 'sensorId' può aiutare a identificare le zone calde o fredde di un'area se le letture differiscono regolarmente dalla media.

  • 'areaId'Viene utilizzato per indirizzare i dati del sensore all'istanza del rilevatore appropriata. Viene creata un'istanza del rilevatore per ogni messaggio univoco 'areaId' ricevuto. Vedi il 'key' campo nella 'areaDetectorModel' definizione.