上下行参数说明

1 参数说明

  • version:表示协议版本,默认为SDK版本,用于协议兼容用
  • traceId:为全链路唯一日志标识,用于日志跟踪
  • method:表示处理方法,同功能定义对应
  • params:请求参数,key-value格式
  • data:返回内容,key-value形式

2 下行消息详细描述

2.1 云端获取属性

method:thing.property.get

自定义消息示例:

// 输入
{
    "version": "1.0.0",
    "traceId": "123456789",
    "method": "thing.property.get",
    "params": {
        "attrs": [
            "key1",
            "key2"
        ]
    }
}

// 输出
{
    "version": "1.0.0",
    "traceId": "123456789",
    "code": "000000",
    "message": "",
    "data": {
        "key1": "value1",
        "key2": "value2"
    }
}

2.2 云端设置属性

method:thing.property.set

自定义消息示例:

// 输入
{
    "version": "1.0.0",
    "traceId": "123456789",
    "method": "thing.property.set",
    "params": {
        "key1": "value1",
        "key2": "value2"
    }
}

// 输出
{
    "version": "1.0.0",
    "traceId": "123456789",
    "code": "000000",
    "message": ""
}

2.3 云端调用设备服务

method:thing.service.xxx,其中xxx为功能定义的服务名

自定义消息示例:

// 输入
{
    "version": "1.0.0",
    "traceId": "123456789",
    "method": "thing.service.xxx",
    "params": {
        "req-key1": "value1",
        "req-key2": "value2"
    }
}

// 输出
{
    "version": "1.0.0",
    "traceId": "123456789",
    "code": "000000",
    "message": "",
    "data": {
        "res-key1": "value1",
        "res-key2": "value2"
    }
}

2.4 云端发布主题

method:从自定义topic转成method,规则为:topic.substring(32).replace("/", ".")。如自定义topic为/user/${productKey}/${deviceId}/custom/pub,则method为custom.pub

自定义消息示例:

// 输入
{
    "traceId": "123456789",
  	"method": "custom.pub",
    "params": {
        "key1": "value1",
        "key2": "value2"
    }
}

// 输出
无

3 上行消息详细描述

3.1 设备状态上报

当前状态有:ONLINEOFFLINE,设备端上线/下线时,由broker向管理平台发送相应消息,配置过规则也会上行发送到应用端。设备无需上报此消息。

method:thing.status.update

自定义消息示例:

// 输入
{
    "version": "1.0.0",
    "traceId": "123456789",
    "method": "thing.status.update",
    "params": {
        "status": "ONLINE/OFFLINE"
    }
}

// 输出
无

3.2 设备属性上报

method:thing.property.post

自定义消息示例:

// 输入
{
    "version": "1.0.0",
    "traceId": "123456789",
    "method": "thing.property.post",
    "params": {
        "key1": "value1",
        "key2": "value2"
    }
}

// 输出
无

3.3 设备属性获取

method:thing.property.get

自定义消息示例:

// 输入
{
    "version": "1.0.0",
    "traceId": "123456789",
    "method": "thing.property.get",
    "params": {
        "attrs": [
            "key1",
            "key2"
        ]
    }
}

// 输出
{
    "version": "1.0.0",
    "traceId": "123456789",
    "code": "000000",
    "message": "",
    "data": {
        "key1": "value1",
        "key2": "value2"
    }
}

3.4 设备事件上报

method:thing.event.xxx.postxxx为功能定义的事件名

自定义消息示例:

// 输入
{
    "version": "1.0.0",
    "traceId": "123456789",
    "method": "thing.event.xxx.post",
    "params": {
        "key1": "value1",
        "key2": "value2"
    }
}

// 输出
无

3.5 设备调用云端服务

method:thing.service.xxxxxx为功能定义的服务名

自定义消息示例:

// 输入
{
    "version": "1.0.0",
    "traceId": "123456789",
    "method": "thing.service.xxx",
    "params": {
        "req-key1": "value1",
        "req-key2": "value2"
    }
}

// 输出
{
    "version": "1.0.0",
    "traceId": "123456789",
    "code": "000000",
    "message": "",
    "data": {
        "res-key1": "value1",
        "res-key2": "value2"
    }
}

3.6 设备发布主题

method:从自定义topic转成method,规则为:topic.substring(32).replace("/", ".")。如自定义topic为/user/${productKey}/${deviceId}/custom/pub,则method为custom.pub

自定义消息示例:

// 输入
{
    "traceId": "123456789",
  	"method": "custom.pub",
    "params": {
        "key1": "value1",
        "key2": "value2"
    }
}

// 输出
无

4 网关消息详细描述

4.1 拓扑关系:获取

method:thing.sub.get

自定义消息示例:

// 输入
{
    "version": "1.0.0",
    "traceId": "123456789",
    "method": "thing.sub.get",
    "params": {}
}

// 输出,禁用的 设备不需返回
{
    "version": "1.0.0",
    "traceId": "123456789",
    "code": "000000",
    "message": "",
    "data": {
        "subs": [
            {
                "deviceId": "deviceId",
                "deviceName": "deviceName1234",
                "deviceSecret": "deviceSecret",
                "productKey": "productKey"
            },
            {
                "deviceId": "deviceId",
                "deviceName": "deviceName1234",
                "deviceSecret": "deviceSecret",
                "productKey": "productKey"
            }
        ]
    }
}

4.2 拓扑关系:添加

method:thing.sub.add

自定义消息示例:

// 输入
{
    "version": "1.0.0",
    "traceId": "123456789",
    "method": "thing.sub.add",
    "params": {
        "subDeviceId": "deviceId1"
    }
}

// 输出
{
    "version": "1.0.0",
    "traceId": "123456789",
    "code": "000000",
    "message": ""
}

4.3 拓扑关系:删除

method:thing.sub.del

自定义消息示例:

// 输入
{
    "version": "1.0.0",
    "traceId": "123456789",
    "method": "thing.sub.del",
    "params": {
        "subDeviceId": "deviceId1"
    }
}

// 输出
{
    "version": "1.0.0",
    "traceId": "123456789",
    "code": "000000",
    "message": ""
}

4.4 子设备:上线

method:thing.sub.connect

自定义消息示例:

// 输入
{
    "version": "1.0.0",
    "traceId": "123456789",
    "method": "thing.sub.connect",
    "params": {
        "subProductKey": "网关子设备产品key",
        "subDeviceId": "网关子设备ID",
        "sign": "签名信息(上线才需要)"
    }
}

// 输出
{
    "version": "1.0.0",
    "traceId": "123456789",
    "code": "000000",
    "message": ""
}

4.5 子设备:下线

method:thing.sub.disconnect

自定义消息示例:

// 输入
{
    "version": "1.0.0",
    "traceId": "123456789",
    "method": "thing.sub.disconnect",
    "params": {
        "subProductKey": "网关子设备产品key",
        "subDeviceId": "网关子设备ID"
    }
}

// 输出
{
    "version": "1.0.0",
    "traceId": "123456789",
    "code": "000000",
    "message": ""
}