# ble 设备配网云端文档

# 1. 概述

FogCloud 设备蓝牙辅助配网,参与方有:设备,手机 app(或者微信小程序),第三方云端,FogCloud 云;您可以使用 FogCloud 提供的前端配网 SDK 和 FogCloud 云端 API,来编写您自己的手机 app(微信小程序)和云端应用。本文档旨在帮助您完成云端的配网逻辑编写。

# 2. 配网时序图

uml diagram

说明:

  1. FogCloud 设备的product_keydevice_name是一组身份信息,可以唯一标识一个 FogCloud 设备,它们和device_secret组成设备的三元组;您可以在 FogCloud 管理后台或者通过云端 API 接口获取到您设备的三元组信息。

  2. 设备和 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 云端逻辑

  1. 生成 16 字节长度的随机字符串作为 random;

  2. 将该 random 与 app 请求体中的 product_key 和 device_name 建立映射关系;

  3. 返回 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 云端逻辑

  1. 使用 app 的请求体作为参数,调用对应FogCloud 云端 API (opens new window)

  2. 根据 FogCloud 云端 API 的返回,该接口返回配网失败或者 ble_key;

# 3.3 配网结果处理

该步骤对应配网时序图中的 16 和 17 步。云端需要在获取ble_key接口合法调用成功后,开始监听 FogCloud 云端的配网成功通知。有两种实现方式:

  1. 使用 FogCloud AMQP 消息队列服务:创建 AMQP 客户端,消费当前项目队列;FogCloud 会在设备成功连接 MQTT 服务后,向队列发送对应消息 (opens new window)(见文档 3.3)

  2. 使用 HTTP 接口进行轮询:云端可以在调用 ble_key 接口返回成功后,循环调用对应FogCloud 云端 API (opens new window),进行轮询;注意设置轮询超时时间。

参考时序图:

uml diagram
更新时间: 2023/2/24 下午5:49:58