数据格式

物联网平台的云产品流转和服务端订阅,是基于Topic中的数据格式来处理和传递数据的。Topic可分为自定义Topic、基础通信Topic和物模型Topic,其中自定义Topic中的数据格式由您定义。本文介绍基础通信Topic和物模型通信Topic数据经过消息转发后的数据格式。

消息转发与设备原始通信的Topic说明

通信Topic的定义、使用和分类说明,请参见什么是Topic

设备上报的原始数据格式,需您在设备端完成开发。其中:

  • 基础通信Topic和物模型通信Topic数据必须符合物联网平台支持的Alink协议。详细说明,请参见Alink协议目录下对应文档

    设备上报原始数据经过消息转发后,会进行数据格式转化。具体格式说明,请参见下文描述。

  • 自定义Topic数据由您自定义数据格式。

    设备上报原始数据经过消息转发后,不会进行数据格式转化,与您自定义Topic数据格式相同。

设备原始数据通信Topic,对应消息转发设备数据的通信Topic说明如下表。

表 1. Topic说明

Topic

说明

相关文档

自定义

流转自定义数据格式消息的Topic,与自定义Topic的格式相同。格式为:/${productKey}/${deviceName}/user/${TopicShortName}

其中${TopicShortName}为自定义的Topic类,即自定义Topic的后缀。

支持使用通配符(+)和(#):

  • 全部设备(+):指定产品下所有设备。

  • /user/#:指定设备的所有自定义Topic。

使用自定义Topic通信

设备状态变化通知

流转设备上下线状态变更消息的Topic:/as/mqtt/status/${productKey}/${deviceName}

设备上下线状态

物模型数据上报

包含:

  • 流转设备上报属性数据的Topic:/${productKey}/${deviceName}/thing/event/property/post

  • 流转设备上报事件数据的Topic:/${productKey}/${deviceName}/thing/event/${tsl.event.identifier}/post

  • 流转设备批量上报属性数据的Topic:/${productKey}/${deviceName}/thing/property/batch/post

  • 流转设备批量上报事件数据的Topic:/${productKey}/${deviceName}/thing/event/batch/post

  • 流转设备响应云端命令返回消息的Topic:/${productKey}/${deviceName}/thing/downlink/reply/message

对应设备上报原始数据的Topic如下:

  • 设备上报属性的Topic:/sys/${productKey}/${deviceName}/thing/event/property/post

  • 设备上报事件的Topic:/sys/${productKey}/${deviceName}/thing/event/${tsl.event.identifier}/post/sys/${productKey}/${deviceName}/thing/event/${tsl.functionBlockId}:{tsl.event.identifier}/post

  • 设备批量上报属性、事件数据的Topic:/sys/${productKey}/${deviceName}/thing/event/property/batch/post

设备生命周期变更

流转设备创建、删除、禁用、启用等消息的Topic:/${productKey}/${deviceName}/thing/lifecycle

设备生命周期变更

网关发现子设备上报

网关设备特有的Topic:/${productKey}/${deviceName}/thing/list/found,将发现的子设备信息上报给物联网平台,然后进行流转。

网关发现子设备

设备拓扑关系变更

网关设备特有Topic:/${productKey}/${deviceName}/thing/topo/lifecycle,流转子设备和网关之间的拓扑关系建立和解除消息的Topic。

设备拓扑关系变更

对应设备上报原始数据的Topic:/sys/${productKey}/${deviceName}/thing/topo/change

通知网关拓扑关系变化

设备标签变更

流转设备标签信息变更的Topic:/${productKey}/${deviceName}/thing/deviceinfo/update

设备标签变更

对应设备上报原始数据的Topic:/sys/${productKey}/${deviceName}/thing/deviceinfo/update

上报标签信息

物模型历史数据上报

包含:

  • 流转设备上报历史属性数据的Topic:/${productKey}/${deviceName}/thing/event/property/history/post

  • 流转设备上报历史事件数据的Topic:/${productKey}/${deviceName}/thing/event/${tsl.event.identifier}/history/post

对应设备上报物模型历史数据的Topic:/sys/${productKey}/${deviceName}/thing/event/property/history/post

物模型历史数据上报

OTA升级设备状态通知

包含:

  • 流转设备上报OTA升级结果的Topic:/${productKey}/${deviceName}/ota/upgrade

  • 流转设备上报OTA升级进度的Topic:/${productKey}/${deviceName}/ota/progress/post

对应设备上报升级进度的Topic:/ota/device/progress/${productKey}/${deviceName}

设备上报升级进度

OTA模块版本号上报

流转设备上报OTA模块版本号变更的Topic:/${productKey}/${deviceName}/ota/version/post

OTA模块版本号变更通知

对应设备上报OTA模块版本的Topic:/ota/device/inform/${productKey}/${deviceName}

设备上报OTA模块版本

OTA升级批次状态通知

物联网平台通知OTA升级批次状态变化的Topic:/${productKey}/${packageId}/${jobId}/ota/job/status

OTA升级批次状态通知

任务事件

包含:

  • 流转设备任务状态通知的Topic:/sys/uid/${uid}/job/${jobId}/lifecycle

  • 流转实例迁移任务状态通知的Topic:/sys/uid/${uid}/distribution/${jobId}/lifecycle

    说明

    迁移产品的名称为实例迁移的任务名称。

孪生节点属性变更

流转孪生节点属性数据的Topic:/sys/uid/${uid}/digitaltwin/${dtInstanceId}/${nodeId}/property/update

孪生节点属性变更

设备上下线状态

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

设备状态。

  • online:上线。

  • offline:离线。

iotId

String

设备在平台内的唯一标识。

offlineReasonCode

Integer

设备下线时,返回的错误码。详细说明,请参见设备行为错误码

productKey

String

设备所属产品的唯一标识。

deviceName

String

设备名称。

lastTime

String

该参数为历史存量字段,已无实际意义。

utcLastTime

String

time

String

设备上、下线的时间。

收到消息的顺序不是实际设备上下线时间排序。设备上下线顺序需按照time具体值排序。

例如,您依次收到3条消息:

  1. 上线:2018-08-31 10:02:28.195

  2. 下线:2018-08-31 10:01:28.195

  3. 下线:2018-08-31 10:03:28.195

这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描述。

如果是自定义模块属性,属性标识符格式为${模块标识符}:${属性标识符}(中间为半角冒号)。例如,物模型自定义模块标识符为test,数据格式为:

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

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

事件的标识符。

如果是自定义模块事件,事件标识符格式为${模块标识符}:${事件标识符}(中间为半角冒号)。例如,物模型自定义模块标识符为test,数据格式为:

"test:identifier":"BrokenInfo",

name

String

事件的名称。

type

String

事件类型,事件类型参见产品的TSL描述。

iotId

String

设备在平台内的唯一标识。

requestId

String

设备上报消息的原始数据中的Id,String类型的数字,取值范围为0~4294967295,且每个消息ID在当前设备中具有唯一性。

productKey

String

设备所属产品的唯一标识。

deviceName

String

设备名称。

gmtCreate

Long

数据流转消息产生时间。

value

Object

事件的输出参数信息。如以上示例中的两个参数Power(电源)和Position(位置)的信息。

{
    "Power":"on",
    "Position":{
        "latitude":39.9,
        "longitude":116.38
    }
}
重要
  • 仅当事件的输出参数均通过检验时,输出参数均显示在value中。此时checkFailedData为空。

  • 当事件的输出参数有任一参数未通过检验时,输出参数均显示在checkFailedData中。此时value为空。

checkFailedData

Object

未通过物模型数据校验的数据信息。

若事件的输出参数未通过检验,则checkFailedData为:

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

其中:

  • value:Object类型。事件的输出参数信息。

  • time:Long类型。事件生成的时间戳。

  • code:Integer类型。数据未通过物模型数据校验时,返回的错误码。详细说明,请参见设备端接收的错误码

  • message:String类型。数据未通过物模型数据校验时,返回的错误码信息,包含错误原因和具体的错误参数。

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描述。

如果是自定义模块属性,属性标识符格式为${模块标识符}:${属性标识符}(中间为半角冒号)。例如,物模型自定义模块标识符为test,数据格式为:

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

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

事件的参数。

以上示例中,PowerWF是事件的参数名称。

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

  • create:创建设备。

  • delete:删除设备。

  • enable:启用设备。

  • disable:禁用设备。

iotId

String

设备在平台内的唯一标识。

productKey

String

产品的唯一标识。

deviceName

String

设备名称。

deviceSecret

String

设备密钥,仅在actioncreate时包含。

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

  • create:新增拓扑关系。

  • delete:移除拓扑关系。

  • enable:启用拓扑关系。

  • disable:禁用拓扑关系。

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

数据未通过物模型数据校验时,返回的错误码信息,包含错误原因和具体的错误参数。

表 1. 结果状态码

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描述。

如果是自定义模块属性,属性标识符格式为${模块标识符}:${属性标识符}(中间为半角冒号)。例如,物模型自定义模块标识符为test,数据格式为:

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

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

事件的标识符。

如果是自定义模块事件,事件标识符格式为${模块标识符}:${事件标识符}(中间为半角冒号)。例如,物模型自定义模块标识符为test,数据格式为:

"test:identifier":"BrokenInfo",

name

String

事件的名称。

type

String

事件类型,事件类型参见产品的TSL描述。

iotId

String

设备在平台内的唯一标识。

requestId

String

设备上报消息的原始数据中的Id,String类型的数字,取值范围为0~4294967295,且每个消息ID在当前设备中具有唯一性。

productKey

String

设备所属产品的唯一标识。

deviceName

String

设备名称。

gmtCreate

Long

数据流转消息产生时间。

value

Object

事件的输出参数信息。如以上示例中的两个参数Power(电源)和Position(位置)的信息。

{
    "Power":"on",
    "Position":{
        "latitude":39.9,
        "longitude":116.38
    }
}
重要
  • 仅当事件的输出参数均通过检验时,输出参数均显示在value中。此时checkFailedData为空。

  • 当事件的输出参数有任一参数未通过检验时,输出参数均显示在checkFailedData中。此时value为空。

checkFailedData

Object

未通过物模型数据校验的数据信息。

若事件的输出参数未通过检验,则checkFailedData为:

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

其中:

  • value:Object类型。事件的输出参数信息。

  • time:Long类型。事件生成的时间戳。

  • code:Integer类型。数据未通过物模型数据校验时,返回的错误码。详细说明,请参见设备端接收的错误码

  • message:String类型。数据未通过物模型数据校验时,返回的错误码信息,包含错误原因和具体的错误参数。

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

升级状态。

  • SUCCEEDED:升级成功。

  • FAILED:升级失败。

  • CANCELED:升级已取消。

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

升级状态。此处取固定值:IN_PROGRESS(升级中)。

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

升级批次状态,取值:

  • PLANNED:未开始升级。

  • IN_PROGRESS:升级中。

  • COMPLETED:升级完毕。

  • CANCELED:已取消。

  • UNFINISH:未完成。

    企业实例下升级次数不足时,升级批次状态为未完成。

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

标签变更的类型。可取值:

  • UPDATE:更新或新增标签。

  • DELETE:删除指定标签。

  • DELETEALL:清空所有标签。

iotId

String

设备ID,设备的唯一标识符。

productKey

String

设备所属产品的唯一标识。

deviceName

String

设备名称。

deletedAttrKeyList

List

删除标签key的列表。

仅当actionDELETE时,显示该参数。

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

任务类型。

  • SET_PROPERTY:设备批量属性设置任务。

  • INVOKE_SERVICE:设备批量服务调用任务。

  • CUSTOM_JOB:自定义任务。

status

String

任务状态,取值:

  • INITIALIZING:初始化。

  • WAITING:待调度。

  • IN_PROGRESS:执行中。

  • COMPLETED:已完成。

  • CANCELLING:取消中。

  • CANCELLED:已取消。

  • REMOVING:删除中。

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

任务状态,取值:

  • GRAY_EXECUTING:灰度中。

  • GRAY_FINISHED:灰度完成。

  • ALL_EXECUTING:迁移中。

  • ALL_FINISHED:迁移完成。

  • ALL_PAUSE:迁移暂停。

  • ROLL_BACK_EXECUTING:回滚中。

  • BATCH_ROLL_BACK_EXECUTING:批量回滚中。

  • ROLL_BACK_PAUSE:暂停回滚。

messageCreateTime

Long

消息产生时间戳,单位毫秒。

type

String

任务类型。固定取值为INSTANCE_UPGRADE

sourceInstance

String

实例迁移的源公共实例ID。旧版公共实例ID为iotx-oxssharez200

实例的详细说明,请参见实例概述

targetInstance

String

实例迁移的目标企业版实例ID。

successDevices

List

成功迁移的设备信息:

  • 灰度迁移中(GRAY_EXECUTING)和全量迁移中(ALL_EXECUTING)时,从公共实例成功迁移到目标企业版实例的设备信息。

  • 回滚迁移中(ROLL_BACK_EXECUTING)和批量回滚迁移中(BATCH_ROLL_BACK_EXECUTING)时,从企业版实例成功迁移回公共实例的设备信息。

迁移过程中的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为属性值变更时间。

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