【2024.12.17更新】:下文方法仍然可用。但近日小米发布了官方的Home Assistant 集成,目前处于初期阶段,尚有一些问题。等版本稳定后,我会将下面的方法切换到米家官方集成。如果你感兴趣,可以在文末输入邮箱订阅本博客以获取更新。
最近把常用的米家设备都接入到了HomeKit,这样就可以通过Siri来控制住处中的智能设备了。
具体原理是:使用树莓派安装HomeAssistant,连接米家设备。通过 HomeAssistant 中的 HomeKit Bridge 集成,将米家设备桥接到 Apple HomeKit。这样就可以通过Apple的家庭应用和Siri来控制这些设备,即使它们不支持HomeKit。
目录
我的树莓派配置
Raspberry Pi 4b 4gb
OS: OpenWrt
Kernel: aarch64 Linux 5.4.203
1. 安装HomeAssistant
HomeAssistant 支持多种安装方式,对于树莓派来说,大致有三种方法:
- 安装 Assistant 操作系统
- 使用容器安装(比如Docker)
- 直接安装Home Assistant Core
为了便于管理,我选择使用Docker-compose来安装HomeAssistant。
如果你和我一样使用的是openwrt
系统,参考官方教程,你可能会遇到以下错误:
[+] Running 0/1
⠿ Container homeassistant Starting 0.3s
Error response from daemon: error while creating mount source path '/etc/localtime': mkdir /etc/localtime: file exists
错误的原因在 HomeAssistant论坛 可以找到。这里是我解决问题的方法:删除原.yml
文件中- /etc/localtime:/etc/localtime:ro
,将时区作为环境变量传递。
修改后的docker-compose.yml
:
~/homeas/docker-compose.yml
version: '3'
services:
homeassistant:
container_name: homeassistant
image: "ghcr.io/home-assistant/home-assistant:stable"
environment:
- TZ=Asia/Shanghai
volumes:
- ~/homeas/config:/config
restart: unless-stopped
privileged: true
network_mode: host
安装完HomeAssistant后,访问树莓派的 8123 端口。初始化HomeAssistant,设置管理员账号密码。

2. 安装与配置 Home Assistant 社区商店
2.1 安装 HACS
配置完 HomeAssistant 后,我们需要安装 HACS(Home Assistant Community Store)。你可以将其理解为 HomeAssistant 的应用商店,通过 HACS 我们能够安装第三方集成来增强 HomeAssistant 的功能。
参考 HACS安装指南,我们需要进入容器内部执行安装脚本。
~/homeas/
docker exec -it homeassistant bash
wget -O - https://get.hacs.xyz | bash -
安装成功后,退出容器,然后重启容器。这一步骤很重要,配置HACS前必须重启Home Assistant。
~/homeas/
exit
docker-compose restart
2.2 配置 HACS
接下来我们需要初始HACS,你可以参考此教程或按照下图步骤配置。注意,你需要提前注册一个 Github 账号。
在“设置”中打开“设备与服务”

点击“添加集成”,搜索并选择“HACS”

跟据指引一步一步操作,打开提示中的网址,登录GitHub,输入授权码。



看到下图界面,就说明HACS以及安装成功了。

3. 将米家设备接入HomeAssistant
3.1 安装 Xiaomi Miot Atuo
接下来,我们需要安装 “Xiaomi Miot Atuo” 集成以将米家设备接入HomeAssistant。
进入 HACS 页面,点击 “集成”。

点击右下角的“浏览并下载储存库”,然后搜索并安装“Xiaomi Miot Atuo”。


同样地,安装完集成之后需要重启 HomeAssistant。

~/homeas/
docker-compose restart
3.2 配置 Xiaomi Miot Atuo
接下来,我们配置 Xiaomi Miot Atuo 将米家设备接入HomeAssistant。注意,配置 Xiaomi Miot Atuo 前需要重启 HomeAssistant。
点击“设置”,选择“设备与服务”

切换到 “设备” , 然后点击 “添加设备”

搜索并选择“Xiaomi Miot Atuo”

选择“账号集成”,登录小米账号获取设备信息。

按照配置指引完成剩余步骤,选择你想要接入 HomeAssistant 的设备。

3.3 删除不必要的实体(非必要,但强烈推荐)
在将米家设备桥接到HomeKit之前,建议禁用一些不必要的实体。否则可能会出现以下情况:例如,当将小米智能插座添加到homekit时,插座会被识别为三个设备,除了开关之外,其中插座的指示灯被识别为灯具,插座温度也被误认为环境温度传感器。这可能不是我们期望看到的结果。
以我浴室的智能开关为例,切换到“实体注册表”。找到对应的实体,我的智能开关命名为“浴室热水器”,对应指示灯的实体就是“浴室热水器 Indicator Light”,点击这个实体。

点击右上角“设置”按钮

关闭“已启用”,将这个实体禁用。

以此类推,你可禁用掉所有不必要的实体。
4. 桥接米家设备到HomeKit
接下来,我们通过 HomeKit Bridge 将 Home Assistant 中设备桥接到 HomeKit。
首先,我们要添加 HomeKit Bridge 集成。点击“设置”,进入“设备与服务”页面。

搜索“homekit”,点击“Apple”

点击添加“HomeKit Bridge 集成”,按照指引完成添加。

需要注意是的,如果你有温湿度传感器,记得勾选“Sensor”,这个选项默认是不勾选的。

添加 HomeKit Bridge 集成成功后,点击界面左下角的通知按钮。查看 homekit 的配对二维码。


打开“家庭”应用,点击左上角的“+”号,选择“添加配件”。扫描上个步骤的得到的二维码,点击“添加到家庭”。在加入过程中,可能会提示“未认证设备”,点击“仍要添加”。然后完成剩余步骤,逐个添加设备。完成后,你就能能用Siri控制你的智能设备了。



大功告成!🎉
5. 常见问题
Siri 回复设备没有回应?
通过上述方法添加设备后,只能在同一局域网内控制该设备。如果出现这种情况,请检查手机是否连接到家庭网络,并进一步确认 HomeAssistant 服务状态是否正常。
米家空调伴侣导致环境温度错误?
我通过修改配置文件解决这个问题:
- 在
config
目录下的configuration.yaml
添加下面内容:
~/homeas/config/configuration.yaml
homeassistant:
customize: !include customize.yaml
- 在config目录下创建
customize.yaml
,将温度传感器绑定到空调伴侣实体。对应的设备名称和实体名称需要根据实际情况调整(在“设置-设备与服务-实体注册表”中可以得到):
~/homeas/config/customize.yaml
climate.lumi_mcn02_d045_air_conditioner: # 空调伴侣实体ID
bind_sensor: sensor.miaomiaoce_t2_0b9e_temperature_humidity_sensor #温度传感器实体ID
- 重启 HomeAssistant
~/homeas/
docker-compose restart
其他问题
欢迎在评论区讨论