Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Eingabedefinitionen für Detektormodelle in AWS IoT Events
Wir möchten ein Detektormodell erstellen, mit dem wir die Temperatur in verschiedenen Bereichen überwachen und steuern können. Jeder Bereich kann mehrere Sensoren haben, die die Temperatur melden. Wir gehen davon aus, dass jeder Bereich von einer Heizeinheit und einer Kühleinheit versorgt wird, die ein- oder ausgeschaltet werden können, um die Temperatur in dem Bereich zu regeln. Jeder Bereich wird von einer Melderinstanz gesteuert.
Da die verschiedenen Bereiche, die wir überwachen und steuern, unterschiedliche Eigenschaften aufweisen können, die unterschiedliche Steuerparameter erfordern, definieren wir die 'seedTemperatureInput'
so, dass diese Parameter für jeden Bereich bereitgestellt werden. Wenn wir eine dieser Eingangsnachrichten an senden AWS IoT Events, wird eine neue Detektormodellinstanz erstellt, die die Parameter enthält, die wir in diesem Bereich verwenden möchten. Hier ist die Definition dieser Eingabe.
CLIBefehl:
aws iotevents create-input --cli-input-json file://seedInput.json
Datei: 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" } ] } }
Antwort:
{ "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." } }
Hinweise
-
Für jedes in einer Nachricht
'areaId'
empfangene Unikat wird eine neue Detektorinstanz erstellt. Sehen Sie sich das'key'
Feld in der'areaDetectorModel'
Definition an. -
Die Durchschnittstemperatur kann
'desiredTemperature'
von dem abweichen,'allowedError'
bevor die Heiz- oder Kühlgeräte für den Bereich aktiviert werden. -
Meldet ein Sensor eine Temperatur über dem
'rangeHigh'
, meldet der Melder einen Temperaturanstieg und startet sofort die Kühleinheit. -
Meldet ein Sensor eine Temperatur unter dem
'rangeLow'
, meldet der Melder einen Temperaturanstieg und startet sofort die Heizeinheit. -
Wenn ein Sensor eine Temperatur über
'anomalousHigh'
oder unter dem Wert meldet'anomalousLow'
, meldet der Melder einen anomalen Sensorwert, ignoriert jedoch den gemeldeten Temperaturwert. -
Das
'sensorCount'
teilt dem Melder mit, wie viele Sensoren für den Bereich Bericht erstatten. Der Detektor berechnet die Durchschnittstemperatur in dem Gebiet, indem er jedem Temperaturmesswert, den er empfängt, den entsprechenden Gewichtungsfaktor zuweist. Aus diesem Grund muss der Detektor nicht nachverfolgen, was jeder Sensor meldet, und die Anzahl der Sensoren kann je nach Bedarf dynamisch geändert werden. Wenn jedoch ein einzelner Sensor offline geht, weiß der Melder dies nicht und berücksichtigt es auch nicht. Wir empfehlen Ihnen, ein anderes Meldermodell speziell für die Überwachung des Verbindungsstatus der einzelnen Sensoren zu erstellen. Zwei sich ergänzende Detektormodelle vereinfachen das Design beider. -
Der
'noDelay'
Wert kanntrue
oder seinfalse
. Nach dem Einschalten eines Heiz- oder Kühlgeräts sollte es für eine gewisse Mindestzeit eingeschaltet bleiben, um die Integrität des Geräts zu schützen und seine Lebensdauer zu verlängern. Wenn auf eingestellt'noDelay'
istfalse
, erzwingt die Melderinstanz eine Verzögerung, bevor sie die Kühl- und Heizgeräte ausschaltet, um sicherzustellen, dass sie so lange wie möglich laufen. Die Anzahl der Sekunden der Verzögerung wurde in der Definition des Detektormodells fest codiert, da wir keinen Variablenwert verwenden können, um einen Timer einzustellen.
Der 'temperatureInput'
wird verwendet, um Sensordaten an eine Detektorinstanz zu übertragen.
CLIBefehl:
aws iotevents create-input --cli-input-json file://temperatureInput.json
Datei: temperatureInput.json
{ "inputName": "temperatureInput", "inputDescription": "Temperature sensor unit data.", "inputDefinition": { "attributes": [ { "jsonPath": "sensorId" }, { "jsonPath": "areaId" }, { "jsonPath": "sensorData.temperature" } ] } }
Antwort:
{ "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." } }
Hinweise
-
Die wird
'sensorId'
nicht von einer Beispiel-Detektorinstanz verwendet, um einen Sensor direkt zu steuern oder zu überwachen. Es wird automatisch an Benachrichtigungen weitergegeben, die von der Detektorinstanz gesendet werden. Von dort aus kann es verwendet werden, um die Sensoren zu identifizieren, die ausfallen (z. B. könnte ein Sensor, der regelmäßig ungewöhnliche Messwerte sendet, bald ausfallen) oder die offline gegangen sind (wenn er als Eingang für ein zusätzliches Meldermodell verwendet wird, das den Herzschlag des Geräts überwacht).'sensorId'
Sie können auch dabei helfen, warme oder kalte Zonen in einem Gebiet zu identifizieren, wenn die Messwerte regelmäßig vom Durchschnitt abweichen. -
Das
'areaId'
wird verwendet, um die Daten des Sensors an die entsprechende Melderinstanz weiterzuleiten. Für jedes in einer Nachricht'areaId'
empfangene Unikat wird eine Detektorinstanz erstellt. Sehen Sie sich das'key'
Feld in der'areaDetectorModel'
Definition an.