笔记(一)Home Assistant简介
Home Assistant 是一款基于 Python 的智能家居开源系统,支持众多品牌的智能家居设备,可以轻松实现设备的语音控制、自动化等。
Home Assistant 运行在 Python 3.5.3 及以上 环境下,一般来说,符合 Python 运行条件的系统皆可安装 Home Assistant。
1、安装运行
Home Assistant支持四种不同的安装方式,表中比较了这几种安装方式所支持的功能:
OS | Container | Core | Supervised | |
---|---|---|---|---|
Automations | ✅ | ✅ | ✅ | ✅ |
Lovelace | ✅ | ✅ | ✅ | ✅ |
Integrations | ✅ | ✅ | ✅ | ✅ |
Blueprint | ✅ | ✅ | ✅ | ✅ |
Users Container | ✅ | ✅ | ❌ | ✅ |
Supervisor | ✅ | ❌ | ❌ | ✅ |
Add-ons | ✅ | ❌ | ❌ | ✅ |
Snapshots | ✅ | ❌ | ❌ | ✅ |
Managed OS | ✅ | ❌ | ❌ | ❌ |
官方推荐使用以下两种安装方式:
- Home Assistant Operating System(HassOS):Home Assistant操作系统,使用
管理Home Assistant Core和预装的附加组件。Supervisor
- Home Assistant Container:独立的基于容器的 Home Assistant Core 安装(例如 Docker)。
对于有经验的用户可以使用以下两种安装方式:
- Home Assistant Supervised:手动安装Supervisor。
- Home Assistant Core:使用Python虚拟环境安装。
PS:推荐使用Raspberry Pi 4B + HassOS,这样就可以获得Home Assistant的完整体验,该安装方式会在之后的笔记中进行说明。
安装方式详情如下:
Home Assistant Installation
Home Assistant 中文文档 安装
2、基本配置
Home Assistant安装完成并启动后,通过
http://<ip>:8123
访问,初次使用会要求配置管理用户等信息。
Home Assistant 当中各类智能家居设备以组件(Components)的形式,通过配置
configuration.yaml
文件接入,该文件通常位于
~/.homeassistant/
目录下。
YAML 基本语法规则:
- 大小写敏感
- 使用缩进表示层级关系
- 缩进时不允许使用Tab键,只允许使用空格。
- 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
【注意】yaml配置文件修改后,需要在网页管理页面的 配置-服务控制-配置检查 处检查配置文件格式是否正确**。**
3、概念说明
Home Assistant需要明确**实体(entities)、设备/服务(devices/services)、区域(areas)、集成(integrations)**这几个概念,下图是其相关关系:
3.1 实体(entities)
**实体(entities)**可以说是Home Assistant的最小单位,表示某种单一的属性或者状态。如灯的亮灭、开关的闭合、以天为单位的天气预报、以小时为单位的天气预报、手机的电池电量、手机的IP地址、手机的内部存储或外部存储、地点(公司、家、学校等)、系统用户等。
实体可以单独存在,也可以由各种设备或者服务包含。
3.2 设备/服务(devices/services)
**设备(devices)**对应某种具体的设备,如小米电饭煲、小米台灯、手机、打印机等。
**服务(services)**对应某种具体的服务,如天气。
通常情况下,设备或者服务包含一个或者多个实体。
3.3 区域(areas)
**区域(areas)**是某个指定范围,区域是多个实体、设备或服务的集合,在使用过程中,卧室、客厅、厨房、卫生间等都是一个区域。
3.4 集成(integrations)
**集成(integrations)**通常指同一类型的设备或服务的集合,或是对应的平台。截止到2021年04月26日,Home Assistant已收录1771类集成服务。
如小米的Xiaonmi Router、Xiaomi Sensor、Xiaomi Switch等:
如天气相关的各种服务:
如各种hub:
4、功能说明
Home Assistant有蓝图(blueprint)、自动化、场景、脚本、辅助元素、标签几个主要功能,通过各个功能的配合使用,实现家庭自动化。
4.1 蓝图(blueprint)
**蓝图(blueprint)**提供一系列的自动化模板,通过蓝图可以快速创建家庭自动化实例,以下为 移动亮灯 和 地点离开提醒 的两个蓝图。
点击创建移动亮灯的自动化应用,会进入自动化创建页面,选择检测传感器实体、需要控制的灯和一些其它配置信息就可以创建该自动化应用。
4.2 自动化
自动化是智能家居系统的核心,Home Assistant 提供了丰富的自动化配置模板和延展性。默认安装环境下,自动化相关文件为
automations.yaml
,用户也可通过前端页面 (配置——自动化)编辑自动化,在前端编辑保存后,
automations.yaml
文件将自动同步更新。
Home Assistant 中的自动化遵循触发条件
trigger
—— 环境条件
condition
—— 执行动作
action
的三步逻辑。
触发条件是我们传统意义上的条件,即某个事件的发生启动了自动化的进程,触发条件可为多个;环境条件是附加条件,可为空,即在触发条件发生下,自动化还受某些环境因素所制约;动作则是自动化的目标和终点,即自动化最终要实现的操作。
执行的动作可以为多种类型,如打开设备、服务调用、场景激活等。
4.3 场景
定格一组设备的状态,后续可一键恢复,配合自动化使用。
4.4 脚本
执行一系列的动作,配合自动化使用。
4.5 辅助元素
辅助构建自动化的元素,主要有开关、文本、数值、日期时间、下拉菜单、计数器、计时器等。
如在执行自动化时,可以将添加的计数器作为一个环境条件,用于判断是否执行,也可以将其作为执行动作。
4.6 标签
标签分NFC和二维码两种,用于触发自动化。
5、其它功能
5.1 开发人员工具
用于开发人员对系统进行调试,分状态、服务、模板和事件四部分,分别用于实体状态、服务调用、显示模板以及事件触发的调试和开发
5.2 自定义实体
调整每个实体的属性。添加/编辑的自定义设置将立即生效,删除的自定义设置将在实体更新时生效。实体添加后,可通过该功能修改实体信息
5.3 lovelace 仪表盘
自定义卡片布局,让控制设备更方便。
5.4 人员
管理Home Assistant跟踪的人员,可以和手机等设备绑定,实现人员运动轨迹跟踪,协助自动化执行。
5.5 地点
管理要跟踪人员的区域,如可以添加公司、学校等,但人员进入或者离开地点时,可以触发自动化任务。
5.6 用户
系统后台用户管理。
参考链接
Home Assistant 官方文档
Home Assistant 中文文档
Xiaomi Smart Home Ecosystem.xlsx
树莓派、HomeAssistant、微信小程序实现智能家居互联
智能家居从零开始(Home Assistant)
树莓派 + Home Assistant + HomeKit 从零开始打造个人智能家居系统(5):进阶配置 Home Assistant
树莓派 + Home Assistant + HomeKit 从零开始打造个人智能家居系统(7):平面图(Floorplan)
Home Assistant git仓库地址