diff --git a/docs/配网使用指南.md b/docs/配网使用指南.md new file mode 100644 index 0000000..34dd694 --- /dev/null +++ b/docs/配网使用指南.md @@ -0,0 +1,262 @@ +# SigMesh Gateway 配网使用指南 + +## 概述 + +本指南介绍如何使用 SigMesh Gateway 集成的配网功能,将 Bluetooth Mesh 设备添加到网络中。 + +## 配网流程 + +### 第一步:首次配置 + +添加集成时,需要配置以下配网参数: + +1. **串口配置** + - 选择串口设备(如 `/dev/ttyUSB0`) + - 设置波特率(默认 115200) + +2. **配网参数**(首次使用需要) + - **Network Key**: 16 字节网络密钥(32 字符十六进制) + - **App Key**: 16 字节应用密钥(32 字符十六进制) + - **Network ID**: 2 字节网络 ID(4 字符十六进制) + - **IV Index**: 4 字节 IV 索引(整数) + - **组地址起始值**: 组地址范围起始(默认 0xC000) + +> **注意**: 如果网关已经配置过,可以使用默认值(全 0)。 + +### 第二步:扫描设备 + +配置完成后,通过以下方式开始扫描设备: + +**方法 1: 通过 Options Flow(推荐)** +1. 进入 HA 设置 → 设备与服务 +2. 找到 SigMesh Gateway 集成 +3. 点击"配置" +4. 选择"开始扫描设备" + +**方法 2: 通过服务调用** +```yaml +service: sigmesh_gateway.start_scan +data: {} +``` + +### 第三步:配网设备 + +扫描到设备后,可以通过服务调用进行配网: + +```yaml +service: sigmesh_gateway.start_provisioning +data: + device_address: "001A" # 设备地址(16 进制) +``` + +配网过程: +1. 发送配网启动命令 +2. 等待设备加入(超时时间 180 秒) +3. 配网完成后自动绑定 App Key + +### 第四步:绑定 App Key(可选) + +如果需要手动绑定 App Key: + +```yaml +service: sigmesh_gateway.bind_appkey +data: + device_address: "001A" + element_address: 0 +``` + +## 分组管理 + +### 添加设备到组 + +将设备添加到组地址,实现组控制: + +**SIG 标准分组**: +```yaml +service: sigmesh_gateway.add_to_group +data: + target_address: "001A" # 目标设备地址 + element_address: 0 # 元素地址 + group_address: "C001" # 组地址(16 进制) + model_id: 4352 # Model ID (0x1100 传感器) + is_sig: true # SIG 标准分组 +``` + +**VENDOR 自定义分组**: +```yaml +service: sigmesh_gateway.add_to_group +data: + target_address: "001A" + element_address: 0 + group_address: "C001" + model_id: 4354 # VENDOR Model ID + is_sig: false +``` + +### 从组中移除设备 + +```yaml +service: sigmesh_gateway.remove_from_group +data: + target_address: "001A" + element_address: 0 + group_address: "C001" + model_id: 4352 + is_sig: true +``` + +## 高级功能 + +### 发送 VENDOR 命令 + +发送自定义 VENDOR 命令到设备: + +```yaml +service: sigmesh_gateway.send_vendor_command +data: + target_address: "001A" + element_address: 0 + opcode: "1102" # VENDOR 操作码 + payload: "0000" # 数据负载(16 进制) +``` + +### 停止配网 + +```yaml +service: sigmesh_gateway.stop_provisioning +data: {} +``` + +## 组地址规划 + +### 推荐组地址范围 + +| 用途 | 地址范围 | 说明 | +|------|----------|------| +| 灯光组 | 0xC001 - 0xC0FF | 照明设备分组 | +| 传感器组 | 0xC100 - 0xC1FF | 传感器分组 | +| 开关组 | 0xC200 - 0xC2FF | 开关设备分组 | + +### 组地址配置示例 + +假设有一个灯光场景: +- 客厅主灯(设备地址 0001) +- 客厅灯带(设备地址 0002) +- 餐厅主灯(设备地址 0003) + +将客厅灯具分到一组: +```yaml +# 客厅主灯加入组 0xC001 +service: sigmesh_gateway.add_to_group +data: + target_address: "0001" + group_address: "C001" + model_id: 4872 # 0x1308 灯光模型 + +# 客厅灯带加入组 0xC001 +service: sigmesh_gateway.add_to_group +data: + target_address: "0002" + group_address: "C001" + model_id: 4872 +``` + +之后可以通过组地址 0xC001 同时控制客厅所有灯具。 + +## 配网状态 + +配网过程中会触发 `sigmesh_gateway_prov_state` 事件,包含以下状态: + +| 状态 | 说明 | +|------|------| +| idle | 空闲,无配网操作 | +| scanning | 扫描设备中 | +| prov_starting | 配网启动中 | +| prov_in_progress | 配网进行中 | +| prov_completed | 配网完成 | +| prov_failed | 配网失败 | +| timeout | 配网超时 | + +监听配网状态事件: +```yaml +automation: + - alias: "配网状态通知" + trigger: + platform: event + event_type: sigmesh_gateway_prov_state + action: + - service: notify.notify + data: + message: "配网状态:{{ trigger.event.data.state }}" +``` + +## 故障排查 + +### 问题 1: 配网超时 + +**现象**: 配网状态变为 timeout + +**可能原因**: +- 设备未进入配网模式 +- 网络密钥配置不正确 +- 信号强度不足 + +**解决方法**: +1. 确认设备已进入配网模式(参考设备说明书) +2. 检查 Network Key 配置 +3. 将网关靠近设备 + +### 问题 2: 设备无法加入组 + +**现象**: 调用 add_to_group 后设备无响应 + +**可能原因**: +- 设备未完成配网 +- 设备不支持该 Model +- 组地址超出范围 + +**解决方法**: +1. 确认设备已完成配网 +2. 检查 model_id 是否正确 +3. 使用 0xC000 以上的组地址 + +### 问题 3: 低功耗设备无法接收组消息 + +**现象**: 低功耗设备不响应组控制 + +**解决方法**: +将 Lightness Model 和 Vendor Model 分配到同一组: +```yaml +# 添加 Lightness Model 到组 +service: sigmesh_gateway.add_to_group +data: + target_address: "0001" + group_address: "C001" + model_id: 4864 # 0x1300 LIGHT_LIGHTNESS_SERVER + is_sig: true + +# 添加 Vendor Model 到同一组 +service: sigmesh_gateway.add_to_group +data: + target_address: "0001" + group_address: "C001" + model_id: 4610 # VENDOR Model + is_sig: false +``` + +## 服务列表 + +| 服务名称 | 功能 | +|----------|------| +| `sigmesh_gateway.start_scan` | 开始扫描设备 | +| `sigmesh_gateway.stop_provisioning` | 停止配网 | +| `sigmesh_gateway.start_provisioning` | 开始配网指定设备 | +| `sigmesh_gateway.bind_appkey` | 绑定 App Key | +| `sigmesh_gateway.add_to_group` | 添加设备到组 | +| `sigmesh_gateway.remove_from_group` | 从组中移除设备 | +| `sigmesh_gateway.send_vendor_command` | 发送 VENDOR 命令 | + +--- + +**文档版本**: 1.0 +**最后更新**: 2026-04-16