Définitions d'entrée pour les modèles de détecteurs dans AWS IoT Events - AWS IoT Events

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Définitions d'entrée pour les modèles de détecteurs dans AWS IoT Events

Nous voulons créer un modèle de détecteur que nous pouvons utiliser pour surveiller et contrôler la température dans plusieurs zones différentes. Chaque zone peut être équipée de plusieurs capteurs qui signalent la température. Nous supposons que chaque zone est desservie par une unité de chauffage et une unité de refroidissement qui peuvent être activées ou désactivées pour contrôler la température de la zone. Chaque zone est contrôlée par une instance de détecteur.

Étant donné que les différentes zones que nous surveillons et contrôlons peuvent avoir des caractéristiques différentes nécessitant des paramètres de contrôle différents, nous les définissons 'seedTemperatureInput' de manière à fournir ces paramètres pour chaque zone. Lorsque nous envoyons l'un de ces messages d'entrée à AWS IoT Events, une nouvelle instance de modèle de détecteur contenant les paramètres que nous voulons utiliser dans cette zone est créée. Voici la définition de cette entrée.

Commande CLI :

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

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

Réponse :

{ "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." } }
Remarques
  • Une nouvelle instance de détecteur est créée pour chaque message unique 'areaId' reçu. Voir le 'key' champ dans la 'areaDetectorModel' définition.

  • La température moyenne peut varier 'desiredTemperature' par rapport à 'allowedError' avant que les unités de chauffage ou de refroidissement ne soient activées pour la zone.

  • Si un capteur signale une température supérieure à'rangeHigh', le détecteur signale un pic et démarre immédiatement l'unité de refroidissement.

  • Si un capteur signale une température inférieure à'rangeLow', le détecteur signale un pic et démarre immédiatement l'unité de chauffage.

  • Si un capteur signale une température supérieure 'anomalousHigh' ou inférieure à'anomalousLow', le détecteur signale une lecture anormale du capteur, mais ignore la lecture de température signalée.

  • 'sensorCount'Indique au détecteur le nombre de capteurs signalés pour la zone. Le détecteur calcule la température moyenne dans la zone en attribuant le facteur de pondération approprié à chaque mesure de température qu'il reçoit. De ce fait, le détecteur n'aura pas à suivre ce que chaque capteur signale, et le nombre de capteurs peut être modifié dynamiquement, selon les besoins. Cependant, si un capteur individuel est déconnecté, le détecteur ne le saura pas ou n'en tiendra pas compte. Nous vous recommandons de créer un autre modèle de détecteur spécialement pour surveiller l'état de connexion de chaque capteur. Le fait de disposer de deux modèles de détecteurs complémentaires simplifie la conception des deux.

  • La 'noDelay' valeur peut être true oufalse. Une fois qu'une unité de chauffage ou de refroidissement est allumée, elle doit rester allumée pendant un certain temps minimum pour protéger l'intégrité de l'unité et prolonger sa durée de vie. Si cette valeur 'noDelay' est définie surfalse, l'instance du détecteur applique un délai avant d'éteindre les unités de refroidissement et de chauffage, afin de garantir qu'elles fonctionnent le moins longtemps possible. Le nombre de secondes de retard a été codé en dur dans la définition du modèle de détecteur car nous ne sommes pas en mesure d'utiliser une valeur variable pour régler un temporisateur.

Le 'temperatureInput' est utilisé pour transmettre les données du capteur à une instance de détecteur.

Commande CLI :

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

Dossier : temperatureInput.json

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

Réponse :

{ "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." } }
Remarques
  • Le 'sensorId' n'est pas utilisé par un exemple d'instance de détecteur pour contrôler ou surveiller directement un capteur. Il est automatiquement transmis aux notifications envoyées par l'instance du détecteur. À partir de là, il peut être utilisé pour identifier les capteurs défaillants (par exemple, un capteur qui envoie régulièrement des mesures anormales peut être sur le point de tomber en panne) ou qui sont hors ligne (lorsqu'il est utilisé comme entrée pour un modèle de détecteur supplémentaire qui surveille le rythme cardiaque de l'appareil). Ils 'sensorId' peuvent également aider à identifier les zones chaudes ou froides d'une zone si ses valeurs diffèrent régulièrement de la moyenne.

  • Le 'areaId' est utilisé pour acheminer les données du capteur vers l'instance de détecteur appropriée. Une instance de détecteur est créée pour chaque message unique 'areaId' reçu. Voir le 'key' champ dans la 'areaDetectorModel' définition.