云计算百科
云计算领域专业知识百科平台

Home Assistant 跨品牌智能家居实战:接入米家与 vivo,再配置固定公网访问

Home Assistant 跨品牌智能家居实战:接入米家与 vivo,再配置固定公网访问

前言

家里的智能设备一多,我最烦的不是设备本身不好用,而是每个品牌都想把人留在自己的 App 里:灯在米家,语音入口在 vivo,另一批设备又有自己的平台。单个设备都能控制,可一旦想把它们放进同一个界面、做跨品牌联动,原来“很智能”的家就开始变得很碎。对我来说,Home Assistant 真正有价值的地方,不是再多一个控制面板,而是把不同设备和集成放进同一套管理逻辑里,让后续自动化、语音和远程访问有一个共同入口。尤其真正开始做自动化以后,我更不想记住“这个设备归哪个 App、那个场景在哪个平台设置”,而是希望先把设备关系理顺,再决定怎么控制。

这次我按 Windows + Docker 的环境部署 Home Assistant,先完成管理员和基础设置,再安装 HACS,接入 Xiaomi Home,把账号下的 8 个米家设备导入;随后通过 VivoHomeBridge,把 Home Assistant 里的设备桥接到 vivo 智慧生活,并用 OriginOS 6.0 以上的蓝心小V快捷指令做实际控制测试。最后安装 cpolar,把 8123 管理页面提供到公网,遇到 400 后再补 trusted_proxies 配置,最终切换到固定二级子域名 homeassistant。我更看重的是每一层到底负责什么,而不是把“跨品牌”理解成装完 Home Assistant 后所有设备都会自动互通。

家庭助手——开放家庭基金会的一个项目

1. Home Assistant 解决的不是“设备更多”,而是“入口更统一”

Home Assistant 是一个智能家居自动化平台,可以把不同品牌、不同协议和不同生态里的设备接到同一套界面中管理。

这次我真正想解决的是三个问题:

  • 不想在多个 App 之间来回切换;
  • 想让米家设备进入 Home Assistant 统一管理;
  • 想让 vivo 的语音入口也能控制已经接入 Home Assistant 的设备。

所以整条链并不是“Home Assistant 一装,所有品牌自动打通”,而是:

Home Assistant 负责统一管理 → HACS 提供社区扩展入口 → Xiaomi Home 把米家设备接进来 → VivoHomeBridge 再把设备桥接到 vivo 生态。

自动化和语音能不能真正工作,仍然取决于对应集成是否配置成功。

2. 先用 Docker 把 Home Assistant 跑起来

这次演示环境是 Windows。

按 Win + R,输入 cmd 打开命令提示符,然后执行:

docker run -d –name homeassistant –restart=always -p 8123:8123 -v C:\\docker\\homeassistant:/config –dns 223.5.5.5 –dns 119.29.29.29 –dns 8.8.8.8 docker.1ms.run/homeassistant/home-assistant:stable

如果使用 Linux,当前命令是:

sudo docker run -d –name homeassistant –restart=always -p 8123:8123 -v /srv/homeassistant:/config –dns 223.5.5.5 –dns 119.29.29.29 –dns 8.8.8.8 docker.1ms.run/homeassistant/home-assistant:stable

image-20251230152727042

这两条命令里需要记住几个关键点:

  • 容器名:homeassistant
  • 重启策略:–restart=always
  • Web 端口:8123:8123
  • Windows 配置目录:C:\\docker\\homeassistant:/config
  • Linux 配置目录:/srv/homeassistant:/config
  • 镜像:docker.1ms.run/homeassistant/home-assistant:stable

部署完成后检查容器:

docker ps

image-20251228203258159

当前状态显示为 UP,端口是 8123。

然后浏览器访问:

http://localhost:8123

image-20251228203338169

页面能正常打开以后,Docker 这一层就算跑通了。

3. 完成 Home Assistant 首次初始化

第一次进入页面,点击:

创建我的智能家居

然后创建管理员用户。

image-20251228203611432

接着进入地理位置设置,搜索并选择所在地址。

image-20251228203739042

用户体验计划按自己的需求选择。

image-20251228203826158

最后完成初始化并登录主页。

image-20251228203950535

到这里确认的是:

Docker → Home Assistant 8123 → Web 管理页面

已经可以正常使用。

至于设备接入和跨品牌控制,还要继续往下配置。

4. 安装 HACS,给后面的社区集成留入口

HACS(Home Assistant Community Store)在这套流程里主要负责安装和管理社区集成。

先进入 Home Assistant 容器:

docker exec -it homeassistant sh

image-20251230153703766

然后执行当前给出的 HACS 安装命令:

wget -O – https://get.hacs.vip | bash

# 或

curl -fsSL get.hacs.vip | bash

image-20251230111510906

安装成功后退出容器:

exit

再重启 Home Assistant:

docker restart homeassistant

image-20251230154330588

回到 Home Assistant 页面,依次进入:

设置 → 设备与服务

image-20251230154515839

点击右下角:

添加集成

搜索:

hacs

image-20251230112248982

进入后勾选对应选项并提交。

image-20251230112346685

稍等片刻,侧边栏就能看到 HACS。

image-20251230160405556

到这里,后面的 Xiaomi Home 和 VivoHomeBridge 才有了更方便的安装入口。

5. 先把米家设备接进 Home Assistant

这次用 Xiaomi Home 做实际接入。

先在 HACS 中找到 Xiaomi Home。

image-20251230120711433

进入后点击:

DOWNLOAD

image-20251230145717133

下载完成后,回到设置页面,根据提示重启 Home Assistant。

image-20251230145956827

重启以后,再回到:

添加集成

搜索:

Xiaomi Home

image-20251230160721747

进入集成以后,会先出现风险告知。

勾选并继续。

image-20251230161026013

接着选择:

继承网络配置

image-20251230161135609

再勾选:

检测网络依赖项

image-20251230161216168

然后点击:

跳转进行登录

image-20251230161307926

6. Xiaomi Home 授权时遇到 homeassistant.local,怎么处理?

登录完成以后,浏览器会跳转到类似下面的地址:

http://homeassistant.local:8123/api/webhook/xxxxxxxxxxxx

image-20251230161357172

这时页面显示无法访问。

这里的关键不是重新登录,而是把地址中的:

homeassistant.local

换成部署 Home Assistant 那台机器的 IP。

当前示例写成:

192.168.50.222:8123/api/webhook/xxxxxxxxxxxx

修改后直接回车。

image-20251230161715148

授权成功以后回到 Home Assistant。

当前账号下可以看到:

8 个智能设备

image-20251230162015619

勾选:

导入设备的家庭

继续下一步。

image-20251230162146907

导入完成后,设备已经同步进 Home Assistant。

image-20251230162401143

这一层真正验证的是:

米家账号 → Xiaomi Home 集成 → Home Assistant → 8 个设备导入成功。

后面所谓“统一管理”,至少在这批设备上已经有了实际入口。

7. 再用 VivoHomeBridge 把设备桥到 vivo 生态

如果手机使用 vivo,但家里的设备主要在米家,就会遇到一个很现实的问题:

小V不能直接控制这些米家设备。

这次用 VivoHomeBridge 做桥接。

它在这条链里负责的是:

Home Assistant → vivo 智慧生活

而不是替代 Home Assistant。

先在 HACS 中搜索:

VivoHomeBridge

并下载。

image-20251230165035843

下载完成后,按页面提示重启。

image-20251230165133788

重启以后回到:

设置 → 设备与服务 → 添加集成

搜索:

VivoHomeBridge

image-20251230165443992

进入以后勾选“我已悉知”,继续下一步。

image-20251230165526131

创建成功后进入 VivoHomeBridge。

image-20251230165609462

点击小齿轮,会弹出二维码。

接下来在手机应用商店安装:

智慧生活

image-20251230170050334

手机端继续以后,回到 Web 页面选择需要加入的设备并提交。

image-20251230170311336

提交后,页面已经可以看到设备。

image-20251230170432746

回到手机端,连接中心和 App 里也能看到添加的设备,并且可以正常控制。

image-20251230170928139

到这里,这条链已经形成:

米家设备 → Home Assistant → VivoHomeBridge → vivo 智慧生活。

8. 蓝心小V快捷指令,才是跨品牌控制的实际验证

仅仅“设备能出现在 vivo App 里”,还不等于语音控制已经验证。

当前流程继续配置蓝心小V快捷指令。

前提条件是:

手机系统需要 OriginOS 6.0 或更高版本。

按页面步骤配置快捷指令。

image-20251230174124000

配置后先点击执行按钮测试。

image-20251230174421556

当前页面显示:

执行成功

随后打开米家 App,可以看到:

暖气插座已经自动打开。

这一段是真正值得保留的跨品牌结果:

蓝心小V快捷指令 → vivo 侧桥接 → Home Assistant → 米家设备 → 暖气插座执行。

所以我不会把“跨品牌”写成抽象口号,而是落在这个已经实际操作成功的控制链上。

9. 本地控制跑通以后,再考虑外网访问

前面设备接入和跨品牌桥接已经在本地环境里完成。

如果人在家里,直接打开 Home Assistant 就够了。

但人在外面时,仍然可能想:

  • 看全屋设备状态;
  • 打开概览页面;
  • 查看地图视图;
  • 临时控制某个设备;
  • 增加或调整自动化。

这里再增加 cpolar。

image-20250910114418412

cpolar 在这套方案里只负责:

把 Home Assistant 的 8123 Web 管理页面提供到公网。

设备接入、自动化、米家集成和 vivo 桥接,仍然由 Home Assistant 和对应插件负责。

10. Windows 安装 cpolar

进入 cpolar 下载页面,下载 64-bit 安装包。

image-20250815171202537

安装完成以后,在 CMD 中检查版本:

cpolar version

image-20250815171446129

出现版本信息后,说明 cpolar 已经安装。

11. 注册并登录 cpolar Web UI

进入 cpolar 官网注册账号。

image-20250804085039567

完成注册。

image-20250804085208319

然后浏览器访问:

http://127.0.0.1:9200

image-20250815171734046

登录后进入管理后台。

image-20250815171846757

12. 把 Home Assistant 的 8123 映射到公网

进入:

隧道管理 → 隧道列表

当前默认有两条隧道:

  • remoteDesktop → 3389 / TCP
  • website → 8080 / HTTP

image-20251230182400449

编辑 website。

当前配置改成:

  • 隧道名称:homeassistant
  • 本地地址:8123
  • 地区:China Top

image-20251230182551616

更新后,进入在线隧道列表。

可以看到 homeassistant 对应的 HTTP 和 HTTPS 地址。

image-20251230182722236

用 HTTPS 地址访问。

image-20251230184314245

这时页面出现了:

400

说明公网隧道已经把请求送到了 Home Assistant,但 Home Assistant 当前并没有接受这条反向代理链路。

13. 处理公网访问时的 400

进入 Home Assistant 容器:

docker exec -it homeassistant /bin/sh

image-20251230184520318

然后把下面这段配置写入:

/config/configuration.yaml

cat << 'EOF' >> /config/configuration.yaml
http:
use_x_forwarded_for: true
trusted_proxies:
– 172.17.0.0/16
EOF

image-20251230184550486

这里保留当前设置:

  • use_x_forwarded_for: true
  • trusted_proxies
  • 172.17.0.0/16

写完以后退出容器并重启:

exit

docker restart homeassistant

image-20251230184635461

重启后重新打开公网地址。

image-20251230184712173

页面可以正常访问。

这一层真正验证的是:

Home Assistant 8123 → cpolar HTTPS 公网地址 → 反向代理信任配置 → 页面正常加载。

14. 随机公网能用以后,再配置固定二级子域名

随机地址适合先测试。

如果 Home Assistant 要长期从外面访问,我更希望入口固定下来。

进入预留页面:

https://dashboard.cpolar.com/reserved

选择:

保留二级子域名

image-20251230190407759

当前保留记录为:

  • 地区:China Top
  • 二级域名:homeassistant

二级域名具有唯一性,以自己账号实际保留成功的名称为准。

回到:

隧道管理 → 隧道列表

找到:

homeassistant

image-20251230190443698

点击编辑,把域名类型改成:

二级子域名

再填写前面保留的名称。

image-20251230190553047

更新后到在线隧道列表查看。

image-20251230190802682

最后通过 HTTPS 地址访问并登录。

image-20251230190836298

固定公网访问已经跑通。

总结

这次 Home Assistant 最让我满意的,不是“设备全都进了一个页面”,而是终于能把原来分散在不同生态里的控制链串起来。

这次实际跑通的主线是:

Windows Docker → Home Assistant 8123 → HACS → Xiaomi Home → 8 个米家设备导入 → VivoHomeBridge → vivo 智慧生活 → OriginOS 6.0+ 蓝心小V快捷指令 → 暖气插座实际执行 → cpolar → 随机公网 → 400 → trusted_proxies → 公网正常访问 → 固定二级子域名 homeassistant。

几个边界也需要分清:

  • Home Assistant 提供统一管理和自动化平台,不代表所有品牌设备都会自动兼容;
  • 这次真正验证的是 Xiaomi Home 和 VivoHomeBridge 这两条集成链;
  • 蓝心小V的实际测试结果是控制暖气插座成功;
  • HACS 是社区扩展入口,不等于其中所有第三方集成都已经逐项验证;
  • cpolar 只负责 Home Assistant 8123 的公网入口,不参与设备控制逻辑;
  • 公网访问第一次出现 400 后,当前流程通过 use_x_forwarded_for 和 trusted_proxies: 172.17.0.0/16 处理;
  • 固定二级子域名 homeassistant 解决的是长期访问入口变化的问题。

对我来说,真正好用的“全屋智能”并不是手机里再多一个万能 App,而是设备之间的控制链越来越清楚:谁负责接入、谁负责桥接、谁负责语音、谁负责远程访问,都能单独看明白。这样以后哪一层出问题,也不用把整套智能家居一起推倒重来。

赞(0)
未经允许不得转载:网硕互联帮助中心 » Home Assistant 跨品牌智能家居实战:接入米家与 vivo,再配置固定公网访问
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!