xiaomi-home

🏠 本地化极速米家设备控制

🥥9总安装量 2评分人数 2
100% 的用户推荐

基于 python-miio 的本地化米家设备控制方案,支持 Token 自动提取与局域网直连,实现快速响应的智能家居自动化管理。

A

基本安全,请在特定环境下使用

  • 来自社区或个人来源,建议先隔离验证
  • ✅ 无危险代码执行函数(eval/exec/system),无动态代码加载或远程脚本执行
  • ✅ 设备 Token 本地存储不上传第三方,网络请求严格限制于小米官方域名
  • ✅ 密码输入采用 getpass 隐私保护,支持 2FA 双因素认证与验证码防暴力破解
  • ⚠️ 需交互式输入小米账号密码(非静默),密码使用 MD5 哈希(小米 API 强制要求)
  • ⚠️ 启动本地 HTTP 服务器(127.0.0.1:31415)用于登录验证,需确保运行环境可信

使用说明

核心用法

Xiaomi Home 技能通过封装 miiocli 命令行工具,让用户能够以自然语言控制米家智能设备。核心工作流程分为三步:首先运行内置的 token_extractor.py 脚本,通过小米账号认证提取设备的 IP 地址和 32 位 Token;然后将设备信息登记到 references/devices.md 本地文件;最后通过自然语言指令(如"打开热水器""加湿器调到最大")触发对应的 MIOT 协议命令,实现局域网内的设备控制。

该技能预设了多种常见设备的操作模板,包括智能插座(热水器控制)、加湿器、电饭煲等。技术实现上,它通过 raw_command set_properties 或直接调用设备专用命令(如 cooker status)与设备通信,所有操作均在本地局域网完成,无需经过小米云端 API。

显著优点

本地化低延迟:直接通过局域网通信,响应速度远超云端方案,特别适合对实时性要求高的场景(如语音控制热水器开关)。开箱即用体验:自动处理 Python 依赖冲突(如 click 版本锁定),内置 Token 提取器省去用户手动抓包的繁琐步骤。隐私保护设计:设备 Token 本地存储不上云,账号密码通过 getpass 安全输入,支持 2FA 双因素认证。双语支持:完整的中英文文档和意图映射表,降低使用门槛。

潜在缺点与局限性

账号依赖:仍需小米账号密码完成初始 Token 提取,虽然支持 2FA 但增加了配置复杂度。设备覆盖有限:预设模板主要针对常见设备(插座、加湿器、电饭煲),新型或小众 MIOT 设备可能需要用户自行查阅 SIID/PIID 参数构造命令。网络环境要求:严格依赖局域网环境,跨 VLAN 或复杂网络拓扑可能导致设备不可达。T3 来源信任成本:个人开发者维护,长期更新和漏洞响应依赖社区贡献。

适合的目标群体

  • 已拥有米家生态设备、希望实现本地化自动化的高级用户
  • 对云端延迟敏感、追求极致响应速度的智能家居爱好者
  • 注重隐私、不愿将设备控制权完全交给云端的用户
  • 具备基础 Linux/命令行知识、能处理简单配置问题的技术用户

使用风险

Token 泄露风险:设备 Token 相当于设备密码,若 references/my_private_devices.md 被误提交到 Git 或备份不当,可能导致设备被未授权控制。网络隔离失效:本地 HTTP 服务器(127.0.0.1:31415)用于显示登录二维码,虽仅绑定 localhost,但在共享开发环境或容器逃逸场景下存在理论风险。依赖维护:python-miio 库的更新可能引入 breaking changes,需关注版本兼容性。MD5 密码传输:小米 API 强制要求 MD5 哈希,该算法已不安全,虽为上游限制但需用户知晓。

xiaomi-home 内容

文件夹图标references文件夹
文件夹图标scripts文件夹
手动下载zip · 12.1 kB
devices.mdtext/markdown
请选择文件