☰
Home Assistant接入米家设备全攻略
2026/10/15 9:43:33 网站建设 项目流程

1. 项目概述

去年折腾智能家居的时候,发现米家设备虽然便宜好用,但生态相对封闭。直到发现了Home Assistant这个开源平台,才真正打通了不同品牌设备之间的联动。今天就来详细说说如何把米家设备接入Home Assistant,实现更强大的自动化控制。

这个方案特别适合两类人:一是已经有不少米家设备,但觉得米家APP功能不够用的用户;二是想要把不同品牌智能设备统一管理的极客玩家。通过这个集成,你可以在一个界面控制所有设备,还能实现米家APP做不到的复杂自动化场景。

2. 环境准备与安装

2.1 硬件需求

首先需要明确的是,Home Assistant对硬件有一定要求。我建议至少准备以下配置:

  • 树莓派4B或x86小主机(性能比树莓派强不少)
  • 至少2GB内存(4GB更佳)
  • 16GB以上存储空间
  • 稳定的网络环境

实测下来,树莓派3B也能跑,但加载速度明显慢很多。如果设备数量超过20个,建议直接上x86平台。

2.2 系统安装

Home Assistant有几种安装方式:

  1. Home Assistant OS:最完整的方案,直接刷入SD卡或硬盘
  2. 容器版:适合已有Linux系统的用户
  3. Supervised:高级用户专用

新手建议直接用第一种方式。去官网下载对应镜像,用BalenaEtcher写入存储设备即可。第一次启动会花点时间初始化,喝杯咖啡等着就行。

注意:写入镜像前务必验证下载文件的SHA256校验值,我遇到过因镜像损坏导致的各种奇怪问题。

3. 米家集成配置

3.1 获取米家账号Token

这是最关键也最麻烦的一步。米家官方没有开放API,我们需要通过特殊方式获取账号Token:

  1. 在安卓手机或模拟器上安装"米家"APP
  2. 登录你的米家账号
  3. 使用ADB命令提取Token:
    adb shell "cat /data/data/com.xiaomi.smarthome/shared_prefs/miio2.xml" | grep token

或者更简单的方法是用Python脚本模拟登录:

from miio import CloudService cloud = CloudService(username='你的账号', password='你的密码') print(cloud.get_token())

重要提示:这个Token相当于账号密码,务必妥善保管。建议在获取后立即在HA配置中使用,然后删除本地记录。

3.2 配置Home Assistant

在HA的configuration.yaml中添加以下配置:

xiaomi_miio: username: 你的米家账号 token: 上一步获取的Token servers: cn # 如果是中国区账号

保存后重启HA服务。如果一切正常,在"配置->设备与服务"里应该能看到米家设备自动出现了。

4. 设备控制与自动化

4.1 常见设备类型支持

目前HA对米家设备的支持情况:

设备类型支持程度备注
智能插座★★★★★完美支持
灯泡★★★★☆色温调节可能有问题
传感器★★★★☆需要轮询
空调伴侣★★★☆☆部分功能受限
扫地机器人★★☆☆☆仅基础功能

4.2 创建自动化场景

HA最强大的就是自动化功能。举个例子,实现"当温度高于28度且有人在房间时自动开空调":

automation: - alias: "高温自动开空调" trigger: - platform: numeric_state entity_id: sensor.temperature_158d0001 above: 28 condition: - condition: state entity_id: binary_sensor.motion_158d0002 state: "on" action: - service: climate.turn_on entity_id: climate.air_conditioner - service: climate.set_temperature entity_id: climate.air_conditioner data: temperature: 26

4.3 界面定制

HA的Lovelace UI可以高度自定义。这是我常用的几个卡片配置:

type: entities entities: - entity: switch.plug_158d0001 name: 客厅台灯 icon: mdi:lamp - entity: sensor.temperature_158d0002 name: 卧室温度 graph: line

5. 常见问题排查

5.1 设备无法显示

如果设备没有自动出现,可以尝试:

  1. 检查Token是否正确
  2. 确认账号区域设置(cn/hk等)
  3. 在集成页面手动添加设备ID

5.2 控制延迟高

米家设备通过云端通信,延迟是硬伤。解决方案:

  1. 对于支持本地控制的设备(如网关子设备),尽量走本地协议
  2. 降低轮询频率:
    xiaomi_miio: scan_interval: 60 # 默认30秒

5.3 设备状态不同步

这是最常见的问题。我的经验是:

  1. 避免在米家APP和HA同时操作同一设备
  2. 对关键设备设置状态轮询:
    sensor: - platform: template sensors: plug_power: value_template: "{{ states.switch.plug_158d0001.attributes.power | float }}" unit_of_measurement: "W"

6. 进阶技巧

6.1 使用本地协议

部分设备支持本地控制,速度更快更稳定。需要获取设备token和IP:

xiaomi_miio: devices: - host: 192.168.1.100 token: abcdef1234567890 name: 我的台灯

6.2 与Node-RED集成

对于复杂自动化,可以结合Node-RED:

  1. 安装Node-RED插件
  2. 创建MQTT节点订阅设备状态
  3. 设计流程图实现复杂逻辑

6.3 备份配置

HA配置很重要,建议定期备份:

# 使用内置快照功能 ha backups new --name "before_upgrade"

或者手动备份config文件夹:

tar -czvf ha_backup_$(date +%Y%m%d).tar.gz /path/to/config

折腾智能家居最痛苦的就是设备掉线。经过多次实践,我发现给所有智能设备分配静态IP能解决90%的连接问题。另外,HA的自动发现功能有时会抽风,关键设备建议都手动配置一次。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询