Docker HomeAssistant 使用Host网络模式解决Homekit无法添加设备

21,119 阅读2分钟

之前分享过安卓手机如何安装HomeAssistant,有评论说桥接HomeKit时无法成功添加设备,折腾一番之后还是没能解决。结论就是安卓手机+docker+HA无法关联HomeKit,如果你的设备不是安卓手机可以继续看这篇文章

此方案适用性说明

  • 适合:电脑端PC、树莓派、香橙派等开发板
  • 不适合:前面用安卓手机安装方案的兄弟萌,在折腾一段时间后,安卓手机关联HomeKit宣告失败。如果你有成功案例,请火速前往评论区 装逼 留言

问题原因

受HomeKit通信协议影响,必须要求iPhone与docker网络处于同一网段下才能成功接入HomeKit。

比如iPhone的ip地址是192.168.0.66,
那么docker的网络eth0或者主要网络的ip也必须是192.168.0.xx,才能正常接入HomeKit

受Docker网络影响,运行镜像的时候默认bridge网络,须使用host网络才能支持Homekit。

解决方案: Host模式运行HA(HomeAssistant)

  1. 卸载HA(如果你之前安装过)

    • 若当前HA正在运行,请执行 docker stop hass 关闭HA
    • docker rm hass 卸载HA
⚠️ 命令中的"hass" 代表你之前安装HA的名字,如果不确定请看我上面贴的安装教程进行比对

⚠️ 此操作会保留账号和设备数据,可放心食用,也可以提前备份

  1. 使用Host网络模式安装HA docker run -d --name="hass" --network=host -v /root/hass:/config -e TZ="Asia/Shanghai" homeassistant/home-assistant

3.最后比较关键的一个步骤

  • 前往网页端的HA操作页面
  • 前往 "配置" - "通用"
  • 滑动页面中间的"Network"区域
  • 反选"Auto config",勾选IP地址跟你家路由器相同网段的网络
比如路由器/宿主机ip是192.168.0.x,那你就选择ip是192.168.0.x的网络
  • 保存后重启HA

此次分享理论上可以让局域网内的设备关联到HomeKit 若想使用外网穿透请参考下面教程,因为暂时没用到,等后面有机会我再整理出来吧。

之前用过Host模式但是一直无法访问到HA,就是缺了配置文件里面的那段代码,感谢B站网友 @公-瑾 提醒我用下方教程里的配置。

相关教程

外网远程访问控制(免费)(内有Homekit在Docker下未找到配件的原因)