之前用Docker容器配置过一次Home Assistant,但是由于Add-ons无法使用,加上当时配置的可能也是有点问题,所以总感觉用起来不舒服,弃用了一段时间。但是最近实在忍受不了小米那个垃圾APP了,于是乎在这个悠闲的周末,又动起了折腾的念头,这次打算直接安装Home Assistant Operating System,而且这次有ChatGPT,着实能帮很多忙。尽管如此,配置HassOS还是花了大半天的时间,趁着热乎,记录一下配置的过程。
方案选择
HassOS有很多种方案可以选,我家里有台NUC装了Debian用作服务器,所以我最终的选择是在KVM上安装。不过我之前并没有用过KVM,所以还得先安装个KVM,这里是可以直接让ChatGPT帮忙的,不过保险起见,我还是以官方的教程为主,以这个谷歌搜到的教程为辅,来进行安装和配置的。
KVM安装及设置
这里不多赘述,只讲一下我遇到的一个问题,就是网桥br0的设置,因为我是在服务器上安装虚拟机,而且我希望为这台虚拟机配置一个和宿主机在同一个网段的IP地址,那么就必须要设置网桥。而网桥的作用是取代之前的物理网卡,比如我之前的物理网卡是eth0,IP地址是我手动设置的静态IP,同时网关也是手动指定的,那么在设置br0的时候就原样搬过来,否则网桥设置之后eth0就没有自己的IP地址了,服务器的IP也就变了,IPv6同理。下面是我的/etc/network/interfaces
配置文件更改:
|
|
改完配置,重启之后还没有结束,因为KVM默认只有一个default
的网络,可以通过virsh net-list --all
命令查看所有网络,通过virsh net-edit --network default
命令查看具体配置,这个网络是通过NAT转发的,不能满足我的需求,所以需要增加一个网络,下面是具体的步骤:
新建一个名为
br0.xml
的文件,把下面内容粘贴进去并保存1 2 3 4 5
<network> <name>br0</name> <forward mode='bridge'/> <bridge name='br0'/> </network>
依次运行
virsh net-define br0.xml
virsh net-start br0
virsh net-autostart br0
最后运行
virsh net-info --network br0
检查一下具体信息
到这里KVM的准备工作就完成了,下面正式安装HassOS。
安装HassOS
使用官方教程中的virt-install
命令后面补充一个网络选项--network bridge=br0
,完整的命令为virt-install --name hass --description "Home Assistant OS" --os-variant=generic --ram=2048 --vcpus=2 --disk <PATH TO QCOW2 FILE>,bus=sata --import --graphics none --boot uefi --network bridge=br0
。这里遇到的一个问题是Did not find any UEFI binary path for arch ‘x86_64’,有大佬给出了解决方案,运行apt install ovmf
安装ovmf即可。
然后就会直接进入hass虚拟机,退出的话是按Ctrl+],之后可以通过virsh console hass
再次进入,等一会儿,应该可以看到一行 homeassistant login:
的提示,没看到可以按几下回车,这里直接输入root
再回车就可以进入,官方教程居然没提这一点。进去是为了查看HassOS的IP地址,因为我试了很多方法似乎并不能在宿主机查看到这个IP,在hass虚拟机内部输入ip addr
,会输出很多信息,但是只有一个IP是和宿主机同网段的,通过访问http://X.X.X.X:8123
就可以进入WEB界面了。之后跟着官方教程走就没什么问题了。
我在这里遇到的另一个问题是防火墙,我是在Debian上开启了ufw的,虽然内网开不开都无所谓,但是我的习惯是开启。但是KVM会被防火墙阻止,我暂时没写明白合适的规则,所以此处我只能关闭防火墙,否则要折腾很久。
推荐的配置
- 在
配置 -> 系统 -> 网络
中,修改IPv4为静态IP,网关、DNS看情况修改。比如我的网络是存在旁路由的,所以需要修改网关和DNS,否则是无法访问Google的,那么很多操作比如更新、下载也就受到极大限制。改了之后可以通过在命令行运行curl https://www.google.com
查看网络是否OK。 - 安装
File editor
和Terminal & SSH
这两个插件,因为经常折腾的话要经常修改配置文件,安装了之后就可以直接在网页修改了。
反向代理的设置
我习惯于用域名访问家里的服务,而且现在很多服务的一些功能需要SSL,比如网页的通知推送,所以需要设置一个反向代理,域名解析到宿主机,宿主机反代到虚拟机,可以参考这个社区的教程,下面是我的nginx配置文件(隐藏了真实域名):
|
|
总结
至此HassOS就安装完成了,其实安装没有特别复杂,按照官方教程一步一步来,有问题社区搜一下,都有解决方案。接下来就要配置家里的智能家居了,这里面可玩性就很高了,因为不仅可以设置厂商的硬件,比如小米电扇什么的,还可以设置自己的开发板,但我还没入门,后续折腾一波再来分享。