绕过米家云:用 python-miio 本地直连小米设备,秒级拿到传感器数据

折腾 Home Assistant + 米家设备时,最让人头疼的就是"数据延迟"。官方集成走米家云,温湿度 2-3 分钟才更新一次,偶尔云端数据还会"抽风"报错。本文记录我用 python-miio 绕过米家云、局域网直连除湿机,把数据采集频率做到秒级、并接入 HA 的完整实战。 一、痛点:为什么需要本地直连 先看一张真实对比(同一台除湿机,同一时刻): 数据来源 当前值 状态 米家云(官方集成) 30 °F ❌ 云端数据坏了,实际应是 84 °F 本地直连(python-miio) 29.5 °C ✅ 准确 官方 HA 米家集成的工作方式是 MQTT 订阅推送: 设备属性变化 → 设备上报米家云 → 米家云 MQTT 推送 → HA 理论上 HA 能"第一时间"收到,但实际依赖两点: 设备主动上报(米家 WiFi 设备为省电,通常 2-3 分钟才上报一次传感器数据) 推送可靠性(官方仓库 Issue 里提到 WiFi 设备推送丢失率接近 30%) 结果就是:延迟大、还不一定准。 而本地直连的路径是: 你的脚本 → 局域网直连设备(miio 协议)→ 秒级返回 不经过米家云,不依赖设备上报节奏,你想读就读,又快又准。 二、原理:米家设备的本地通信 小米的 WiFi 设备(除湿机、空气净化器、扫地机等)在局域网内会开放一个 miio 协议(UDP 54321 端口)。只要你有设备的 token(一个 32 位十六进制密钥),就能在局域网内直接和设备通信。 ...

August 12, 2026 · 3 min · 584 words
晋ICP备2026011119号 · 公安备案图标京公网安备11010602203188号