

Hinweis zum Ende des Supports: Am 20. Mai 2026 AWS endet der Support für AWS IoT Events. Nach dem 20. Mai 2026 können Sie nicht mehr auf die AWS IoT Events Konsole oder AWS IoT Events die Ressourcen zugreifen. Weitere Informationen finden Sie unter [AWS IoT Events Ende des Supports](https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-end-of-support.html).

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.

# Erstellen Sie ein Detektormodell in AWS IoT Events
<a name="iotevents-detector-model"></a>

In diesem Thema definieren Sie mithilfe von *Zuständen* ein *Detektormodell* (ein Modell Ihrer Ausrüstung oder Ihres Prozesses).

Für jeden Status definieren Sie eine bedingte (boolesche) Logik, die die eingehenden Eingaben auswertet, um ein signifikantes Ereignis zu erkennen. Wenn ein Ereignis erkannt wird, ändert es den Status und kann zusätzliche Aktionen einleiten. Diese Ereignisse werden als Übergangsereignisse bezeichnet.

In Ihren Zuständen definieren Sie auch Ereignisse, die Aktionen ausführen können, wenn der Melder in diesen Zustand eintritt oder ihn verlässt oder wenn eine Eingabe eingeht (diese Ereignisse werden als `OnEnter` `OnInput` AND-Ereignisse bezeichnet). `OnExit` Die Aktionen werden nur ausgeführt, wenn die Bedingungslogik des Ereignisses Folgendes ergibt. `true`

**So erstellen Sie ein Detektormodell**

1. Der erste Melderstatus wurde für Sie erstellt. Um ihn zu ändern, wählen Sie den Kreis mit der Bezeichnung **State\$11** im Hauptbearbeitungsbereich aus.

1. Geben Sie im Bereich „**Status**“ den **Namen des Bundesstaates** ein und wählen Sie „**OnEnter**Ereignis **hinzufügen**“. 

1. Geben Sie auf der Seite „** OnEnter Ereignis hinzufügen**“ einen **Namen für das Ereignis** und die **Bedingung für das Ereignis** ein. Geben Sie in diesem Beispiel ein, `true` um anzugeben, dass das Ereignis immer ausgelöst wird, wenn der Status eingegeben wird. 

1. Wählen Sie unter **Ereignisaktionen** die Option **Aktion hinzufügen** aus.

1. Gehen Sie unter **Ereignisaktionen** wie folgt vor:

   1. Wählen Sie „**Variable festlegen**“

   1.  Wählen Sie für **den Variablenbetrieb** die Option **Wert zuweisen** aus.

   1. Geben Sie **unter Variablenname** den Namen der Variablen ein, die festgelegt werden soll.

   1. Geben Sie für **Variablenwert** den Wert **0** (Null) ein.

1. Wählen Sie **Speichern**. 

   Eine Variable, wie die, die Sie definiert haben, kann auf jeden Fall im Detektormodell festgelegt werden (mit einem Wert). Auf den Wert der Variablen kann erst verwiesen werden (z. B. in der bedingten Logik eines Ereignisses), wenn der Detektor einen Status erreicht hat und eine Aktion ausgeführt hat, in der er definiert oder gesetzt ist.

1. Wählen Sie im **Statusbereich** das **X** neben **Status**, um zur **Modellpalette Detector** zurückzukehren.

1. Um einen zweiten Detektorstatus zu erstellen, wählen Sie in der **Modellpalette Detektor** die Option **Status** und ziehen Sie ihn in den Hauptbearbeitungsbereich. Dadurch wird ein Zustand mit dem Titel erstellt`untitled_state_1`.

1. Halten Sie im ersten Status (**Normal**) an. Am Rand des Bundesstaats erscheint ein Pfeil.

1. Klicken Sie auf den Pfeil und ziehen Sie ihn vom ersten Status in den zweiten Status. Eine gerichtete Linie vom ersten zum zweiten Status (mit der Bezeichnung **Unbenannt**) wird angezeigt.

1. Wählen Sie die Linie **Ohne Titel** aus. Geben Sie im Bereich „**Übergangsereignis**“ einen **Namen für das Ereignis** und eine **Logik für das Ereignis** ein.

1. Wählen Sie im Bereich „**Übergangsereignis**“ die Option **Aktion hinzufügen** aus.

1. Wählen **Sie im Bereich „Aktionen für Übergangsereignis** hinzufügen“ die Option **Aktion hinzufügen** aus. 

1.  **Wählen Sie für Aktion** auswählen die Option **Variable festlegen** aus. 

   1. Wählen Sie für **Variablenoperation** die Option **Wert zuweisen** aus.

   1. Geben Sie **unter Variablenname** den Namen der Variablen ein.

   1. Geben **Sie für Wert zuweisen** einen Wert ein, z. B.: `$variable.pressureThresholdBreached + 3`

   1. Wählen Sie **Speichern**.

1. Wählen Sie den zweiten Status **untitled\$1state\$11** aus.

1. ****Geben Sie im Bereich „**Status“ den **Namen** des Bundesstaates** ein und wählen Sie für „Bei Eingabe“ die Option „Ereignis hinzufügen“ aus.****

1. Geben Sie auf der Seite „** OnEnter Ereignis hinzufügen**“ den **Namen des Ereignisses** und die **Bedingung für das Ereignis** ein. Wählen Sie **Aktion hinzufügen** aus.

1. **Wählen Sie für Aktion auswählen** die Option **SNS-Nachricht senden** aus.

   1. Geben Sie **unter SNS-Thema** den Ziel-ARN Ihres Amazon SNS SNS-Themas ein.

   1. Wählen Sie **Speichern**.

1. Fahren Sie mit dem Hinzufügen der Ereignisse im Beispiel fort.

   1. Wählen Sie für **OnInput****Ereignis hinzufügen** und geben Sie die folgenden Ereignisinformationen ein und speichern Sie sie.

      ```
        Event name: Overpressurized
        Event condition: $input.PressureInput.sensorData.pressure > 70
        Event actions:
          Set variable:
            Variable operation: Assign value
            Variable name: pressureThresholdBreached
            Assign value: 3
      ```

   1. Wählen Sie für **OnInput**„**Ereignis hinzufügen**“ und geben Sie die folgenden Ereignisinformationen ein und speichern Sie sie.

      ```
        Event name: Pressure Okay
        Event condition: $input.PressureInput.sensorData.pressure <= 70
        Event actions:
          Set variable:
            Variable operation: Decrement
            Variable name: pressureThresholdBreached
      ```

   1. Wählen Sie für **OnExit****Ereignis hinzufügen** und geben Sie die folgenden Ereignisinformationen ein und speichern Sie sie unter Verwendung des ARN des Amazon SNS SNS-Themas, das Sie erstellt haben.

      ```
        Event name: Normal Pressure Restored
        Event condition: true
        Event actions:
          Send SNS message: 
            Target arn: arn:aws:sns:us-east-1:123456789012:pressureClearedAction
      ```

1. Halten Sie im zweiten Status (**Gefährlich**``) an. Am Rand des Bundesstaats erscheint ein Pfeil

1. Klicken Sie auf den Pfeil und ziehen Sie ihn vom zweiten Status in den ersten Status. Eine gerichtete Linie mit der Bezeichnung **Unbenannt** wird angezeigt.

1. Wählen Sie die Zeile **„Unbenannt“** und geben Sie im Bereich „**Übergangsereignis**“ anhand der folgenden **Informationen einen Namen** für das **Ereignis und eine Logik** für das Ereignis ein.

   ```
   {
     Event name: BackToNormal
     Event trigger logic: $input.PressureInput.sensorData.pressure <= 70 && $variable.pressureThresholdBreached <= 0
   }
   ```

   Weitere Informationen darüber, warum wir den `$input` Wert und den `$variable` Wert in der Triggerlogik testen, finden Sie im Eintrag zur Verfügbarkeit von Variablenwerten unter. [AWS IoT Events Einschränkungen und Einschränkungen des Detektormodells](iotevents-restrictions-detector-model.md)

1. Wählen Sie den **Startstatus** aus. Standardmäßig wurde dieser Status erstellt, als Sie ein Detektormodell erstellt haben). Wählen Sie im **Startbereich** den **Zielstatus** aus (z. B. **Normal**).

1. Als Nächstes konfigurieren Sie Ihr Meldermodell so, dass es auf Eingaben wartet. **Wählen Sie in der oberen rechten Ecke Veröffentlichen.**

1. Gehen Sie auf der Seite **Meldermodell veröffentlichen** wie folgt vor.

   1.  Geben Sie einen **Modellnamen für den Detektor**, eine **Beschreibung** und den Namen einer **Rolle** ein. Diese Rolle wurde für Sie erstellt.

   1. Wählen Sie **für jeden eindeutigen Schlüsselwert einen Detektor erstellen** aus. Um Ihre eigene **Rolle** zu erstellen und zu verwenden, folgen Sie den Schritten unter [Berechtigungen einrichten für AWS IoT Events](iotevents-permissions.md) und geben Sie sie hier als **Rolle** ein.

1. Wählen Sie **unter Detector creation key** den Namen eines der Attribute der Eingabe, die Sie zuvor definiert haben. Das Attribut, das Sie als Schlüssel für die Erstellung des Melders wählen, muss in jeder Nachrichteneingabe vorhanden sein und für jedes Gerät, das Nachrichten sendet, eindeutig sein. In diesem Beispiel wird das **motorid-Attribut** verwendet.

1. Wählen Sie **Save and publish (Speichern und veröffentlichen)**.

**Anmerkung**  
Die Anzahl der eindeutigen Melder, die für ein bestimmtes Detektormodell erstellt wurden, basiert auf den gesendeten Eingangsmeldungen. Wenn ein Detektormodell erstellt wird, wird ein Schlüssel aus den Eingabeattributen ausgewählt. Dieser Schlüssel bestimmt, welche Detektorinstanz verwendet werden soll. Wenn der Schlüssel noch nie gesehen wurde (für dieses Detektormodell), wird eine neue Detektorinstanz erstellt. Wenn der Schlüssel schon einmal gesehen wurde, verwenden wir die bestehende Detektorinstanz, die diesem Schlüsselwert entspricht.

Sie können eine Sicherungskopie Ihrer Detektormodelldefinition (in JSON) erstellen, das Detektormodell neu erstellen oder aktualisieren oder als Vorlage verwenden, um ein anderes Detektormodell zu erstellen.

Sie können dies von der Konsole aus oder mit dem folgenden CLI-Befehl tun. Ändern Sie bei Bedarf den Namen des Detektormodells so, dass er dem entspricht, den Sie bei der Veröffentlichung im vorherigen Schritt verwendet haben.

```
aws iotevents describe-detector-model  --detector-model-name motorDetectorModel > motorDetectorModel.json 
```

Dadurch wird eine Datei (`motorDetectorModel.json`) erstellt, deren Inhalt dem folgenden ähnelt.

```
{
    "detectorModel": {
        "detectorModelConfiguration": {
            "status": "ACTIVE", 
            "lastUpdateTime": 1552072424.212, 
            "roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole", 
            "creationTime": 1552072424.212, 
            "detectorModelArn": "arn:aws:iotevents:us-west-2:123456789012:detectorModel/motorDetectorModel", 
            "key": "motorid", 
            "detectorModelName": "motorDetectorModel", 
            "detectorModelVersion": "1"
        }, 
        "detectorModelDefinition": {
            "states": [
                {
                    "onInput": {
                        "transitionEvents": [
                            {
                                "eventName": "Overpressurized", 
                                "actions": [
                                    {
                                        "setVariable": {
                                            "variableName": "pressureThresholdBreached", 
                                            "value": "$variable.pressureThresholdBreached + 3"
                                        }
                                    }
                                ], 
                                "condition": "$input.PressureInput.sensorData.pressure > 70", 
                                "nextState": "Dangerous"
                            }
                        ], 
                        "events": []
                    }, 
                    "stateName": "Normal", 
                    "onEnter": {
                        "events": [
                            {
                                "eventName": "init", 
                                "actions": [
                                    {
                                        "setVariable": {
                                            "variableName": "pressureThresholdBreached", 
                                            "value": "0"
                                        }
                                    }
                                ], 
                                "condition": "true"
                            }
                        ]
                    }, 
                    "onExit": {
                        "events": []
                    }
                }, 
                {
                    "onInput": {
                        "transitionEvents": [
                            {
                                "eventName": "Back to Normal", 
                                "actions": [], 
                                "condition": "$variable.pressureThresholdBreached <= 1 && $input.PressureInput.sensorData.pressure <= 70", 
                                "nextState": "Normal"
                            }
                        ], 
                        "events": [
                            {
                                "eventName": "Overpressurized", 
                                "actions": [
                                    {
                                        "setVariable": {
                                            "variableName": "pressureThresholdBreached", 
                                            "value": "3"
                                        }
                                    }
                                ], 
                                "condition": "$input.PressureInput.sensorData.pressure > 70"
                            }, 
                            {
                                "eventName": "Pressure Okay", 
                                "actions": [
                                    {
                                        "setVariable": {
                                            "variableName": "pressureThresholdBreached", 
                                            "value": "$variable.pressureThresholdBreached - 1"
                                        }
                                    }
                                ], 
                                "condition": "$input.PressureInput.sensorData.pressure <= 70"
                            }
                        ]
                    }, 
                    "stateName": "Dangerous", 
                    "onEnter": {
                        "events": [
                            {
                                "eventName": "Pressure Threshold Breached", 
                                "actions": [
                                    {
                                        "sns": {
                                            "targetArn": "arn:aws:sns:us-west-2:123456789012:MyIoTButtonSNSTopic"
                                        }
                                    }
                                ], 
                                "condition": "$variable.pressureThresholdBreached > 1"
                            }
                        ]
                    }, 
                    "onExit": {
                        "events": [
                            {
                                "eventName": "Normal Pressure Restored", 
                                "actions": [
                                    {
                                        "sns": {
                                            "targetArn": "arn:aws:sns:us-west-2:123456789012:IoTVirtualButtonTopic"
                                        }
                                    }
                                ], 
                                "condition": "true"
                            }
                        ]
                    }
                }
            ], 
            "initialStateName": "Normal"
        }
    }
}
```