Home Assistant:智能家居的统一控制中心
智能灯泡装在一个应用中,扫地机器人在第二个应用中,空调在第三个应用中,而漏水传感器则通过第四个应用发送通知。结果是,“智能家居”需要的手动操作反而比普通开关更多。
Home Assistant 可以把兼容设备集中到同一个面板上,并通过自动化将它们连接起来。下面将介绍它的功能、配置要求,以及如何通过 Docker Compose 安装。
七步上手 Home Assistant
- 在 Home Assistant 的集成目录中检查你的设备。
- 选择安装位置:现成的中枢、迷你 PC、Raspberry Pi、NAS、虚拟机或 Linux 服务器。
- 安装 Home Assistant OS 或 Home Assistant Container。
- 添加已发现的设备和服务。
- 将它们分配到不同房间并配置面板。
- 创建一个真正有用的自动化。
- 设置备份和安全的远程访问。
最好不要一开始就创建几十个场景,而是先解决一个真正让你困扰的问题。当第一个自动化稳定运行后,再逐步扩展系统。
什么是 Home Assistant
Home Assistant 是一个免费、开源的智能家居控制平台。它充当中央中枢:连接不同厂商的设备与服务,并允许你通过网页界面或移动应用进行管理。
项目目录中提供了 1500 多种集成,包括照明、暖通设备、摄像头、扫地机器人、能源计量设备、MQTT、Zigbee、Z-Wave、Matter、Apple HomeKit 和云服务。
它与单一品牌应用最大的不同在于,自动化场景不会被限制在一个生态系统内。一个厂商的传感器可以打开另一个厂商的灯,调整第三方恒温器的温度,并向手机发送通知。
为什么 Home Assistant 比一堆应用更有用
如果系统只是把开关搬到手机里,房子并没有变得更智能。Home Assistant 的价值始于日常动作能够自动完成。
自动化由触发器、可选条件和动作组成。例如:“有人回到家”是触发器,“太阳已经落山”是条件,“打开客厅灯”是动作。
设备会显示在手机、电脑或壁挂平板共用的面板上。你可以按房间进行分组,并为家人和访客创建不同的界面。
使用本地集成时,命令和数据会留在家庭网络中,自动化也可以在没有互联网的情况下运行。但如果设备只提供云端 API,Home Assistant 同样会依赖厂商的服务。
此外,它还支持移动通知、在家状态检测、Assist 语音助手,以及用于统计电网、太阳能板、电池、燃气、用水和单个电器的能源面板。
实用的 Home Assistant 场景
无需频繁按开关的照明
运动传感器只在日落后打开灯。夜间使用较低亮度,如果几分钟内没有检测到活动,灯会自动关闭。
漏水保护
传感器检测到水后,系统会关闭兼容的电动阀门、停止水泵并发送通知。关键动作会立即执行,而不是等到屋主看到消息之后才处理。
根据在家状态控制温度
最后一个人离开后,供暖或空调会切换到节能模式。窗户打开时,也可以临时关闭对应房间的温控系统。
洗衣完成通知
智能插座会测量洗衣机的功耗。当洗涤周期结束后功率降到设定值以下时,Home Assistant 会提醒你取出衣物。
发现不必要的能源消耗
用电历史可以帮助你发现持续运行的负载,并判断哪些电器换到其他时间运行会更经济。
是否需要编程
搭建基础智能家居不需要编程。集成、房间、面板和大多数自动化都可以通过图形界面进行设置。
YAML、模板和自定义集成只在复杂场景中才需要。无需从这些内容开始:那些要求手动编辑几乎所有参数的旧教程,已经不再代表新手的常规使用方式。
Home Assistant 最适合安装在哪里
当前文档主要使用两种方案:Home Assistant Operating System 和 Home Assistant Container。
| 方案 | 适合人群 | 需要了解的事项 |
|---|---|---|
| Home Assistant Green | 需要现成中枢 | 系统已经预装 |
| 安装 Home Assistant OS 的 Raspberry Pi 或迷你 PC | 大多数家庭用户 | 更新、备份和应用管理更方便 |
| NAS 或家庭服务器上的虚拟机 | 已经有全天运行的主机 | 可以分配资源并直通 USB 设备 |
| Home Assistant Container | Docker 用户 | 没有内置应用商店,更新需要手动完成 |
| VPS | 测试和远程地点 | 无法直接访问家中的无线设备 |
Home Assistant OS 是大多数用户的推荐选择。如果 Linux 服务器上已经运行了其他服务,Container 会更方便,但应用以及部分 Thread 或 Z-Wave 组件需要单独维护。
需要多少资源
虚拟机的官方最低要求是 2 vCPU 和 2 GB RAM。实际可参考以下配置:
| 使用场景 | CPU | RAM | 存储 |
|---|---|---|---|
| 测试或小型系统 | 2 vCPU | 2 GB | 32 GB SSD |
| 为附加服务预留空间的家庭系统 | 2–4 vCPU | 4 GB | 32–64 GB SSD |
| 摄像头、本地语音和较长历史记录 | 4+ vCPU | 8+ GB | 64 GB SSD 起 |
摄像头、历史记录保留时间、语音模型和额外容器最容易增加负载。长期运行的安装最好使用 SSD。
如何通过 Docker Compose 安装 Home Assistant
此方法适用于已经安装 Docker Engine 和 Docker Compose 的 Linux 服务器。创建目录:
mkdir -p ~/homeassistant/config
cd ~/homeassistant创建 compose.yaml:
services:
homeassistant:
container_name: homeassistant
image: ghcr.io/home-assistant/home-assistant:stable
volumes:
- ./config:/config
- /etc/localtime:/etc/localtime:ro
- /run/dbus:/run/dbus:ro
environment:
TZ: Etc/UTC
restart: unless-stopped
stop_grace_period: 60s
privileged: true
network_mode: host/run/dbus 这一行用于 Bluetooth;如果不使用 Bluetooth,可以删除。将时区 Etc/UTC 替换成你所在地区的时区。启动容器:
docker compose up -d界面会在 http://服务器IP:8123 打开。在家庭服务器上,请通过本地网络访问。使用 VPS 时,应提前在外部防火墙中关闭 8123 端口。
首次登录远程服务器时,可以创建 SSH 隧道:
ssh -L 8123:127.0.0.1:8123 user@服务器IP打开 http://localhost:8123,创建管理员账户并添加第一批集成。
可以在 VPS 上使用 Home Assistant 吗
Home Assistant Container 可以在 Linux VPS 上运行。它适合用于熟悉界面、使用云端集成,以及通过 VPN 或 MQTT 连接远程地点。
但 VPS 位于住宅之外。它通常无法通过网络发现功能识别本地设备,也不能直接使用家中的 Zigbee、Z-Wave 或 Thread USB 适配器。Bluetooth 传感器也会超出覆盖范围。
因此,更合理的方式是把主控制器放在家中,并将 VPS 作为外部层使用:VPN 网关、安全访问入口、监控服务器或相关服务的运行主机。
如果测试系统不使用本地无线协议,2 vCPU、2 GB RAM 和 SSD 就足够了。在 tropic.host 中,可以先选择较小的 Linux 配置;如果之后为 Home Assistant 增加 MQTT、Node-RED、数据库或其他容器,再提高资源。Zigbee、Thread、Z-Wave 和 Bluetooth 仍然更适合留在家中的节点上。
如何设置安全访问和备份
不要直接把 8123 端口暴露到公网。远程控制应使用 Home Assistant Cloud、VPN,或带 HTTPS 的反向代理。启用多因素身份验证,并只向确实需要的用户授予管理员权限。
Home Assistant 支持自动加密备份。至少将一份副本保存在系统之外,并把包含加密密钥的 emergency kit 单独存放。
常见错误
| 错误 | 更好的做法 |
|---|---|
| 未检查集成就购买设备 | 查看支持的型号和功能 |
| 一开始就创建几十个自动化 | 先从一个简单场景开始 |
| 完全移除实体开关 | 为关键功能保留手动控制方式 |
| 把 Zigbee 协调器放在 VPS 上 | 将它放置在家中 |
| 将备份与系统放在同一位置 | 在另一台设备或住宅之外保存副本 |
简要总结
Home Assistant 可以把分散的设备变成一个统一系统:一个面板、统一历史记录,以及跨品牌自动化。你可以在不编程的情况下开始使用,只需检查兼容性、安装 Home Assistant OS 或 Container,并创建一个实用场景。
主服务器最好放在家中,尤其是在使用 Zigbee、Thread、Z-Wave 或 Bluetooth 时。VPS 适合测试、云端集成、VPN、监控和相关服务,但不能替代本地无线网关。
FAQ
Home Assistant 免费吗?
是的。硬件、第三方云服务以及可选的 Home Assistant Cloud 订阅可能需要付费。
没有互联网时系统还能工作吗?
本地集成和自动化会继续在家庭网络内运行。仅依赖云端的设备在断网时将不可用。
必须使用 Raspberry Pi 吗?
不需要。可以使用 Home Assistant Green、迷你 PC、旧电脑、NAS、虚拟机或 Linux 服务器。
Home Assistant OS 和 Container 哪个更好?
对大多数用户来说,Home Assistant OS 更方便。Container 适合已经使用 Docker,并愿意自行维护额外服务的用户。
可以连接不同厂商的设备吗?
可以,前提是存在兼容的集成。购买前不仅要检查品牌,还应确认具体型号和受支持的功能。
