设备配网全流程
ztUtil 在配网中的角色
配网流程中 ztUtil 承担两个阶段的通信:
阶段一:BLE 配网(步骤 7-8)
setMode(MODE_BLE)→ 切换到蓝牙直连模式connectBle({ gatewayMacList })→ BLE 连接网关(ServiceFFE0)configWifi({ ssid, psk, gatewayMac })→ 通过 AT 命令下发 WiFi 凭据- 网关连上 WiFi 后,固件自行调用 hapi
module/login获取 MQTT 地址
阶段二:MQTT 远程(步骤 11)
setMode(MODE_MQTT)→ 切换到 MQTT 远程模式connectMqtt({ serverUrl, username, password, ... })→ 通过 WSS 连接网关- 后续设备控制/状态查询/场景执行均通过 MQTT 通道
子设备入网流程(Mesh 子设备)
上述流程覆盖的是「网关本身的 WiFi/MQTT 配网」。Mesh 子设备(开关、灯、窗帘等)的入网在网关已上线后进行,使用网关↔子设备之间的 26B 私有加密帧(帧格式属内部实现,不对外发布)。
关键步骤说明
| 步骤 | 说明 |
|---|---|
| 进入配对态 | 小程序发 0x10,网关置 g_ble_pair_state=1,广播版本位切到"未绑定/可发现",指示灯切 PAIR(50/450)。指示灯六态定义属内部实现,不对外发布 |
| 子设备发现 | 网关常驻主动扫描,在 ADV 原始数据上滑窗定位 26B 帧(不依赖标准 AD TLV),通过 R 互补预检 + CRC16/MODBUS 校验确认合法帧 |
| 写节点表 | 未配网帧(type=0)限流留痕;已配网帧取 body 内源 naddr,登记 MAC + naddr 到节点表(105 项,stride 0x12) |
| GATT 建连 | 网关作为 central 与子设备建连 → MTU 交换 → 发现 FFE0 服务 → 取 FFE1(写句柄)/ FFE2(订阅 notify) |
| 退出配对态 | 小程序发 0x11,清配对态,指示灯回落连接子状态,并触发一次节点列表上报 |
| 在线维护 | 网关周期轮询 + 收到子设备上行即刷新在线 tick;超时(约 1860s)判离线 |
| 控制转发 | 上层 0x30/0x32/0x34 命令经网关组装为 26B 加密帧发往子设备,回执格式属内部实现,不对外发布 |
节点列表查询
网关已登记的子设备可通过 0x12(GET_NODE)查询,回包格式 53 92 00 10 <total> <idx> <16B 记录> <xor>,记录含 MAC / naddr / type / status(在线位)。云端侧的节点列表由 hapi module/module/nodelist 接口下发(节点列表下发协议属内部实现,不对外发布)。
