物联网平台的云产品流转和服务端订阅,是基于Topic中的数据格式来处理和传递数据的。Topic可分为自定义Topic、基础通信Topic和物模型Topic,其中自定义Topic中的数据格式由您定义。本文介绍基础通信Topic和物模型通信Topic数据经过消息转发后的数据格式。
消息转发与设备原始通信的Topic说明
通信Topic的定义、使用和分类说明,请参见什么是Topic。
设备上报的原始数据格式,需您在设备端完成开发。其中:
- 基础通信Topic和物模型通信Topic数据必须符合物联网平台支持的Alink协议。详细说明,请参见Alink协议目录下对应文档。 - 设备上报原始数据经过消息转发后,会进行数据格式转化。具体格式说明,请参见下文描述。 
- 自定义Topic数据由您自定义数据格式。 - 设备上报原始数据经过消息转发后,不会进行数据格式转化,与您自定义Topic数据格式相同。 
设备原始数据通信Topic,对应消息转发设备数据的通信Topic说明如下表。
| Topic | 说明 | 相关文档 | 
| 自定义 | 流转自定义数据格式消息的Topic,与自定义Topic的格式相同。格式为: 其中 支持使用通配符(+)和(#): 
 | |
| 设备状态变化通知 | 流转设备上下线状态变更消息的Topic: | |
| 物模型数据上报 | 包含: 
 | |
| 对应设备上报原始数据的Topic如下: 
 | ||
| 设备生命周期变更 | 流转设备创建、删除、禁用、启用等消息的Topic: | |
| 网关发现子设备上报 | 网关设备特有的Topic: | |
| 设备拓扑关系变更 | 网关设备特有Topic: | |
| 对应设备上报原始数据的Topic: | ||
| 设备标签变更 | 流转设备标签信息变更的Topic: | |
| 对应设备上报原始数据的Topic: | ||
| 物模型历史数据上报 | 包含: 
 | |
| 对应设备上报物模型历史数据的Topic: | ||
| OTA升级设备状态通知 | 包含: 
 | |
| 对应设备上报升级进度的Topic: | ||
| OTA模块版本号上报 | 流转设备上报OTA模块版本号变更的Topic: | |
| 对应设备上报OTA模块版本的Topic: | ||
| OTA升级批次状态通知 | 物联网平台通知OTA升级批次状态变化的Topic: | |
| 任务事件 | 包含: 
 | |
| 孪生节点属性变更 | 流转孪生节点属性数据的Topic: | 
设备上下线状态
Topic:/as/mqtt/status/${productKey}/${deviceName}
通过该Topic获取设备的上下线状态。
设备上线的数据格式:
{
    "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"
}设备下线的数据格式:
{
    "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"
}参数说明:
| 参数 | 类型 | 说明 | 
| status | String | 设备状态。 
 | 
| iotId | String | 设备在平台内的唯一标识。 | 
| offlineReasonCode | Integer | 设备下线时,返回的错误码。详细说明,请参见设备行为错误码。 | 
| productKey | String | 设备所属产品的唯一标识。 | 
| deviceName | String | 设备名称。 | 
| lastTime | String | 该参数为历史存量字段,已无实际意义。 | 
| utcLastTime | String | |
| time | String | 设备上、下线的时间。 收到消息的顺序不是实际设备上下线时间排序。设备上下线顺序需按照time具体值排序。 例如,您依次收到3条消息: 
 这3条消息展示了,设备先下线,再上线,最后下线的过程。 | 
| utcTime | String | 设备上、下线的UTC时间。 | 
| clientIp | String | 设备公网出口IP。 | 
设备属性上报
Topic:/${productKey}/${deviceName}/thing/event/property/post
通过该Topic获取设备上报的属性信息。
数据格式:
{
    "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"
        }
    }
}参数说明:
| 参数 | 类型 | 说明 | 
| iotId | String | 设备在平台内的唯一标识。 | 
| requestId | String | 设备上报消息的原始数据中的Id,String类型的数字,取值范围为0~4294967295,且每个消息ID在当前设备中具有唯一性。 | 
| productKey | String | 设备所属产品的唯一标识。 | 
| deviceName | String | 设备名称。 | 
| gmtCreate | Long | 数据流转消息产生时间。 | 
| deviceType | String | 设备所属品类。 该品类是您在物联网平台创建产品时选择的品类。具体说明,请参见创建产品或CreateProduct。 | 
| items | Object | 设备数据。 | 
| Power | String | 属性标识符。产品所具有的属性名称请参见产品的TSL描述。 如果是自定义模块属性,属性标识符格式为  | 
| Position | ||
| attribute_8 | ||
| checkFailedData | Object | 未通过物模型数据校验的数据。 | 
| value | 根据TSL定义 | 属性值。 | 
| time | Long | 上报属性的时间,如果设备没有上报数据,默认采用在物联网平台生成的时间。 | 
| code | Integer | 数据未通过物模型数据校验时,返回的错误码。详细说明,请参见设备端接收的错误码。 | 
| message | String | 数据未通过物模型数据校验时,返回的错误码信息,包含错误原因和具体的错误参数。 | 
设备事件上报
Topic:/${productKey}/${deviceName}/thing/event/${tsl.event.identifier}/post
通过该Topic获取设备上报的事件信息。
数据格式:
{
    "identifier":"BrokenInfo",
    "name":"损坏率上报",
    "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
}参数说明:
| 参数 | 类型 | 说明 | 
| identifier | String | 事件的标识符。 如果是自定义模块事件,事件标识符格式为  | 
| name | String | 事件的名称。 | 
| type | String | 事件类型,事件类型参见产品的TSL描述。 | 
| iotId | String | 设备在平台内的唯一标识。 | 
| requestId | String | 设备上报消息的原始数据中的Id,String类型的数字,取值范围为0~4294967295,且每个消息ID在当前设备中具有唯一性。 | 
| productKey | String | 设备所属产品的唯一标识。 | 
| deviceName | String | 设备名称。 | 
| gmtCreate | Long | 数据流转消息产生时间。 | 
| value | Object | 事件的输出参数信息。如以上示例中的两个参数Power(电源)和Position(位置)的信息。 重要  
 | 
| checkFailedData | Object | 未通过物模型数据校验的数据信息。 若事件的输出参数未通过检验,则checkFailedData为: 其中: 
 | 
| time | Long | 上报事件的时间,如果设备没有上报数据,默认采用物联网平台生成的时间。 | 
设备属性批量上报
Topic:/${productKey}/${deviceName}/thing/property/batch/post
通过该Topic获取设备批量上报的属性信息。
数据格式:
{
    "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
            }
        ]
    }
}参数说明:
| 参数 | 类型 | 说明 | 
| productKey | String | 设备所属产品的唯一标识。 | 
| deviceName | String | 设备名称。 | 
| instanceId | String | 设备所属实例的实例ID。 | 
| requestId | String | 设备上报消息的原始数据中的Id,String类型的数字,取值范围为0~4294967295,且每个消息ID在当前设备中具有唯一性。 | 
| items | Object | 设备数据。 | 
| Power | String | 属性标识符。产品所具有的属性名称请参见产品的TSL描述。 如果是自定义模块属性,属性标识符格式为  | 
| WF | ||
| value | 根据TSL定义 | 属性值。 | 
| time | Long | 上报属性的时间,如果设备没有上报数据,默认采用在物联网平台生成的时间。 | 
设备事件批量上报
Topic:/${productKey}/${deviceName}/thing/event/batch/post
通过该Topic获取设备批量上报的事件信息。
数据格式:
{
    "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
            }
        ]
    }
}参数说明:
| 参数 | 类型 | 说明 | 
| productKey | String | 设备所属产品的唯一标识。 | 
| deviceName | String | 设备名称。 | 
| instanceId | String | 设备所属实例的实例ID。 | 
| requestId | String | 设备上报消息的原始数据中的Id,String类型的数字,取值范围为0~4294967295,且每个消息ID在当前设备中具有唯一性。 | 
| items | Object | 设备数据。 | 
| alarmEvent | List | 事件的标识符。 | 
| value | Object | 事件的参数。 以上示例中,Power和WF是事件的参数名称。 | 
| time | Long | 上报事件的时间,如果设备没有上报数据,默认采用在物联网平台生成的时间。 | 
设备生命周期变更
Topic:/${productKey}/${deviceName}/thing/lifecycle
通过该Topic获得设备创建、删除、禁用、启用等消息。
数据格式:
{
    "action": "create|delete|enable|disable",
    "iotId": "4z819VQHk6VSLmmBJfrf00107e****",
    "productKey": "al5eCzh****",
    "deviceName": "5gJtxDVeGAkaEztpisjX",
    "deviceSecret": "wsde***", 
    "messageCreateTime": 1510292739881 
}参数说明:
| 参数 | 类型 | 说明 | 
| action | String | 
 | 
| iotId | String | 设备在平台内的唯一标识。 | 
| productKey | String | 产品的唯一标识。 | 
| deviceName | String | 设备名称。 | 
| deviceSecret | String | 设备密钥,仅在action为 | 
| messageCreateTime | Integer | 消息产生时间戳,单位为毫秒。 | 
设备拓扑关系变更
Topic:/${productKey}/${deviceName}/thing/topo/lifecycle
通过该Topic获得子设备和网关之间拓扑关系建立和解除信息。
数据格式:
{
    "action" : "create|delete|enable|disable",
    "gwIotId": "dfaejVQHk6VSLmmBJfrf00107e****",
    "gwProductKey": "al5eCzh****",
    "gwDeviceName": "deviceName1234",
    "devices": [
        {
            "iotId": "4z819VQHk6VSLmmBJfrf00107e****",
            "productKey": "ala4Czh****",
            "deviceName": "deviceName1234"
        }
    ],
    "messageCreateTime": 1510292739881
}参数说明:
| 参数 | 类型 | 说明 | 
| action | String | 
 | 
| gwIotId | String | 网关设备在平台内的唯一标识。 | 
| gwProductKey | String | 网关产品的唯一标识。 | 
| gwDeviceName | String | 网关设备名称。 | 
| devices | Object | 变更的子设备列表。 | 
| iotId | String | 子设备在平台内的唯一标识。 | 
| productKey | String | 子设备产品的唯一标识。 | 
| deviceName | String | 子设备名称。 | 
| messageCreateTime | Integer | 消息产生时间戳,单位毫秒。 | 
网关发现子设备
Topic:/${productKey}/${deviceName}/thing/list/found
在一些场景中网关能够检测到子设备,并将检测到的子设备信息上报。此时可以通过该Topic获取到上报的信息。
数据格式:
{
    "gwIotId":"dfaew9VQHk6VSLmmBJfrf00107e****",
    "gwProductKey":"al12345****",
    "gwDeviceName":"deviceName1234",
    "devices":[
        {
            "iotId":"4z819VQHk6VSLmmBJfrf00107e****",
            "productKey":"alr56g9****",
            "deviceName":"deviceName1234"
        }
    ]
}参数说明:
| 参数 | 类型 | 说明 | 
| gwIotId | String | 网关设备在平台内的唯一标识。 | 
| gwProductKey | String | 网关产品的唯一标识。 | 
| gwDeviceName | String | 网关设备名称。 | 
| devices | Object | 发现的子设备列表。 | 
| iotId | String | 子设备在平台内的唯一标识。 | 
| productKey | String | 子设备所属产品的唯一标识。 | 
| deviceName | String | 子设备名称。 | 
设备下行指令结果
Topic:/${productKey}/${deviceName}/thing/downlink/reply/message
通过该Topic可以获取,通过异步方式下发属性设置和服务调用指令给设备,设备进行处理后返回的结果信息。如果下发指令过程中出现错误,也可以通过该Topic得到指令下发的错误信息。
数据格式:
{
    "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"
    }
}参数说明:
| 参数 | 类型 | 说明 | 
| gmtCreate | Long | UTC时间戳。 | 
| iotId | String | 设备在平台内的唯一标识。 | 
| productKey | String | 设备所属产品的唯一标识。 | 
| deviceName | String | 设备名称。 | 
| requestId | String | 设备上报消息的原始数据中的Id,String类型的数字,取值范围为0~4294967295,且每个消息ID在当前设备中具有唯一性。 | 
| code | Integer | 设备回复的结果状态码,说明参见下表结果状态码。 | 
| message | String | 设备回复的结果状态码信息。 | 
| topic | String | 下发指令给设备的Topic信息。 | 
| data | Object | 设备返回的结果。Alink格式数据直接返回设备处理结果,透传格式数据则需要经过脚本转换。 | 
| checkFailedData | Object | 未通过物模型数据校验的数据。 | 
| value | 根据TSL定义 | 未通过物模型数据校验的属性值、服务参数值。 以上示例中,PicID是未通过检验的参数名称。 | 
| code | Integer | 数据未通过物模型数据校验时,返回的错误码。详细说明,请参见设备端接收的错误码。 | 
| message | String | 数据未通过物模型数据校验时,返回的错误码信息,包含错误原因和具体的错误参数。 | 
| code | message | 说明 | 
| 200 | success | 请求成功。 | 
| 400 | request error | 内部服务错误,处理时发生内部错误。 | 
| 460 | request parameter error | 请求参数错误,设备入参校验失败。 | 
| 429 | too many requests | 请求过于频繁。 | 
| 9200 | device not actived | 设备没有激活。 | 
| 9201 | device offline | 设备不在线。 | 
| 403 | request forbidden | 由于欠费导致请求被禁止。 | 
错误码相应解决办法,请参见设备端接收的错误码。
历史属性上报
Topic:/${productKey}/${deviceName}/thing/event/property/history/post
通过该Topic获取设备上报的物模型历史属性数据。
数据格式:
{
    "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"
        }
    }
}参数说明:
| 参数 | 类型 | 说明 | 
| iotId | String | 设备在平台内的唯一标识。 | 
| requestId | String | 设备上报消息的原始数据中的Id,String类型的数字,取值范围为0~4294967295,且每个消息ID在当前设备中具有唯一性。 | 
| productKey | String | 设备所属产品的唯一标识。 | 
| deviceName | String | 设备名称。 | 
| gmtCreate | Long | 数据流转消息产生时间。 | 
| deviceType | String | 设备所属品类。 该品类是您在物联网平台创建产品时选择的品类。具体说明,请参见创建产品或CreateProduct。 | 
| items | Object | 设备数据。 | 
| Power | String | 属性标识符。产品所具有的属性名称请参见产品的TSL描述。 如果是自定义模块属性,属性标识符格式为  | 
| Position | ||
| attribute_8 | ||
| checkFailedData | Object | 未通过物模型数据校验的数据。 | 
| value | 根据TSL定义 | 属性值。 | 
| time | Long | 上报属性的时间,如果设备没有上报数据,默认采用在物联网平台生成的时间。 | 
| code | Integer | 数据未通过物模型数据校验时,返回的错误码。详细说明,请参见设备端接收的错误码。 | 
| message | String | 数据未通过物模型数据校验时,返回的错误码信息,包含错误原因和具体的错误参数。 | 
历史事件上报
Topic:/${productKey}/${deviceName}/thing/event/${tsl.event.identifier}/history/post
通过该Topic获取设备上报的历史事件数据。
数据格式:
{
    "identifier":"BrokenInfo",
    "name":"损坏率上报",
    "type":"info",
    "iotId":"4z819VQHk6VSLmmBJfrf00107e***",
    "requestId":"2",
    "productKey":"X5eCzh6***",
    "deviceName":"5gJtxDVeGAkaEztpisjX",
    "value":{
        "Power":"on",
        "Position":{
            "latitude":39.9,
            "longitude":116.38
        }
    },
    "checkFailedData":{},
    "time":1510799670074
}参数说明:
| 参数 | 类型 | 说明 | 
| identifier | String | 事件的标识符。 如果是自定义模块事件,事件标识符格式为  | 
| name | String | 事件的名称。 | 
| type | String | 事件类型,事件类型参见产品的TSL描述。 | 
| iotId | String | 设备在平台内的唯一标识。 | 
| requestId | String | 设备上报消息的原始数据中的Id,String类型的数字,取值范围为0~4294967295,且每个消息ID在当前设备中具有唯一性。 | 
| productKey | String | 设备所属产品的唯一标识。 | 
| deviceName | String | 设备名称。 | 
| gmtCreate | Long | 数据流转消息产生时间。 | 
| value | Object | 事件的输出参数信息。如以上示例中的两个参数Power(电源)和Position(位置)的信息。 重要  
 | 
| checkFailedData | Object | 未通过物模型数据校验的数据信息。 若事件的输出参数未通过检验,则checkFailedData为: 其中: 
 | 
| time | Long | 上报事件的时间,如果设备没有上报数据,默认采用物联网平台生成的时间。 | 
OTA升级状态通知
Topic:/${productKey}/${deviceName}/ota/upgrade
通过该Topic获得OTA升级状态消息,即设备OTA升级成功或失败的消息。
如果设备有未完成的升级任务,又对该设备发起批量升级任务,后发起的升级任务将升级失败。这种情况下,物联网平台不流转升级失败消息。
数据格式:
{
    "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****"
}参数说明:
| 参数 | 类型 | 说明 | 
| iotId | String | 设备ID,设备的唯一标识符。 | 
| productKey | String | 设备所属产品的唯一标识。 | 
| deviceName | String | 设备名称。 | 
| moduleName | String | OTA模块名称。 | 
| status | String | 升级状态。 
 | 
| messageCreateTime | Long | 消息产生时间戳,单位毫秒。 | 
| srcVersion | String | 升级前的版本。 | 
| destVersion | String | 升级目标版本。 | 
| desc | String | 升级状态描述信息。 | 
| jobId | String | 升级批次ID,升级批次的唯一标识符。 | 
| taskId | String | 设备升级记录的唯一标识符。 | 
OTA升级进度通知
Topic:/${productKey}/${deviceName}/ota/progress/post
通过该Topic获得OTA升级中进度消息。
数据格式:
{
    "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****"
}参数说明:
| 参数 | 类型 | 说明 | 
| iotId | String | 设备ID,设备的唯一标识符。 | 
| productKey | String | 设备所属产品的唯一标识。 | 
| deviceName | String | 设备名称。 | 
| moduleName | String | OTA模块名称。 | 
| status | String | 升级状态。此处取固定值: | 
| step | Integer | 设备上报的升级进度。 | 
| messageCreateTime | Long | 消息产生时间戳,单位毫秒。 | 
| srcVersion | String | 升级前的版本。 | 
| destVersion | String | 升级目标版本。 | 
| desc | String | 升级状态描述信息。 | 
| jobId | String | 升级批次ID,升级批次的唯一标识符。 | 
| taskId | String | 设备升级记录的唯一标识符。 | 
OTA模块版本号变更通知
Topic:/${productKey}/${deviceName}/ota/version/post
通过该Topic获得设备上报的OTA模块版本号。当设备上报OTA模块版本号,且版本号有变更时进行转发。
数据格式:
{
    "iotId": "4z819VQHk6VSLmmBJfrf00107e****",
    "deviceName": "deviceName1234",
    "productKey": "X5eCzh6****",
    "moduleName": "BarcodeScanner",
    "moduleVersion": "1.0.3",
    "messageCreateTime": 1571323748000
}参数说明:
| 参数 | 类型 | 说明 | 
| iotId | String | 设备ID,设备的唯一标识符。 | 
| productKey | String | 设备所属产品的唯一标识。 | 
| deviceName | String | 设备名称。 | 
| moduleName | String | 模块名称。 | 
| moduleVersion | String | 模块版本号。 | 
| messageCreateTime | Long | 消息产生时间戳,单位毫秒。 | 
OTA升级批次状态通知
Topic:/${productKey}/${packageId}/${jobId}/ota/job/status
通过该Topic获得OTA升级批次状态变更消息。
数据格式:
{
    "productKey": "X5eCzh6****",
    "moduleName": "BarcodeScanner",
    "packageId": "wahVIzGkCMuAUE2***",
    "jobId": "wahVIzGkCMuAUE2gDERM02****",
    "state": "IN_PROGRESS",
    "messageCreateTime": 1571323748000
}参数说明:
| 参数 | 类型 | 说明 | 
| productKey | String | 设备所属产品的唯一标识。 | 
| moduleName | String | 模块名称。 | 
| packageId | String | 升级包ID。是使用CreateOTAFirmware创建升级包时,返回的FirmwareId参数。 | 
| jobId | String | 升级批次ID,升级批次的唯一标识符。 | 
| state | String | 升级批次状态,取值: 
 | 
| messageCreateTime | Long | 消息产生时间戳,单位毫秒。 | 
设备标签变更
Topic:/${productKey}/${deviceName}/thing/deviceinfo/update
通过该Topic获得设备的标签变更信息。
数据格式:
{
    "action": "UPDATE|DELETE|DELETEALL"
    "iotId": "4z819VQHk6VSLmmBJfrf00107e****",
    "productKey": "X5eCzh6****",
    "deviceName": "deviceName1234",
    "deletedAttrKeyList": ["abc", "def", "rng"],
    "value": [
        {
            "attrKey": "tagKey",
            "attrValue": "tagValue"
        }
    ],
    "messageCreateTime": 1510799670074
}参数说明:
| 参数 | 类型 | 说明 | 
| action | String | 标签变更的类型。可取值: 
 | 
| iotId | String | 设备ID,设备的唯一标识符。 | 
| productKey | String | 设备所属产品的唯一标识。 | 
| deviceName | String | 设备名称。 | 
| deletedAttrKeyList | List | 删除标签key的列表。 仅当action为DELETE时,显示该参数。 | 
| value | List | 标签数据。 | 
| attrKey | String | 标签Key。 | 
| attrValue | String | 标签Value。 | 
| messageCreateTime | Long | 消息产生时间戳,单位毫秒。 | 
设备任务的状态通知
Topic:/sys/uid/${uid}/job/${jobId}/lifecycle
通过该Topic获得设备任务(设备批量属性设置任务、设备批量服务调用任务、自定义任务)状态变更消息。
其中,${uid}为阿里云账号ID,可登录物联网平台控制台,单击账号头像,跳转至安全设置页面查看。
数据格式:
{
    "jobId": "4z819VQHk6VSLmm***ee200",
    "jobType": "CUSTOM_JOB",
    "status": "INITIALIZING",
    "messageCreateTime": 1510292739881
}参数说明:
| 参数 | 类型 | 说明 | 
| jobId | String | 任务ID,任务的全局唯一标识符。 | 
| jobType | String | 任务类型。 
 | 
| status | String | 任务状态,取值: 
 | 
| messageCreateTime | Long | 消息产生时间戳,单位毫秒。 | 
实例迁移任务的状态通知
Topic:/sys/uid/{uid}/distribution/{jobId}/lifecycle
通过该Topic获得实例迁移任务状态的变更消息。
其中,${uid}为阿里云账号ID,可登录物联网平台控制台,将鼠标指针移动到账号头像,查看账号ID。
数据格式:
{
    "jobId": "4z819VQHk6VSLmmxxxxxxxxxxee200",
    "status": "GRAY_EXECUTING",
    "messageCreateTime": 1510292739881,
    "type":"INSTANCE_UPGRADE",
    "sourceInstance":"iotx-oxssharez200",
    "targetInstance":"iot-es5v4***",
    "successDevices":[
        {
            "productKey":"al12***",
            "deviceName":"deviceName1",
            "iotId":"4z81frf00107e***"
        }
    ]
}参数说明:
| 参数 | 类型 | 说明 | 
| jobId | String | 任务ID,任务的全局唯一标识符。 | 
| status | String | 任务状态,取值: 
 | 
| messageCreateTime | Long | 消息产生时间戳,单位毫秒。 | 
| type | String | 任务类型。固定取值为 | 
| sourceInstance | String | 实例迁移的源公共实例ID。旧版公共实例ID为 实例的详细说明,请参见实例概述。 | 
| targetInstance | String | 实例迁移的目标企业版实例ID。 | 
| successDevices | List | 成功迁移的设备信息: 
 迁移过程中的successDevices可能为空,表示任务状态变更,开始执行还未迁移设备。 | 
| productKey | String | 设备所属产品的唯一标识。 | 
| deviceName | String | 设备名称。 | 
| iotId | String | 设备在平台内的唯一标识。 | 
孪生节点属性变更
Topic:/sys/uid/${uid}/digitaltwin/${dtInstanceId}/${nodeId}/property/update。
通过该Topic获取孪生节点属性数据的变更信息。
其中,${uid}为阿里云账号ID,可登录物联网平台控制台,将鼠标指针移动到账号头像,查看账号ID。
数据格式:
{
    "nodeId": "4z819VQHk6VS0107e***",
    "dtInstanceId": "al12345****",
    "gmtCreate": 1510799670074,
    "items": {
        "Power": {
            "value": "on",
            "time": 1510799670074
        },
        "Position": {
            "time": 1510292697470,
            "value": {
                "latitude": 39.9,
                "longitude": 116.38
            }
        }
    }
}参数说明:
| 参数 | 类型 | 说明 | 
| nodeId | String | 孪生节点的ID。 | 
| dtInstanceId | String | 孪生空间的ID。 | 
| gmtCreate | Long | 数据流转消息产生时间。 | 
| items | Object | 孪生节点下变更的属性数据。如以上示例中属性Power(电源)和Position(位置)的信息。 其中value为属性值,time为属性值变更时间。  |