Esempi di tipi di componenti - AWS IoT TwinMaker

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

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

Allarme (astratto)

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.

Telemetria Timestream

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)

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

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

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

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

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