最近少数派掀起了一阵树莓派热潮,各色教程涌出水面。将 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 软件名。推荐新手依次安装 sambahomebridgecloud9 这 3 个工具包,功能分别为文件局域网共享、Apple Homekit 服务及在线编译器,相信可以满足大部分用户的需求。
  • 通过内置脚本安装的软件全部已添加自动启动的系统服务,软件源亦全部替换为阿里云、淘宝等国内镜像源,默认系统语言为中文,自带中文输入法。


方法 2(Hass.io)

此方法目前只适用于全系列树莓派及 Intel NUC,关于 Hass.io 更深入的介绍详见『Hass.io 特别篇』。

同样,使用 Etcher 等工具刷写官方最新 固件镜像。(按需选择合适固件)

需要设置WIFI链接的朋友,请修改 TF 卡下 /system-connections/resin-sample 文件

https://docs.resin.io/deployment/network/2.0.0/

之后将 TF 卡插入树莓派,在树莓派联网状态下,等待 1 个小时左右,系统将自动完成安装。

等待过后,在局域网内任意设备的浏览器输入:http://hassio.local:8123,将出现如下 Home Assistant 页面。

home-assistant



三、总结

通过上述 2 种无痛安装方法,相信大家可以很快上手 Home Assistant 并开启相关服务。正常情况下,如果你的系统及浏览器语言设定为中文,那么 Home Assistant 也将自动呈现汉化界面。

得益于 HA 的内置『自动发现』组件,初次打开页面的时候,很可能你局域网内的部分智能设备已经被系统识别添加了。所以看到满满一排的设备小徽章千万不要惊讶~ 你的网络没有被『黑』:)

对于未自动识别的设备,我也将在下一篇『设备接入篇』中继续介绍如何将它们接入 HA 中,欢迎继续阅读:


欢迎大家加入项目相关 Slack 进行讨论。


更新日志

2018.04.20: 全面翻新,引入本地化系统 Mossbian,提供最简化安装方案。

11.19:新增 Hassbian 添加 GUI 的方法。

10.17:更新作者的话。

10.10:国内源替换提示与修改。

09.28:修正 Homebridge 自启部分。

09.27:简单修正。

09.20:Debian 版本更替及兼容性提示。

09.17:发布『高德地图篇』,更新『安装篇』,增加 Raspbian Stretch 版本提示,HA 最新版本为 0.53.1。

09.11:发布『动态平面图篇』,更新『小米篇』,HA 最新版本为 0.53.0。

08.27:发布『答疑篇』,开放 Q&A,HA 最新版本为 0.52.0。

08.08:关闭评论区,计划开放 Q&A 区。

08.01:全文精校,修改 MQTT & Z-Wave 安装说明。HA 最新版本为 0.50.2。

07.30:增加 HB & HA 区别说明。

07.26:添加 Hass.io 安装方法。

07.22:『设备接入篇』更新小米智能家居生态链全系列表,包括 HA & HB 支持详情。

07.19:删除 Kodi 相关内容,文章系列化。

07.05:增加小米扫地机器人支持(已搬运至『小米篇』)

06.06:陆续有 Pi 友出现控制设备失败的现象,大部分由于在 configure.yaml 文件中小米网关的 sid 采用了小写字母。请大家特别注意使用大写字母。另目前最新版本 Home Assistant 为 46.0。


鸣谢

本篇文章参考的代码和内容有:

感谢以上提及作者的分享。


作者的话

距离我发布本系列首篇文章至今已经快半年了,系列至今已有 10 篇教程。无独有偶,JailbreakHum 在 《少数派季度作者颁奖礼开场发言》所阐述的『内容调整』的观点恰恰与我的初衷十分契合。可以说从一开始,我就在整个系列中尽量保证内容的入门性,也在现实中帮助了很多派友成功搭建系统。

在和派友的互动中我意识到碍于英文水平的局限,很多人无法进一步地享受 Home Assistant 带来的便利。鉴于此,我个人独立制作了一份更接地气的 中文文档 ,目前仍处于雏形阶段,还在快马加鞭中,希望可以帮助到更多的人,欢迎大家阅读+收藏。

良好的体验需要良性的互动维持,为了保持版面的整洁,请大家尽量不要在系列所有文章下方评论区 PO 整段的错误代码。遇到问题请至『维护答疑篇』集中评论。