更新时间:2023-12-11 07:45:47下载pdf
本文主要介绍 TuyaOS Bluetooth Mesh SDK 的配网方式与相关的 API 使用说明。
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_key 与 device_key 加密通信 |
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 连接未配网的设备进行通信。
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 在 provision 阶段完成后,如果 30s 内没有完成 config 阶段则认为设备配网超时会自动重置。
在 App/网关发起配网后将设备 unicast_addr
下发给设备后开始计时,如果 90s 内没有完成配网则认为超时。
因为 Tuya fast provison 是一个批量配网的过程,所以此方案的超时时间会比较久。在实际使用中,如果配网失败后要快速重试的话,可以本地重置设备后继续配网。
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈