Skip to content

小米 / 米家 MIoT 集成详解

概念速览

  • 米家 (Mi Home):小米生态的智能家居统一 App,承载 5000+ SKU
  • MIoT (Xiaomi MIoT Auto):小米自 2019 年起对设备开放的本地协议,不依赖云端即可通信
  • Miio (旧):2019 年前的私有协议,HA 通过 xiaomi_miio 集成支持
  • 区域账号:国行 / 国际版账号数据隔离,海外服务器可能无法控制国行设备

协议对比

维度Miio (旧)MIoT (新)Mihome Cloud (云)
通信LAN (UDP 54321)LAN (MQTT 8883)HTTPS API
是否需 Token✓ 需提取✓ OAuth 一次✗ 用账号
设备支持老款 (Yeelight v1)2019+ 大部分全部
控制延迟< 50 ms< 50 ms200-1000 ms
离线可用
推荐程度仅老设备✅ 首选仅特殊设备

集成方式 (HA)

方式 A:OAuth (推荐)

  1. 设置 → 设备与服务 → 添加集成 → Xiaomi MIoT
  2. Account 认证
  3. 用小米账号登录(OAuth 2.0)
  4. 选地区 (中国 / 国际 / 欧洲)
  5. HA 自动同步账号下所有设备

方式 B:手动 Token (高级)

适用于 OAuth 失败 / 海外服务器无法同步国行设备的场景:

Terminal window
# 1. 安装 miio 工具
npm install -g miio
# 2. 让设备进入配网模式(重置)
# 3. 局域网扫描 + 提取 token
miio discover --sync
# 输出示例:
# Device ID: 123456789
# Token: 6f8c1a... (32-hex)

把 token 填到 HA 集成的 Configuration 字段。Token 不会因重启丢失,但恢复出厂设置后会变

网关选型

网关协议HA 集成价格推荐度
小米中枢 (Mi Hub 3)Zigbee 3.0 + 蓝牙 Meshxiaomi_miioxiaomi_ble¥350⭐⭐⭐
小米中枢 4 (Mi Hub 4)Zigbee 3.0 + Thread2025 起 HA 原生¥500⭐⭐⭐⭐
Aqara M2Zigbee 3.0ZHA / Zigbee2MQTT¥400⭐⭐⭐
Aqara M3Zigbee + Thread + MatterZHA / Matter¥700⭐⭐⭐⭐⭐
不购网关直连 Wi-Fi 设备MIoT¥0仅插座/灯

区域账号问题

  • 国行账号:服务器在 cn.openapi.xiaomi.com / api.io.mi.com
  • 国际账号:服务器在 open.api.xiaomi.com / api.mi.com
  • 问题:2023 年后小米调整 OAuth 流程,部分国行设备无法被国际账号 OAuth
  • 解决:用 Token 提取走 MIoT 直连,绕开 OAuth;或注册对应区域的账号

常见设备集成实例

米家智能插座 3 (ZNCZ05CM)

  • 协议:MIoT-Wi-Fi
  • HA 集成:自动发现 → 实体 switch.living_room_plug
  • 进阶:可通过 HA 的 Template Switch 把它变成功率监控实体

米家空气净化器 4 Pro (zhimi.airp.mb4a)

  • 协议:MIoT-Wi-Fi
  • HA 集成:自动发现 → 实体 fan.air_purifier + sensor.pm2_5
  • 自动化示例:PM2.5 > 75 时自动开最大风

米家智能门锁 (loock.lock.xxx)

  • 协议:MIoT-Zigbee (需网关)
  • HA 集成:门锁事件 + 蓝牙就近解锁
  • 注意:远程开锁涉及安全,HA 集成默认禁用远程开锁

Yeelight 灯具 (yeelink.light.xxx)

  • 协议:MIoT-Wi-Fi (LAN 控制)
  • HA 集成:自动发现;可调色温/亮度/RGB
  • 进阶:LAN 控制需灯具固件开启”开发者模式”(米家 App → 灯具 → 设置)

进阶:完全脱离米家 App

  1. Zigbee 子设备:改用 ZHA / Zigbee2MQTT + 通用 Zigbee 设备,绕开米家网关
  2. Wi-Fi 子设备:直接 MIoT 集成到 HA,删除米家 App
  3. 混合方案:保留米家 App 仅做初始配网,配网完成后设备通过 HA 控制

📋 复现条件

类别必备可选 / 备注
硬件米家智能设备 ≥ 1 个 (插座 / 灯 / 传感器) · Home Assistant 实例树莓派 5 / Linux x86
操作系统HAOS 14+ 或 Debian 12 / Ubuntu 24.04macOS 14 (Container)
软件版本HA 2024.10+ · python-miio 0.5+ · mijia HACS 集成xiaomi-miot-auto (推荐)
网络2.4 GHz Wi-Fi · 米家设备与 HA 同网段公网访问需 Cloudflare Tunnel
账号米家 App (国区 / 台湾 / 新加坡 / 印度 / 俄罗斯任一)Google / iCloud
时间OAuth 接入 5 min · Token 提取 15 min · mDNS 自动发现 10 min多设备批量化 30 min
难度⭐⭐⭐ 进阶Token 提取有点烦
前置知识HA 基础 · 知道 miio 协议Python 基础 (Token 提取脚本)

⛔ 别这么做 (Anti-patterns)

经验证的坑 —— 跳过 = 至少浪费半天,严重的烧板 / 锁机。

❌ 错误做法💥 后果⚠️ 风险范围
不要在断电前直接拔 Valetudo 改装中的 USB-TTL刷机中途断电 = 变砖。先 dmesg 确认串口没掉再操作。🟡智米扫拖一体 / Roborock S5 Max
不要把米家设备 token 上传到任何第三方云token = 设备控制权,泄漏 = 任何人可远程开门。🔴所有米家 / Aqara 设备
不要在生产 HA 配置里直接编辑 configuration.yaml 后 check_config 不通过就 reload错的 reload 会让 HA 启动失败 → 所有自动化停摆。用 configuration.yaml 备份 + git 版本化。🟢Home Assistant
不要给 Frigate 摄像头内网用 admin/admin 默认密码RTSP / ONVIF 默认账号 = 局域网裸奔。先改密码。🟡海康 / 大华摄像头
不要在 ESPHome 设备上直接 OTA 升级到主版本 (major)主版本常改 NVS 分区。OTA 升级后启动失败 = 拆壳刷机。先 flash USB 一次。🟡ESP32-S3 语音卫星 / 智能开关
不要在智能家居自动化里写死设备 IPDHCP 重启后 IP 变 = 自动化失效。用 hostname / mDNS / 静态租约。🟢Home Assistant / Hubitat
不要在 Matter 设备首次配对时关掉手机蓝牙Matter 配对 = BLE → WiFi handover,全程需要蓝牙。🟢Aqara M3 / Apple Home

🚨 风险总览 (Risk Matrix)

风险等级含义例子
🟢 低改错可回滚 / 几分钟恢复pip 全局装包、DHCP IP 写死
🟡 中需要重新刷机 / 重装 / 1-2 小时恢复装错 ROS 2 版本、没 OTA 升级看版本
🔴 高不可逆 / 烧板 / 安全风险电池反接、micro-ROS 没看门狗、刷机中途断电

参考资料