# 星型网络
数据上行: fogcloud/{pk}/{dn}/thing/up/topo 数据下行: fogcloud/{pk}/{dn}/thing/down/topo
具体请求类别根据 json 数据的 method 字段进行区分:
method | 说明 |
add | 添加拓扑关系 |
delete | 删除拓扑关系 |
get | 获取拓扑关系 |
change | 云端通知网关拓扑关系发生变化 |
login | 子设备上线 |
logout | 子设备下线 |
# 1 拓扑关系管理
子设备身份认证后,可以由网关上报拓扑关系至 fogcloud 平台,或直接通过 fogcloud 后台管理页面进行添加,然后进行子设备上线。 子设备上线时,物联网平台会校验子设备身份和与网关的拓扑关系,检验通过后,会建立与网关的物理通道。 网关子设备接入步骤:
- 网关请求添加拓扑关系,云端进行身份校验,并响应成功添加的子设备列表;
- 网关请求子设备上线,云端校验子设备身份和拓扑关系,校验通过后,子设备成功接入;
公共请求/响应参数说明:
参数 | 类型 | 说明 |
id | uint32 | 消息 id。无符号 32bit 整型,取值 0~2^32-1, 递增 |
version | string | 协议版本,当前取唯一值 1.0 |
code | int | 返回结果,0 代表成功 |
# 1.1 添加拓扑关系
- 设备上行数据格式:
{ "id": 123, "version": "1.0", "params": [ { "device_name": "test_name", "product_key": "sdf3gdg3F", "sign": "xxxxxx", "sign_method": "hmacsha1", //消息摘要算法,支持hmacmd5, hmacsha1, aescmac "client_id": "xxxxxx", //mqtt client_id具有唯一性,推荐设备sn/mac "extra": "xxxx", "session_id": "xxxx" //配网请求唯一标识 } ], "method": "add" }
请求参数说明:
参数 | 类型 | 说明 |
params | list | 请求入参 |
device_name | string | 设备名称 |
product_key | string | 设备所属产品 product_key |
sign_method | string | 消息摘要算法,支持 hmacsha1, hmacmd5, aescmac。不传则默认为 hmacsha1 |
sign | string | 签名。加签算法: |
timestamp | uint32 | 时间戳,单位秒 |
client_id | string | 设备连接 iot 标识。不传则默认为 device_name&product_key |
method | string | add |
session_id | string | 配网请求唯一标识 |
- 云端响应数据格式:
{ "id": 123, "code": 0, "method": "add", "params": [ { "device_name": "test_device", "product_key": "fog****cloud" } ] }
签名示例:
一个子设备连接信息为:
clientId: "test" deviceName: "00000000" productKey: "12345678" signmethod: "hmacsha1" deviceSecret: "secret"
则签名计算如下:
sign = hmacsha1("secret", "clientIdtestdeviceName00000000productKey12345678").toHexString() sign = "27e4173a2aadb33699f0f5246096def76265c09f"
# 1.2 删除拓扑关系
数据上行。
- 设备上行数据格式:
{ "id": 123, "version": "1.0", "params": [ { "device_name": "test_device", "product_key": "fog****cloud" } ], "method": "delete" }
# 1.3 获取设备拓扑关系
数据上行。 网关设备可以获取本设备下的子设备拓扑关系。
- 设备上行数据格式:
{ "id": 123, "version": "1.0", "method": "get" }
- 云端响应数据格式:
{ "id": 123, "code": 0, "method": "get", "params": [ { "device_name": "test_device", "product_key": "fog****cloud", "extra": "xxxx" } ] }
# 1.7 通知网关拓扑关系变化
云端拓扑关系变化时,会通知网关,网关需要更新本地拓扑关系
- 云端下行数据格式:
{ "id": 123, "version": "1.0", "params": { "action": 0, //0-删除,1-新增 "subs": [ { "device_name": "00000000", "product_key": "6f2f5483" }, { "device_name": "00000001", "product_key": "6f2f5483" } ] }, "method": "change" }
# 2 子设备上下线
子设备上线时,物联网平台会根据拓扑关系进行身份校验。
# 2.1 子设备上线
- 设备上行数据格式:
{ "id": 123, "version": "1.0", "method": "login", "params": [ { "device_name": "00000001", "product_key": "0132ae12" }, { "device_name": "00000002", "product_key": "0132ae12" } ] }
# 2.2 子设备下线
- 设备上行数据格式:
{ "id": 123, "version": "1.0", "params": [ { "device_name": "test_name", "product_key": "sdf3gdg3F" }, { "device_name": "test_name1", "product_key": "sdf3gdg3F" } ], "method": "logout" }