Armbian 配置 HomeAssistant 米家集成

一、安装过程

Docker 安装 HomeAssistant

Git 安装 HA - 米家集成

配置内网穿透实现公网访问

安装 Hass Panel 面板

配置 Apple 家庭 HomeKit Bridge

二、踩雷

由于我的 docker 是通过 1panel 一键安装的，然后自然 HomeAssistant 也是 1panel 应用商店一键安装，1panel 默认的路径是 /opt/1panel/apps/home-assistant/home-assistant/data 。

小米官方仓库中的 README.md 写的是：

Copy
cd config
git clone https://github.com/XiaoMi/ha_xiaomi_home.git
cd ha_xiaomi_home
./install.sh /config

我以为 config 文件夹是指自己在 /opt/1panel/apps/home-assistant/home-assistant/data 文件夹下新建一个 config ，安装完怎么都无法显示 xiaomi_home ，后来看了一篇文章才知道 data 就是文章中所说的 config 文件夹，也就是说如果是通过 1panel 安装的 HomeAssistant 的话，只需要 cd 到/opt/1panel/apps/home-assistant/home-assistant/data 然后执行安装就可以，1panel 默认的应用商店安装真的很多坑，很多容器安装起来都有这样那样的问题，非常麻烦。

解决了这个问题之后就可以成功安装 HA - 米家集成。

安装完成之后按照 Github 中的教程按步骤配置登录就可以了，目前米家中的大部分产品都可以直接导入，除了一些蓝牙等连接的设备还不可以。

三、配置公网访问

本来我以为这一步骤是最简单的一步了，结果按照之前的操作在 cloudflare zero trust 面板设置好域名绑定之后访问居然报错，然后又折腾了好久，最后在 HA 的社区论坛找到了对应的讨论帖，成功解决。

配置过程中遇到的问题：

配置好之后访问报错：400: Bad Request

解决方法：修改配置文件

一般是需要在 HA 的 configuration.yaml 文件中添加如下代码：

Copy
http:
use_x_forwarded_for: true
trusted_proxies:
- 192.168.31.137/32

其中的 trusted_proxies 字段下部分要改为自己部署设备的 ip。

Recovery mode（恢复模式）

https://community.home-assistant.io/t/cloudflare-400-bad-request-error/326047/24

有时候当修改完 configuration.yaml 之后重启 HA 你会发现 HA 会进入 recovery mode。

原因在于配置文件格式有问题或者其他原因导致无法加载配置文件，系统进入恢复模式。

解决方法：仔细检查 configuration.yaml 格式，需要注意的一点是 trusted_proxies 只能接受 IP 地址或 CIDR 格式的子网掩码，而不能直接使用域名。当 Home Assistant 尝试解析这些域名时，会抛出错误，导致 http 组件启动失败。

连带问题：依赖 http 的组件无法加载

http 是许多核心组件的基础，包括 frontend（前端界面）、websocket_api（WebSocket 通信）、zeroconf（零配置网络发现）等。

如果 http 组件未加载，所有依赖它的功能都会失效，从而导致大量错误。

💡
如果修改完 configuration.yaml 之后 HA 无法启动或者启动后进入恢复模式，可以查看 HA 的日志，一般可以通过 HA 的日志错误来一步步排查是什么问题。

四、安装 Hass panel 面板

1. 问题汇总：

配置公网访问后 HA 面板中提示：the operation is insecure

HassPanel 常见问题解答 (Q&A)

Failed to construct 'WebSocket': An insecure WebSocket connection may not be initiated from a page loaded over HTTPS.

2. 原因：

这两个问题或者说这种问题的原因都是类似的，就是首次部署成功之后，初始化填的 http 开头的本地地址，后续 HA 绑定域名之后在 HA 中访问 Hasspanel 便会变成 https 跳向 http ，不安全行为会被浏览器拦截。

3. 解决方法：

重新初始化 Hasspanel，填 Url 的时候填写 https 地址。

💡（初始化之前记得导出配置文件以便后期恢复）

五、Apple HomeKit Bridge

HA 面板 - 设置 - 设备与服务 - 添加集成 - 搜索 “Apple”，然后选择 “HomeKit Bridge”，一路下一步之后，HA 会有一条消息，点开消息用 iPhone 扫描消息中的二维码配对添加就可以了，没什么难度。

控制中心也是可以添加滴！

不过还是那个问题，目前米家集成还没有支持的设备也无法添加到 Apple 家庭中去。同时，有些设备比如空气净化器其实是有温湿度传感器的，在 HA 面板中也是可以检测到和添加到面板的，但是在 Apple 家庭中无法使用，就只有简单的空气净化器的开关功能，算是遗憾吧。

五、总结

到这里 ，HA 的折腾基本上就完成了，

晚上研究东西真的是灵感爆炸，解决问题的能力 upup~，白天总感觉静不下来，而且很没有效率。

解决完毕， alexblue 登出！