上下行参数说明
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 设备状态上报
当前状态有:ONLINE
和OFFLINE
,设备端上线/下线时,由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.post
,xxx
为功能定义的事件名
自定义消息示例:
// 输入
{
"version": "1.0.0",
"traceId": "123456789",
"method": "thing.event.xxx.post",
"params": {
"key1": "value1",
"key2": "value2"
}
}
// 输出
无
3.5 设备调用云端服务
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"
}
}
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": ""
}