Home Assistant 系列基础篇 - 设备接入

欢迎加入 HA 技术讨论群:515348788

相信大家通过之前的 安装篇 已经成功安装了 Home Assistant (HASS) 和 Homebridge,在这篇文章中,我将带领大家接入智能家居设备。

大多数人初接触 HASS 的时候经常一头雾水,原因是 HASS 的配置体系十分混乱,一个设备的完美接入需要涉及多个配置文件。实际上,系统架构不清晰也是 HASS 的最大缺点,因此,在开始配置教程前,我先帮助大家捋一捋 HASS 的配置框架。

HASS 配置框架

HASS 的核心配置围绕 configuration.yaml 文件展开, 在这里你可以进行时区、度量单位、开发者模式、主题选择等等基础配置。当然,最为重要的,你将在该文件内完成所有设备的接入。这也是本篇教程的重点

HASS 的运行依赖于一个个相对独立的功能组件(Components),比如小米米家平台就可以视作一个组件。有些时候,部分设备或者功能仍未得到 HASS 的官方支持,你必须在主目录下新建自定义组件custom_components文件夹,添加相关的设备支持文件。

完成上述的文件修改,加上 HB 的配置,你就可以自如控制所有智能家居设备了。

然而,使用一段时间后,你可能会觉得设备太多显示凌乱,想给界面换个风格,或者configuration.yaml文件看起来要炸了。此时,你会考虑把部分配置剥离出去形成独立的文件,以满足你的强迫症。例如你开启了“设备追踪功能”(Device Tracker),那么 HASS 将在主文件下自动生成 known_devices.yaml文件,你将在这里配置需要追踪的设备。本篇教程也将涉及相关内容。至于主题设置、群组设置等其他非功能性设置,我将在之后的”个性化配置“中详细介绍。

主文件设置

上一篇教程中我们已经打开了树莓派的 SMB 服务,现在我们通过 SMB 打开 HASS 主目录。

(macOS 在 FInder 左侧栏“共享的”接入,Windows 在 计算机-地址栏 里直接输入 //树莓派地址 即可跳转)

打开configuration.yaml,文件默认包含如下内容,我们按需修改:

1
2
3
4
5
6
7
8
9
10
11
12
13
homeassistant:
#经纬度
latitude: 32.87336
longitude: 117.22743
#海拔
elevation: 430
#度量单位,默认米
unit_system: metric
#时区
time_zone: Asia/Shanghai
#系统昵称,显示在主界面顶部
name: Home

正常情况下,剩下的部分便无须变动了。现在添加雅虎天气服务小试牛刀一下吧:

1
2
3
4
weather:
- platform: yweather
woeid: 2151849

其中,woeid是城市代码,打开雅虎天气官网输入城市后搜索,url的最后几位数字便是

woeid

保存,重启 HASS。

恭喜你,接入了第一个 HASS 组件~ 现在你大概明白 HASS 是怎么个操作原理了,HASS 支持上千款智能家居设备,你可以 到此 寻找你的设备按上述方法接入。

如果你通过 前文 安装了 homebridge 插件,那么现在你可以轻松地将接入 Hass 的设备对接到手机上的『家庭』应用,实现 Siri 的控制。一切都是自动进行的。


鹬蚌相争?

在之前的 安装篇 中我们知道 Homebridge 本身可以通过安装插件的方式将智能设备接入 Apple Home 平台,有的时候设备同时支持 HASS 和 Apple Homekit 2 个平台,这时我们就面临平台选择。

首先,这个问题似乎只存在 iOS 以及未来的 macOS 用户身上,因为只有你们可以使用 Siri,才可以痛并快乐着。 对于其他终端系统的用户而言,要么和设备厂家的 app 斗智斗勇,要么享受 HASS 网页操控的快感,至于语音控制,就还需等待了。当然,Homebridge 现在也支持 Web UI 操作,详见 此文,只是各方面还不完善。总体来说,HB 目前还是为 Apple 生态用户准备的。

其次,Hass 和 HB 对设备的支持度不一,两个平台之间没有绝对的胜者,都需要具体情况具体分析。个人认为大多数情况下,Hass 对设备的支持更好,并且基于社群支持,跟进速度也更快。采用设备自动映射支持的方式,也避免了要安装一堆 HB 插件的麻烦。

在这里再次提醒初学者:二者必取其一,同一设备请通过一个平台接入,否则将产生冲突。


对于已经将设备通过 HB 接入,但想转入 HASS 平台的派友,这里提供如下兼容方案:

  1. 在 HASS 接入相关设备,详见上文。

  2. 在 HASS 主页面侧边栏,点击下方 “<>”,获取设备的 entity ID:

States 面板

  1. 在 HASS configuration.yaml 配置文件中添加如下设置:

设备个性化

则该设备将在 Homebridge 中被隐藏,重启后不会被 家庭 App 重复识别添加。

此时,你可以通过 Apple Homekit 和 Hass 平台同时控制该设备。


设备追踪设置

HASS 可以追踪同一路由器内网设备联网状态,我们转换一下思路,便可以利用这个系统判断家人是否在家等,非常方便。

家人追踪

我的路由器是 ASUS AC66U-B1,HASS 原生支持大部分品牌的路由器,包括小米路由器、TP-LINK 等。不同的路由器对应配置方法不同,具体请大家前往 官网 查询。设置前需要打开路由器的 SSH 模式,请大家设置好密码等,保护数据安全。建议设置仅限 LAN 用户拥有 SSH 权限。

打开configuration.yaml文件,末尾添加:

1
2
3
4
5
6
7
8
9
10
11
12
device_tracker:
- platform: asuswrt (按需填写,小米为“xiaomi”,Netgear为“netgear”,TP-LINK为“tplink”)
host: 192.168.xx.1 #路由器Ip
username: ***** #管理员账号
password: ****** #管理员密码
track_new_devices: no #是否自动添加新设备

不出意外,重启 HASS 后,主文件夹下便会自动生成 known_devices.yaml 文件,打开之后你会发现,系统已经自动为嗅探到的连接到路由器的设备添加了默认配置:

1
2
3
4
5
6
7
8
devicename:
name: Friendly Name #昵称
mac: EA:AA:55:E7:C6:94 #mac地址
picture: https://home-assistant.io/images/favicon-192x192.png #图片
icon: mdi:human-female #图标,和图片取一个设置
track: yes #是否追踪
hide_if_away: no #离开后是否自动隐藏

在接下来的教程中,我将指导大家如何进行自动化配置,真正实现人工智能,摆脱遥控的束缚、更换主题,展现个性、设置简洁大方的控制面板等等等等

HADashboard

更多精彩 Home Assistant 入门视频教程,欢迎前往网易云课堂学习。


Changelog

  • 2018.3.21 大幅更改

  • 2017.8.5 更改 config.json 设置路径,增加删除 HB 缓存方法。

cxlwill wechat
欢迎扫码订阅“墨澜工作室”公众号,获取最新文章推送。