# 网关代理子设备
Topic:
- 发布 Topic:
iotlink/gateway/operation/${proudctId}/${deviceName}
- 订阅 Topic:
iotlink/gateway/operation/result/${proudctId}/${deviceName}
# 发布数据格式定义
参数 | 类型 | 说明 |
---|---|---|
type | String | 1. bind:绑定子设备 2. unbind:解绑子设备 3. get:查询子设备 4. change:拓扑关系变化 5. login:子设备上线 6. logout:子设备离线 |
messageId | String | 消息ID |
payload | Object | 消息体 |
payload.devices | Array | 子设备 |
payload.devices.productId | String | 子设备产品Id |
payload.devices.deviceName | String | 子设备产品名称 |
# 订阅数据格式定义
参数 | 类型 | 说明 |
---|---|---|
type | String | 1. bind:绑定子设备 2. unbind:解绑子设备 3. get:查询子设备 4. login:子设备上线 5. logout:子设备离线 6. change:拓扑关系变化 |
messageId | String | 消息ID |
payload | Object | 消息体 |
payload.devices | Array | 子设备 |
payload.devices.productId | String | 子设备产品Id |
payload.devices.deviceName | String | 子设备产品名称 |
# 子设备拓扑关系管理
# 查询拓扑关系
网关类型的设备, 可以通过该Topic上行请求查询子设备的拓扑关系。
网关查询子设备拓扑关系请求数据格式:
{
"type": "get"
}
注:需要查询子设备列表支持分页查询,参数添加中添加payload即可:
{
"type": "get",
"payload": {
"offset": "偏移数",
"size": "下发数"
}
}
网关查询子设备拓扑关系响应数据格式:
{
"type": "get",
"payload": {
"devices": [
{
"productId": "XKFA****LX",
"deviceName": "2OGDy7Ws8mG****YUe"
},
{
"productId": "XKFA****LX",
"deviceName": "5gcEHg3Yuvm****2p8"
},
...
]
}
}
注:在使用分页查询时返回结果会返回当前偏移量,和总子设备数:
{
"type": "get",
"payload": {
"devices": [
{
"productId": "XKFA****LX",
"deviceName": "2OGDy7Ws8mG****YUe"
},
{
"productId": "XKFA****LX",
"deviceName": "5gcEHg3Yuvm****2p8"
},
...
],
"total": 888,
"offset": 310
}
}
# 拓扑关系变化
网关类型的设备,可以通过该 Topic 订阅平台对子设备的拓扑关系变化。将拓扑关系变化通知网关。
当子设备被绑定或解绑,数据格式如下:
(若子设备被禁用了之后网关还是可以把子设备的数据报上来,但是平台不要这些数据。)
{
"type": "change",
"payload": {
"status": 0,
//0-添加 1-删除
"devices": [
{
"productId": "CFCS****G7",
"deviceName": "****ev"
}
]
}
}
# 绑定拓扑关系
网关类型的设备, 可以通过该Topic上行请求绑定子设备的拓扑关系。
网关绑定拓扑关系请求数据格式:
{
"type": "bind",
"payload": {
"devices": [
{
"productId": "XKFA****LX",
"deviceName": "2OGDy7Ws8mG****YUe"
}
]
}
}
网关绑定拓扑关系响应数据格式:
{
"type": "bind",
"payload": {
"devices": [
{
"productId": "XKFA****LX",
"deviceName": "2OGDy7Ws8mG****YUe",
"result": 0
},
{
"productId": "XKFA****LX",
"deviceName": "5gcEHg3Yuvm****2p8",
"result": 0
},
{
"productId": "XKFA****LX",
"deviceName": "hmIjq0gEFcf****F5X",
"result": 0
},
{
"productId": "XKFA****LX",
"deviceName": "x9pVpmdRmET****mkM",
"result": 0
},
{
"productId": "XKFA****LX",
"deviceName": "zmHv6o6n4G3****Bgh",
"result": 1
}
]
}
}
# 解绑拓扑关系
网关类型的设备, 可以通过该Topic上行请求解绑子设备的拓扑关系。
网关解绑拓扑关系请求数据格式:
{
"type": "unbind",
"payload": {
"devices": [
{
"productId": "XKFA****LX",
"deviceName": "2OGDy7Ws8mG****YUe"
}
]
}
}
网关解绑拓扑关系响应数据格式:
{
"type": "unbind",
"payload": {
"devices": [
{
"productId": "XKFA****LX",
"deviceName": "2OGDy7Ws8mG****YUe",
"result": 0
},
{
"productId": "XKFA****LX",
"deviceName": "5gcEHg3Yuvm****2p8",
"result": 0
},
{
"productId": "XKFA****LX",
"deviceName": "hmIjq0gEFcf****F5X",
"result": 0
},
{
"productId": "XKFA****LX",
"deviceName": "x9pVpmdRmET****mkM",
"result": 0
},
{
"productId": "XKFA****LX",
"deviceName": "zmHv6o6n4G3****Bgh",
"result": 1
}
]
}
}
# 代理子设备上下线
网关类型的设备,可通过与云端的数据通信,代理其下的子设备进行上线与下线操作。此类功能所用到的 Topic 与网关子设备拓扑管理的 Topic 一致:
# 代理子设备上线
网关代理子设备上线请求数据格式:
{
"type": "login",
"payload": {
"devices": [
{
"productId": "CFC******AG7",
"deviceName": "subdeviceaaaa"
}
]
}
}
代理子设备上线响应数据格式:
{
"type": "login",
"payload": {
"devices": [
{
"productId": "CFC******AG7",
"deviceName": "subdeviceaaaa",
"result": 0
}
]
}
}
# 代理子设备下线
网关类型的设备, 可以通过数据上行 Topic 代理子设备下线。请求成功之后,云端通过数据下行 Topic 返回成功子设备的下线信息。
网关代理子设备下线请求数据格式:
{
"type": "logout",
"payload": {
"devices": [
{
"productId": "CFC******AG7",
"deviceName": "subdeviceaaaa"
}
]
}
}
网关代理子设备下线响应数据格式:
{
"type": "logout",
"payload": {
"devices": [
{
"productId": "CFC******AG7",
"deviceName": "subdeviceaaaa",
"result": -1
}
]
}
}