

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à.

# Esempi di tipi di componenti
<a name="twinmaker-component-types-examples"></a>

Questo argomento contiene esempi che mostrano come implementare i concetti chiave dei tipi di componenti.

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

L'esempio seguente è il tipo di componente di allarme astratto che appare nella AWS IoT TwinMaker console. Contiene un `functions` elenco composto da un `dataReader` che non ha `implementedBy` valore.

```
{
  "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
    }
  }
}
```

Note:

I valori per `componentTypeId` e `workspaceID` sono obbligatori. Il valore di `componentTypeId` deve essere univoco per l'area di lavoro. Il valore di `alarm_key` è un identificatore univoco che una funzione può utilizzare per recuperare i dati di allarme da una fonte esterna. Il valore della chiave è obbligatorio e memorizzato in. AWS IoT TwinMaker I valori delle serie `alarm_status` temporali vengono memorizzati nella fonte esterna.

Altri esempi sono disponibili nella sezione [AWS IoT TwinMaker Esempi](https://github.com/aws-samples/aws-iot-twinmaker-samples).

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

L'esempio seguente è un tipo di componente semplice che recupera i dati di telemetria su un tipo specifico di componente (come un allarme o un cookie mixer) da una fonte esterna. Specifica una funzione Lambda ereditata dai tipi di componenti.

```
{
    "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
        }
    }
}
```

## Allarme (eredita dall'allarme astratto)
<a name="twinmaker-component-types-examples-alarm-implementation"></a>

L'esempio seguente eredita sia dall'allarme astratto che dal tipo di componente di telemetria timestream. Specifica la propria funzione Lambda che recupera i dati di allarme.

```
{
    "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}}"
                }
            }
        }
    }
}
```

**Nota**  
Poiché il connettore di allarme eredita dal tipo di componente di allarme astratto, la funzione Lambda deve restituire `alarm_key` il valore. Se non restituisci questo valore, Grafana non lo riconoscerà come allarme. Questo è necessario per tutti i componenti che restituiscono allarmi.

## Esempi di apparecchiature
<a name="twinmaker-component-types-examples-equipment"></a>

Gli esempi in questa sezione mostrano come modellare potenziali apparecchiature. È possibile utilizzare questi esempi per avere alcune idee su come modellare le apparecchiature nei propri processi.

### Miscelatore per biscotti
<a name="twinmaker-component-types-examples-mixer"></a>

L'esempio seguente eredita dal tipo di componente di telemetria timestream. Specifica proprietà di serie temporali aggiuntive per la velocità di rotazione e la temperatura di un mixer per biscotti.

```
{
    "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
        }
    }
}
```

### Serbatoio d'acqua
<a name="twinmaker-component-types-examples-watertank"></a>

L'esempio seguente eredita dal tipo di componente di telemetria timestream. Specifica proprietà di serie temporali aggiuntive per il volume e la portata di un serbatoio d'acqua.

```
{
    "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
        }
    }
}
```

### Ubicazione nello spazio
<a name="twinmaker-component-types-examples-space"></a>

L'esempio seguente contiene proprietà, i cui valori sono memorizzati in AWS IoT TwinMaker. Poiché i valori sono specificati dagli utenti e memorizzati internamente, non è richiesta alcuna funzione per recuperarli. L'esempio utilizza il tipo di `RELATIONSHIP` dati anche per specificare una relazione con un altro tipo di componente.

Questo componente fornisce un meccanismo leggero per aggiungere contesto a un gemello digitale. Puoi usarlo per aggiungere metadati che indicano dove si trova qualcosa. È inoltre possibile utilizzare queste informazioni nella logica utilizzata per determinare quali telecamere possono vedere un'attrezzatura o uno spazio o per sapere come inviare qualcuno in un luogo.

```
{
    "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"}}
    }
}
```