设备配网

更新时间:2023-12-11 07:45:47下载pdf

本文主要介绍 TuyaOS Bluetooth Mesh SDK 的配网方式与相关的 API 使用说明。

配网方式

Mesh provision

Mesh provision 是 SIG 官方规定的一种配网方式,支持 PB-GATT 与 PB-ADV。

设备配网

上图为 Mesh provision 主要流程。详细流程与协议可以参考 Mesh Specifications

Mesh provision 完成之后仍需要 config 阶段获取设备的部分信息,并将 app_key 下发给设备以及将 app_key 与对应的 Model 绑定。只有完成 Config 阶段才算是完整的配网。

配网阶段 配网信息交互 备注
Mesh Provision 1. 设备 unicast_addr 配置
2. 网路秘钥信息下发
3. device_key 生成
App/网关与设备通过 ECDH 加密通信
Config 1. app_key 下发
2. Model 与 app_key 绑定
3. 设备 composition data 获取
配网后基于 network_keydevice_key 加密通信

Tuya fast provision

Tuya fast provision 为涂鸦自定义的快速配网方案,支持设备批量配网,支持 PB-GATT 与 PB-ADV,速度更快、效率更高。

配网承载方式

配网中有两种承载方式。详细可参考 Mesh Profile 1.0.1 中 5.2 章节。

  • PB-ADV:Provisioner 通过广播直接与未配网的 Mesh 节点通信进行配网过程。此方式一般适用于网关类配网者,此类配网者可以保持一致或者周期性 scan 空中的广播数据以及发送广播数据,来实现与网络内节点通信。

  • PB-GATT:Provisioner 通过 GATT 连接的方式与未配网的 Mesh 节点进行连接后,通过连接通道进行配网。一般应用于手机 App 此类的配网者。手机 App 一般无法保持长时间的 scan 能力,无法直接接收 Mesh 网络的消息,所以需要通过 GATT 连接未配网的设备进行通信。

API 说明

Tuya fast provision 使能

VOID tal_mesh_fast_prov_enable(UCHAR_T enable);

TuyaOS Bluetooth Mesh SDK 默认开启 Tuya Fast Provision,您可以调用此接口选择关闭 Tuya Fast Provision,而只使用 Mesh Provision。

获取设备配网状态

UCHAR_T tal_get_if_prov_success(VOID);

API 返回值:

  • 0:设备处于未配网状态。

  • 非 0:设备处于已配网状态。

设备信息配置

初始化过程中将设备信息配到 SDK 中,配网时 SDK 将设备信息传输给 App 或者网关。

注意:设备必须授权,否则云端注册时校验失败会导致设备配网失败。

VOID tal_firmware_infor_set(UINT8_T is_key, UINT8_T *product_id, UINT8_T *product_key, UINT16_T version, UINT16_T mesh_category, UINT8_T need_publish_addr);
VOID tal_mesh_factory_firmware_info_set(UINT8_T *firmname, UINT8_T *version);
VOID tal_mesh_gatt_ota_version_set(UINT16_T version);

注意事项

Mesh provision 超时机制

Mesh 标准 provision 在 provision 阶段完成后,如果 30s 内没有完成 config 阶段则认为设备配网超时会自动重置。

Tuya fast provision 超时机制

在 App/网关发起配网后将设备 unicast_addr 下发给设备后开始计时,如果 90s 内没有完成配网则认为超时。

因为 Tuya fast provison 是一个批量配网的过程,所以此方案的超时时间会比较久。在实际使用中,如果配网失败后要快速重试的话,可以本地重置设备后继续配网。