Crea un modello di rilevatore per rappresentare gli stati del dispositivo 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à.

Crea un modello di rilevatore per rappresentare gli stati del dispositivo in AWS IoT Events

NelCrea un AWS IoT Events input per acquisire i dati del dispositivo, ne hai creato uno input basato su un messaggio che riporta i dati sulla pressione di un motore. Per continuare con l'esempio, ecco un modello di rilevatore che risponde a un evento di sovrapressione in un motore.

Si creano due stati: "Normal«e"». Dangerous Ogni rilevatore (istanza) entra nello stato Normal "" quando viene creato. L'istanza viene creata quando arriva un input con un valore univoco per key motorid "».

Se l'istanza del rilevatore riceve una lettura della pressione pari o superiore a 70, entra nello stato Dangerous "" e invia un SNS messaggio Amazon come avviso. Se le letture della pressione tornano alla normalità (meno di 70) per tre ingressi consecutivi, il rilevatore torna allo stato "Normal" e invia un altro SNS messaggio Amazon come tutto chiaro.

Questo modello di rilevatore di esempio presuppone che tu abbia creato due SNS argomenti Amazon i cui Amazon Resource Names (ARNs) sono mostrati nella definizione come "targetArn": "arn:aws:sns:us-east-1:123456789012:underPressureAction" e. "targetArn": "arn:aws:sns:us-east-1:123456789012:pressureClearedAction"

Per ulteriori informazioni, consulta la Amazon Simple Notification Service Developer Guide e, più specificamente, la documentazione dell'CreateTopicoperazione nell'Amazon Simple Notification Service API Reference.

Questo esempio presuppone inoltre che tu abbia creato un ruolo AWS Identity and Access Management (IAM) con le autorizzazioni appropriate. Il ruolo ARN di questo ruolo è mostrato nella definizione del modello di rivelatore come. "roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole" Segui i passaggi Configurazione delle autorizzazioni per AWS IoT Events per creare questo ruolo e copia il ARN ruolo nella posizione appropriata nella definizione del modello del rilevatore.

È possibile creare il modello del rilevatore utilizzando il seguente AWS CLI comando.

aws iotevents create-detector-model --cli-input-json file://motorDetectorModel.json

Il file "motorDetectorModel.json" contiene quanto segue.

{ "detectorModelName": "motorDetectorModel", "detectorModelDefinition": { "states": [ { "stateName": "Normal", "onEnter": { "events": [ { "eventName": "init", "condition": "true", "actions": [ { "setVariable": { "variableName": "pressureThresholdBreached", "value": "0" } } ] } ] }, "onInput": { "transitionEvents": [ { "eventName": "Overpressurized", "condition": "$input.PressureInput.sensorData.pressure > 70", "actions": [ { "setVariable": { "variableName": "pressureThresholdBreached", "value": "$variable.pressureThresholdBreached + 3" } } ], "nextState": "Dangerous" } ] } }, { "stateName": "Dangerous", "onEnter": { "events": [ { "eventName": "Pressure Threshold Breached", "condition": "$variable.pressureThresholdBreached > 1", "actions": [ { "sns": { "targetArn": "arn:aws:sns:us-east-1:123456789012:underPressureAction" } } ] } ] }, "onInput": { "events": [ { "eventName": "Overpressurized", "condition": "$input.PressureInput.sensorData.pressure > 70", "actions": [ { "setVariable": { "variableName": "pressureThresholdBreached", "value": "3" } } ] }, { "eventName": "Pressure Okay", "condition": "$input.PressureInput.sensorData.pressure <= 70", "actions": [ { "setVariable": { "variableName": "pressureThresholdBreached", "value": "$variable.pressureThresholdBreached - 1" } } ] } ], "transitionEvents": [ { "eventName": "BackToNormal", "condition": "$input.PressureInput.sensorData.pressure <= 70 && $variable.pressureThresholdBreached <= 1", "nextState": "Normal" } ] }, "onExit": { "events": [ { "eventName": "Normal Pressure Restored", "condition": "true", "actions": [ { "sns": { "targetArn": "arn:aws:sns:us-east-1:123456789012:pressureClearedAction" } } ] } ] } } ], "initialStateName": "Normal" }, "key" : "motorid", "roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole" }