3、HA核心安装:Home Assistant OS/Container/Core三种方式对比、Docker部署实战、首次启动配置
好,咱们进入正题。这一章聊的是HA的安装方式选择,以及我最推荐的Docker部署实战。
很多新手一上来就懵了:什么OS、Container、Core,到底选哪个?
我当年第一次接触HA时,也在这上面纠结了两天。后来踩过坑、重装过好几次,才摸清楚门道。今天我把这些经验一次性说透。
3.1 三种安装方式,到底怎么选?
先看一张对比表,心里有个底:
| 安装方式 | 适合人群 | 优点 | 缺点 |
|---|---|---|---|
| HA OS | 纯小白、不想折腾硬件的用户 | 开箱即用、自带插件商店、系统级更新 | 占用资源多、不能装其他软件 |
| HA Container | 有一定Linux基础、想灵活部署的用户 | 轻量、资源占用少、可与其他服务共存 | 需要手动配置、没有插件商店 |
| HA Core | 极客、想在已有系统上深度定制的用户 | 完全可控、可集成到现有架构 | 配置复杂、维护成本高 |
我个人习惯用Container方式。为什么呢?
你想,HA OS虽然省心,但它独占整台设备。如果你家里已经有台NAS或者服务器,再单独搞个树莓派跑HA OS,有点浪费。
而Container方式,说白了就是一个Docker镜像。你可以在同一台机器上同时跑HA、MQTT、Node-RED、甚至你的个人网站。资源隔离,互不干扰。
至于Core方式……嗯,除非你是那种喜欢从源码编译一切的大神,否则我不建议碰。我在项目中遇到过一位客户,非要自己编译Core,结果折腾了三天,最后发现Container方式十分钟就搞定了。
3.2 Docker部署实战:从零开始
好,咱们直接上手。假设你已经装好了Docker和Docker Compose。没装的,去官网照着文档装一下,几分钟的事。
第一步,创建一个目录:
mkdir ~/homeassistant
cd ~/homeassistant
第二步,写一个docker-compose.yml文件。这是我用了两年的模板,直接复制:
version: '3'
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
restart: unless-stopped
privileged: true
network_mode: host
这里有几个关键点,我解释一下:
- network_mode: host:让HA直接使用宿主机网络。这样你就不用操心端口映射了,HA默认走8123端口。
- privileged: true:给容器更高的权限。有些蓝牙设备、Zigbee网关需要这个。
- volumes映射:把配置目录挂载出来,方便备份和修改。
⚠️ 注意:如果你用的是Mac或Windows的Docker Desktop,network_mode: host可能不生效。这时候你需要手动映射端口:
ports:
- "8123:8123"
第三步,启动容器:
docker-compose up -d
等个一两分钟,打开浏览器,输入http://你的IP:8123。看到HA的欢迎界面了吗?
嗯,就是这么简单。
3.3 首次启动配置:避坑指南
第一次启动后,HA会让你创建账号、设置家庭位置。这些按提示走就行,没什么难度。
但有几个坑,我曾经踩过,今天一并告诉你:
坑一:时区设置
HA默认时区是UTC。如果你不改成Asia/Shanghai,后面所有自动化的时间都会乱掉。
怎么改?在configuration.yaml里加上:
time_zone: Asia/Shanghai
然后重启HA。
坑二:单位制
HA默认用公制。但如果你在美国,或者买了些美版设备,记得改成英制。
unit_system: imperial
💡 小技巧:第一次配置时,HA会扫描你局域网里的设备。如果你有小米、飞利浦之类的智能设备,可能会自动发现。但别急着全加进去,先跑通基础再说。
3.4 配置文件的那些事儿
HA的核心配置文件是configuration.yaml。它就在你挂载的./config目录里。
我习惯用VS Code的HA插件来编辑,但如果你喜欢命令行,直接vim也行。
一个典型的配置文件长这样:
# 基础配置
homeassistant:
name: 我的家
latitude: 39.9042
longitude: 116.4074
elevation: 50
unit_system: metric
time_zone: Asia/Shanghai
# 前端配置
frontend:
# 日志配置
logger:
default: info
# HTTP配置
http:
server_host: 0.0.0.0
server_port: 8123
这里要注意:缩进必须是两个空格,不能用Tab。YAML对缩进极其敏感,我曾经因为一个空格不对,排查了半小时。
3.5 升级与备份
HA更新很频繁,基本每个月都有新版本。升级Container很简单:
docker-compose pull
docker-compose up -d
但升级前,一定要备份!
⚠️ 我曾经有一次升级后,某个自定义插件不兼容,整个HA启动不了。还好我有备份,直接回滚了。
备份方法:把./config目录整个打包就行。
tar -czvf ha_backup_$(date +%Y%m%d).tar.gz ./config
3.6 写在最后
好了,这一章的内容就这些。总结一下:
- 新手选HA OS,省心;老手选Container,灵活。
- Docker部署就三步:建目录、写compose文件、启动。
- 首次配置注意时区和单位制。
- 升级前一定备份。
下一章,咱们聊聊HA的插件系统。你会看到,HA的真正威力,其实藏在那些插件里。
到时候见。