# ble 设备配网云端文档
# 1. 概述
FogCloud 设备蓝牙辅助配网,参与方有:设备,手机 app(或者微信小程序),第三方云端,FogCloud 云;您可以使用 FogCloud 提供的前端配网 SDK 和 FogCloud 云端 API,来编写您自己的手机 app(微信小程序)和云端应用。本文档旨在帮助您完成云端的配网逻辑编写。
# 2. 配网时序图
说明:
FogCloud 设备的
product_key
和device_name
是一组身份信息,可以唯一标识一个 FogCloud 设备,它们和device_secret
组成设备的三元组;您可以在 FogCloud 管理后台或者通过云端 API 接口获取到您设备的三元组信息。设备和 app 的通信流程进行了简化,详细步骤请参考 app 配网文档。
# 3. 云端实现参考
您的云端需要向 app 端提供以下配网 API,文档仅给出参考逻辑和示例,具体 API 格式规范由您的云端和 app 端约定。
# 3.1 生成配网 random
配网 random 在配网过程中对当前配网设备进行标识,用于绑定配网设备和用户。
# 3.1.1 HTTP 接口参考示例
这里仅给出实现参考,具体的接口可以由您自行定义;
GET /network-config/random
请求:
{ "product_key": "string", "device_name": "string" }
返回:
{ "code": 0, "message": "success", "data": { "random": "string" } }
# 3.1.2 云端逻辑
生成 16 字节长度的随机字符串作为 random;
将该 random 与 app 请求体中的 product_key 和 device_name 建立映射关系;
返回 random;
# 3.2 获取 ble_key
用于配网过程中验证设备合法性,并获取 ble_key;云端需要调用对应FogCloud 云端 API (opens new window),来完成该接口逻辑;
# 3.2.1 HTTP 接口参考示例
这里仅给出实现参考,具体的接口可以由您自行定义;
GET /network-config/auth/ble-key
请求:
{ "product_key": "string", "device_name": "string", "random": "string", "cipher": "string" }
返回:
{ "code": 0, "message": "success", "data": { "ble_key": "string" } }
# 3.2.2 云端逻辑
使用 app 的请求体作为参数,调用对应FogCloud 云端 API (opens new window);
根据 FogCloud 云端 API 的返回,该接口返回配网失败或者 ble_key;
# 3.3 配网结果处理
该步骤对应配网时序图中的 16 和 17 步。云端需要在获取ble_key
接口合法调用成功后,开始监听 FogCloud 云端的配网成功通知。有两种实现方式:
使用 FogCloud AMQP 消息队列服务:创建 AMQP 客户端,消费当前项目队列;FogCloud 会在设备成功连接 MQTT 服务后,向队列发送对应消息 (opens new window)(见文档 3.3)
使用 HTTP 接口进行轮询:云端可以在调用 ble_key 接口返回成功后,循环调用对应FogCloud 云端 API (opens new window),进行轮询;注意设置轮询超时时间。
参考时序图: