米家极客版备份(.bak)工具
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_f691e479/mijia-geek-backup。
技能介绍
要解决什么问题
米家极客版的自动化规则通过控制台导出为 .bak 文件,但格式是带校验尾的二进制包,不是可读 JSON。自行改规则、做版本管理或跨机器恢复时,需要可靠地解包、编辑后再打包,且打包方式不对会导致导入界面一直转圈。
技能如何工作
本技能说明 .bak 的已破解二进制结构:正文为「4 字节小端未压缩长度 + 裸 DEFLATE 流」,文件末尾必须追加 SHA-256(前缀+deflate) 共 32 字节;DEFLATE 无 zlib/gzip 头尾,与 .NET DeflateStream 兼容。
工具链分两层:
- Python(推荐):同仓库
mijia_rule_kit.py(路径见 mijia-geek-rule)负责打包/解包;自行实现时可按文档流程:单行紧凑 JSON→ 去 zlib 头尾的compress裸流 → 拼 body → 追加 SHA-256。 - PowerShell:本技能目录下
bak-pack.ps1/bak-unpack.ps1,零 Python 依赖。
解包内容与控制台一致:全部规则、全局变量与真实 did。导入语义为全量覆盖(非合并),改一条规则也要「导出全集 → 修改 → 整体重导」,控制台细节见 mijia-geek-console。
mijia_rule_kit 还提供 packmain / freezemain:编辑生成器产出 导入集.json 后,pack_main 打时间戳构建并刷新 主包-当前.bak、台账记「待验收」;现场验收通过后 freeze_main 复制到 已固定/vN-…bak;日常导入优先 已固定/ 最新版,验改动用 主包-当前.bak;名以 TEST 开头的规则不进主包。
边界与注意点
- SHA-256 尾不可省略,缺失时导入点确定后会无响应(实测)。
- 规则 JSON 结构与节点定义不在本技能内,见 mijia-geek-rule。
- 官方导出文件可原样重导入;自行重打包只要校验尾正确即可成功导入。
使用场景
- 从控制台导出 .bak 后解包核对规则与 did,改完 JSON 再按文档带 SHA-256 尾重打包导入
- 多台网关规则要统一维护:用 pack_main 刷新主包-当前.bak,现场验收后再 freeze_main 固定版本
- Windows 环境不便装 Python 时,用 bak-pack.ps1 / bak-unpack.ps1 处理极客版备份文件
- 导入失败后排查:确认是否漏了校验尾,或是否只改了部分规则却未按全量覆盖流程整体重导
适合人员
- 在米家极客版控制台维护大量自动化、需要离线批量改规则再整体导入的智能家居玩家
- 负责家庭或门店网关规则发布,要用台账区分「待验收」与已固定 vN 备份的运维/实施人员
- 想对照 mijia-geek-rule 生成导入集.json,并走主包工作流而非手搓 .bak 的极客版规则作者
- 需要在无 Python 的 Windows 主机上解包/重打官方导出 .bak 做回归验证的集成调试人员