docs(M06-G): 记录硬件联调阻塞并推进余额账本

This commit is contained in:
Codex
2026-06-24 15:26:05 +08:00
parent d01f77151e
commit 8de3d05da6
8 changed files with 44 additions and 15 deletions
@@ -0,0 +1,27 @@
# M06-G 真实硬件联调
- 日期:2026-06-24
- 起始 commit`c00526f`
- 工程 commit`d01f771`
- ENGINEERING_DELTA=YES
- 子阶段状态:BLOCKED_EXTERNAL;烟测运行器已完成,真实设备未执行
## 工程增量
- 新增 `hardware-smoke-runner`,默认 dry-run 生成控制箱、Sub-1G 门锁和智慧插座联调矩阵。
- 未配置 DeviceID 时安全 `SKIP`;未显式设置 `QIPAI_HARDWARE_SMOKE_ENABLE=true` 时只输出 `DRY_RUN`,不发布真实硬件命令。
- 危险动作默认关闭;只有 `QIPAI_HARDWARE_SMOKE_ALLOW_ACTIONS=true` 且提供对应 DeviceID/subID 时才加入控电、开锁和插座开关动作。
- 真实执行时通过 MQTT 3.1/QoS 1 发布 `/deviceaccept/{DeviceID}` 并等待 `/devicesend/{DeviceID}` 中匹配命令 ID 的 ACK。
- 输出 JSON 结果,便于后续粘贴进硬件联调报告和部署验收记录。
## 验证
- Windows `npm run build`:退出码 0。
- Windows `node tests/hardware-smoke-runner.test.mjs`:退出码 0。
- Windows `node dist/devices/hardware-smoke-runner.js`:退出码 0,未配置 DeviceID 时返回 `SKIP`
- Windows `npm test`:退出码 0,M01-A 至 M06-G 全量后端回归通过。
- 工程 commit 已 push`HEAD == origin/main == d01f771`
## 外部阻塞与后续
缺生产 MQTT 账号/ACL、控制箱、Sub-1G 门锁、4G 智慧插座、DeviceID、subID 和现场配线/负载,未执行真实 ACK、断电保护、开锁、订单联动和异常恢复矩阵。M06 保持 `PARTIAL/BLOCKED_EXTERNAL`,游标旁路进入 M07-A 双余额账本。