tencent cloud

物联网通信

拓扑关系管理

PDF
聚焦模式
字号
最后更新时间: 2024-12-27 15:54:13

功能概述

网关类型的设备,可通过与云端的数据通信,对其下的子设备进行绑定与解绑操作。实现此类功能需利用如下两个 Topic:
数据上行 Topic(用于发布):$gateway/operation/${productid}/${devicename}
数据下行 Topic(用于订阅):$gateway/operation/result/${productid}/${devicename}

绑定设备

网关类型的设备,可以通过数据上行 Topic 请求添加它和子设备之间的拓扑关系,实现绑定子设备。请求成功之后,云端通过数据下行 Topic 返回子设备的绑定信息。
网关绑定子设备请求数据格式:
{
"type": "bind",
"payload": {
"devices": [
{
"product_id": "CFCS****G7",
"device_name": "****ev",
"signature": "signature",
"random": 121213,
"timestamp": 1589786839,
"signmethod": "hmacsha256",
"authtype": "psk"
}
]
}
}

请求参数说明:
参数
类型
描述
type
String
网关消息类型。绑定子设备取值为:bind
payload.devices
Array
需要绑定的子设备列表
product_id
String
子设备产品 ID
device_name
String
子设备名称
signature
String
子设备绑定签名串。 签名算法:
1. 签名原串,将产品 ID 设备名称,随机数,时间戳拼接:text=${product_id}${device_name};${random};${expiration_time}
2. 使用设备 Psk 密钥,或者证书的 Sha1 摘要,进行签名:sign = hmac_sha1(device_secret, text)
random
Int
随机数
timestamp
Int
时间戳,单位:秒
signmethod
String
签名算法。支持 hmacsha1、hmacsha256
authtype
String
签名类型。
psk:使用设备 psk 进行签名。
certificate:使用设备公钥证书签名。
网关绑定子设备响应数据格式:
{
"type": "bind",
"payload": {
"devices": [
{
"product_id": "CFCS****G7",
"device_name": "****ev",
"result": -1
}
]
}
}

响应参数说明:
参数
类型
描述
type
String
网关消息类型。绑定子设备取值为:bind
payload.devices
Array
要绑定的子设备列表
product_id
String
子设备产品 ID
device_name
String
子设备名称
result
Int
子设备绑定结果,具体错误码见下表

解绑设备

网关类型的设备, 可以通过数据上行 Topic 请求解绑它和子设备之间的拓扑关系。请求成功之后,云端通过数据下行 Topic 返回子设备的解绑信息。
网关解绑子设备请求数据格式:
{
"type": "unbind",
"payload": {
"devices": [
{
"product_id": "CFCS****G7",
"device_name": "****ev"
}
]
}
}

请求参数说明:
参数
类型
描述
type
String
网关消息类型。解绑子设备取值为:unbind
payload.devices
Array
需要解绑的子设备列表
product_id
String
子设备产品 ID
device_name
String
子设备名称
网关解绑子设备响应数据格式:
{
"type": "bind",
"payload": {
"devices": [
{
"product_id": "CFCS****G7",
"device_name": "****ev",
"result": -1
}
]
}
}

响应参数说明:
参数
类型
描述
type
String
网关消息类型。解绑子设备取值为:unbind
payload.devices
Array
需要解绑的子设备列表
product_id
String
子设备产品 ID
device_name
String
子设备名称
result
Int
子设备绑定结果,详见 错误码

查询拓扑关系

网关类型的设备, 可以通过该Topic上行请求查询子设备的拓扑关系。 数据上行Topic:$gateway/operation/${productid}/${devicename} 数据下行Topic:$gateway/operation/result/${productid}/${devicename}
网关查询子设备拓扑关系请求数据格式:
{
"type": "describe_sub_devices"
}

请求参数说明:
参数
类型
描述
type
String
网关消息类型。查询子设备取值为:describe_sub_devices
网关查询子设备拓扑关系响应数据格式:
{
"type": "describe_sub_devices",
"payload": {
"devices": [
{
"product_id": "XKFA****LX",
"device_name": "2OGDy7Ws8mG****YUe"
},
{
"product_id": "XKFA****LX",
"device_name": "5gcEHg3Yuvm****2p8"
},
{
"product_id": "XKFA****LX",
"device_name": "hmIjq0gEFcf****F5X"
},
{
"product_id": "XKFA****LX",
"device_name": "x9pVpmdRmET****mkM"
},
{
"product_id": "XKFA****LX",
"device_name": "zmHv6o6n4G3****Bgh"
}
]
}
}

响应参数说明:
参数
类型
描述
type
String
网关消息类型。查询子设备取值为:describe_sub_devices
payload.devices
Array
网关绑定的子设备列表
product_id
String
子设备产品 ID
device_name
String
子设备名称

拓扑关系变化

网关类型的设备, 可以通过该 Topic 订阅平台对子设备的拓扑关系变化。 数据下行 Topic:$gateway/operation/result/${productid}/${devicename}
子设备被绑定或解绑,网关将收到子设备拓扑关系变化,数据格式如下:
{
"type": "change",
"payload": {
"status": 0, //0-解绑 1-绑定
"devices": [
{
"product_id": "CFCS****G7",
"device_name": "****ev",
}
]
}
}

请求参数说明:
参数
类型
描述
type
String
网关消息类型。拓扑关系变化取值为:change
status
Int
拓扑关系变化状态。
0:解绑
1:绑定
payload.devices
Array
网关绑定的子设备列表
product_id
String
子设备产品 ID
device_name
String
子设备名称
网关响应,数据格式如下:
{
"type": "change",
"result": 0
}

响应参数说明:
参数
类型
描述
type
String
网关消息类型。拓扑关系变化取值为:change
result
Int
网关响应处理结果

错误码

错误码
描述
0
成功
-1
网关设备未绑定该子设备
-2
系统错误,子设备上线或者下线失败
801
请求参数错误
802
设备名非法,或者设备不存在
803
签名校验失败
804
签名方法不支持
805
签名请求已过期
806
该设备已被绑定
807
非普通设备不能被绑定
808
不允许的操作
809
重复绑定
810
不支持的子设备

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈