这些年写了不少智能家居教程,但是基本都是基于米家或者homekit,属于厂家搭建的平台,也比较小白化,自动化场景根据提示来完成就OK。
无论是米家还是homekit,都有一定局限性,比如产品本身不支持平台,就无法接入系统了,又比如条件设置比较简单,不能完成一些自己想要的自动化场景。
不是每位消费者都研究那么仔细,另外由于品牌自我圈地保护意识,当你选购了不同的产品需要多个APP操作,不能实现整体统一,会比较闹心。
比如现在流行的homekit和米家,有多个品牌在做,有的品牌同时支持米家和homekit,有的仅支持homekit,有的两者都不支持。
开源平台就是因此而诞生,可以兼容多家的设备,自己diy传感器,以及通过反向接入,进入到homekit界面里,包括自定义自动化场景,并且随着加入的人越来越多,现在开源平台homeassistant已经没有那么复杂了,众多大神贡献着自己的力量,你所要做的就是拿过来为我所用。
homeassistant其实并不复杂,至少从现在的趋势来看是越来越简单了,本文就是从零开始,主要讲解前期homeassistant的搭建、UI美化、设备接入,未来还有更多的系列教程,这大概是每一个玩智能家居都会经历的路线。
前期搭建所需的设备及搭建过程
开源智能家居因为需要长期在线,那么低功耗且一直可以开机的设备尤为关键,目前来看主要是NAS和更加复杂一些的树莓派,从性能设备上来说,主要区分为X86和ARM设备。
从入手难易程度来看,NAS更适合初步接触开源智能家居的小白,真的全部从零开始,包括学习电路板的焊接和编程,估计会劝退一大堆观望的用户。
这次主要以群晖的X86架构的NAS为平台搭建,毕竟群晖的NAS特性很适合小白使用,不会太过Geek范,界面平易近人,系统生态也很齐全。
我这里使用的平台为群晖的DS920+,也是我目前使用作为备份的一台NAS设备。
这台DS920+我是设置了四盘RIAD10阵列,兼顾性能和安全,就是比较浪费硬盘空间,四块8T硬盘总共提供了14T左右备份空间。
日常使用中群晖920+负责同步备份我的mac mini 雷电外设中的视频、图片文件,之前使用其他品牌,在win下同步备份运行稳定,但是到MAC系统中就出现了很奇怪的问题,几个月解决无果后,我换了群晖,目前自动同步备份运行很稳定。
DS920+性能比较强大,同时内存也是笔记本规格的DDR4,可以自己拓展,除了作为homeassistant智能家居的载体,还能同时胜任其他比如软路由等工作,可以做到一机多用。
其他品牌的NAS也是可以的,但是在易用性和界面友好程度上,群晖基本可以说是一哥的位置,不用担心太多幺蛾子和奇怪的问题。
Synolgy 2022发布会上也公布了不少未来的功能点,包括macOS的按需同步、手机端应用的优化等,都提上了日程,还是值得期待一下的。
回到homeassistant上,让我们开始。
对于小白们来说,我们的第一任务就是把系统装到NAS上去,其他什么都不需要思考。
如何安装homeassistant?
这里就要提及下群晖系统的一个套件,docker,你可以理解为一个容器,一个轻量化的虚拟机。
群晖的Docker图标是一个鲸鱼加一堆集装箱,你可以理解为homeassistant这个系统被打包成一个标准化的集装箱,放到了鲸鱼(Docker)上,鲸鱼还可以运送其他标准化的集装箱,这个集装箱内部可以是其他应用程序和操作系统,而不是像之前不同的货物不能混放运送。
所以我们现在要做的就是将homeassistant弄进Docker中。
Docker中的注册表,在这里可以找到已经被打包好成集装箱的程序或者系统,比如homeassistant,直接在搜索,就能找到收藏量高达2k的一个集装箱,我们选中后下载。
这个时候会弹出窗口让你选择标签,其实就是选择版本,一般情况下是推荐latest,也就是最新版本的homeassistant,但是这次教程我不建议选择最新的版本,因为homeassistant更新比较勤快,新版本修复了一些bug,但是也带来了不少bug,这次我就遇到了新版本homeassistant无法打开界面的问题。
目前我自己尝试可以正常运行的homeassistant版本是2021.11.5,高版本的问题应该会修复。
选定好了版本后等待下载完成。
下载完成后在映像中双击,开始配置homeassistant的一些参数和设定。
在资源限制中我们要为homeassistant设定一个CPU优先顺序以及内存限制,我因为自己增加了一条内存,总容量为12GB,所以给homeassistant 设定了2G运行内存。
勾选下启用自动重新启动,桌面快捷方式则是在群晖的系统桌面上创建,这个就随意了。
这里我们在群晖的docker文件夹里面创建一个文件夹,我这里命名为homeassistant,系统的配置文件、UI美化文件,包括后期的所有文件都在这个文件夹内。
装载路径是什么?homeassistant需要一个文件夹来存放配置文件,这个文件夹是我们刚才创建的,所以路径就是/config,config就是配置的意思,同理,如果另一个系统需要一个文件夹来存放数据文件,那么路径就会变成/db,db是datebase,也就是数据的意思。
理解装载路径后,就算你重新升级homeassistant,只要homeassistant这个文件夹内的数据没有被删除,所有的配置都还在,无需重新手动梳理一遍。
网络设置中我们直接勾选与docker host相同的网络,也就是和群晖使用同一个网络,省去了映射端口的麻烦。
环境中我们新增一个时间,也就是TZ,设置为Asia/Shanghai,其实就是东八区时间。
勾选向导完成后运行此容器,点击完成,就完成了最初的搭建。
在容器中可以看到目前运行的时间,在编辑中有重启操作,我们接下来的很多步骤都需要在这里进行重启,如果你遇到了设置后homeassistant达不到预期目标,很可能就是没有重启。
输入你的NAS IP地址:8123,就可以打开homeassistant的初始界面了,默认端口号就是8123。
这里用户名可以是中文。
不过这样的界面你觉得如何?是不是很简单,内心毫无波澜,我们玩开源智能家居,除了整合不同平台的设备,美观也是非常看中的,如果界面太过于朴素,那为什么我不继续玩单一的米家呢?
homeassistant界面的美化
因为开源,网上有很多超级大神做的UI美化包,拿来所用,岂不美哉,当然如果你有更强的设计动手能力,也可以自己制作更好的主题,并且更换。
主题的更换,包括我们后期很多设备接入智能家居,都需要一个homeassistant智能家居平台的一个内部商店,你可以理解为有了这个商店,我们才可以在这个商店内找到很多资源,才可以进行下去。
在安装hacs这个商店之前,我们需要在群晖的homeassistant根文件夹下创建一个自定义组件的文件夹,命名为custom_components,在这个自定义组件文件夹下新建hacs的文件夹。
这里其实还需要创建一个WWW的文件夹。
接下来需要下载HACS,玩homeassistant,我们需要经常访问的一个网站叫做github,这个网站你可以理解为一个面向开源以及私有软件项目的托管平台,是程序猿心中的YYDS,是神。
HACS以及很多资源,都是从github上获取的,这里也需要注册一个账号,后续都会用到。
访问
https://github.com/hacs/integration/releases/,获取最新版本的HACS。
下载好的HACS文件夹是一个压缩包,直接解压,并且拷贝所有的文件到我们刚才新建的HACS文件里就好。
重启容器,就是我刚才提及到重启方式。
进入到homeassistant中,在配置中找到集成。
如果你操作步骤都没有问题,可以在设置新集成中搜索到HACS,如果还是搜索不到,那么就是出错了,或者没有重启。
搜到HACS继续下去,这里会弹出一个激活窗口,建议搜之前先在github上登录自己的账号。
弹出激活窗口后会收到一串激活码,点击界面上出现的链接,在链接中填写刚才的激活码就可以激活设备了。
出现HACS区域选项就意味着成功了。
此刻我们的左边栏就多了HACS这个商店了,在商店里可以找到很多我们需要的东西。
这个是正常的表现,稍等片刻就行,右侧的前端就是我们要获取精美UI需要关注的。
如果出现这个流量超限提示,那么安心去睡个觉什么的,第二天再继续。
在前端中只勾选主题,可以找到很多主题,我这里用的是一个比较知名大神做的IOS Dark mode and light mode主题。
选择下载就行了,正常情况下可以直接安装成功,重启后就能在界面设置端选择新主题。
但是,如果你的网络不是很好,或者奇奇怪怪的原因导致无法安装成功,那就需要自己手动安装主题了,这个稍微有一点复杂。
内置下载安装失败的手动安装
首先是我们需要自己去下载这个主题,在主题介绍的界面有链接,直接点进去就可以看到文件包。
下载按钮在右侧的code上,下载后我们其实只需要其中的themes文件夹中的文件。
在homeassistant中新建一个主题文件夹,themes。
此刻我们打开下载之后需要的themes文件夹,这些文件就是我们需要的。
在我们刚才新建的themes文件夹下再建立一个和配置文件同名的文件夹,为ios-themes,将刚才的文件全部拷贝到这里。
然后我们需要修改一个配置文件,在根目录下,为configuration.yaml。
修改配置文件需要群晖docker下的一个文本编辑工具。
或者你可以将文件下来在win中使用notepad++编辑器修改后覆盖上传,不能使用自带的文本编辑器,会出现问题。
在这个配置文件里增加两行就可以。
frontend: themes: !include_dir_merge_named themes
这两行代码就是让系统理解我们在新建文件里的配置文件。
重启后就能选用其他主题了。
是不是好看了很多?
接入智能家居设备(米家系)
接下来我们要进行智能家居设备的接入了。
HA本身代码是开源的,只要支持标准的蓝牙mesh和wifi都可以接入HA。
如果你的设备是米家系,那么可以直接使用大神的高度集成插件的方式,直接一次性接入。
如果你的设备是一些常见体量很高的设备,也同样可以使用大神们早已搞定的方案接入,有些甚至已经集成到了官方APP中,可以直接授权接入到homeassistant中。
如果是一些小众设备,支持wifi接入的,需要通过一些手段去获取这些设备的一个关键key,配合IP地址去实现接入。
不过随着厂商们出于自身利益的考虑,很多设备无法去获取这个关键参数,想要玩开源,可能真的需要从DIY传感器开始了。
这次我们先从最简单的开始,也就是大神做的米家系高度集成插件,接入米家的设备可以全部打包接入到HA中。
一次性讲解太多复杂的内容可能导致弃坑。
这个大神制作的集成插件名称是xiaomi mioT。
在配置中的集成是可以添加插件的,但是xiaomi mioT直接搜索是没有的,需要我们在HACS商店中先添加这个插件。
同美化界面一样,HACS这次需要点击集成去搜索xiaomi mioT。
不过这次是国内大神制作的插件,有中文版,正常情况下搜索到直接安装即可。
如果和美化UI一样安装失败,插件作者也贴心的给出了手动安装的方法,这里我就不详细介绍了,中文写的明明白白。
安装重启容器后此刻在配置中就能找到xiaomi mioT。
两种方式可以接,第一种是最轻松,小白也可以快速搞定的接入方式,通过小米账号,但是这种方式会接入所有你小米账号下的设备,包括不在局域网中,其他环境中的米家设备。
而且这种方式也会受到账号本身的一些限制。
第二种是通过IP/token,需要自己去用手段搜索设备的token添加,不是很复杂,但是数量上,像我动辄几十个设备就比较吃力,但是后期基本还是走这条路。
这里就聊第一种,也是最合适小白的。
勾选中后可以选中需要接入的智能家居设备。
不过我这里只是演示下,详细的后续添加和设定自动化场景要在我手动token接入HA中另起炉灶,单独出一篇后续。
总结
相对于早期HA需要手动添加代码,和安装中大量代码的复杂方式,现在的HA对小白非常友好,基本上可以按照步骤一步一步来,有一点点基础就能搞定。
下一篇属于后续的局域网接入,包括一些非米家系设备,自动化场景,以及更深的优化美化UI界面,属于进阶教程。