tencent cloud

物联网通信

动态与公告
产品动态
产品简介
产品概述
产品功能
产品优势
应用场景
产品限制
基本概念
快速入门
快速开始
场景一:设备互通
场景二:设备状态上报与状态设置
MQTT.fx接入指南
控制台使用手册
产品管理
规则引擎
子账号访问IoT
固件升级
资源管理
证书管理
开发者手册
功能组件
签名方法
设备身份认证
设备接入协议
网关子设备
消息通信
设备影子
设备固件升级
设备远程配置
资源管理
设备日志上报
NTP服务
设备端接入手册
设备接入概述
基于C SDK接入
基于 Android SDK 接入
基于 Java SDK 接入
基于 Python SDK 接入
API 文档
History
Introduction
API Category
Making API Requests
Device Shadow APIs
Device APIs
CA Certificate APIs
Product APIs
Data Types
Error Codes
常见问题
一般性问题
设备接入和上报问题
规则引擎问题
控制台相关问题
IoT Hub 政策
隐私协议
数据处理和安全协议
词汇表

拓扑关系管理

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
不支持的子设备

帮助和支持

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

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

文档反馈