

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.

# Beispiele für Komponententypen
<a name="twinmaker-component-types-examples"></a>

Dieses Thema enthält Beispiele, die zeigen, wie wichtige Konzepte von Komponententypen implementiert werden.

## Alarm (Zusammenfassung)
<a name="twinmaker-component-types-examples-alarm"></a>

Das folgende Beispiel ist der abstrakte Alarmkomponententyp, der in der AWS IoT TwinMaker Konsole angezeigt wird. Er enthält eine `functions` Liste, die aus einer besteht`dataReader`, die keinen `implementedBy` Wert hat.

```
{
  "componentTypeId": "com.example.alarm.basic:1",
  "workspaceId": "{{MyWorkspace}}",
  "description": "Abstract alarm component type",
  "functions": {
    "dataReader": {
         "isInherited": false
    }
  },
  "isSingleton": false,
  "propertyDefinitions": {
    "alarm_key": {
      "dataType": { "type": "STRING" },
      "isExternalId": true,
      "isRequiredInEntity": true,
      "isStoredExternally": false,
      "isTimeSeries": false
    },
    "alarm_status": {
      "dataType": {
        "allowedValues": [
          {
            "stringValue": "ACTIVE"
          },
          {
            "stringValue": "SNOOZE_DISABLED"
          },
          {
            "stringValue": "ACKNOWLEDGED"
          },
          {
            "stringValue": "NORMAL"
          }
        ],
        "type": "STRING"
      },
      "isRequiredInEntity": false,
      "isStoredExternally": true,
      "isTimeSeries": true
    }
  }
}
```

Hinweise:

Werte für `componentTypeId` und `workspaceID` sind erforderlich. Der Wert von `componentTypeId` muss für Ihren Workspace eindeutig sein. Der Wert von `alarm_key` ist eine eindeutige Kennung, die eine Funktion verwenden kann, um Alarmdaten von einer externen Quelle abzurufen. Der Wert des Schlüssels ist erforderlich und wird in gespeichert AWS IoT TwinMaker. Die `alarm_status` Zeitreihenwerte werden in der externen Quelle gespeichert.

Weitere Beispiele sind unter [AWS IoT TwinMaker Beispiele](https://github.com/aws-samples/aws-iot-twinmaker-samples) verfügbar.

## Timestream-Telemetrie
<a name="twinmaker-component-types-examples-telemetry"></a>

Das folgende Beispiel ist ein einfacher Komponententyp, der Telemetriedaten über einen bestimmten Komponententyp (z. B. einen Alarm oder einen Cookie-Mixer) aus einer externen Quelle abruft. Es spezifiziert eine Lambda-Funktion, die Komponententypen erben.

```
{
    "componentTypeId": "com.example.timestream-telemetry",
    "workspaceId": "{{MyWorkspace}}",
    "functions": {
        "dataReader": {
            "implementedBy": {
                "lambda": {
                    "arn": "{{lambdaArn}}"
                }
            }
        }
    },
    "propertyDefinitions": {
        "telemetryType": {
            "dataType": { "type": "STRING" },
            "isExternalId": false,
            "isStoredExternally": false,
            "isTimeSeries": false,
            "isRequiredInEntity": true
        },
        "telemetryId": {
            "dataType": { "type": "STRING" },
            "isExternalId": false,
            "isStoredExternally": false,
            "isTimeSeries": false,
            "isRequiredInEntity": true
        }
    }
}
```

## Alarm (erbt vom abstrakten Alarm)
<a name="twinmaker-component-types-examples-alarm-implementation"></a>

Das folgende Beispiel erbt sowohl vom abstrakten Alarm- als auch vom Timestream-Telemetrie-Komponententyp. Es spezifiziert eine eigene Lambda-Funktion, die Alarmdaten abruft.

```
{
    "componentTypeId": "com.example.cookiefactory.alarm",
    "workspaceId": "{{MyWorkspace}}",
    "extendsFrom": [
        "com.example.timestream-telemetry",
        "com.amazon.iottwinmaker.alarm.basic"
    ],
    "propertyDefinitions": {
        "telemetryType": {
            "defaultValue": {
                "stringValue": "Alarm"
            }
        }
    },
    "functions": {
        "dataReader": {
            "implementedBy": {
                "lambda": {
                    "arn": "{{lambdaArn}}"
                }
            }
        }
    }
}
```

**Anmerkung**  
Da der Alarmanschluss vom abstrakten Alarmkomponententyp erbt, muss die Lambda-Funktion den `alarm_key` Wert zurückgeben. Wenn Sie diesen Wert nicht zurückgeben, erkennt Grafana ihn nicht als Alarm. Dies ist für alle Komponenten erforderlich, die Alarme zurückgeben.

## Beispiele für Geräte
<a name="twinmaker-component-types-examples-equipment"></a>

Die Beispiele in diesem Abschnitt zeigen, wie potenzielle Geräte modelliert werden. Sie können diese Beispiele verwenden, um Anregungen zu erhalten, wie Sie Geräte in Ihren eigenen Prozessen modellieren können.

### Keksmischer
<a name="twinmaker-component-types-examples-mixer"></a>

Das folgende Beispiel erbt vom Komponententyp Timestream-Telemetrie. Es spezifiziert zusätzliche Zeitreiheneigenschaften für die Rotationsgeschwindigkeit und Temperatur eines Cookie-Mixers.

```
{
    "componentTypeId": "com.example.cookiefactory.mixer",
    "workspaceId": "{{MyWorkspace}}",
    "extendsFrom": [
        "com.example.timestream-telemetry"
    ],
    "propertyDefinitions": {
        "telemetryType": {
            "defaultValue" : { "stringValue": "Mixer" }
        },
        "RPM": {
            "dataType": { "type": "DOUBLE" },
            "isTimeSeries": true,
            "isStoredExternally": true
        },
        "Temperature": {
            "dataType": { "type": "DOUBLE" },
            "isTimeSeries": true,
            "isStoredExternally": true
        }
    }
}
```

### Wassertank
<a name="twinmaker-component-types-examples-watertank"></a>

Das folgende Beispiel erbt vom Komponententyp Timestream-Telemetrie. Es gibt zusätzliche Zeitreiheneigenschaften für das Volumen und die Durchflussrate eines Wassertanks an.

```
{
    "componentTypeId": "com.example.cookiefactory.watertank",
    "workspaceId": "{{MyWorkspace}}",
    "extendsFrom": [
        "com.example.timestream-telemetry"
    ],
    "propertyDefinitions": {
        "telemetryType": {
            "defaultValue" : { "stringValue": "WaterTank" }
        },
        "tankVolume1": {
            "dataType": { "type": "DOUBLE" },
            "isTimeSeries": true,
            "isStoredExternally": true
        },
        "tankVolume2": {
            "dataType": { "type": "DOUBLE" },
            "isTimeSeries": true,
            "isStoredExternally": true
        },
        "flowRate1": {
            "dataType": { "type": "DOUBLE" },
            "isTimeSeries": true,
            "isStoredExternally": true
        },
        "flowrate2": {
            "dataType": { "type": "DOUBLE" },
            "isTimeSeries": true,
            "isStoredExternally": true
        }
    }
}
```

### Standort des Weltraums
<a name="twinmaker-component-types-examples-space"></a>

Das folgende Beispiel enthält Eigenschaften, deren Werte in gespeichert sind AWS IoT TwinMaker. Da die Werte von Benutzern angegeben und intern gespeichert werden, ist keine Funktion erforderlich, um sie abzurufen. In dem Beispiel wird der `RELATIONSHIP` Datentyp auch verwendet, um eine Beziehung zu einem anderen Komponententyp anzugeben.

Diese Komponente bietet einen einfachen Mechanismus, um einem digitalen Zwilling Kontext hinzuzufügen. Sie können damit Metadaten hinzufügen, die angeben, wo sich etwas befindet. Sie können diese Informationen auch in der Logik verwenden, um zu bestimmen, welche Kameras ein Gerät oder einen Raum sehen können, oder um zu wissen, wie eine Person an einen Ort geschickt werden kann.

```
{
    "componentTypeId": "com.example.cookiefactory.space",
    "workspaceId": "{{MyWorkspace}}",
    "propertyDefinitions": {
        "position":  {"dataType": {"nestedType": {"type": "DOUBLE"},"type": "LIST"}},
        "rotation":  {"dataType": {"nestedType": {"type": "DOUBLE"},"type": "LIST"}},
        "bounds":  {"dataType": {"nestedType": {"type": "DOUBLE"},"type": "LIST"}},
        "parent_space" : { "dataType": {"type": "RELATIONSHIP"}}
    }
}
```