前言
前面做了几期关于Home assistant
的教程,在前面我是完全使用docker手动部署,并且采用基本都是通过安装home-assistant-core
去处理。后面我发现很多东西的使用方式都特别别扭,而且确实很多东西都比较麻烦,所以后面再反过来看,发现了一个叫hass
的生态,这个其实就是home-assistant
的周边生态,而这些周边,几乎都是必备的,于是我妥协了使用了hass
的生态,但是有一点不同的是,我这里并没有使用hassOS
,而是采用hassIO
,也就是home-assistant-supervisor
。
下面开始,我就会我的正式体现记录我后面的智能家居做法。
硬件
- 树莓派4b+一个(我在写这篇文章的时候,已经出了树莓派5,但是由于ha还没公布稳定支持树莓派5,所以我还是购入了4b+,后面稳定后再替换)
效果展示
Home Assistant Supervisor 安装
切换为root用户
ccinn@raspberrypi:~ $ sudo su -
1 | sudo apt update -y |
查看树莓派版本
1 | ➜ ~ lsb_release -a |
如果要完整支持Home Assistant Supervised
,最好根据 看本地的系统是否满足
可以看到,截止到文章发布,官方文档说明是需要Debian12,我的树莓派系统是满足的。
NetworkManager
HomeAssistantSupervised需要NetworkManager的支持,树莓派官方使用的是ModemManager、openresolv和dhcpcd5。
原本的配置可以不动,但是需要固定Mac地址并禁用ModemManger。
因为NetworkManager一旦安装就会开始工作。所以我们先创建一个NetworkManager的配置文件来固定Mac地址,防止我们后续操作重启时候,树莓派的Mac地址频繁变更。
固定Mac地址
预编写NetworkManager的配置:
1 | # 创建配置目录和文件 |
追加的内容:
1 | [connection] |
之后就可以安装network-manager了。
安装完Network-Manager后,网络可能会出现短暂的丢包。这个时候多等一下就好,并且在完成ModemManager的禁用前,请勿重启树莓派系统!!!
安装:
1 | sudo apt install -y network-manager |
禁用ModemManager
有些教程会让你卸载dhcpcd5
,但是这样重启后需要重新配置网络,并且不能用树莓派的方法配置,这让我这没有显示器的用户很苦恼……所以这里我们就不卸载dhcpcd5
,直接禁用ModemManager
即可。
1 | # 停止ModemManager |
到此,NetworkManager部分就准备好了。
Apparmor
1 | sudo apt install -y apparmor-utils jq software-properties-common apt-transport-https avahi-daemon ca-certificates curl dbus socat |
但是需要注意,需要把Apparmor的启动配置参数加到树莓派的启动参数内(参考自:https://github.com/Kanga-Who/home-assistant/issues/25):
1 | # 使用vim打开/boot/cmdline.txt |
末尾添加:apparmor=1 security=apparmor
OS-Agent
还需要安装OS Agent。这个并没有在Debian的软件源内,所以我们需要使用dpkg安装
。最新OS Agent的下载地址:https://github.com/home-assistant/os-agent/releases/latest
记得找最新的aarch版
1 | # 下载OS Agent 1.2.2 |
其他依赖
1 | sudo apt-get install \ |
在2022.11.27后Homeassistant正式需要Systemd Journal
的支持;我们同样可以使用软件包管理器进行安装:
1 | sudo apt install systemd-journal-remote -y |
Docker
1 | # 下载Docker安装脚本 |
把我们自带的ccinn用户
添加到docker用户组
内:
这个用户根据自己的实际用户来
有的人默认就是pi用户
1 | sudo usermod -aG docker ccinn |
重启设备
上诉操作,我们已经重新配置了网络
、安装了依赖
和添加了启动参数
,所以在正式安装Home Assisistant Supervised
前,我们需要重启设备。
Supervised
现在开始安装Home Assisistant Supervised
啦。
1 | 下载deb安装包 |
之后,没有问题就会出现选项卡,我们选择树莓派4B:
安装过程……根据自己的网络,这一步可能会卡很久,如果还是不行,记得科学一下再重新安装。
成果
使用docker命令,查看Supervised
的容器状态(如果并没有Homeassistant容器;那么等10min~20min再试试,期间保持树莓派运行,Homeassistant会组建初始化完成):
进入IP:4357
,可以查看Supervised
的状态:
等待5分钟左右(Home Assisistant Supervised第一次启动比较慢),就可以通过IP:8123
在浏览器访问了
至此ha的安装就ok了,接下来会继续一些辅助性的东西。
安装zsh
1 | apt install zsh |
1 | vim ~/.zshrc |
如果想要复制ha容器中的配置出来,可以使用
1 | docker cp $(docker ps | grep -v NAMES | grep homeassistant | awk '{print $1}'):/config /home/ccinn/.homeassistant/ |
这样子,/home/ccinn/.homeassistant
目录就是当前的了。
如果我们想要找到hassio中的ha容器挂载的目录是那里的话,可以用以下命令
1 | cat /var/lib/docker/containers/$(docker inspect homeassistant | jq -r '.[] | .Id')/config.v2.json | jq '.MountPoints."/config"' |
可以看到,容器和宿主机的目录地址是/usr/share/hassio/homeassistant
所以,当我们需要手动安装插件,修改配置等等,直接操作这个目录即可。
安装 Samba
我们知道,树莓派是一个小型主机,我们日常使用,肯定有我们自己的主机。我们可以通过Samba服务来进行文件的二次管理。把文件备份到我们的日常使用的主机上,或者直接在我们日常使用的主机上进行操作文件配置。
1 | sudo apt-get install samba samba-common-bin |
修改配置文件
1 | sudo vim /etc/samba/smb.conf |
因为我上面用的路径和宿主机下的路径不一致,所以需要做个软连接
ln -s /usr/share/hassio/homeassistant /home/ccinn/.homeassistant
, 这样子就能实现,samba和树莓派和ha容器的文件实时同步了。
保存文件后,添加samba用户
1 | sudo smbpasswd -a ccinn |
注意:使用 sudo smbpasswd -a 命令创建用户时,创建的用户必须为 Linux 系统账户,如我这里的ccinn
输入自己的samba用户的密码,比如 a123456
重启服务让其生效
1 | sudo systemctl restart smbd |
Samba 安装完成后,树莓派的 Hass 开发环境搭建完毕。
通过 Samba 访问 Home Assistant 文件夹
因为我的是macOS,所以这里用mac为例子。
在电脑桌面上打开 访达。
选择桌面左上角菜单中的 前往 > 连接服务器
。
在弹出的窗口中,输入以下地址后单击 连接
。
1 | smb://192.168.8.189/pi |
安装hacs
在树莓派中执行如下命令。
1 | wget -U - nttps://get.nacs.xyz | bash - |
可以看到,hacs会自动找到对应的目录进行安装。
然后外面通过samba,也可以看到在custom_components
中多了个hacs的自定义组件
。
回到ha-web(IP:8123)
中,在用户-集成,添加集成,然后搜索HACS,点击一下hacs,就可以安装hacs了,那么接下来就可以用第三方内容了