家庭自动化是一个棘手的领域;我已经警告过你了!在这个由多个部分组成的系列文章中,我将讨论使用开源项目 Home Assistant 进行家庭自动化。这篇介绍性文章将介绍我使用 Home Assistant 的历程、该应用程序的功能以及它为什么重要。
我的旅程是如何开始的
不久之前,当我开始这段旅程时,我的目标并不远大。我只是在解决一个需求。你看,我有一个相当大的 家庭实验室。虽然规模不及一些著名的 YouTube 播主,但我有八台机器,RAM 从 16GB 到 96GB 不等。我有一个 Netgear 10G 以太网交换机作为我的网络基础设施的骨干。但是,我有一个小问题。这个交换机的状态表偶尔会填满,然后崩溃,导致网络也随之崩溃。这是这个型号的已知问题(尽管我事先并不知道)。解决这个问题的唯一方法,在不更换交换机的情况下,就是关闭电源几秒钟,然后再重新打开电源。
这看起来似乎没什么大不了的。尤其是我住在公寓里,所以我甚至不必上下楼梯来做这件事。但是,我在 Red Hat 担任高级 OpenShift 顾问,这意味着我经常出差(至少在 COVID 之前是这样)。我几乎每天都将我的实验室用于与工作相关的活动,我的家人也使用网络进行游戏、观看蓝光电影等。因此,当我在无法进行物理访问时,网络中断是一件非常痛苦的事情。我的解决方案是购买一个智能插头,并将其连接到一个完全不同的网络,该网络上没有任何其他设备,与其他设备完全隔离。如果 Netgear 交换机需要重启,我应该能够远程访问智能插头来重启交换机。
我远离云的旅程
作为一个注重隐私的人,也许有点像戴着锡箔帽的那种,我对任何“云”连接的东西都感到不舒服。我们运行 Plex、Kodi、Nextcloud 以及许多其他服务,因为,嗯,我就是“那个人”。但我并不“反云”。事实上,我日常工作的大部分时间都在与三大云服务提供商合作:AWS、Google Compute 和 Azure。但是,当涉及到部署我依赖的服务时,我有一种几乎非理性的本地托管需求。
在进行了大量的挖掘并与我的同事 Alex Kretzschmar(他也是 Self-Hosted 播客的主持人)交谈后,我发现了可用于某些无线芯片组的替代固件项目,例如 Tasmota 和 ESPHome。我将在以后的文章中介绍不同的芯片组和协议(Zigbee、WiFi、Z-Wave 等),但总而言之,你不会被迫购买依赖云的产品。有一些在线商店,例如 CloudFree,出售预装了 Tasmota 的设备。甚至有一些像 Shelly 这样的公司,生产具有可选云组件的高质量产品,但买家保留本地控制权。
总之,回到我的故事。我买了一个插头,刷了固件以运行 Tasmota,偶尔远程重启我的交换机,事情就结束了,对吧?好吧,如果是这样,我想我就不会写这篇文章了。我现在有 43 个物联网 (IoT) 设备——从我自己构建的传感器到智能灯泡、智能 LED 灯带、红外发射器等等。还记得我说过家庭自动化是一个棘手的领域吗?
我有没有提到我几乎没有焊接、电子理论/维修或任何与家庭自动化远程相关经验?事实上,除了 Linux 和相关技术之外,我是我认识的最不“动手能力强”的人之一。当然,我可以在墙上打个洞或在木板上拧一些螺丝,但在 30 岁之前,我拥有的唯一工具是一个 Dremel 和一些用于安装计算机组件的螺丝刀。
为什么要提到这个?是为了让你确切地了解我开始时有多么落后。如果我能做到,你也能做到!
集中式本地控制
太好了,我有很多 IoT 设备,我可以从手机上开关它们。有一段时间,我只是简单地调用 Tasmota Web UI 并使用其稀疏但功能齐全的控件,我就很满意了。

(Steve Ovens,CC BY-SA 4.0)
即使是我的妻子,感谢她在我不断学习和尝试新事物时的意愿和耐心,也习惯了使用 Tasmota 界面。过了一段时间,随着设备数量的增长,这种管理方法变得不可持续,并且根本无法很好地扩展。
我开始四处打听,了解其他人是如何管理他们的“智能家居”的。说实话,在这一点上,它与其说是智能家居,不如说是我们可以远程控制的少量但不断增长的灯。
该领域的大型开源项目是 openHAB 和 Home Assistant。本系列文章不会以任何方式比较它们。部分原因是,我没有资格这样做,因为我只在过去一年左右的时间里使用 Home Assistant,但也是因为要让我放心地进行这样的比较,我必须将 openHAB 设置为直接替代品,坦率地说,我在 Home Assistant 上投入了太多,无法探索这条途径。
关于 Home Assistant
你可能想知道 Home Assistant 是什么以及它能提供什么。想象一下,一栋房子像科幻电影中那样对它的居住者做出反应。也许你的卧室里有几盏床头灯、一台电视、一些落地灯、一台风扇和一些其他小玩意。当你走进卧室时,灯就亮了。没什么大不了的,你会说;我们已经拥有这项技术一段时间了。当然,你是对的。但是,如果现在已经很晚了,你的另一半已经睡在床上了呢?如果你走进卧室时灯亮了,你可能会受到相当冷淡的迎接。糟糕!
如果,相反,当你晚上走进房间时,落地 LED 灯会发出柔和的光芒——足以让你在不把自己绊倒的情况下走动,但又不会亮到吵醒睡着的伴侣。你爬上床,几分钟后,落地灯就关了。这就是 Home Assistant 可以为你做的事情。
“但是等等!”我听到你在显示器前尖叫。“我可以让 Alexa 或 Google 帮我关灯。”你又对了,当然。但是,当这些服务遭受某种中断时会发生什么?此外,你可能需要考虑你需要多大声说话才能触发监听设备。还记得我说过的关于隐私的事情吗?你真的想让这些大公司了解你的习惯吗?即使抛开隐私问题,也要考虑到其他人也可能使用你的家。这意味着访客需要知道你有哪些可用于控制你的智能设备的命令。
市场上有很多“智能”产品可以设置定时器、计划和场景,但它们都不能真正对任何给定的情况做出反应。这就是像 Home Assistant 这样的家庭自动化中心发挥作用的地方。
Home Assistant 的核心是一个软件,它可以帮助集中你家中所有的传感器、小玩意和小工具。通过让所有这些产品协调工作,你可以设置各种原本不可能实现的条件。
有人进入房间了吗?现在是某一天中的某个时间吗?房间比某个值更热吗?有人在床上吗?所有这些数据点本身用途有限,但加在一起,你可以使用它们来设置黄昏时灯的亮度,因为房间温度高于 26ºC (80ºF) 而打开风扇,但不要打开 Steve 的台灯,因为他的床位有人。
如果你能想象得到,你就可以使用 Home Assistant 和正确的传感器输入来实现它。
可持续且开源
我喜欢 Home Assistant 的一点是,它似乎正在达到各个供应商的临界采用量。但对我来说更重要的是,它背后的公司 Nabu Casa 为社区创建了一个焦点。该公司直接从社区聘请了开发人员,并且如果你不支付月费,它不会惩罚你。Nabu Casa 的收入来自增值项目,例如能够轻松地从世界任何地方访问你的本地 Home Assistant。
这很重要,因为它意味着该项目有一个前进的道路,并且它有可持续的收入用于未来的发展。与“开放核心”模式不同,Home Assistant 是完全开源的,这意味着如果社区强烈反对 Nabu Casa 的方向,它可以将 Home Assistant 分叉到当前状态并走上一条不同的道路。因为我的家人选择让这款软件成为我们与设备交互方式不可或缺的一部分,所以 Home Assistant 拥有收入来源并且完全开源对我来说是无价的。
在下一篇文章中,我将讨论 IoT 设备的一些通用标准以及本地控制的好处。未来的文章将逐步介绍安装 Home Assistant、设置基本插件(例如,MQTT)、Node-RED、社区商店、制作备份等等的基础知识。
同时,如果你想深入探讨某些特定内容,请评论或在 Twitter 上给我发推文。如果我使用过它,我可以谈谈它。
4 条评论