树莓派 + Home Assistant + HomeKit 从
如同很多开源项目,Home Assistant 对新手十分不友好,它更像是 Geek 们的玩物,你需要去阅读大量的英文文档,在编辑器里编辑自己的配置文件、手动添加智能设备、自定义每一个细节,这巨大的工作量使人望而却步。而 Hass.io 就是在这样一个背景下推出,它拥有了全新的可视化安装配置界面,能够轻松的安装与升级(不要在意那些网络细节),更重要的是依托于 Docker 技术,Hass.io 提供了插件(Add-ons)功能,你能够非常方便的安装与管理一些之前需要在命令行环境下部署的功能。如果你随同上一篇文章安装好了自己的 Hass.io,那么今天,我们将一起让它真正工作起来。
一、插件的安装
安装插件点击左边栏 Hass.io 选项,于右上方进入插件商店。
插件商店插件(Add-ons)扩展了 Home Assistant 的功能,官方提供了 Duck DNS、Google Assistant、SSH Server、Samba 等插件,用户还可以通过简单的操作,安装第三方插件,实现更多功能。
安装 Samba 插件
Samba 是 SMB/CIFS 网络协议的重新实现, 它作为 NFS 的补充使得在 Linux 和 Windows 系统中进行文件共享、打印机共享更容易实现。
Smaba 服务是必装的一个插件,Hass.io 通过它与局域网内的其他设备进行文件共享,是之后编辑 Hass.io 配置文件的前提。在插件商店找到 Smaba Share,点击进入安装界面,点击 INSTALL 进行安装。
Smaba安装结束后(耐心等待)进入 Info 及 Options 界面,打开自动更新,点击 Start,SMB服务就启动了。
配置Smaba{
"workgroup": "WORKGROUP", /*用户组(可选),默认值 WORKGROUP。*/
"name": "hassio", /*用户名(可选),默认值 hassio。*/
"guest": true, /*(可选)是否允许客人用户(无用户名无密码)默认值 true。*/
"map": { /*开放文件夹(可选),可选有 config,addons,share,backup,ssl。*/
"config": true,
"addons": true,
"ssl": false,
"share": true,
"backup": true
},
"username": "", /*登录用户名(可选)。*/
"password": "", /*登录密码(可选)*/
"interface": "eth0" /*开放接口(可选),有线网连接使用 eth0,无线网连接使用 wlan0。*/
}
▲配置说明
安装 SSH server 插件
{
"authorized_keys": [], # 公钥,与下一个选项二选一,两种登陆方式
"password": "1234567" # 填入SSH登陆密码
}
▲配置说明
通过 SSH 登录的用户名是 root
。
二、Home Assistant 配置框架
在 Windows 或 macOS 的网络共享中找到并打开 hassio
,(如果在 Windows 网络中不显示,在资源管理器中输入 \\HASSIO
回车后进入)config
文件夹内的 configuration.yaml
,是我们配置的主文件,通过编辑此文件来设置 Hass.io、添加组件、个性化配置系统。
你必须重新启动 Home Assistant 才能使更改后的
configuration.yaml
生效。
YAML 是一个可读性高,用来表达资料序列的编程语言。YAML参考了其他多种语言,包括:XML、C语言、Python、Perl以及电子邮件格式RFC2822,是专门用来写配置文件的语言,非常简洁和强大,远比 JSON 格式方便。
需要注意的是 YAML 是一个对缩进以及空格等元素敏感的编程语言,而
configuration.yaml
的语法错误会造成 Hass.io 无法正常运行。
YAML 基本语法规则:
- 大小写敏感
- 使用缩进表示层级关系
- 缩进时不允许使用Tab键,只允许使用空格。
- 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
推荐使用 Sublime 或者 Atom 编辑 configuration.yaml
文件,你可以使用 YAMLLint 检查您的YAML语法是否正确。
下面是典型的 configuration.yaml
文件。
homeassistant:
# 后面的文字是注释,被系统忽略。
# 智能家居系统的名字,显示在主界面顶部。
name: Home
# 下面填入纬度和经度,计算太阳升起和设定时间所需位置,越精确越好。
latitude: 30.169813
longitude: 114.192472
# 海拔高度用于修正天气参数和日出日落时间参数 (默认单位是:米)。
elevation: 37
# 度量衡单位制式(metric)是公制,(imperial)是英制。
unit_system: metric
# 时区,从这里选择你的:http://en.wikipedia.org/wiki/List_of_tz_database_time_zones,一般不需要修改。
time_zone: Asia/Shanghai
#下面这个区域,用于自定义设备属性,后期文章会有涉及。
customize: !include customize.yaml
#在网页界面的首页显示简介(那一大段英文),不想看到的话,请在前面加上#号。
introduction:
# 是否使用默认的“首页”
frontend:
http:
# 给系统网页的登录加上一个密码,先去掉下面这行的#号,然后把PASSWORD改成你想要的密码。
api_password: raspberry
# 升级提示,当 HomeAssitant 有新版本发布的时候,“日出日落”图标会变成(Update)字样
updater:
# 系统自动发现新的设备
discovery:
# 启动浏览器的语音命令
conversation:
# 在系统数据库中保存“历史数据”
history:
# 在logbook查看所有的“已发生事项”
logbook:
# 设置
config:
# Hass.io
hassio:
# 太阳“跟踪器”,也就是“日出日落时间”
sun:
# 小米智能网关
xiaomi:
gateways:
- mac: xxxxxx
key: xxxxxx
sensor: !include sensors.yaml
group: !include groups.yaml
automation: !include automations.yaml
三、添加第一个设备/服务
在 Home Assistant 中,所有接入设备或者服务,只需要将相关组件写入 configuration.yaml
文件中即可。
组件(Components)是 Home Assistant 的设备/服务接入形式,官方支持了 700 多种设备(虚拟设备)的接入,在 0.50 版本中,支持了小米智能家居的多种设备。通过自定义组件以及第三方组件,能够实现更多设备的接入。
添加 Denon 功放
Home Assistant 对组件进行了分类,同品牌的设备会归于一个平台。根据官方文档,在 configuration.yaml
文件中添加以下内容。
# 天龙功放
media_player: # 设备类型
- platform: denon # 所属平台
host: 192.168.1.13 # IP地址
重启 Home Assistant 服务。
重启 Home Assistant 服务的几种方法:
重启 Home Assistant 服务 重启 Home Assistant 服务 重启 Home Assistant 服务在 Advanced Settings 中,还可以直接重启树莓派。
重启 Home Assistant 服务
是不是很贴心,再加上 SSH 连接下的命令行重启,Home Assistant 为我们展示了服务重启的五种方法,这个知识点大家一定要牢记,必考题。
刷新浏览器,Marantz NR1504 设备就显示在 Home Assistant 首页上了。
关闭状态 开启状态 控制面板四、下节预告
- 小米设备的接入
- Home Bridge 安装与配置
- HomeKit 配置与使用