Commit Graph

9 Commits

Author SHA1 Message Date
impressionyang
4c3eb62dfb feat: 实现完整的 Web UI 配网管理功能
新增 Web UI 组件:
- web_ui.py: RESTful API 端点(状态、扫描、配网、分组、设备)
- sigmesh-gateway-panel.js: Lovelace Dashboard 自定义卡片
  - 设备扫描和发现
- 配网操作(开始/停止/绑定 App Key)
  - 分组管理(添加/移除)
  - 实时状态监控

配置更新:
- __init__.py: 集成 Web UI 和服务注册
- const.py: 添加服务常量定义
- services.py: 保留服务调用用于向后兼容
- README.md: 添加 Web UI 配置说明
- docs/UI 使用指南.md: 详细的 UI 使用文档

使用方式:
1. 配置 frontend.extra_module_url 加载 JS 面板
2. 在 Lovelace Dashboard 添加 custom:sigmesh-gateway-panel 卡片
3. 通过 UI 完成所有配网和分组操作

API 端点:
- GET /api/sigmesh_gateway/status - 获取配网状态
- POST /api/sigmesh_gateway/scan - 开始扫描
- POST /api/sigmesh_gateway/provisioning - 配网操作
- POST /api/sigmesh_gateway/group - 分组管理
- GET /api/sigmesh_gateway/devices - 设备列表
2026-04-16 13:41:28 +08:00
impressionyang
d21e7f1b3f feat: 添加配网和分组管理功能
新增功能:
- 配网管理模块 (provisioning.py): 支持设备扫描、配网、超时处理
- 配网配置步骤: UI 配置流程增加配网参数配置(Network Key, App Key 等)
- 分组管理:支持 SIG 分组和 VENDOR 分组的加入/删除操作
- HA 服务调用:7 个配网和分组相关的服务

文件变更:
- const.py: 添加配网相关常量(CONF_NETWORK_KEY, PROV_TIMEOUT 等)
- config_flow.py: 增加 prov_config 配置步骤和 OptionsFlow 菜单
- provisioning.py: 新建配网管理器(ProvisioningManager 类)
- coordinator.py: 集成配网管理器,添加配网状态管理方法
- services.py: 新建服务定义和注册
- services.yaml: HA 服务定义文件
- __init__.py: 集成服务注册和卸载
- PRD.md: 更新服务调用接口和配置参数文档

配网功能说明:
- 首次使用需配置 Network Key, App Key, Network ID, IV Index
- 配网超时时间:180 秒
- 组地址范围:0xC000 - 0xCFFF
- 支持 SIG 标准分组和 VENDOR 自定义分组
2026-04-16 12:05:13 +08:00
impressionyang
4031747635 fix: 添加缺失的 callback 导入
- 在 config_flow.py 中添加 `from homeassistant.core import callback`
- 修复 "Invalid handler specified" 错误
2026-04-16 09:55:08 +08:00
impressionyang
311cfbbe7e fix: 修复平台文件和 OptionsFlow 错误
修复内容:
1. 所有平台文件添加 coordinator.data None 检查
   - sensor.py, binary_sensor.py, switch.py, light.py, device_tracker.py
2. 修复 async_get_options_flow 签名
   - 改为实例方法,移除 config_entry 参数
   - 移除 @staticmethod 装饰器
3. OptionsFlow 添加正确的 __init__ 方法

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 09:48:00 +08:00
impressionyang
19774a4a9f fix: 修复平台加载和 OptionsFlow 错误
主要修复:
1. 将平台文件从 platforms/ 移到集成根目录
   - sensor.py, binary_sensor.py, switch.py, light.py, device_tracker.py
2. 修复 OptionsFlow config_entry 属性错误
   - 移除手动设置的 config_entry
3. 添加集成图标 icons/icon.png
4. manifest.json 添加 integration_type: device

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 09:39:35 +08:00
impressionyang
472fec4a70 fix: 修复 coordinator.py 导入错误
问题:MeshMessageEvent 和 ProvDeviceEvent 定义在 serial_reader.py
但 coordinator.py 错误地从 protocol_parser.py 导入

修复:
- 从 protocol_parser 导入移除这两个类
- 改为从 serial_reader 导入
- 移除 _setup_callbacks 中多余的内部导入

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 19:09:40 +08:00
impressionyang
e905410ed7 fix: 修复 manifest.json 依赖错误
问题:bleak-mesh 包不存在导致 500 错误
解决:
- 移除不存在的 bleak-mesh 依赖
- 使用 pyserial-asyncio-fast 替代 pyserial-asyncio(HA 推荐)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 19:03:15 +08:00
impressionyang
66b86e3b74 fix: 修复 config_flow.py 类型注解错误
- 将 dict[str, any] 改为 dict[str, Any]
- 添加 typing.Any 导入

这会导致 500 Internal Server Error

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 18:49:18 +08:00
impressionyang
6a66c9b474 初始提交:SigMesh Gateway HACS 集成
项目结构:
- custom_components/sigmesh_gateway/ - Home Assistant 集成
  - serial_reader.py - 串口读取器
  - protocol_parser.py - 协议解析器
  - coordinator.py - 数据协调器
  - platforms/ - 传感器/开关/灯光/设备追踪实体

文档:
- PRD.md - 产品需求文档
- README.md - 用户使用指南
- 可行性分析.md - 技术可行性分析
- 参数配置表.md - 配置参数记录
- 调试检查清单.md - 问题排查指南

功能特性:
- 串口通信 (115200 波特率)
- Bluetooth Mesh 协议解析
- 支持 200+ 设备接入
- UI 配置界面
- 多平台实体支持

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 18:20:48 +08:00