# M06-E 智慧插座 - 日期:2026-06-24 - 起始 commit:`4863860` - 工程 commit:`9144fa8` - ENGINEERING_DELTA=YES - 子阶段状态:M06-E-R1 DONE;PROTOCOL_FIXTURE_PASS,缺插座实物仍为 M06-G BLOCKED_EXTERNAL ## 工程增量 - 新增智慧插座业务控制服务:`basicInfo/workInfo` 查询、`on/off` 开关、本地任务 `localtask` 和 `clearTask`。 - 新增后台 API:`/admin-api/device-control/socket/read`、`/socket/switch`、`/socket/task`、`/socket/task/clear`。 - 插座命令复用设备命令状态机,先落库再发布 MQTT;返回 `PUBLISHED` 不伪造成设备执行成功。 - 插座控制复用租户、门店、房间和 `device.write` 范围校验;离线设备拒绝下发。 - 历史实现曾按协议不存在的 `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`。 ## 验证 - Windows `npm run build`:退出码 0。 - Windows `node tests/iot-protocol.test.mjs`:退出码 0。 - Windows `node tests/device-control.test.mjs`:退出码 0。 - Windows `npm test`:退出码 0,M01-A 至 M06-E 全量后端回归通过。 - 工程 commit 已 push,`HEAD == origin/main == 9144fa8`。 ## 外部阻塞与后续 缺 4G 智慧插座实物、DeviceID、生产 MQTT 账号/ACL 和现场负载,真实计量与保护断电仍保留 `BLOCKED_EXTERNAL`。资料和 fixture 已完成,游标进入 M06-R-REGRESSION。 ## M06-R-REGRESSION 全量回归(2026-08-10) - 工程 commit:`da5751f`;四个 M08 静态检查统一改用 `fileURLToPath`,新增带中文/空格临时仓库路径的真实执行回归。 - Windows `backend/npm test` 全量通过,控制箱、门锁、Sub-1G、智慧插座、MQTT Mock、订单联动和硬件 smoke runner 契约均通过。 - `admin/npm run build` 通过;923.28 KiB Element chunk 警告未隐藏,按固定队列移交 M08-D-R1 解决。 - WSL 原生临时副本使用 MySQL 8.4.10 完成 144 up、124 verify、140 down 的 `up → verify → down → up → verify`,协议原始 payload、标准化字段、告警、死信、命令状态和敏感值脱敏均实测通过。 - `PROTOCOL_DOCUMENT_REVIEW=PASS`、`PROTOCOL_FIXTURE=PASS`、`MQTT_MOCK=PASS`、`PATH_PORTABILITY=PASS`、`HARDWARE_REAL=BLOCKED_EXTERNAL`。 - `ISSUE-013=RESOLVED`;真实设备、生产 MQTT 账号/ACL 与现场配线继续归 `ISSUE-014`,不阻断内部队列。下一游标为 M08-D-R1。