AWS IoT SiteWise - AWS IoT Core

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

AWS IoT SiteWise

La acción AWS IoT SiteWise (iotSiteWise) envía los datos de un MQTT mensaje a las propiedades del activo AWS IoT SiteWise.

Puedes seguir un tutorial que te muestra cómo ingerir datos de AWS IoT las cosas. Para obtener más información, consulta el tutorial sobre cómo ingerir datos AWS IoT SiteWise desde AWS IoT cosas o la sección Cómo ingerir datos mediante las reglas AWS IoT básicas de la Guía del AWS IoT SiteWise usuario.

Requisitos

Esta regla tiene los siguientes requisitos:

  • Un IAM rol que se AWS IoT puede asumir al realizar la iotsitewise:BatchPutAssetPropertyValue operación. Para obtener más información, consulte Otorgar a una AWS IoT regla el acceso que requiere.

    Puede asociar el siguiente ejemplo de política de confianza al rol.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iotsitewise:BatchPutAssetPropertyValue", "Resource": "*" } ] }

    Para mejorar la seguridad, puede especificar una ruta jerárquica de AWS IoT SiteWise activos en la Condition propiedad. El siguiente ejemplo es una política de confianza que especifica una ruta jerárquica de activos.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iotsitewise:BatchPutAssetPropertyValue", "Resource": "*", "Condition": { "StringLike": { "iotsitewise:assetHierarchyPath": [ "/root node asset ID", "/root node asset ID/*" ] } } } ] }
  • Al enviar datos a AWS IoT SiteWise mediante esta acción, estos deben cumplir los requisitos de la BatchPutAssetPropertyValue operación. Para obtener más información consulte BatchPutAssetPropertyValue en la Referencia de la AWS IoT SiteWise API.

Parámetros

Al crear una AWS IoT regla con esta acción, debe especificar la siguiente información:

putAssetPropertyValueEntries

Una lista de entradas de valor de propiedad de recurso, en la que cada entrada contiene la siguiente información:

propertyAlias

(Opcional) El alias de propiedad asociado a su propiedad de activo. Debe especificar un propertyAlias o tanto un assetId como un propertyId. Para obtener más información acerca de los alias de propiedades, consulte Mapeo de flujos de datos industriales a propiedades de recursos en la Guía del usuario de AWS IoT SiteWise .

Admite plantillas de sustitución: Sí

assetId

(Opcional) El ID del AWS IoT SiteWise activo. Debe especificar un propertyAlias o tanto un assetId como un propertyId.

Admite plantillas de sustitución: Sí

propertyId

(Opcional) El ID de la propiedad de activo. Debe especificar un propertyAlias o tanto un assetId como un propertyId.

Admite plantillas de sustitución: Sí

entryId

(Opcional) Un identificador único para esta entrada. Defina el entryId para rastrear mejor qué mensaje causó un error si se produce un fallo. El valor predeterminado es uno nuevoUUID.

Admite plantillas de sustitución: Sí

propertyValues

Una lista de valores de propiedades para insertar, cada uno de los cuales contiene la marca de tiempo, la calidad y el valor (TQV) en el siguiente formato:

timestamp

Una estructura de marca temporal que contiene la siguiente información:

timeInSeconds

Una cadena que contiene el tiempo en segundos en formato de tiempo Unix. Si su carga de mensajes no tiene una marca temporal, puede usar timestamp(), que devuelve la hora actual en milisegundos. Para convertir ese tiempo en segundos, puede utilizar la siguiente plantilla de sustitución: ${floor(timestamp() / 1E3)}.

Admite plantillas de sustitución: Sí

offsetInNanos

(Opcional) Una cadena que contiene el desfase de tiempo en nanosegundos a partir del tiempo en segundos. Si su carga de mensajes no tiene una marca temporal, puede usar timestamp(), que devuelve la hora actual en milisegundos. Para calcular el desfase en nanosegundos a partir de ese tiempo, puede utilizar la siguiente plantilla de sustitución: ${(timestamp() % 1E3) * 1E6}.

Admite plantillas de sustitución: Sí

Con respecto a la época de Unix, solo AWS IoT SiteWise acepta entradas que tengan una marca de tiempo de hasta 7 días en el pasado y hasta 5 minutos en el futuro.

quality

(Opcional) Una cadena que describe la calidad del valor. Valores válidos: GOOD, BAD, UNCERTAIN.

Admite plantillas de sustitución: Sí

value

Una estructura de valores que contiene uno de los siguientes campos de valor, en función del tipo de datos de la propiedad del recurso:

booleanValue

(Opcional) Una cadena que contiene el valor booleano de la entrada del valor.

Admite plantillas de sustitución: Sí

doubleValue

(Opcional) Una cadena que contiene el valor “double” (doble) de la entrada del valor.

Admite plantillas de sustitución: Sí

integerValue

(Opcional) Una cadena que contiene el valor entero de la entrada del valor.

Admite plantillas de sustitución: Sí

stringValue

(Opcional) El valor de cadena de la entrada del valor.

Admite plantillas de sustitución: Sí

roleArn

Es la IAM función a ARN la que se concede el AWS IoT permiso para enviar el valor de una propiedad a un activo. AWS IoT SiteWise Para obtener más información, consulte Requisitos.

Admite plantillas de sustitución: No

Ejemplos

El siguiente JSON ejemplo define una SiteWise acción básica de IoT en una AWS IoT regla.

{ "topicRulePayload": { "sql": "SELECT * FROM 'some/topic'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "iotSiteWise": { "putAssetPropertyValueEntries": [ { "propertyAlias": "/some/property/alias", "propertyValues": [ { "timestamp": { "timeInSeconds": "${my.payload.timeInSeconds}" }, "value": { "integerValue": "${my.payload.value}" } } ] } ], "roleArn": "arn:aws:iam::123456789012:role/aws_iot_sitewise" } } ] } }

El siguiente JSON ejemplo define una SiteWise acción de IoT en una AWS IoT regla. En este ejemplo se utiliza el tema como alias de propiedad y función timestamp(). Por ejemplo, si publica datos en /company/windfarm/3/turbine/7/rpm, esta acción envía los datos a la propiedad del recurso con un alias de propiedad que es el mismo que el tema especificado.

{ "topicRulePayload": { "sql": "SELECT * FROM '/company/windfarm/+/turbine/+/+'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "iotSiteWise": { "putAssetPropertyValueEntries": [ { "propertyAlias": "${topic()}", "propertyValues": [ { "timestamp": { "timeInSeconds": "${floor(timestamp() / 1E3)}", "offsetInNanos": "${(timestamp() % 1E3) * 1E6}" }, "value": { "doubleValue": "${my.payload.value}" } } ] } ], "roleArn": "arn:aws:iam::123456789012:role/aws_iot_sitewise" } } ] } }

Véase también