tencent cloud

文档反馈

拓扑关系管理

最后更新时间:2021-09-10 10:44:38

    功能概述

    网关类型的设备,可通过与云端的数据通信,对其下的子设备进行绑定与解绑操作。实现此类功能需利用如下两个 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 不支持的子设备
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持