网关批量上报数据

更新时间:

网关批量上报数据

网关类型的设备可以批量上报属性和事件,也可以代其子设备批量上报属性和事件。

说明
  • 一次最多可上报200个属性,20个事件。

  • 一次最多可为20个子设备上报数据。

Topic和数据格式(上行):

上报透传数据

Topic

数据格式

请求Topic:/sys/${productKey}/${deviceName}/thing/model/up_raw

请求数据是设备上报的原始报文。

示例如下:

0xff0000007b00

响应Topic:/sys/${productKey}/${deviceName}/thing/model/up_raw_reply

云端返回数据格式如下:

  • 成功返回示例

{
    "code": 200,
    "data": {},
    "id": "123",
    "message": "success",
    "version": "1.0"
}
  • 失败返回示例

{
    "code": 6813,
    "data": {},
    "id": "123",
    "message": "topic illegal",
    "version": "1.0"
}

上报物模型数据:

请求和响应Topic

请求和响应数据

请求Topic:/sys/${productKey}/${deviceName}/thing/event/property/pack/post

请求数据格式:

{
    "id": "123",
    "version": "1.0",
    "sys":{
        "ack":0
    },
    "params": {
        "properties": {
            "Power": {
                "value": "on",
                "time": 1524448722000
            },
            "WF": {
                "value": { },
                "time": 1524448722000
            }
        },
        "events": {
            "alarmEvent1": {
                "value": {
                    "param1": "on",
                    "param2": "2"
                },
                "time": 1524448722000
            },
            "alertEvent2": {
                "value": {
                    "param1": "on",
                    "param2": "2"
                },
                "time": 1524448722000
            }
        },
        "subDevices": [
            {
                "identity": {
                    "productKey": "",
                    "deviceName": ""
                },
                "properties": {
                    "Power": {
                        "value": "on",
                        "time": 1524448722000
                    },
                    "WF": {
                        "value": { },
                        "time": 1524448722000
                    }
                },
                "events": {
                    "alarmEvent1": {
                        "value": {
                            "param1": "on",
                            "param2": "2"
                        },
                        "time": 1524448722000
                    },
                    "alertEvent2": {
                        "value": {
                            "param1": "on",
                            "param2": "2"
                        },
                        "time": 1524448722000
                    }
                }
            }
        ]
    },
    "method": "thing.event.property.pack.post"
}

响应Topic:/sys/${productKey}/${deviceName}/thing/event/property/pack/post_reply

响应数据格式:

{
    "code": 200,
    "data": {},
    "id": "123",
    "message": "success",
    "method": "thing.event.property.pack.post",
    "version": "1.0"
}

若请求失败,返回{}

参数说明:

参数

类型

说明

id

String

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

version

String

协议版本号,目前协议版本号唯一取值为1.0。

sys

Object

扩展功能的参数,其下包含各功能字段。

说明

使用设备端SDK开发时,如果未设置扩展功能,则无此参数,相关功能保持默认配置。

ack

Integer

sys下的扩展功能字段,表示是否返回响应数据。

  • 1:云端返回响应数据。

  • 0:云端不返回响应数据。

重要

如果未配置该功能,则无此参数,云端默认返回响应数据。

params

Object

请求参数。

properties

Object

属性,包含属性标识符、属性值value和属性生成的时间time

其中,time参数为可选字段。根据您的业务场景决定消息中是否带时间戳。如果消息频繁,需根据时间戳判断消息顺序,建议消息中带有时间戳。

如以上示例中,设备上报了的两个属性Power(电源)和WF(工作电流)的信息。

如果是自定义模块属性,属性标识符格式为${属性标识符}

例如:

"Power": {
    "value": "on",
    "time": 1524448722000
}

events

Object

事件,包含事件标识符、事件输出参数value和事件生成的时间time

其中,time参数为可选字段。根据您的业务场景决定消息中是否带时间戳。如果消息频繁,需根据时间戳判断消息顺序,建议消息中带有时间戳。

如以上示例中,上报了两个事件alarmEvent1(告警事件1)和alarmEvent2(告警事件2),及对应事件参数param1和param2的信息。

如果是自定义模块事件,事件标识符格式为${事件标识符}

例如:

"alarmEvent1": {
    "value": {
        "param1": "on",
        "param2": "2"
    },
    "time": 1524448722000
}

subDevices

Object

子设备信息。

productKey

String

子设备产品的Productkey。

deviceName

String

子设备名称。

method

String

请求参数。取值:thing.event.property.pack.post

数据格式说明:

参数

类型

说明

id

String

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

code

Integer

返回结果,200代表成功。

说明

系统会校验设备、拓扑关系、及上报的属性和事件都否符合产品物模型(TSL)中的定义。如果其中任何一项校验不通过,则上报数据失败。

data

Object

请求成功时,返回的数据固定为空。

message

String

返回结果信息。请求成功时,返回success。

method

String

响应数据对应的请求方法,与请求参数中method相同。

version

String

协议版本号,与请求参数中version相同。