添加拓扑关系

更新时间:

添加拓扑关系

网关类型的设备,可以通过该Topic上行请求添加它和子设备之间的拓扑关系,返回成功添加拓扑关系的子设备。

重要

单次最多可请求添加30个子设备。

数据上行。

  • 请求Topic:/sys/${productKey}/${deviceName}/thing/topo/add

  • 响应Topic:/sys/${productKey}/${deviceName}/thing/topo/add_reply

请求数据格式:

{
  "id": "123",
  "version": "1.0",
  "sys":{
      "ack":0
  },
  "params": [
    {
      "deviceName": "deviceName1234",
      "productKey": "1234556554",
      "sign": "xxxxxx",
      "signmethod": "hmacSha1",
      "timestamp": "1524448722000",
      "clientId": "xxxxxx"
    }
  ],
  "method": "thing.topo.add"
}

响应数据格式:

{
  "id": "123",
  "code": 200,
  "data": [
    {
      "deviceName": "deviceName1234",
      "productKey": "1234556554"
    }
  ]
}

请求参数说明:

参数

类型

说明

id

String

消息ID号。需定义为String类型的数字,取值范围0~4294967295,且每个消息ID在当前设备中具有唯一性。

version

String

协议版本号,目前协议版本号唯一取值为1.0。

sys

Object

扩展功能的参数,其下包含各功能字段。

说明

使用设备端SDK开发时,如果未设置扩展功能,则无此参数,相关功能保持默认配置。

ack

Integer

sys下的扩展功能字段,表示是否返回响应数据。

  • 1:云端返回响应数据。

  • 0:云端不返回响应数据。

重要

如果未配置该功能,则无此参数,云端默认返回响应数据。

params

List

请求入参。

deviceName

String

子设备的名称。

productKey

String

子设备所属产品的ProductKey。

sign

String

签名。

加签算法:

  1. 将所有提交给服务器的参数(signsignMethod除外)按照字母顺序排序,然后将参数和值依次拼接(无拼接符号)。

  2. 对加签内容,需通过signMethod指定的加签算法,使用设备的DeviceSecret值,进行签名计算。

签名计算示例:

sign= hmac_md5(deviceSecret, clientId123deviceNametestproductKey123timestamp1524448722000)

signmethod

String

签名方法,支持hmacSha1、hmacSha256、hmacMd5、Sha256。

timestamp

String

时间戳(单位:毫秒)。

clientId

String

设备本地标记,非必填。可以设置为具体的productKey&deviceName。

method

String

请求方法,取值thing.topo.add

响应参数说明:

参数

类型

说明

id

String

消息ID,String类型的数字,取值范围0~4294967295,且每个消息ID在当前设备中具有唯一性。

code

Integer

返回结果,200代表成功。

data

Object

请求成功时返回的子设备信息,具体参数请参见下表data。

data数据格式:

参数

类型

说明

deviceName

String

子设备的设备名称。

productKey

String

子设备所属产品的ProductKey。

错误信息:

错误码

消息

描述

460

request parameter error

请求参数错误。

6402

topo relation cannot add by self

设备不能把自己添加为自己的子设备。

401

request auth error

签名校验授权失败。