iheatpasswordiheatpassword
首页
页面
记录
园林植物图鉴
Nextcloud
Home Assistant
首页
页面
记录
园林植物图鉴
Nextcloud
Home Assistant
  • 部署mosquitto
  • 如何查看mosquitto的配置
  • 如何查看mosquitto的用户,以及添加用户
  • 如何更改mosquitto密码配置文件所有者
  • 如何绘制风玫瑰图
  • 添加日历账户
  • cml调整分辨率
  • HA的网页后台端口
  • HomeKit 无法连接 Home Assistant
  • iOS导出语音备忘录
  • iOS导出照片
  • Keil如何安装芯片包
  • Keil如何新建stm32项目
  • ubuntu cs2闪退

问题

尝试通过 Home Assistant 的 HomeKit Bridge 将 HA 接入 iOS「家庭」App。

使用 HA 后台提供的二维码进行配对时:

  • iPhone 可以正常扫描二维码
  • 但「家庭」App 提示 未找到配件
  • 当时无法完成 HomeKit 配对

环境

  • Home Assistant:Docker
  • Home Assistant 镜像:homeassistant:2025.11.3
  • Ubuntu Server
  • iPhone / iOS
  • Home Assistant 已通过 MQTT 与 ESP32 正常通信
  • HA 可以正常接收到 ESP32 发布的温度数据

排查

1. 检查 HA Docker 网络模式

执行:

docker inspect ha --format '{{.HostConfig.NetworkMode}}'

发现:

bridge

原 HA 使用 Docker 默认的 bridge 网络。

HomeKit Bridge 的设备发现依赖局域网 mDNS,而 Docker bridge 网络可能导致 HomeKit 的 mDNS 发现无法正常工作。

2. 检查 HA /config

发现原 HA 容器:

docker inspect ha --format '{{json .Mounts}}'

返回:

[]

说明 /config 没有挂载到宿主机,而是直接存储在容器内部。

因此在修改网络配置、重建 HA 容器之前,先备份 /config。

备份:

mkdir -p ~/homeassistant-config-backup
docker cp ha:/config/. ~/homeassistant-config-backup/

备份成功:

Successfully copied 62.5MB

3. 重建 HA

将原 /config 复制到宿主机:

~/homeassistant/config/

重新创建 HA 容器,并修改网络模式:

network_mode: host

同时将配置目录挂载:

volumes:
  - /home/<用户>/homeassistant/config:/config

并设置:

restart: unless-stopped

原来的 HA 容器暂时保留,新的容器命名为:

ha2

4. 检查新 HA

新容器:

ha2    homeassistant:2025.11.3    Up

日志没有出现导致 HA 无法启动的错误。

原有配置成功继承:

  • HA 正常打开

  • ESP32 温度信息继续更新

  • 原有 HA 配置正常

  • MQTT 通信正常

5. 再次尝试 HomeKit

修改为:

HA
 ↓
Docker host network
 ↓
局域网 mDNS
 ↓
iPhone Home

之后 HomeKit 成功连接。

原因

推测原因:Docker 默认 bridge 网络导致 HomeKit Bridge 的 mDNS 发现无法正常工作。

将 HA 改为:

network_mode: host

后解决。

解决方案

对于 Docker 部署的 Home Assistant,如果 HomeKit Bridge 扫描二维码后提示:

未找到配件

优先检查 Docker 网络模式:

docker inspect ha --format '{{.HostConfig.NetworkMode}}'

如果为:

bridge

可以考虑改为:

network_mode: host

同时确保 HA 的 /config 使用宿主机目录挂载,而不是存储在容器内部。

额外发现

原 HA 容器的配置没有挂载到宿主机:

Mounts: []
Binds: null

这会导致 HA 配置与容器生命周期绑定。

因此重新部署时顺便改为:

宿主机
~/homeassistant/config/
        ↓
Docker
/config

并设置:

restart: unless-stopped

使 HA 在 Docker / Ubuntu 重启后自动恢复。

相关命令

检查网络:

docker inspect ha --format '{{.HostConfig.NetworkMode}}'

检查挂载:

docker inspect ha --format '{{json .Mounts}}'

备份 HA 配置:

docker cp ha:/config/. ~/homeassistant-config-backup/

查看 HA 日志:

docker logs ha --tail 50

状态

已解决 ✅

HomeKit 已成功连接 HA,iPhone 可以正常使用 HomeKit/Siri 控制 HA 中的设备。

Prev
HA的网页后台端口
Next
iOS导出语音备忘录