天天看点

笔记(一)Home Assistant简介笔记(一)Home Assistant简介

笔记(一)Home Assistant简介

Home Assistant 是一款基于 Python 的智能家居开源系统,支持众多品牌的智能家居设备,可以轻松实现设备的语音控制、自动化等。

Home Assistant 运行在 Python 3.5.3 及以上 环境下,一般来说,符合 Python 运行条件的系统皆可安装 Home Assistant。

笔记(一)Home Assistant简介笔记(一)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操作系统,使用

    Supervisor

    管理Home Assistant Core和预装的附加组件。
  • 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)**这几个概念,下图是其相关关系:

笔记(一)Home Assistant简介笔记(一)Home Assistant简介

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等:

笔记(一)Home Assistant简介笔记(一)Home Assistant简介

如天气相关的各种服务:

笔记(一)Home Assistant简介笔记(一)Home Assistant简介

如各种hub:

笔记(一)Home Assistant简介笔记(一)Home Assistant简介

4、功能说明

Home Assistant有蓝图(blueprint)、自动化、场景、脚本、辅助元素、标签几个主要功能,通过各个功能的配合使用,实现家庭自动化。

4.1 蓝图(blueprint)

**蓝图(blueprint)**提供一系列的自动化模板,通过蓝图可以快速创建家庭自动化实例,以下为 移动亮灯 和 地点离开提醒 的两个蓝图。

笔记(一)Home Assistant简介笔记(一)Home Assistant简介

点击创建移动亮灯的自动化应用,会进入自动化创建页面,选择检测传感器实体、需要控制的灯和一些其它配置信息就可以创建该自动化应用。

笔记(一)Home Assistant简介笔记(一)Home Assistant简介

4.2 自动化

自动化是智能家居系统的核心,Home Assistant 提供了丰富的自动化配置模板和延展性。默认安装环境下,自动化相关文件为

automations.yaml

,用户也可通过前端页面 (配置——自动化)编辑自动化,在前端编辑保存后,

automations.yaml

文件将自动同步更新。

Home Assistant 中的自动化遵循触发条件

trigger

—— 环境条件

condition

—— 执行动作

action

的三步逻辑。

触发条件是我们传统意义上的条件,即某个事件的发生启动了自动化的进程,触发条件可为多个;环境条件是附加条件,可为空,即在触发条件发生下,自动化还受某些环境因素所制约;动作则是自动化的目标和终点,即自动化最终要实现的操作。

笔记(一)Home Assistant简介笔记(一)Home Assistant简介

执行的动作可以为多种类型,如打开设备、服务调用、场景激活等。

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仓库地址

继续阅读