添加子设备拓扑关系¶
网关类型的设备,可以通过该 Topic 上行请求,添加它和子设备之间的拓扑关系。
上行
请求 TOPIC:
/sys/{productKey}/{deviceKey}/thing/topo/add响应 TOPIC:
/sys/{productKey}/{deviceKey}/thing/topo/add_reply
备注
TOPIC 中的 productKey 和 deviceKey 为网关的三元组。
请求数据格式¶
{
  "id": "123",
  "version": "1.0",
  "params": [
    {
      "deviceKey": "yourDeviceKey",
      "productKey": "yourProductKey",
      "sign": "theSignature",
      "signmethod": "hmacSha1",
      "timestamp": "1524448722000",
      "clientId": "theSubDeviceId"
    }
  ],
  "method": "thing.topo.add"
}
响应数据格式¶
{
    "id":"123",
    "code":200,
    "data":{}
}
请求参数说明¶
参数  | 
类型  | 
是否必需  | 
描述  | 
|---|---|---|---|
id  | 
String  | 
可选  | 
消息 ID 号,保留值  | 
version  | 
String  | 
必需  | 
协议版本号,目前协议版本 1.0  | 
params  | 
List  | 
必需  | 
添加拓扑关系的参数  | 
deviceKey  | 
String  | 
必需  | 
子设备的 deviceKey  | 
productKey  | 
String  | 
必需  | 
子设备的 productkey  | 
sign  | 
String  | 
必需  | 
签名,生成方法见下文  | 
signmethod  | 
String  | 
必需  | 
签名方法,支持 hmacSha1  | 
timestamp  | 
String  | 
必需  | 
时间戳  | 
clientId  | 
String  | 
必需  | 
本地标记。可以为 productKey 或 deviceKey  | 
生成sign需要使用params结构体中,除去sign和signmethod之外其他的键值对。其步骤如下:
将除了
sign和signmethod之外其他的键值对,按照键的首字母顺序,以“键名+值”“键名+值”“键名+值”的方式拼接成一字符串(无需“+”号或者任何其他表示拼接的符号)例如,在上述请求中,
params中被抽取的字段应拼接成如下字符串:clientIdxxxxxxdeviceKeydeviceKey1234productKey1234556554timestamp1524448722000将该字符串与子设备的 device secret 拼接,再使用
signmethod中规定的方法进行签名运算,并将所有英文字符转换为大写字母。假定子设备的 device secret 为 xyz123,则其运算表达式如下:sign=uppercase(hmacsha1(clientId123deviceKeytestproductKey123timestamp1524448722000xyz123))
响应参数说明¶
参数  | 
类型  | 
描述  | 
|---|---|---|
code  | 
Integer  | 
结果返回码,200 代表请求成功执行  | 
结果返回码¶
返回码  | 
错误消息  | 
释义  | 
|---|---|---|
1255  | 
add topo failure, [details]  | 
部分或者全部子设备添加到网关失败,具体哪些子设备的topo添加失败,需要查看 具体错误信息 [1]  |