详解树莓派上如何安装Home Assistant Supervised
本文最后更新于 2024年9月17日 凌晨
前言
Home Assistant的大名,想必大家都知道,使用它可以轻易把米家的设备,桥接到Apple的HomeKit,让用户可以用Siri就可以控制小米设备。当然,我们用树莓派,不想使用HA的系统,又像获得更全面的HA体验,可以试试HAS。
首先,我们看看Home Assistant Supervised和Home Assistant System以及Core的区别,参考自compare-installation-methods:
所以,使用Home Assistant Supervised,基本上是Home Assistant的完整版,当然,有一定的要求。
Docker和Supervised安装过程中,需要稳定供电;尤其是安装Supervised前,重启载入新配置时,如果供电更不上,SSH连接容易不稳定。
因此,强烈建议用高瓦数的PD头给树莓派4B供电(如:30W PD充电头)。
效果展示
最后的效果很简单,Home Assistant Supervised依赖于Docker,所以会有这些Docker所属于Home Assistant Supervised:
使用IP:8123
可以访问Web控制面板:
安装了Xiaomi MIoT后,可以桥接小米设备到HomeKit等平台:
桥接效果:
这样就可以在macOS上操作米家设备(而不需要下载米家……),或者用Siri直接操作。
呜呜呜,现在在房间里写代码,天黑时候去客厅,终于不用打着手电筒去开灯了(*≧ω≦)
还可以在多个设备上安装Home Assistant APP,实现多设备信息共享:
支持创作
制作教程不易,如果热心的小伙伴,想支持创作,可以加入我们的电圈(还可以解锁远程协助、好友位😃):
- Mintimate的电圈: https://afdian.com/a/mintimate
- Mintimate的微信赞赏码 👉 如果认为本教程对你很有帮助,可以请我喝咖啡 ☕
当然,也欢迎在B站或YouTube上关注我们:
- Bilibili: https://space.bilibili.com/355567627
- YouTube: https://www.youtube.com/@mintimate/featured
更多:
树莓派校验
现在,就让我们开始安装流程吧~~
首先,我们先成功连接上树莓派:
注意更新一下软件:
1 |
|
查看树莓派的Linux版本:
1 |
|
如果要完整支持HomeAssistantSupervised,最好根据HomeAssistantSupervised官方支持系统说明查看本地的系统是否满足:
可以看到,截止到文章发布,官方文档说明是需要Debian11,我的树莓派系统是满足的。
其实,用其他系统也可以,只是
Supervised
可能功能受限,比如:Supervised版本的Nginx或者Php用不了。对基础功能。
但是,桥接设备到Apple的HomeKit,没有影响。(我用Debian10安装时候,就是这样)。
辅助视频
嘿嘿,做教程视频不易(B站根本不会推荐引流),请务必一键三连嗷~B站视频地址:https://www.bilibili.com/video/BV1Bq4y1a7Bs
NetworkManager
HomeAssistantSupervised需要NetworkManager的支持,树莓派官方使用的是ModemManager、openresolv和dhcpcd5。
原本的配置可以不动,但是需要固定Mac地址并禁用ModemManger。
因为NetworkManager一旦安装就会开始工作。所以我们先创建一个NetworkManager的配置文件来固定Mac地址,防止我们后续操作重启时候,树莓派的Mac地址频繁变更。
固定Mac地址
预编写NetworkManager的配置:
1 |
|
追加的内容:
1 |
|
之后就可以安装network-manager了。
安装Network-Manager
安装完Network-Manager后,网络可能会出现短暂的丢包。这个时候多等一下就好,并且在完成ModemManager
的禁用前,请勿重启树莓派系统!!!
安装:
1 |
|
禁用ModemManager
有些教程会让你卸载dhcpcd5
,但是这样重启后需要重新配置网络,并且不能用树莓派的方法配置,这让我这没有显示器的用户很苦恼……所以这里我们就不卸载dhcpcd5
,直接禁用ModemManager
即可。
1 |
|
到此,NetworkManager部分就准备好了。
Apparmor
安装Apparmor很简单:
1 |
|
但是需要注意,需要把Apparmor的启动配置参数加到树莓派的启动参数内(参考自:https://github.com/Kanga-Who/home-assistant/issues/25):
1 |
|
末尾添加:apparmor=1 security=apparmor
。
OS-Agent
还需要安装OS Agent。这个并没有在Debian的软件源内,所以我们需要使用dpkg安装。最新OS Agent的下载地址:https://github.com/home-assistant/os-agent/releases/latest:
比如,我这里下载并安装1.2.2
版本的OS Agent:
1 |
|
其他依赖
还有一些其他的依赖需要安装,参考自:https://github.com/home-assistant/supervised-installer
1 |
|
在2022.11.27
后Homeassistant正式需要Systemd Journal
的支持;我们同样可以使用软件包管理器进行安装:
1 |
|
Docker
如果你之前有安装Docker,可以跳过本步骤。
之后,下载Docker官方脚本,并使用阿里源进行Docker的安装:
1 |
|
把我们自带的pi
用户添加到docker用户组内:
1 |
|
重启设备
上诉操作,我们已经重新配置了网络、安装了依赖和添加了启动参数,所以在正式安装Home Assisistant Supervised
前,我们需要重启设备。
重启设备后,ping一下设备,看看能不能有稳定的包返回:
重启时候,会新增一些进程,期间ping的响应会是断断续续的,要等到回报稳定再开始SSH连接:
需要注意,如果最后设备长时间
Request timeout for icmp_seq
,在网络没问题情况下,可能是树莓派供电不足,实在不行可以上65W的PD充电器。
Supervised
安装
现在开始安装Home Assisistant Supervised
啦。
因为有选项卡,请不要在screen内操作!!!
1 |
|
之后,没有问题就会出现选项卡,我们选择树莓派4B:
我的是树莓派4B,如果你是树莓派3,应该知道怎么操作吧?注意多下滑点,有树莓派
raspberrypi4-64
版本。
安装过程……根据自己的网络,这一步可能会卡很久,如果还是不行,记得科学一下再重新安装:
如果你出现grub
配置错误,比如:
解决方法很简单:
1 |
|
添加:systemd.unified_cgroup_hierarchy=false
1 |
|
添加:systemd.unified_cgroup_hierarchy=false
之后重启系统,重新进入系统后,再次使用命令安装(sudo dpkg -i homeassistant-supervised.deb
)即可安装成功:
如果过程中出现这样的错误:
一般是网络问题,重新执行命令安装(sudo dpkg -i homeassistant-supervised.deb
)即可安装试试。
成果
使用docker命令,查看Supervised的容器状态(如果并没有Homeassistant容器;那么等10min~20min再试试,期间保持树莓派运行,Homeassistant会组建初始化完成):
进入IP:4357
,可以查看Supervised
的状态:
但是,这个时候IP:8123
无法进入Home Assisistant Supervised的管理页面,你需要重启一次服务器:
1 |
|
重启后,等待5分钟左右(Home Assisistant Supervised第一次启动比较慢),就可以通过IP:8123
在浏览器访问了:
配置文件
找到配置文件
另外,安装一些插件(比如著名的xiaomi_miot_raw,需要自己编辑Home Assisistant的配置文件。
但是,官方好像没说这个配置文件在哪里。其实在/usr/share/hassio/homeassistant
内:
如果后续版本更新,不在这里。可以使用find
命令进行搜索:
1 |
|
如何Nginx反代
另外,如果有Nginx Https反代的需求,需要让Nginx支持websocket服务的反代;参考配置:
1 |
|
END
到此,树莓派安装Home Assisistant Supervised
就结束了。是不是还有人想知道如何桥接小米设备到Apple HomeKit?
这个…… 下次有机会和大家说,再和大家详细说说Nginx的反代和FRP映射,让我们可以远程访问Home Assisistant。