项目结构: - 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>
6.3 KiB
6.3 KiB
SigMesh Gateway - 调试检查清单
用途: 系统化排查问题,确保不遗漏任何步骤
阶段 1: 部署前检查
1.1 硬件检查
- 网关已正确供电
- USB 转 TTL 模块工作正常
- 接线正确(TX→RX, RX→TX, GND→GND)
- 电压匹配(3.3V 或 5V)
1.2 系统检查
- HAOS 版本 ≥ 2024.1.0
- HACS 已安装且版本 ≥ 1.34.0
- 串口驱动已安装
# 检查串口设备
ls -l /dev/ttyUSB*
# 预期输出:crw-rw---- 1 root dialout ... /dev/ttyUSB0
1.3 权限检查
- homeassistant 用户在 dialout 组
- 串口设备权限正确
# 检查用户组
groups homeassistant
# 如需添加权限
sudo usermod -a -G dialout homeassistant
# 然后重启 HA
阶段 2: 安装检查
2.1 文件完整性
custom_components/sigmesh_gateway/目录存在__init__.py存在manifest.json存在且格式正确const.py存在config_flow.py存在coordinator.py存在serial_reader.py存在protocol_parser.py存在platforms/目录及所有平台文件存在
2.2 HACS 注册
hacs.json存在且格式正确- README.md 存在
2.3 安装验证
# 检查文件结构
find ~/.homeassistant/custom_components/sigmesh_gateway/ -type f
阶段 3: 配置检查
3.1 UI 配置
- 集成出现在"添加集成"列表中
- 串口设备可选择
- 配置可提交
- 配置后集成状态为"已加载"
3.2 YAML 配置(如使用)
# 检查 YAML 语法
ha core check
# 预期输出:Configuration check completed
阶段 4: 启动检查
4.1 启动日志
# 查看启动日志
tail -f ~/.homeassistant/home-assistant.log | grep sigmesh
检查项:
- 看到"设置 SigMesh Gateway 集成"
- 看到"串口已连接"
- 看到"SigMesh Gateway 协调器已启动"
- 无 ERROR 级别日志
4.2 实体创建
- 进入"设置 → 设备与服务"
- 看到 SigMesh Gateway 集成
- 点击后看到设备列表
- 实体出现在"设置 → 实体"
阶段 5: 数据接收检查
5.1 串口通信验证
# 手动测试串口
screen /dev/ttyUSB0 115200
# 发送测试命令
AT
# 预期返回:OK
# 退出:Ctrl+A, 然后 K, 然后 Y
5.2 数据接收验证
- 日志中看到"串口接收:+EVENT=..."
- 无"解码失败"错误
- 无"无效的 Mesh 消息格式"警告
5.3 协议解析验证
- Opcode 正确识别
- Payload 正确解析
- 设备状态正确更新
阶段 6: 实体功能检查
6.1 传感器
- 传感器实体存在
- 状态值合理
- 单位正确显示
- 状态随时间更新
6.2 开关(如有)
- 开关实体存在
- 状态显示正确
- (如已实现)开关操作响应
6.3 灯光(如有)
- 灯光实体存在
- 亮度调节响应
- 开关操作响应
6.4 设备追踪
- tracker 实体存在
- 状态为"home"或"not_home"
阶段 7: 压力测试
7.1 多设备测试
- 连接 10 个设备,系统稳定
- 连接 50 个设备,系统稳定
- 连接 100 个设备,系统稳定
- 连接 200 个设备,系统稳定
7.2 性能监控
# 查看内存占用
ps aux | grep homeassistant
# 查看 CPU 占用
top -p $(pgrep -f homeassistant)
检查项:
- 内存占用 < 50MB
- CPU 占用 < 5%
- 无明显内存泄漏
阶段 8: 异常处理检查
8.1 串口断开测试
- 拔掉 USB 转 TTL 模块
- 日志中看到"串口连接已断开"
- 系统尝试重连
- 插回后自动恢复连接
8.2 异常数据处理
- 发送畸形数据
- 系统不崩溃
- 日志中记录错误
- 正常数据继续处理
阶段 9: 日志分析
9.1 日志级别验证
# 临时启用详细日志
logger:
logs:
custom_components.sigmesh_gateway: debug
检查项:
- DEBUG 日志显示原始数据
- DEBUG 日志显示解析过程
- INFO 日志显示关键事件
- WARNING 日志显示警告
- ERROR 日志显示错误详情
9.2 日志清理
- 测试完成后恢复日志级别
- 生产环境不启用 DEBUG
阶段 10: 文档记录
10.1 配置记录
- 记录实际使用的配置参数
- 记录调整过的参数值
- 记录参数调整原因
10.2 问题记录
- 记录遇到的问题
- 记录解决方案
- 记录排查步骤
快速诊断流程
问题现象
↓
┌─────────────────┐
│ 1. 检查集成状态 │
│ 设置 → 设备与服务 │
└────────┬────────┘
│ 未加载
↓
┌─────────────────┐
│ 2. 检查日志错误 │
│ home-assistant.log │
└────────┬────────┘
│ 串口错误
↓
┌─────────────────┐
│ 3. 检查串口权限 │
│ groups homeassistant │
└────────┬────────┘
│ 权限正常
↓
┌─────────────────┐
│ 4. 手动测试串口 │
│ screen /dev/ttyUSB0 │
└────────┬────────┘
│ 无响应
↓
┌─────────────────┐
│ 5. 检查硬件连接 │
│ 电源/接线/电压 │
└─────────────────┘
常用诊断命令
# 1. 查看串口设备
ls -l /dev/ttyUSB*
# 2. 查看用户组
groups homeassistant
# 3. 查看实时日志
tail -f ~/.homeassistant/home-assistant.log | grep sigmesh
# 4. 查看集成状态
ha integrations info sigmesh_gateway
# 5. 重启集成
ha integrations reload sigmesh_gateway
# 6. 查看内存占用
ps aux | grep homeassistant | grep -v grep
# 7. 测试串口通信
screen /dev/ttyUSB0 115200
# 8. 查看系统资源
top -p $(pgrep -f homeassistant)
检查清单完成确认
- 所有阶段检查完成
- 所有问题已解决
- 配置参数已记录
- 系统运行稳定
检查人: ______________ 检查日期: ______________ 系统版本: HA __________, HACS __________