Todos los productos
Search
Centro de documentos

IoT Platform:Formatos de datos

Última actualización: Sep 03, 2026

IoT Platform reenvía y se suscribe a datos según los formatos de los topics. Los formatos de topics personalizados son definidos por el usuario. Los formatos de comunicación básica y de topics TSL se convierten durante el reenvío de mensajes. Este tema documenta cada formato convertido.

Reenvío de mensajes y topics de comunicación del dispositivo

Las definiciones y clasificaciones de los topics de comunicación se tratan en What is a topic?.

Especifique el formato de datos sin procesar durante el desarrollo del dispositivo:

  • Los datos de comunicación básica y de topics TSL deben cumplir con el protocolo Alink, como se describe en the related documents in the Alink protocol directory.

    Después del reenvío, el formato de los datos se convierte. Cada formato convertido se describe a continuación.

  • Usted define el formato de datos para los topics personalizados.

    Tras el reenvío, los datos de los topics personalizados permanecen sin cambios.

La siguiente tabla asigna los topics de reenvío a sus correspondientes topics de comunicación del dispositivo.

Tabla 1. Descripciones de topics

Topic

Descripción

Referencias

Custom

Un topic para reenviar mensajes en un formato de datos personalizado sigue el mismo formato que un topic personalizado: /${productKey}/${deviceName}/user/${TopicShortName}.

${TopicShortName} especifica una categoría de topic personalizado, la cual es el sufijo del topic personalizado.

El valor puede contener caracteres comodín, incluidos signos más (+) y almohadillas (#).

  • Todo el equipo (+): indica todos los dispositivos del producto especificado.

  • /user/#: Todos los topics personalizados para un dispositivo específico.

Use custom topics for communication

Device Status Change Notification

El topic que se utiliza para reenviar notificaciones cuando el estado de un dispositivo cambia entre en línea y desconectado. Formato: /as/mqtt/status/${productKey}/${deviceName}.

Device online and offline status

TSL Data Reporting

Incluye:

  • Un dispositivo reporta datos de propiedades al siguiente topic: /${productKey}/${deviceName}/thing/event/property/post.

  • Los datos de eventos reportados por un dispositivo se reenvían al topic /${productKey}/${deviceName}/thing/event/${tsl.event.identifier}/post.

  • El topic para reenviar datos de propiedades por lotes desde dispositivos es /${productKey}/${deviceName}/thing/property/batch/post.

  • El topic para reenviar datos de eventos por lotes desde dispositivos es /${productKey}/${deviceName}/thing/event/batch/post.

  • Un dispositivo envía mensajes de respuesta para comandos de la nube al siguiente topic: /${productKey}/${deviceName}/thing/downlink/reply/message.

Los siguientes topics se utilizan para enviar datos sin procesar del dispositivo:

  • /sys/${productKey}/${deviceName}/thing/event/property/post: Este topic se usa para enviar propiedades del dispositivo.

  • /sys/${productKey}/${deviceName}/thing/event/${tsl.event.identifier}/post y /sys/${productKey}/${deviceName}/thing/event/${tsl.functionBlockId}:{tsl.event.identifier}/post: Estos topics se usan para enviar eventos del dispositivo.

  • /sys/${productKey}/${deviceName}/thing/event/property/batch/post: Este topic se usa para enviar propiedades y eventos del dispositivo por lotes.

Device Changes Throughout Lifecycle

El topic que se utiliza para reenviar mensajes cuando se crea, elimina, deshabilita o habilita un dispositivo. Formato: /${productKey}/${deviceName}/thing/lifecycle.

Changes to the device lifecycle

Sub-Device Data Report Detected by Gateway

El topic /${productKey}/${deviceName}/thing/list/found lo utilizan los dispositivos gateway para reportar información sobre subdispositivos descubiertos a IoT Platform.

Gateway discovery of sub-devices

Device Topological Relation Changes

El topic que se utiliza para reenviar notificaciones cuando se crean o eliminan relaciones topológicas entre subdispositivos y el gateway. Este topic es específico para gateways. Formato: /${productKey}/${deviceName}/thing/topo/lifecycle.

Device Topological Relation Changes

Un dispositivo usa el topic /sys/${productKey}/${deviceName}/thing/topo/change para reportar datos sin procesar.

Notify gateways of changes of topological relationships

Device tag change

El topic para reenviar actualizaciones de etiquetas del dispositivo es /${productKey}/${deviceName}/thing/deviceinfo/update.

Changes to device tags

Un dispositivo usa el siguiente topic para reportar datos sin procesar: /sys/${productKey}/${deviceName}/thing/deviceinfo/update.

Submit tags

TSL Historical Data Reporting

Incluye:

  • /${productKey}/${deviceName}/thing/event/property/history/post: Este topic se usa para reenviar propiedades históricas.

  • /${productKey}/${deviceName}/thing/event/${tsl.event.identifier}/history/post: Este topic se usa para reenviar eventos históricos.

/sys/${productKey}/${deviceName}/thing/event/property/history/post: Este topic se usa para enviar datos históricos de TSL.

How to report historical data for a Thing Specification Language model

Device Status Notification for OTA Updates

Incluye:

  • El topic para reenviar el resultado de la actualización OTA desde un dispositivo es /${productKey}/${deviceName}/ota/upgrade.

  • Un dispositivo reporta el progreso de la actualización OTA al topic /${productKey}/${deviceName}/ota/progress/post.

Un dispositivo reporta su progreso de actualización al siguiente topic: /ota/device/progress/${productKey}/${deviceName}.

Reporting device upgrade progress

Submit a module version number

El topic para reportar una versión actualizada del módulo Over-the-Air (OTA): /${productKey}/${deviceName}/ota/version/post.

Notice of OTA Module Version Changes

Un dispositivo usa el siguiente topic para reportar su versión de módulo OTA: /ota/device/inform/${productKey}/${deviceName}.

Device reports the OTA module version

Batch status notification

IoT Platform publica notificaciones de cambio de estado para un lote de actualización OTA en el siguiente topic: /${productKey}/${packageId}/${jobId}/ota/job/status.

Status Notifications for OTA Update Batches

Job Event

Incluye los siguientes topics:

  • Notificaciones de estado de trabajos del dispositivo: /sys/uid/${uid}/job/${jobId}/lifecycle.

  • Notificaciones de estado de trabajos de migración de instancias: /sys/uid/${uid}/distribution/${jobId}/lifecycle.

    Nota

    El nombre del producto a migrar se utiliza como nombre del trabajo de migración de instancia.

Estado en línea y desconectado del dispositivo

Topic: /as/mqtt/status/${productKey}/${deviceName}

Reporta el estado en línea o desconectado de un dispositivo.

Formato en línea:

{
    "status":"online",
    "iotId":"4z819VQHk6VSLmmBJfrf00107e****",
    "productKey":"al12345****",
    "deviceName":"deviceName1234",
    "time":"2018-08-31 15:32:28.205",
    "utcTime":"2018-08-31T07:32:28.205Z",
    "lastTime":"2018-08-31 15:32:28.195",
    "utcLastTime":"2018-08-31T07:32:28.195Z",
    "clientIp":"192.0.2.1"
}

Formato desconectado:

{
    "status":"offline",
    "iotId":"4z819VQHk6VSLmmBJfrf00107e****",
    "offlineReasonCode":427,
    "productKey":"al12345****",
    "deviceName":"deviceName1234",
    "time":"2018-08-31 15:32:28.205",
    "utcTime":"2018-08-31T07:32:28.205Z",
    "lastTime":"2018-08-31 15:32:28.195",
    "utcLastTime":"2018-08-31T07:32:28.195Z",
    "clientIp":"192.0.2.1"
}

Descripciones de parámetros:

Parámetro

Tipo

Descripción

status

String

El estado del dispositivo.

  • online: En línea.

  • offline: Desconectado.

iotId

String

El identificador único del dispositivo en IoT Platform.

offlineReasonCode

Integer

El código de error cuando el dispositivo se desconecta. Device behavior error codes.

productKey

String

El identificador único del producto al que pertenece el dispositivo.

deviceName

String

El nombre del dispositivo.

lastTime

String

Obsoleto. Ya no se utiliza.

utcLastTime

String

time

String

La hora en que el dispositivo pasó a estar en línea o desconectado.

Los mensajes no están ordenados por hora de conexión/desconexión. Ordénelos por el valor de time.

Por ejemplo, si recibe los siguientes tres mensajes en secuencia:

  1. En línea: 2018-08-31 10:02:28.195.

  2. Desconectado: 2018-08-31 10:01:28.195.

  3. Desconectado: 2018-08-31 10:03:28.195.

Estos tres mensajes muestran que el dispositivo se desconectó, luego se conectó y finalmente se desconectó de nuevo.

utcTime

String

La hora UTC en que el dispositivo pasó a estar en línea o desconectado.

clientIp

String

La dirección IP pública del dispositivo.

Envío de propiedades del dispositivo

Topic: /${productKey}/${deviceName}/thing/event/property/post

Reporta las propiedades enviadas por un dispositivo.

Formato de datos:

{
    "iotId":"4z819VQHk6VSLmmBJfrf00107e****",
    "requestId":"2",
    "productKey":"al12345****",
    "deviceName":"deviceName1234",
    "gmtCreate":1510799670074,
    "deviceType":"Ammeter",
    "items":{
        "Power":{
            "value":"on",
            "time":1510799670074
        },
        "Position":{
            "time":1510292697470,
            "value":{
                "latitude":39.9,
                "longitude":116.38
            }
        }
    },
    "checkFailedData":{
        "attribute_8":{
            "time": 1510292697470,
            "value": 715665571,
            "code":6304,
            "message":"tsl parse: params not exist -> attribute_8"
        }
    }
}

Descripciones de parámetros:

Parámetro

Tipo

Descripción

iotId

String

El identificador único del dispositivo en IoT Platform.

requestId

String

El Id del mensaje original del dispositivo. Una cadena numérica en el rango de 0 a 4294967295. Debe ser única por dispositivo.

productKey

String

El identificador único del producto al que pertenece el dispositivo.

deviceName

String

El nombre del dispositivo.

gmtCreate

Long

La hora en que se generó el mensaje de reenvío de datos.

deviceType

String

La categoría del dispositivo.

Se establece al crear un producto (Create a product o CreateProduct).

items

Object

Los datos del dispositivo.

Power

String

El identificador de la propiedad. Para los nombres de propiedades, consulte la descripción TSL del producto.

Si la propiedad es una propiedad de módulo personalizado, el identificador de propiedad tiene el formato ${ModuleIdentifier}:${PropertyIdentifier} (se usan dos puntos : como separador). Por ejemplo, si el identificador de un módulo de modelo TSL personalizado es test, el formato de datos es:

{
        "items":{
            "test:Power":{
                "value":"on",
                "time":1510799670074
            },
            "test:Position":{
                "time":1510292697470,
                "value":{
                    "latitude":39.9,
                    "longitude":116.38
                }
            }
        }
    }

Position

attribute_8

checkFailedData

Object

Los datos que no superan la validación de datos del modelo TSL.

value

Definido por TSL

El valor de la propiedad.

time

Long

La hora en que se reportó la propiedad. Si el dispositivo no la reporta, toma como valor predeterminado la hora en que IoT Platform genera los datos.

code

Integer

El código de error para fallos de validación TSL. Error codes for devices.

message

String

El mensaje de error devuelto cuando los datos fallan la validación del modelo TSL, incluida la causa del fallo y los parámetros no válidos.

Envío de eventos del dispositivo

Topic: /${productKey}/${deviceName}/thing/event/${tsl.event.identifier}/post

Reporta eventos enviados por un dispositivo.

Formato de datos:

{
    "identifier":"BrokenInfo",
    "name":"Damage Rate Submission",
    "type":"info",
    "iotId":"4z819VQHk6VSLmmBJfrf00107e****",
    "requestId":"2",
    "productKey":"X5eCzh6****",
    "deviceName":"5gJtxDVeGAkaEztpisjX",
    "gmtCreate":1510799670074,
    "value":{
        "Power":"on",
        "Position":{
            "latitude":39.9,
            "longitude":116.38
        }
    },
    "checkFailedData":{},
    "time":1510799670074
}

Descripciones de parámetros:

Parámetro

Tipo

Descripción

identifier

String

El identificador del evento.

Si el evento es un evento de módulo personalizado, el identificador del evento tiene el formato ${ModuleIdentifier}:${EventIdentifier} (se usan dos puntos : como separador). Por ejemplo, si el identificador de un módulo de modelo TSL personalizado es test, el formato de datos es:

"test:identifier":"BrokenInfo",

name

String

El nombre del evento.

type

String

El tipo de evento. Para tipos de eventos, consulte la descripción TSL del producto.

iotId

String

El identificador único del dispositivo en IoT Platform.

requestId

String

El Id del mensaje original del dispositivo. Una cadena numérica en el rango de 0 a 4294967295. Debe ser única por dispositivo.

productKey

String

El identificador único del producto al que pertenece el dispositivo.

deviceName

String

El nombre del dispositivo.

gmtCreate

Long

La hora en que se generó el mensaje de reenvío de datos.

value

Object

La información de parámetros de salida del evento. El ejemplo muestra información sobre los dos parámetros Power y Position.

{
    "Power":"on",
    "Position":{
        "latitude":39.9,
        "longitude":116.38
    }
}
Importante
  • Solo cuando todos los parámetros de salida del evento pasan la validación, se muestran todos los parámetros de salida en el parámetro value. En este caso, el parámetro checkFailedData está vacío.

  • Si algún parámetro de salida del evento falla la validación, todos los parámetros de salida se muestran en el parámetro checkFailedData. En este caso, el parámetro value está vacío.

checkFailedData

Object

Los datos que no superan la validación de datos del modelo TSL.

Si los parámetros de salida del evento fallan la validación, el parámetro checkFailedData es:

{
    "value":{
        "Power":"on",
        "Position":{
            "latitude":39.9,
            "longitude":116.38
        }
    },
    "time":1524448722000,
    "code":6304,
    "message":"tsl parse: params not exist -> type"
}

Donde:

  • value: Object. La información de parámetros de salida del evento.

  • time: Long. La marca de tiempo cuando se generó el evento.

  • code: Integer. El código de error para fallos de validación TSL. Error codes for devices.

  • message: String. El mensaje de error devuelto cuando los datos fallan la validación del modelo TSL, incluida la causa del fallo y los parámetros no válidos.

time

Long

La hora en que se reportó el evento. Si el dispositivo no la reporta, toma como valor predeterminado la hora en que IoT Platform genera los datos.

Envío de propiedades del dispositivo por lotes

Topic: /${productKey}/${deviceName}/thing/property/batch/post

Reporta las propiedades enviadas por un dispositivo en lotes.

Formato de datos:

{
    "productKey": "al12345****",
    "deviceName": "deviceName1234",
    "instanceId": "iot-0***",
    "requestId": "2",
    "items": {
        "Power": [
            {
                "value": "on",
                "time": 1524448722000
            },
            {
                "value": "off",
                "time": 1524448722001
            }
        ],
        "WF": [
            {
                "value": 3,
                "time": 1524448722000
            },
            {
                "value": 4,
                "time": 1524448722009
            }
        ]
    }
}

Descripción de parámetros:

Parámetro

Tipo

Descripción

productKey

String

Identificador único del producto al que pertenece el dispositivo.

deviceName

String

Nombre del dispositivo.

instanceId

String

ID de la instancia a la que pertenece el dispositivo.

requestId

String

El campo Id del mensaje original del dispositivo. Cadena numérica en el rango de 0 a 4294967295. Debe ser única por dispositivo.

items

Object

Datos del dispositivo.

Power

String

Identificador de la propiedad. Para consultar los nombres de las propiedades, revise la descripción TSL del producto.

Si la propiedad pertenece a un módulo personalizado, el identificador sigue el formato ${ModuleIdentifier}:${PropertyIdentifier} (se usa dos puntos : como separador). Por ejemplo, si el identificador de un módulo de modelo TSL personalizado es test, el formato de datos es:

{
        "items":{
            "test:Power":[
                {
                    "value":"on",
                    "time":1510799670074
                },
                {
                    "value": "off", 
                    "time": 1524448722001
                }
            ],
            "test:WF":[
                {
                    "value": 3, 
                    "time": 1524448722000
                },
                {
                    "value": 4, 
                    "time": 1524448722009
                }
            ]
        }
    }

WF

value

Definido por TSL

Valor de la propiedad.

time

Long

Hora en que se reportó la propiedad. Si el dispositivo no la reporta, se usa de forma predeterminada la hora en que IoT Platform genera los datos.

Envío de eventos del dispositivo por lotes

Topic: /${productKey}/${deviceName}/thing/event/batch/post

Reporta los eventos enviados por un dispositivo en lotes.

Formato de datos:

{
    "productKey": "al12345****",
    "deviceName": "deviceName1234",
    "instanceId": "iot-0***",
    "requestId": "2",
    "items": {
        "alarmEvent": [
            {
                "value": {
                    "Power": "on",
                    "WF": "2"
                },
                "time": 1524448722000
            },
            {
                "value": {
                    "Power": "on",
                    "WF": "2"
                },
                "time": 1524448723000
            }
        ]
    }
}

Descripción de parámetros:

Parámetro

Tipo

Descripción

productKey

String

Identificador único del producto al que pertenece el dispositivo.

deviceName

String

Nombre del dispositivo.

instanceId

String

ID de la instancia a la que pertenece el dispositivo.

requestId

String

El campo Id del mensaje original del dispositivo. Cadena numérica en el rango de 0 a 4294967295. Debe ser única por dispositivo.

items

Object

Datos del dispositivo.

alarmEvent

List

Identificador del evento.

value

Object

Parámetros del evento.

En el ejemplo anterior, Power y WF son los nombres de los parámetros del evento.

time

Long

Hora en que se reportó el evento. Si el dispositivo no lo reporta, se usa de forma predeterminada la hora en que IoT Platform genera los datos.

Cambios en el ciclo de vida del dispositivo

Topic: /${productKey}/${deviceName}/thing/lifecycle

Reporta eventos de creación, eliminación, habilitación y deshabilitación de dispositivos.

Formato de datos:

{
    "action": "create|delete|enable|disable",
    "iotId": "4z819VQHk6VSLmmBJfrf00107e****",
    "productKey": "al5eCzh****",
    "deviceName": "5gJtxDVeGAkaEztpisjX",
    "deviceSecret": "wsde***", 
    "messageCreateTime": 1510292739881 
}

Descripción de parámetros:

Parámetro

Tipo

Descripción

action

String

  • create: Se creó un dispositivo.

  • delete: Se eliminó un dispositivo.

  • enable: Se habilitó un dispositivo.

  • disable: Se deshabilitó un dispositivo.

iotId

String

Identificador único del dispositivo en IoT Platform.

productKey

String

Identificador único del producto.

deviceName

String

Nombre del dispositivo.

deviceSecret

String

Secreto del dispositivo. Este parámetro solo se incluye si el parámetro action está establecido en create.

messageCreateTime

Integer

Marca de tiempo de generación del mensaje. Unidad: milisegundo.

Cambios en la topología del dispositivo

Topic: /${productKey}/${deviceName}/thing/topo/lifecycle

Reporta cambios de topología entre un subdispositivo y una puerta de enlace.

Formato de datos:

{
    "action" : "create|delete|enable|disable",
    "gwIotId": "dfaejVQHk6VSLmmBJfrf00107e****",
    "gwProductKey": "al5eCzh****",
    "gwDeviceName": "deviceName1234",
    "devices": [
        {
            "iotId": "4z819VQHk6VSLmmBJfrf00107e****",
            "productKey": "ala4Czh****",
            "deviceName": "deviceName1234"
        }
    ],
    "messageCreateTime": 1510292739881
}

Descripción de parámetros:

Parámetro

Tipo

Descripción

action

String

  • create: Se agregó una relación topológica.

  • delete: Se eliminó una relación topológica.

  • enable: Se habilitó una relación topológica.

  • disable: Se deshabilitó una relación topológica.

gwIotId

String

Identificador único del dispositivo de puerta de enlace en IoT Platform.

gwProductKey

String

Identificador único del producto de la puerta de enlace.

gwDeviceName

String

Nombre del dispositivo de puerta de enlace.

devices

Object

Lista de subdispositivos modificados.

iotId

String

Identificador único del subdispositivo en IoT Platform.

productKey

String

Identificador único del producto del subdispositivo.

deviceName

String

Nombre del subdispositivo.

messageCreateTime

Integer

Marca de tiempo de generación del mensaje. Unidad: milisegundo.

Descubrimiento de subdispositivos por la puerta de enlace

Topic: /${productKey}/${deviceName}/thing/list/found

Reporta información de subdispositivos detectados por una puerta de enlace.

Formato de datos:

{
    "gwIotId":"dfaew9VQHk6VSLmmBJfrf00107e****",
    "gwProductKey":"al12345****",
    "gwDeviceName":"deviceName1234",
    "devices":[
        {
            "iotId":"4z819VQHk6VSLmmBJfrf00107e****",
            "productKey":"alr56g9****",
            "deviceName":"deviceName1234"
        }
    ]
}

Descripción de parámetros:

Parámetro

Tipo

Descripción

gwIotId

String

Identificador único del dispositivo de puerta de enlace en IoT Platform.

gwProductKey

String

Identificador único del producto de la puerta de enlace.

gwDeviceName

String

Nombre del dispositivo de puerta de enlace.

devices

Object

Lista de subdispositivos descubiertos.

iotId

String

Identificador único del subdispositivo en IoT Platform.

productKey

String

Identificador único del producto al que pertenece el subdispositivo.

deviceName

String

Nombre del subdispositivo.

Resultados de comandos descendentes

Topic: /${productKey}/${deviceName}/thing/downlink/reply/message

Reporta los resultados de comandos asíncronos de configuración de propiedades e invocación de servicios procesados por un dispositivo. También devuelve mensajes de error para comandos con errores.

Formato de datos:

{
    "gmtCreate":1510292739881,
    "iotId":"4z819VQHk6VSLmmBJfrf00107e****",
    "productKey":"al12355****",
    "deviceName":"deviceName1234",
    "requestId":"2",
    "code":200,
    "message":"success",
    "topic":"/sys/al12355****/deviceName1234/thing/service/property/set",
    "data":{},
    "checkFailedData":{
        "value": {
            "PicID": "15194139"
        },
        "code":6304,
        "message":"tsl parse: params not exist -> PicID"
    }
}

Descripción de parámetros:

Parámetro

Tipo

Descripción

gmtCreate

Long

Marca de tiempo UTC.

iotId

String

Identificador único del dispositivo en IoT Platform.

productKey

String

Identificador único del producto al que pertenece el dispositivo.

deviceName

String

Nombre del dispositivo.

requestId

String

El campo Id del mensaje original del dispositivo. Cadena numérica en el rango de 0 a 4294967295. Debe ser única por dispositivo.

code

Integer

Código de resultado del dispositivo. Los valores se listan en la tabla Result codes.

message

String

Información del código de resultado que devuelve el dispositivo.

topic

String

Información sobre el topic utilizado para enviar el comando al dispositivo.

data

Object

Resultado devuelto por el dispositivo. Para datos en formato Alink, se devuelve directamente el resultado del procesamiento del dispositivo. Para datos en formato transparente, los datos deben transformarse mediante un script.

checkFailedData

Object

Datos que no superaron la validación del modelo TSL.

value

Definido por TSL

Valor de propiedad o parámetro de servicio que no superó la validación del modelo TSL.

En el ejemplo anterior, PicID es el nombre del parámetro que falló en la validación.

code

Integer

Código de error para fallos de validación TSL. Error codes for devices.

message

String

Mensaje de error devuelto cuando los datos no superan la validación del modelo TSL; incluye la causa del fallo y los parámetros no válidos.

Tabla 1. Códigos de resultado

code

message

Descripción

200

success

La solicitud fue exitosa.

400

request error

Ocurrió un error interno del servicio durante el procesamiento.

460

request parameter error

Parámetro de solicitud no válido. El dispositivo no pudo validar el parámetro de entrada.

429

too many requests

Demasiadas solicitudes.

9200

device not actived

El dispositivo no está activado.

9201

device offline

El dispositivo está sin conexión.

403

request forbidden

La solicitud está prohibida debido a un pago vencido.

Resuelva estos errores mediante la referencia Error codes for devices.

Envío de propiedades históricas

Topic: /${productKey}/${deviceName}/thing/event/property/history/post

Reporta datos históricos de propiedades TSL enviados por un dispositivo.

Formato de datos:

{
    "iotId":"4z819VQHk6VSLmmBJfrf00107e****",
    "requestId":"2",
    "productKey":"12345****",
    "deviceName":"deviceName1234",
    "gmtCreate":1510799670074,
    "deviceType":"Ammeter",
    "items":{
        "Power":{
            "value":"on",
            "time":1510799670074
        },
        "Position":{
            "time":1510292697470,
            "value":{
                "latitude":39.9,
                "longitude":116.38
            }
        }
    },
    "checkFailedData":{
        "attribute_8":{
            "time": 1510292697470,
            "value": 715665571,
            "code":6304,
            "message":"tsl parse: params not exist -> attribute_8"
        }
    }
}

Descripción de parámetros:

Parámetro

Tipo

Descripción

iotId

String

Identificador único del dispositivo en IoT Platform.

requestId

String

El campo Id del mensaje original del dispositivo. Cadena numérica en el rango de 0 a 4294967295. Debe ser única por dispositivo.

productKey

String

Identificador único del producto al que pertenece el dispositivo.

deviceName

String

Nombre del dispositivo.

gmtCreate

Long

Hora en que se generó el mensaje de reenvío de datos.

deviceType

String

Categoría del dispositivo.

Se establece al crear un producto (Create a product o CreateProduct).

items

Object

Datos del dispositivo.

Power

String

Identificador de la propiedad. Para consultar los nombres de las propiedades, revise la descripción TSL del producto.

Si la propiedad pertenece a un módulo personalizado, el identificador sigue el formato ${ModuleIdentifier}:${PropertyIdentifier} (se usa dos puntos : como separador). Por ejemplo, si el identificador de un módulo de modelo TSL personalizado es test, el formato de datos es:

{
        "items":{
            "test:Power":{
                "value":"on",
                "time":1510799670074
            },
            "test:Position":{
                "time":1510292697470,
                "value":{
                    "latitude":39.9,
                    "longitude":116.38
                }
            }
        }
    }

Position

attribute_8

checkFailedData

Object

Datos que no superaron la validación del modelo TSL.

value

Definido por TSL

Valor de la propiedad.

time

Long

Hora en que se reportó la propiedad. Si el dispositivo no la reporta, se usa de forma predeterminada la hora en que IoT Platform genera los datos.

code

Integer

Código de error para fallos de validación TSL. Error codes for devices.

message

String

Mensaje de error devuelto cuando los datos no superan la validación del modelo TSL; incluye la causa del fallo y los parámetros no válidos.

Envío de eventos históricos

Topic: /${productKey}/${deviceName}/thing/event/${tsl.event.identifier}/history/post

Reporta datos históricos de eventos enviados por un dispositivo.

Formato de datos:

{
    "identifier":"BrokenInfo",
    "name":"Damage Rate Submission",
    "type":"info",
    "iotId":"4z819VQHk6VSLmmBJfrf00107e***",
    "requestId":"2",
    "productKey":"X5eCzh6***",
    "deviceName":"5gJtxDVeGAkaEztpisjX",
    "value":{
        "Power":"on",
        "Position":{
            "latitude":39.9,
            "longitude":116.38
        }
    },
    "checkFailedData":{},
    "time":1510799670074
}

Descripción de parámetros:

Parámetro

Tipo

Descripción

identifier

String

Identificador del evento.

Si el evento pertenece a un módulo personalizado, el identificador sigue el formato ${ModuleIdentifier}:${EventIdentifier} (se usa dos puntos : como separador). Por ejemplo, si el identificador de un módulo de modelo TSL personalizado es test, el formato de datos es:

"test:identifier":"BrokenInfo",

name

String

Nombre del evento.

type

String

Tipo de evento. Para consultar los tipos de eventos, revise la descripción TSL del producto.

iotId

String

Identificador único del dispositivo en IoT Platform.

requestId

String

El campo Id del mensaje original del dispositivo. Cadena numérica en el rango de 0 a 4294967295. Debe ser única por dispositivo.

productKey

String

Identificador único del producto al que pertenece el dispositivo.

deviceName

String

Nombre del dispositivo.

gmtCreate

Long

Hora en que se generó el mensaje de reenvío de datos.

value

Object

Información de los parámetros de salida del evento. El ejemplo muestra información sobre los dos parámetros Power y Position.

{
    "Power":"on",
    "Position":{
        "latitude":39.9,
        "longitude":116.38
    }
}
Importante
  • Solo cuando todos los parámetros de salida del evento superan la validación, dichos parámetros aparecen en el parámetro value. En este caso, el parámetro checkFailedData está vacío.

  • Si algún parámetro de salida del evento no supera la validación, todos los parámetros de salida aparecen en el parámetro checkFailedData. En este caso, el parámetro value está vacío.

checkFailedData

Object

Datos que no superaron la validación del modelo TSL.

Si los parámetros de salida del evento no superan la validación, el parámetro checkFailedData es:

{
    "value":{
        "Power":"on",
        "Position":{
            "latitude":39.9,
            "longitude":116.38
        }
    },
    "time":1524448722000,
    "code":6304,
    "message":"tsl parse: params not exist -> type"
}

Donde:

  • value: Object. Información de los parámetros de salida del evento.

  • time: Long. Marca de tiempo de generación del evento.

  • code: Integer. Código de error para fallos de validación TSL. Error codes for devices.

  • message: String. Mensaje de error devuelto cuando los datos no superan la validación del modelo TSL; incluye la causa del fallo y los parámetros no válidos.

time

Long

Hora en que se reportó el evento. Si el dispositivo no lo reporta, se usa de forma predeterminada la hora en que IoT Platform genera los datos.

Notificaciones de estado de actualización OTA

Topic: /${productKey}/${deviceName}/ota/upgrade

Reporta los resultados de la actualización OTA (éxito, error o cancelación).

Nota

Si un dispositivo tiene una tarea de actualización sin finalizar e inicia una actualización por lotes, esta última fallará. En este caso, IoT Platform no reenvía el mensaje de error.

Formato de datos:

{
    "iotId": "4z819VQHk6VSLmmBJfrf00107e****",
    "productKey": "X5eCzh6****",
    "deviceName": "deviceName1234",
    "moduleName": "default",
    "status": "SUCCEEDED|FAILED|CANCELED",
    "messageCreateTime": 1571323748000,
    "srcVersion": "1.0.1",
    "destVersion": "1.0.2",
    "desc": "success",
    "jobId": "wahVIzGkCMuAUE2gDERM02****",
    "taskId": "y3tOmCDNgpR8F9jnVEzC01****"
}

Descripción de parámetros:

Parámetro

Tipo

Descripción

iotId

String

El identificador único del dispositivo.

productKey

String

El identificador único del producto al que pertenece el dispositivo.

deviceName

String

El nombre del dispositivo.

moduleName

String

El nombre del módulo OTA.

status

String

El estado de la actualización.

  • SUCCEEDED: La actualización se completó correctamente.

  • FAILED: La actualización falló.

  • CANCELED: La actualización se canceló.

messageCreateTime

Long

La marca de tiempo en la que se generó el mensaje. Unidad: milisegundo.

srcVersion

String

La versión anterior a la actualización.

destVersion

String

La versión de destino de la actualización.

desc

String

La descripción del estado de la actualización.

jobId

String

El ID del lote de actualización. Identifica de forma única el lote de actualización.

taskId

String

El identificador único del registro de actualización del dispositivo.

Notificaciones de progreso de actualización OTA

Topic: /${productKey}/${deviceName}/ota/progress/post

Reporta el progreso de la actualización OTA.

Formato de datos:

{
    "iotId": "4z819VQHk6VSLmmBJfrf00107e****",
    "productKey": "X5eCzh6****",
    "deviceName": "deviceName1234",
    "moduleName":"default",
    "status":"IN_PROGRESS",
    "step": "90",
    "messageCreateTime": 1571323748000,
    "srcVersion":"1.0.1",
    "destVersion":"1.0.2",
    "desc": "success",
    "jobId": "wahVIzGkCMuAUE2gDERM02****",
    "taskId": "y3tOmCDNgpR8F9jnVEzC01****"
}

Descripción de parámetros:

Parámetro

Tipo

Descripción

iotId

String

El identificador único del dispositivo.

productKey

String

El identificador único del producto al que pertenece el dispositivo.

deviceName

String

El nombre del dispositivo.

moduleName

String

El nombre del módulo OTA.

status

String

El estado de la actualización. El valor es fijo: IN_PROGRESS (en progreso).

step

Integer

El progreso de la actualización reportado por el dispositivo.

messageCreateTime

Long

La marca de tiempo en la que se generó el mensaje. Unidad: milisegundo.

srcVersion

String

La versión anterior a la actualización.

destVersion

String

La versión de destino de la actualización.

desc

String

La descripción del estado de la actualización.

jobId

String

El ID del lote de actualización. Identifica de forma única el lote de actualización.

taskId

String

El identificador único del registro de actualización del dispositivo.

Notificaciones de cambio de versión de módulo OTA

Topic: /${productKey}/${deviceName}/ota/version/post

Reporta los números de versión del módulo OTA cuando un dispositivo envía una nueva versión.

Formato de datos:

{
    "iotId": "4z819VQHk6VSLmmBJfrf00107e****",
    "deviceName": "deviceName1234",
    "productKey": "X5eCzh6****",
    "moduleName": "BarcodeScanner",
    "moduleVersion": "1.0.3",
    "messageCreateTime": 1571323748000
}

Descripción de parámetros:

Parámetro

Tipo

Descripción

iotId

String

El identificador único del dispositivo.

productKey

String

El identificador único del producto al que pertenece el dispositivo.

deviceName

String

El nombre del dispositivo.

moduleName

String

El nombre del módulo.

moduleVersion

String

El número de versión del módulo.

messageCreateTime

Long

La marca de tiempo en la que se generó el mensaje. Unidad: milisegundo.

Notificaciones de estado de lote de actualización OTA

Topic: /${productKey}/${packageId}/${jobId}/ota/job/status

Reporta los cambios de estado del lote de actualización OTA.

Formato de datos:

{
    "productKey": "X5eCzh6****",
    "moduleName": "BarcodeScanner",
    "packageId": "wahVIzGkCMuAUE2***",
    "jobId": "wahVIzGkCMuAUE2gDERM02****",
    "state": "IN_PROGRESS",
    "messageCreateTime": 1571323748000
}

Descripción de parámetros:

Parámetro

Tipo

Descripción

productKey

String

El identificador único del producto al que pertenece el dispositivo.

moduleName

String

El nombre del módulo.

packageId

String

El ID del paquete de actualización. El valor de este parámetro coincide con el valor del parámetro FirmwareId que se devuelve al llamar a la operación CreateOTAFirmware para crear un paquete de actualización.

jobId

String

El ID del lote de actualización. Identifica de forma única el lote de actualización.

state

String

El estado del lote de actualización. Valores válidos:

  • PLANNED: La actualización no ha comenzado.

  • IN_PROGRESS: La actualización está en curso.

  • COMPLETED: La actualización se completó.

  • CANCELED: La tarea se canceló.

  • UNFINISH: Sin finalizar.

    Si una instancia Enterprise no cuenta con suficientes actualizaciones disponibles, el estado del lote de actualización será UNFINISH.

messageCreateTime

Long

La marca de tiempo en la que se generó el mensaje. Unidad: milisegundo.

Cambios en etiquetas de dispositivo

Topic: /${productKey}/${deviceName}/thing/deviceinfo/update

Reporta los cambios en las etiquetas del dispositivo.

Formato de datos:

{
    "action": "UPDATE|DELETE|DELETEALL"
    "iotId": "4z819VQHk6VSLmmBJfrf00107e****",
    "productKey": "X5eCzh6****",
    "deviceName": "deviceName1234",
    "deletedAttrKeyList": ["abc", "def", "rng"],
    "value": [
        {
            "attrKey": "tagKey",
            "attrValue": "tagValue"
        }
    ],
    "messageCreateTime": 1510799670074
}

Descripción de parámetros:

Parámetro

Tipo

Descripción

action

String

El tipo de cambio de etiqueta. Valores válidos:

  • UPDATE: Se actualizó o agregó una etiqueta.

  • DELETE: Se eliminó una etiqueta específica.

  • DELETEALL: Se borraron todas las etiquetas.

iotId

String

El identificador único del dispositivo.

productKey

String

El identificador único del producto al que pertenece el dispositivo.

deviceName

String

El nombre del dispositivo.

deletedAttrKeyList

List

La lista de claves de las etiquetas eliminadas.

Este parámetro solo se muestra cuando el parámetro action está establecido en DELETE.

value

List

Los datos de la etiqueta.

attrKey

String

La clave de la etiqueta.

attrValue

String

El valor de la etiqueta.

messageCreateTime

Long

La marca de tiempo en la que se generó el mensaje. Unidad: milisegundo.

Notificaciones de estado de tareas de dispositivo

Topic: /sys/uid/${uid}/job/${jobId}/lifecycle

Reporta los cambios de estado de las tareas del dispositivo, incluida la configuración de propiedades por lotes, la invocación de servicios por lotes y las tareas personalizadas.

En el topic, ${uid} es su ID de cuenta de Alibaba Cloud. Para consultar el ID, inicie sesión en la consola de IoT Platform, haga clic en su foto de perfil y vaya a la página de Twin Node Attribute Change.

Formato de datos:

{
    "jobId": "4z819VQHk6VSLmm***ee200",
    "jobType": "CUSTOM_JOB",
    "status": "INITIALIZING",
    "messageCreateTime": 1510292739881
}

Descripción de parámetros:

Parámetro

Tipo

Descripción

jobId

String

El ID de la tarea. Identificador globalmente único de la tarea.

jobType

String

El tipo de tarea.

  • SET_PROPERTY: una tarea para establecer propiedades de dispositivo por lotes.

  • INVOKE_SERVICE: una tarea para invocar un servicio de dispositivo por lotes.

  • CUSTOM_JOB: una tarea personalizada.

status

String

El estado de la tarea. Valores válidos:

  • INITIALIZING: La tarea se está inicializando.

  • WAITING: La tarea está en espera de programación.

  • IN_PROGRESS: La tarea está en curso.

  • COMPLETED: La tarea se completó.

  • CANCELLING: La tarea se está cancelando.

  • CANCELLED: Cancelada.

  • REMOVING: La tarea se está eliminando.

messageCreateTime

Long

La marca de tiempo en la que se generó el mensaje. Unidad: milisegundo.

Notificaciones de estado de tareas de migración de instancias

Topic: /sys/uid/{uid}/distribution/{jobId}/lifecycle

Reporta los cambios de estado de las tareas de migración de instancias.

En el topic, ${uid} es su ID de cuenta de Alibaba Cloud. Para buscar su ID de cuenta, inicie sesión en la consola de IoT Platform, pase el puntero del mouse sobre su foto de perfil y consulte el Security Settings.

Formato de datos:

{
    "jobId": "4z819VQHk6VSLmmxxxxxxxxxxee200",
    "status": "GRAY_EXECUTING",
    "messageCreateTime": 1510292739881,
    "type":"INSTANCE_UPGRADE",
    "sourceInstance":"iotx-oxssharez200",
    "targetInstance":"iot-es5v4***",
    "successDevices":[
        {
            "productKey":"al12***",
            "deviceName":"deviceName1",
            "iotId":"4z81frf00107e***"
        }
    ]
}

Descripción de parámetros:

Parámetro

Tipo

Descripción

jobId

String

El ID de la tarea. Identificador globalmente único de la tarea.

status

String

El estado de la tarea. Valores válidos:

  • GRAY_EXECUTING: Migración gradual en curso.

  • GRAY_FINISHED: Migración gradual completada.

  • ALL_EXECUTING: Migración completa en curso.

  • ALL_FINISHED: Migración completa finalizada.

  • ALL_PAUSE: Migración en pausa.

  • ROLL_BACK_EXECUTING: Reversión en curso.

  • BATCH_ROLL_BACK_EXECUTING: Reversión por lotes en curso.

  • ROLL_BACK_PAUSE: Reversión en pausa.

messageCreateTime

Long

La marca de tiempo en la que se generó el mensaje. Unidad: milisegundo.

type

String

El tipo de tarea. El valor es fijo: INSTANCE_UPGRADE.

sourceInstance

String

El ID de la instancia pública de origen para la migración de instancias. El ID de una instancia pública de versión anterior es iotx-oxssharez200.

Los detalles de las instancias se describen en Overview of instances.

targetInstance

String

El ID de la instancia Enterprise de destino para la migración de instancias.

successDevices

List

Información sobre los dispositivos que se migraron correctamente:

  • Cuando el estado es GRAY_EXECUTING o ALL_EXECUTING, este parámetro indica los dispositivos que se migraron correctamente de la instancia pública de origen a la instancia Enterprise de destino.

  • Cuando el estado es ROLL_BACK_EXECUTING o BATCH_ROLL_BACK_EXECUTING, este parámetro indica los dispositivos que se migraron correctamente de la instancia Enterprise de regreso a la instancia pública.

El parámetro successDevices puede estar vacío durante el proceso de migración. Esto indica que el estado de la tarea cambió y que la tarea comenzó, pero aún no se ha migrado ningún dispositivo.

productKey

String

El identificador único del producto al que pertenece el dispositivo.

deviceName

String

El nombre del dispositivo.

iotId

String

El identificador único del dispositivo en IoT Platform.