最近少数派掀起了一阵树莓派热潮,各色教程涌出水面。将 Pi 接入智能家居控制系统并不新鲜,现有通过 Homebridge (下称「HB」)接入 Homekit 的教程本身已经非常全面,但是由于 Homekit 本身的局限性,使其对智能家居设备的支持广度和深度不足,间接影响了用户的使用体验。例如,早期 homebridge-aqara 插件并不支持小米网关 2 的自带灯光控制,白白浪费了设备的功能。
为了摆脱这一束缚,我们可以利用另一个强大的智能家居平台:Home Assistant(下称「HA」)。
Home Assistant 是一个成熟完整的基于 Python 的智能家居系统,设备支持度高,支持自动化(Automation)、群组化(Group)、UI 客制化(Theme) 等等高度定制化设置。背后又有庞大的社群基础,且不断在更新。最重要的是我们可以通过 Homeassistant-homebridge 插件打通两个平台,同样实现设备的 Siri 控制。整套体系的框架如下:
可以看出,Home Assistant 作为接入所有智能家居设备的「平台」,通过 Homebridge 这一「桥梁」,最终实现 iOS 及 macOS 设备对智能家居的设置。
我们知道 Homebridge 本身可以接入部分原生不支持 Apple Homekit 的设备,但由于 Homekit 本身的局限性,“桥梁”再强大,也无法逾越其极限。
打个比方来说,每个人都能单独过桥到对岸,但是速度始终有限,如果我们把人装进车里一起运送过桥,效率则更高,同时多了车内这么一个空间。这里的“车”就可以看作是 HA。
HA 本身作为一个独立的平台,有能力集成大量量产或 DIY 的智能家居设备,并且拥有独立的控制前端,在层级上来说是和 Appple Home 平台平起平坐的大 Boss。换言之,通过 HB 接入 Homekit 只是这个平台应用的一部分,对于其他非 Apple 生态用户,HA 也同样给予其完整丰富的智能家居体验。
本系列将围绕安装、配置、开发等内容,详细介绍 HA 平台的方方面面,同时针对 HA 与 HB 兼容与选择,自动化配置方法等等问题给出自己的观点和探索,希望可以给大家玩转智能家居带来新的启发和收获。
HA 支持大部分平台,包括 Docker、macOS、Linux、Windows等。简而言之,只要你的主机能跑 Python,基本就能安装 HA。配合『魔镜』项目,以及便捷性的考虑,我选择的平台是树莓派 3B(已更新至树莓派 3B+),本系列教程也将基于树莓派展开。
一、简介
在树莓派安装 HA,有 4 种方法可供选择:
1. 以其他操作系统(如 Raspbian)为根系统,手动进行安装;
2. 直接安装集成了 HA 的 Hassbian 系统;
3. 直接安装作者制作的中文版 Mossbian 系统;
4. 直接安装基于 Docker 容器的集成系统 Hass.io。
以上 4 种方法从性能上来说并无二异,均能实现 HA 全部功能,Mossbian(Hassbian) 实际上亦基于 Raspbian ,其中需要纳入考虑的是『图形化用户界面』和『本地化』的需求。Mossbian 镜像在这 2 方面均优于其他系统。
对于刚入门的新手、英语头疼者及想摆脱大量代码的朋友,系统的推荐度依次为:Mossbian > Hassio > Hassbian > Raspbian。
下面将介绍前述 2 个即开即用系统的安装方法,降低大家的入门门槛。更完整的安装教程请参考 Home Assistant 中文文档 。
目前除 Hass.io 外,其余镜像均支持 2018 年 3 月份推出的树莓派 3B+。
二、详述
方法 1 (Mossbian)
- 下载刷写最新 Mossbian 镜像,使用 Ether 等工具刷写至 TF 卡。
- 如需使用无线网,请在初次启动前,将 TF 卡接入电脑。修改根目录 boot 下的 wpa_supplicant.conf 文件,填写无线网 SSID 和密码:
country=CN
CTRL_INTERFACE=dir=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="Wifi 名称"
psk="Wifi 密码"
key_mgmt=WPA-PSK
priority=1
}
- 插卡启动树莓派
- 镜像默认开机联网状态下将自动联网下载安装 Home Assistant。安装需要一定时间,安装成功后 Home Assistant 将自动启动。请注意:初次启动后 HA 后台还将会下载大量依赖,因此上述所有步骤将耗时一定时间,请耐心等待。
- 安装成功后, 使用局域网内任意设备打开
http://树莓派 IP:8123
即可进入 Home Assistant 页面
- Mossbian 系统自带专用工具包
hassbian-config
,能够极大方便与 Home Assistant 有关插件和依赖的安装与配置。 - 工具使用方法为:
sudo hassbian-config install 软件名
。推荐新手依次安装samba
、homebridge
、cloud9
这 3 个工具包,功能分别为文件局域网共享、Apple Homekit 服务及在线编译器,相信可以满足大部分用户的需求。 - 通过内置脚本安装的软件全部已添加自动启动的系统服务,软件源亦全部替换为阿里云、淘宝等国内镜像源,默认系统语言为中文,自带中文输入法。
方法 2(Hass.io)
此方法目前只适用于全系列树莓派及 Intel NUC,关于 Hass.io 更深入的介绍详见『Hass.io 特别篇』。
同样,使用 Etcher 等工具刷写官方最新 固件镜像。(按需选择合适固件)
需要设置WIFI链接的朋友,请修改 TF 卡下 /system-connections/resin-sample
文件
之后将 TF 卡插入树莓派,在树莓派联网状态下,等待 1 个小时左右,系统将自动完成安装。
等待过后,在局域网内任意设备的浏览器输入:http://hassio.local:8123,将出现如下 Home Assistant 页面。
三、总结
通过上述 2 种无痛安装方法,相信大家可以很快上手 Home Assistant 并开启相关服务。正常情况下,如果你的系统及浏览器语言设定为中文,那么 Home Assistant 也将自动呈现汉化界面。
得益于 HA 的内置『自动发现』组件,初次打开页面的时候,很可能你局域网内的部分智能设备已经被系统识别添加了。所以看到满满一排的设备小徽章千万不要惊讶~ 你的网络没有被『黑』:)
对于未自动识别的设备,我也将在下一篇『设备接入篇』中继续介绍如何将它们接入 HA 中,欢迎继续阅读:
欢迎大家加入项目相关 Slack 进行讨论。
更新日志
07.05:增加小米扫地机器人支持(已搬运至『小米篇』)
06.06:陆续有 Pi 友出现控制设备失败的现象,大部分由于在 configure.yaml 文件中小米网关的 sid 采用了小写字母。请大家特别注意使用大写字母。另目前最新版本 Home Assistant 为 46.0。
鸣谢
本篇文章参考的代码和内容有:
- 威锋网 hhalibo 的 教程
- 什么值得买 Yang_John 的 分享
- 少数派网站 Junyi Lou 的 教程
- Homebridge GitHub 源码
- Home Assistant GitHub 源码
感谢以上提及作者的分享。
作者的话
距离我发布本系列首篇文章至今已经快半年了,系列至今已有 10 篇教程。无独有偶,JailbreakHum 在 《少数派季度作者颁奖礼开场发言》所阐述的『内容调整』的观点恰恰与我的初衷十分契合。可以说从一开始,我就在整个系列中尽量保证内容的入门性,也在现实中帮助了很多派友成功搭建系统。
在和派友的互动中我意识到碍于英文水平的局限,很多人无法进一步地享受 Home Assistant 带来的便利。鉴于此,我个人独立制作了一份更接地气的 中文文档 ,目前仍处于雏形阶段,还在快马加鞭中,希望可以帮助到更多的人,欢迎大家阅读+收藏。
良好的体验需要良性的互动维持,为了保持版面的整洁,请大家尽量不要在系列所有文章下方评论区 PO 整段的错误代码。遇到问题请至『维护答疑篇』集中评论。