C'est la vie

生きてる事が 時には辛くて

0%

如何在树莓派上搭建HomeAssistant智能家居系统

准备

  • 树莓派一个(我用的树莓派4b+,1G内存应该也够用了)并装好官方系统Raspberry Pi OS
  • 需要提前装好docker及docker compose
  • 最好有一个公网ip方便在外面也可以访问

开始

先测试一下docker环境有没有安装好

1
2
3
docker -v

docker-compose -v

不报错就没问题。

树莓派的安装可以参考这个链接
官方文档:树莓派安装HomeAssistant的几种方法

文章的结构如下:
树莓派安装HomeAssistant

看目录可以发现第一部分是介绍推荐的硬件,这里简单看看就行。

第二部分Install Home Assistant Operating System是介绍直接把HomeAssistantOS作为一个系统装到树莓派里,安装完之后可能树莓派就不能搭建其他的服务了,所以不是很推荐,可以直接跳过不用看。

第四部分Install Home Assistant Core 也不是很推荐,也略过不讲了。

第三部分Install Home Assistant Container就是这次推荐采用的方法了,采用docker容器来安装HomeAssistant。
第三部分里其实也有两种方法,

1、直接安装

直接输入命令进行安装docker run

命令如下

1
2
3
4
5
6
7
8
docker run -d \
--name homeassistant \
--privileged \
--restart=unless-stopped \
-e TZ=MY_TIME_ZONE \ # MY_TIME_ZONE改成 Asia/Shanghai
-v /PATH_TO_YOUR_CONFIG:/config \ # /PATH_TO_YOUR_CONFIG改成 将来想要存放配置文件的文件夹的地址
--network=host \
ghcr.io/home-assistant/home-assistant:stable

这种方式的好处就是运行命令之后开箱即用,缺点在于后续更新的话麻烦一点,文档里也写了如果要更新的话需要执行哪些命令,反正比第一次运行还要多一点。这里也不是很推荐采用这种方式来安装。

2、docker compose 安装

第二种方法就是推荐采用的docker-compose的方式来安装。

首先先新建一个文件夹来存放配置文件,mkdir一下就行,但是要记住文件夹的路径,等会要用。
cd进入刚才新建的文件夹,touch新建一个文件,名字为docker-compose.yml,这个名字不能随便起,只能用这个,(推荐使用Finalshell进行操作,用鼠标就可以新建文件夹和文件。)

之后具体的操作可以看文档里的DOCKER COMPOSE

具体说来,就是编辑刚才新建的docker-compose.yml,把下面的内容填进去

1
2
3
4
5
6
7
8
9
10
11
12
13
version: '3'
services:
homeassistant:
container_name: homeassistant
image: "ghcr.io/home-assistant/home-assistant:stable"
volumes:
- /PATH_TO_YOUR_CONFIG:/config # /PATH_TO_YOUR_CONFIG改成刚才新建的存放配置文件的文件夹的地址
- /etc/localtime:/etc/localtime:ro
restart: unless-stopped
privileged: true
network_mode: host
ports:
- 8123:8123 #第一个8123端口将来可以自定义

文件保存之后就可以了,然后运行

1
docker compose up -d

之后就是拉取docker镜像的操作,视网络情况可能需要等一段时间。
运行结束之后可以查看一下容器是否正常运行了

1
docker ps

主要看STATUS字段,没报错就是运行成功了。

docker compose方式安装的主要优点在于将来更新容器比较方便,

更新的具体步骤如下:

还是cd进入刚才新建的文件夹,也就是docker-compose.yml所在的目录

1
2
3
4
5
6
7
8
# 停止容器
docker compose stop

#重新拉取镜像
docker compose pull

#重新运行容器
docker compose up -d

依次执行完这几步之后容器就更新完重新运行了。

容器运行完就可以访问树莓派的8123端口,正常的话会有一个HomeAssistant的登录界面。具体可以参考Onboarding Home Assistant

Once the Home Assistant Container is running, Home Assistant should be accessible using http://:8123 (replace with the hostname or IP of the system). You can continue with onboarding.