这些年来,我撰写了不少关于智能家居的教程,但大多数都是基于米家或HomeKit平台,这些平台由厂商构建,较为小白化,用户只需按照提示完成自动化场景即可。
然而,米家和HomeKit都有一定的局限性。例如,如果产品不支持这些平台,就无法接入系统;此外,它们提供的条件设置比较简单,难以满足某些特定需求。并不是每个消费者都愿意花时间去深入研究这些问题,加之各品牌之间的封闭性,购买不同品牌的产品往往需要使用多个APP,无法实现整体统一管理,这让人感到困扰。
如今流行的HomeKit和米家平台虽然有多个品牌参与,但并非所有品牌都支持这两种平台,有些品牌同时支持两者,有些只支持其中之一,还有一些品牌根本不支持。正因为如此,开源平台应运而生,如Home Assistant,它可以兼容多种设备,允许用户自行DIY传感器,并能反向接入HomeKit界面,包括自定义自动化场景。随着更多人的加入,Home Assistant变得越来越易于使用。这篇文章将从零开始,详细介绍如何搭建Home Assistant,以及如何进行UI美化和设备接入。未来还将有更多的相关教程,这是每个智能家居爱好者必经之路。
由于开源智能家居需要长期在线,因此选择低功耗且能长时间开机的设备至关重要。目前,主要的选择是NAS(网络附加存储)和树莓派。从性能上看,主要分为X86和ARM设备。对于初学者来说,NAS更适合入门,因为它不需要复杂的电路板焊接和编程技能。
这次我们将使用群晖的X86架构NAS作为平台。群晖的NAS界面简洁友好,适合新手使用,同时具备丰富的系统生态。我选择的群晖型号是DS920+,配置了四块8TB硬盘,采用RAID 10阵列,兼顾性能和数据安全。这台设备主要用于同步备份Mac mini上的视频和图片文件,之前使用其他品牌的NAS时遇到一些问题,但在换成群晖后,同步备份运行十分稳定。
DS920+性能强劲,配备DDR4内存,可以扩展。除了作为Home Assistant的载体,它还能胜任其他工作,如软路由等。群晖在易用性和界面友好度方面表现优秀,不用担心出现过多问题。此外,Synology在2022年发布会上公布了多项新功能,包括macOS按需同步和手机端应用优化等,值得期待。
对于初学者来说,首要任务是将Home Assistant安装到NAS上。群晖系统提供了一个名为Docker的套件,可以理解为一个轻量级的虚拟机。通过Docker,我们可以将Home Assistant打包成一个标准化的“集装箱”,放在“鲸鱼”(Docker)上。这个“集装箱”内部可以包含其他应用程序和操作系统。
在Docker中注册表里,可以找到已打包好的程序或系统,如Home Assistant。搜索后可以找到一个收藏量高达2k的“集装箱”,选择后下载即可。在选择版本时,通常推荐使用最新版本(latest),但考虑到Home Assistant更新频繁,新版本可能带来一些问题。这次教程中,我建议使用2021.11.5版本,这个版本经过测试可以正常运行。选定版本后等待下载完成。
下载完成后,双击映像开始配置Home Assistant的参数和设定。在资源限制中,需要为Home Assistant设定CPU优先级和内存限制。例如,我将2G运行内存分配给Home Assistant。此外,还需勾选启用自动重启,并在群晖的系统桌面上创建快捷方式。
在群晖的Docker文件夹内创建一个名为Home Assistant的文件夹,所有配置文件、UI美化文件及后续文件都将存放在该文件夹内。装载路径是指Home Assistant存放配置文件的文件夹,即/config。理解装载路径后,即使重新升级Home Assistant,只要文件夹内的数据未被删除,所有配置依然有效。
在网络设置中,直接勾选与Docker主机相同的网络,省去映射端口的麻烦。在环境中新增一个时间设置(TZ),设置为Asia/Shanghai,即东八区时间。勾选向导完成后运行此容器,点击完成,即完成初步搭建。
开源平台的优势在于其灵活性,网上的许多超级大神制作了各种UI美化包,用户可以直接拿来使用。如果你具备较强的设计能力,也可以自己制作更好的主题并进行更换。Home Assistant有一个内部商店,称为HACS,用户可以通过它找到很多资源。
在安装HACS之前,需要在群晖的Home Assistant根文件夹下创建一个自定义组件文件夹,命名为custom_components,并在其中新建一个HACS文件夹。接下来需要下载HACS。GitHub是一个面向开源和私有软件项目的托管平台,许多资源都从这里获取,需要注册一个账号。访问https://github.com/hacs/integration/releases/,下载最新版本的HACS文件夹,将其解压并复制到HACS文件夹内。
重启容器后,进入Home Assistant的配置中找到集成。如果操作步骤正确,可以在设置新集成中搜索到HACS,如果没有找到,可能是出错或未重启。搜索到HACS后,会弹出一个激活窗口,建议在GitHub上登录账号。激活成功后,HACS区域选项将出现在左侧栏,用户可以在商店里找到许多需要的资源。
Home Assistant本身是开源的,只要支持标准的蓝牙Mesh和Wi-Fi协议,都可以接入Home Assistant。如果你的设备是米家系,可以使用大神制作的高度集成插件,一次性接入。对于一些常见的大品牌设备,也有现成的解决方案,可以直接授权接入Home Assistant。但对于一些小众设备,尤其是支持Wi-Fi接入的,需要通过一些手段获取设备的关键密钥,配合IP地址实现接入。
这次我们先从最简单的开始,使用大神制作的米家系高度集成插件——xiaomi-miot。在Home Assistant的配置中添加插件时,直接搜索是没有的,需要在HACS商店中添加。同UI美化一样,HACS需要点击集成去搜索xiaomi-miot。这次是国内大神制作的插件,有中文版,搜索到后直接安装即可。
安装并重启容器后,在配置中就能找到xiaomi-miot插件。有两种接入方式,第一种是通过小米账号接入,这种方式可以接入所有小米账号下的设备,但可能会受到账号本身的限制。第二种是通过IP/token接入,需要手动搜索设备的token并添加,相对复杂,但适用于大量设备接入。这里主要介绍第一种方式,适合新手。
相比早期Home Assistant需要手动添加代码和大量复杂代码的情况,现在的Home Assistant对新手非常友好,可以按照步骤逐步操作,即使是初学者也能轻松上手。未来将会有更多进阶教程,涵盖局域网接入、非米家系设备接入、自动化场景以及更深层次的UI优化等内容。