使用HomeAssistant将米家设备接入到HomeKit cover

使用HomeAssistant将米家设备接入到HomeKit

嘿Siri,开空调~

最近把常用的米家设备都接入到了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 支持多种安装方式,对于树莓派来说,大致有三种方法:

  1. 安装 Assistant 操作系统
  2. 使用容器安装(比如Docker)
  3. 直接安装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,设置管理员账号密码。

初始化HA.png

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 账号。

在“设置”中打开“设备与服务”

安装HACS1.png

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

安装HACS3.png

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

image.png
安装HACS4.png
安装HACS5.png

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

安装HACS6.png

3. 将米家设备接入HomeAssistant

3.1 安装 Xiaomi Miot Atuo

接下来,我们需要安装 “Xiaomi Miot Atuo” 集成以将米家设备接入HomeAssistant。

进入 HACS 页面,点击 “集成”。

安装MIIOT.png

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

安装MIIOT2.png
安装MIIOT3.png

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

安装MIIOT4.png
~/homeas/
docker-compose restart

3.2 配置 Xiaomi Miot Atuo

接下来,我们配置 Xiaomi Miot Atuo 将米家设备接入HomeAssistant。注意,配置 Xiaomi Miot Atuo 前需要重启 HomeAssistant。

点击“设置”,选择“设备与服务”

安装HACS1.png

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

配置MIIOT.png

搜索并选择“Xiaomi Miot Atuo”

配置MIIOT2.png

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

配置MIIOT3.png

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

配置MIIOT4.png

3.3 删除不必要的实体(非必要,但强烈推荐)

在将米家设备桥接到HomeKit之前,建议禁用一些不必要的实体。否则可能会出现以下情况:例如,当将小米智能插座添加到homekit时,插座会被识别为三个设备,除了开关之外,其中插座的指示灯被识别为灯具,插座温度也被误认为环境温度传感器。这可能不是我们期望看到的结果。

以我浴室的智能开关为例,切换到“实体注册表”。找到对应的实体,我的智能开关命名为“浴室热水器”,对应指示灯的实体就是“浴室热水器 Indicator Light”,点击这个实体。

禁用实体.png

点击右上角“设置”按钮

禁用实体2.png

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

禁用实体3.png

以此类推,你可禁用掉所有不必要的实体。

4. 桥接米家设备到HomeKit

接下来,我们通过 HomeKit Bridge 将 Home Assistant 中设备桥接到 HomeKit。

首先,我们要添加 HomeKit Bridge 集成。点击“设置”,进入“设备与服务”页面。

安装HACS1.png

搜索“homekit”,点击“Apple”

桥接homekit.png

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

桥接homekit2.png

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

桥接homekit3.png

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

桥接homekit4.png
桥接homekit5.png

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

大功告成!🎉

5. 常见问题

Siri 回复设备没有回应?

通过上述方法添加设备后,只能在同一局域网内控制该设备。如果出现这种情况,请检查手机是否连接到家庭网络,并进一步确认 HomeAssistant 服务状态是否正常。

米家空调伴侣导致环境温度错误?

我通过修改配置文件解决这个问题:

  1. config目录下的configuration.yaml添加下面内容:
~/homeas/config/configuration.yaml
homeassistant:
customize: !include customize.yaml
  1. 在config目录下创建customize.yaml,将温度传感器绑定到空调伴侣实体。对应的设备名称和实体名称需要根据实际情况调整(在“设置-设备与服务-实体注册表”中可以得到):
~/homeas/config/customize.yaml
climate.lumi_mcn02_d045_air_conditioner: # 空调伴侣实体ID
bind_sensor: sensor.miaomiaoce_t2_0b9e_temperature_humidity_sensor #温度传感器实体ID
  1. 重启 HomeAssistant
~/homeas/
docker-compose restart

其他问题

欢迎在评论区讨论