Appearance
网关和子设备拓扑关系
如果子设备是预注册在平台的,端侧网关向设备管理平台上报网关与子设备的拓扑关系,然后进行子设备上线。
设备管理平台控制台也可以添加子设备,需要通知网关和子设备的拓扑关系变化消息。
子设备上线过程中,设备管理平台会校验子设备的身份和与网关的拓扑关系。所有校验通过,才会建立并绑定子设备逻辑通道至网关物理通道上,网关才有权限订阅子设备的topic。子设备与设备管理平台的数据上下行通信与网关(直连设备)的通信逻辑上是一致。
删除拓扑关系后,子设备不能再通过网关上线。系统将提示拓扑关系不存在,认证不通过等错误。
网关添加设备拓扑关系
网关设备可以通过该Topic上行请求添加它和子设备之间的拓扑关系,返回成功添加拓扑关系的子设备。
网关添加设备拓扑关系topic定义
topic:tlink/${productKey}/${deviceName}/topo/add
数据流向:网关(直接设备)发布消息,平台监听消息
网关添加设备拓扑关系请求数据体格式
javascript
{
"reqid": "0020fdf71f0d491da12ba3cd38b205be",
"v": "1",
"t": 1630054074378,
"method": "tlink.${productKey}.${deviceName}.topo.add",
"data": [
{
"deviceName": "sn1234或mac1234",
"productKey": "a1234******"
"subList": [
{
"deviceName": "sn789或mac789",
"productKey": "a789******"
},
{
"deviceName": "sn001或mac001",
"productKey": "a001******"
}
]
},
{
"deviceName": "sn456或mac456",
"productKey": "a4567******"
"subList": [
{
"deviceName": "sn789或mac789",
"productKey": "a789******"
},
{
"deviceName": "sn001或mac001",
"productKey": "a001******"
}
]
}
]
}
请求参数说明
参数名称 | 类型 | 是否必选 | 描述 |
---|---|---|---|
reqid | String | 是 | 消息ID号。全局唯一,用于系统消息追踪 |
v | String | 是 | 协议版本号,目前协议版本号唯一取值为1 |
t | Long | 是 | 消息发送时间戳 |
method | String | 否 | TCP连接时必传 |
data | List | 是 | 请求数据列表。 |
productKey | String | 是 | 一级子设备的产品productKey。 |
deviceName | String | 是 | 一级子设备的唯一标识。 |
subList | List | 否 | 二级子设备列表,如果只有一级子设备时为空,可不传 |
productKey | String | 是 | 二级子设备的产品productKey。 |
deviceName | String | 是 | 二级子设备的唯一标识。 |
响应网关添加设备拓扑关系
响应topic定义:tlink/${productKey}/${deviceName}/topo/add_reply
数据流向:平台发布消息,网关(直连设备)监听消息
响应网关添加设备拓扑关系数据体格式
javascript
{
"reqid": "0020fdf71f0d491da12ba3cd38b205be",
"method": "tlink.${productKey}.${deviceName}.topo.add_reply",
"code": 200,
"data": [
{
"deviceName": "sn1234或mac1234",
"productKey": "a1234******"
"subList": [
{
"deviceName": "sn789或mac789",
"productKey": "a789******"
},
{
"deviceName": "sn001或mac001",
"productKey": "a001******"
}
]
},
{
"deviceName": "sn456或mac456",
"productKey": "a4567******"
"subList": [
{
"deviceName": "sn789或mac789",
"productKey": "a789******"
},
{
"deviceName": "sn001或mac001",
"productKey": "a001******"
}
]
}
]
}
响应参数说明
参数名称 | 类型 | 是否必选 | 描述 |
---|---|---|---|
reqid | String | 是 | 消息ID号。和请求的对应 |
method | String | 否 | TCP连接时必传 |
code | Integer | 是 | 结果状态码。成功为200,其他为失败 |
data | List | 否 | 请求成功时,返回的数据。 |
productKey | String | 是 | 一级子设备的产品productKey。 |
deviceName | String | 是 | 一级子设备的唯一标识。 |
subList | List | 否 | 二级子设备列表。 |
productKey | String | 是 | 二级子设备的产品productKey。 |
deviceName | String | 是 | 二级子设备的唯一标识。 |
删除设备的拓扑关系
网关(直连设备),可以通过该Topic上行请求删除它和子设备之间的拓扑关系,返回成功删除拓扑关系的子设备。
注意:删除拓扑关系只能一层一层删除。
删除设备的拓扑关系topic定义
topic:tlink/${productKey}/${deviceName}/topo/delete
数据流向:网关(直连)设备发布消息,平台监听消息
删除设备的拓扑关系请求数据体格式
javascript
{
"reqid": "0020fdf71f0d491da12ba3cd38b205be",
"v": "1",
"t": 1630054074378,
"method": "tlink.${productKey}.${deviceName}.topo.delete",
"data": [
{
"deviceName": "sn1234或mac1234",
"productKey": "a1234******"
"subList": []
},
{
"deviceName": "sn456或mac456",
"productKey": "a4567******"
"subList": [
{
"deviceName": "sn789或mac789",
"productKey": "a789******"
},
{
"deviceName": "sn001或mac001",
"productKey": "a001******"
}
]
}
]
}
请求参数说明
参数名称 | 类型 | 是否必选 | 描述 |
---|---|---|---|
reqid | String | 是 | 消息ID号。全局唯一,用于系统消息追踪 |
v | String | 是 | 协议版本号,目前协议版本号唯一取值为1 |
t | Long | 是 | 消息发送时间戳 |
method | String | 否 | TCP连接时必传 |
data | List | 是 | 请求数据列表。 |
productKey | String | 是 | 一级子设备的产品productKey。 |
deviceName | String | 是 | 一级子设备的唯一标识。 |
subList | List | 否 | 二级子设备列表,如果删除一级子设备拓扑关系,则二级子设备参数列表为空。 当二级子设备列表不为空时,表示删除的是二级子设备的关系 |
productKey | String | 是 | 二级子设备的产品productKey。 |
deviceName | String | 是 | 二级子设备的唯一标识。 |
响应删除设备的拓扑关系
响应topic定义:tlink/${productKey}/${deviceName}/topo/delete_reply
数据流向:平台发布消息,网关设备监听消息
响应删除设备的拓扑关系数据体格式
javascript
{
"reqid": "0020fdf71f0d491da12ba3cd38b205be",
"method": "tlink.${productKey}.${deviceName}.topo.delete_reply",
"code": 200,
"data": [
{
"deviceName": "sn1234或mac1234",
"productKey": "a1234******"
"subList": []
},
{
"deviceName": "sn456或mac456",
"productKey": "a4567******"
"subList": [
{
"deviceName": "sn789或mac789",
"productKey": "a789******"
},
{
"deviceName": "sn001或mac001",
"productKey": "a001******"
}
]
}
]
}
响应参数说明
参数名称 | 类型 | 是否必选 | 描述 |
---|---|---|---|
reqid | String | 是 | 消息ID号。和请求的对应 |
method | String | 否 | TCP连接时必传 |
code | Integer | 是 | 结果状态码。成功为200,其他为失败 |
data | List | 是 | 请求成功时,返回的数据。 |
productKey | String | 是 | 一级子设备的产品productKey。 |
deviceName | String | 是 | 一级子设备的唯一标识。 |
subList | List | 否 | 二级子设备列表。 |
productKey | String | 是 | 二级子设备的产品productKey。 |
deviceName | String | 是 | 二级子设备的唯一标识。 |