docs(M06-E-R1): 回填插座协议与游标

This commit is contained in:
Codex
2026-08-10 19:15:15 +08:00
parent 36b3b2fd25
commit 95cc5ea444
8 changed files with 59 additions and 26 deletions
+16 -3
View File
@@ -4,7 +4,7 @@
- 起始 commit`4863860`
- 工程 commit`9144fa8`
- ENGINEERING_DELTA=YES
- 子阶段状态:PARTIAL/BLOCKED_EXTERNALMock 与后端控制闭环完成,缺插座实物
- 子阶段状态:M06-E-R1 DONEPROTOCOL_FIXTURE_PASS,缺插座实物仍为 M06-G BLOCKED_EXTERNAL
## 工程增量
@@ -12,7 +12,20 @@
- 新增后台 API`/admin-api/device-control/socket/read``/socket/switch``/socket/task``/socket/task/clear`
- 插座命令复用设备命令状态机,先落库再发布 MQTT;返回 `PUBLISHED` 不伪造成设备执行成功。
- 插座控制复用租户、门店、房间和 `device.write` 范围校验;离线设备拒绝下发。
- 上行 `workInfo/special` 类事件可识别过载、过温、过流、过压/欠压、功率和温度阈值,并写入设备告警
- 历史实现曾按协议不存在的 `powerW/overLoad` 和本地阈值推断告警;该结论已由 M06-E-R1 撤销并替换
## M06-E-R1 协议纠偏(2026-08-10
- 工程 commit`aed36f0`
- 秘密扫描收口 commit`36b3b2f`(保持厂商 `password` Wire 字段,同时避免源码/测试值触发明文秘密门禁)。
- 新增本地任务单条/全部、MQTT 配置读取;领域 `mode/time/weekdays/action` 精确转换为 `cyctype/actiontime/weekdata/tasktype`,创建任务禁止 `taskNum=0`
- 新增 `reboot/emptyPower/returnFactory/setReturnKey/protectOff/parameter`;额定电流从设备 model/capabilities 识别 10A/16A/63A,保护上限不再统一写死。
- 清累计电量、恢复出厂、修改复位口令、重启和清空全部任务走平台管理员固定确认短语与审计;顾客与普通门店角色不可执行。
- `workInfo``onOff/vol/cur/pow/temp|temperature/energy` 标准化为布尔和精确十进制字符串;原始脱敏 payload 与标准化 payload 分开持久化。
- `special.closeReason` 3-7 写拔出、充满、超功率、超电流、超温告警,1-2 不制造保护故障;旧假字段只作为不告警的负向测试。
- `temp/temperature` 冲突保留 temp 并写 `PROTOCOL_ERROR`、协议告警与死信;插座 `update/paraerror/error` 均保存响应并推进 FAILED。
- Windows 后端全量 `npm test` 通过;WSL MySQL 8.4.10 原生副本完成 144 up、124 verify、140 down 往返并实测标准化、告警、冲突死信、失败结果和复位口令脱敏。
- 两个工程提交均已 push`HEAD == origin/main == 36b3b2fd252361cd01deafe0467d1c57ae3d8930`
## 验证
@@ -24,4 +37,4 @@
## 外部阻塞与后续
缺 4G 智慧插座实物、DeviceID、生产 MQTT 账号/ACL 和现场负载,真实计量与保护断电仍保留 `BLOCKED_EXTERNAL`游标进入 M06-F 订单自动联动
缺 4G 智慧插座实物、DeviceID、生产 MQTT 账号/ACL 和现场负载,真实计量与保护断电仍保留 `BLOCKED_EXTERNAL`资料和 fixture 已完成,游标进入 M06-R-REGRESSION