树莓派 + Home Assistant + HomeKit 从零开始打造个人智能家居系统 篇三:进阶配置 Home Assistant
通过本篇教程,你将完成对 Home Assistant 的进一步配置,个性化设置与管理你的智能家居设备。
题外话
关于智能家居,我与很多人一样,因新房装修而开始关注,2014 年智能家居市场方兴未艾,还是传统智能家居厂商的天下,同年 Apple 在 WWDC 上发布了 HomeKit 智能家居平台,到了 2015 年才在 iOS 9 中内置了“家庭”App。而在这一年,国内也诞生了小米智能家庭、阿里智能、京东微联等平台,可以说,智能家居领域我们是和世界同步的。
2016 年接触了 Homebridge 、HomeKit 、Home Assistant 等内容,我就尝试着自己也整一套试试。用户规模决定了相关领域的繁荣,网上关于智能家居的文章汗牛充栋,我自认为还是有些软硬件基础,期间却也走过不少弯路。如今跟大家分享这一点个人爱好,也不免拾人牙慧,因为官方文档就在那里,你不可能跳出这个框架之外。书写这个系列文章的初衷,就是想让更多人能够加入进来,哪怕是零基础的小白。所以我会选择一个我认为最笔直的路给你,我会添加很多的引用,还会提到一些我认为容易错的点,并且尽量不涉及代码与命令行,与其说是原创教程,不如说是一个中文版本的注释或诠释更为恰当。
有人跟我说,还是太复杂,99%的有智能化需求的客户不会花时间去整这些。
一、检查配置
有不少人反馈,在安装和配置中遇到了问题,或是 Home Assistant 界面直接无法显示,又或是某一个组件没有正常显示,通常后者还能在系统首页看到相关提示。
每当组件或配置选项导致警告时,相关信息将存储在配置目录下的 home-assistant.log 文件中。此文件在 Home Assistant 开始时重置。
Home Assistant 大多数异常情况都是因为 configuration.yaml 文件错误而导致的,而新手通常在不同地方取得这些配置,不同论坛、网站对于代码的显示效果是不同的,非常容易导致 YAML 文件语法错误,在修改 configuration.yaml 配置文件后,可在侧面板 Configuration > General > Configuration Validation 处检查,通过后再重启服务。

▲检查配置文件
还是推荐使用支持 YAML 语法的 Sublime 或者 Atom 对 configuration.yaml 进行修改,能够实时发现错误。
复习一下 YAML 基本语法规则:
■ 大小写敏感
■ 使用缩进表示层级关系
■ 缩进时不允许使用Tab键,只允许使用空格。
■ 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
对于同一种类的组件,如果有多个,或者多个不同平台的设备,按以下格式填写:
sensor: # 组件名,在配置文件中不能重复
- platform: forecast
...
- platform: bitcoin
...
二、自定义设备
一般设备接入后,显示的名称是一长串信息,如下图左边第一行设备所示,而自定义后,如下图右边所示。

▲设备显示
获取设备 ID
所有设备在 Home Assistant 中进行配置,都有一个唯一的 ID,这个 ID 在侧面板 Developer Tools 中的 “<>”States 中获得。

▲获取设备 ID
别问我怎么区分同一类的不同设备,名字那么像,在首页操作哪个,哪个有反应,就是那个。?
配置文件
在 configuration.yaml 文件中,添加 customize: ,示例如下:
homeassistant:
name: Home
unit_system: metric
# 示例
customize: # 注意缩进 customize 属于 homeassistant 下级,与 name 同级
sensor.living_room_motion: # 设备 ID
friendly_name: 客厅动作传感器 # 昵称 即你想要的设备名
icon: mdi:run # 图标 即设备左侧显示,详情见下方引用
hidden: true # 是否在 Home Assistant 中隐藏
homebridge_name: 动作传感器 #在 iOS 家庭 App 中的名称
homebridge_hidden: