HomeAssistant是什么
HomeAssistant,简称 HA,是一款基于 Python 的智能家居开源系统,支持众多品牌的智能家居设备,可以轻松实现设备的语音控制、自动化等。
初次接触 HA 是很早之前,当时被那种万物互联所震撼,智能之家的想法吸引。随着自己的成长,有空间去做这些事。也是时候进入 HA 的世界了,为后面的物联网之家打下基础。
推荐学习站点:
- Home Assistant,HA 的官方网站
- 瀚思彼岸,国内 HA 最热门的论坛
HA 的安装
初次接触 HA,卧槽,根本不知道如何下手。那我们还是从相关概念开始。
HA 的安装方式有很多,大家可以参考这里:installation。简单说 HA 的安装方式有4种:
HA Operating System
,又称 HassOS,提供了一个支持多平台的最小化的 HA 操作系统,底层基于 Docker 容器引擎,通过容器化部署的 Supervisor 容器化控制HA Core
及相关应用。由于是 OS,因此需要独立设备或者虚拟机进行安装。官方推荐HA Container
,基于容器技术独立安装HA Core
,如 Docker。免去了各种环境的不统一困扰。需要在支持容器化技术的系统上使用。HA Supervised
,前身 Hass.io,是一个基于容器化的系统,通过容器化部署的 Supervisor 容器化控制HA Core
及相关应用。HA 提供了 手动安装 脚本。较于HA Operating System
最大的区别就是可以安装在已有的操作系统上,其它都一样。HA Core
,手动安装在 Python 虚拟环境中,纯手动,可能需要一定的折腾能力。
官方建议使用专用干净系统来运行 HA。即用一台独立的硬件来装 HassOS,如果不知道怎么选择,可以使用 Raspberry Pi 和 HassOS。如果有现有系统且支持 Docker,用 HA Container
也不错,如 NAS。
HA 的衍生
围绕着 HA,衍生了很多插件、系统,各种名词,眼花缭乱。新人接触,很容易被整懵,不适合新人学习。这里我把我所接触到的关于 HA 的衍生介绍给大家,希望大家尽快入门。
0、Hass 是什么?
Hass 简单来说就是 HA 实际运行中,为我们服务的程序实例,具体可参考 HA 机制
。
1、Hassbian 是什么?
类 Raspberry Pi 操作系统 raspbian,那么内置了 HA 可安装在 Raspberry Pi 的操作系统就称呼为 hassbian,这是一个统称。
具体的系统可以到这里:操作系统。
2、HassIO (hass.io)是什么?
是一款 HA 特别定制的高集成度、图形化操作、易上手的系统。系统由 ResinOS 及 Docker 驱动,旨在简化 HA 的配置操作。(现在已经没有这个说法了,称作 supervised,合并到 操作系统)。
架构是这样的:
HassIO 通过 docker 将 HA 部署起来,管理着 HA,并通过 HA 的 API 进行有效交互。同时提供了一套插件标准 Add-ons,该标准规范了 HassIO 的容器编写规范。
3、HomeBridge 是什么?
简称 HB。通过模拟 iOS HomeKit API,架设一个桥梁,使得不支持 HomkeKit 的智能设备接入 HomeKit。
HA 与 HB 是两个完全独立的系统,各自可以独立运行。HB 的主要目的是桥接不支持 HomeKit 的智能设备,桥接完成后我们可以通过 iOS 家庭
进行管理。或者接入 HA 自动化管理。
目前 HA 已经内置了 Bridge,通过 配置 -> 集成 -> 添加集成 -> 搜索HomeKit
即可。不过据说,HB 可以支持更多的智能设备,且它的 UI 做得比较棒。当然两者都可以自行定制 UI,不过得自我折腾。
4、HACS(Home Assistant Community Store) 是什么?
可以理解为 HACS 是一个为 HA 提供强大 UI 的商店,用于页面美化以及个性化自定义的。里面也支持了很多强大的插件,大家可以自己慢慢体会。
5、Node-RED 是什么?
Node-RED是一种编程工具,用于以新颖有趣的方式将硬件设备、API 和在线服务连接在一起。
它提供了一个基于浏览器的编辑器,可以轻松地使用面板中广泛的节点连接流,这些节点可以在一次单击中部署到运行时。
总之想要将这些东西玩起来还是需要费一定功夫的,如果没有人指导个人觉得比较难入门。
HA 的机制
HA 是运行在 Python3 环境中的,核心进程是:Core,目前版本通过日期形式定义:最新版本。
如果按照分层概念来看的话,可以分为三层:操作系统、运行环境、Hass。
而 HA 又主要分为三大块:HA Core
、 Integration
和配置文件 configuration.yml
,它们组成了完整的 HA。
1、HA Core
是整个系统的大脑,相当于操作系统的内核,用来决策和调度相关资源。它有四个核心部分:
- 事件总线(Event Bug),HA 的心脏,负责监听和触发事件
- 状态机(State Machine),跟踪事物的状态,并
state_changed
在状态更改后触发事件 - 服务注册表(Service Registry),在事件总线上侦听
call_service
事件,并允许其他代码注册服务 - 计时器(Timer),
time_changed
每1秒在事件总线上发送一个事件
2、Integration
集成,Core
作为大脑,总得有可利用的手脚吧,集成就是如此。
HA Core
通过集成进行扩展。每个集成都负责 HA 中的特定域。集成可以侦听或触发事件,提供服务并维护状态。集成由组件(基本逻辑)和平台(与其它集成集成的位)组成。集成是用 Python 编写的,可以实现 Python 能够提供的所有优势。开箱即用的 HA 提供了许多 内置集成。
HA 中定义了4种集成类型:
- 定义物联网域,该集成定义了物联网设备的 特定类别,如灯
light
,它定义了什么数据和格式在 HA 可以使用。另外已定义的 域列表。如果要建立一个新的域,还可以在 这里讨论。 - 定义与外部设备和服务互动,该集成定义了在 HA 中如何通过已定义的《物联网域》与外部设备和服务进行交互,如灯
light
,一个例子是 Philips 灯可以作为灯的实体在 HA 进行交互,更多信息:实体体系结构 - 表示虚拟/计算数据点,该集成表示基于虚拟数据的实体。如 input_booleanIntegration,即虚拟交换机。或者通过 HA 中其它数据做处理输出,如 templateIntegration 和 utility_meterIntegration。
- 由用户或响应事件触发的动作,该集成提供了家庭自动化逻辑的小片段,可在您的房屋中执行常见任务。最受欢迎的一种是 automation集成,它允许用户通过配置格式创建自动化。如 fluxIntegration,它可以根据太阳落山来控制灯光。
3、configuration.yml
配置文件是用来帮助我们完成上述功能的,当然也可以通过 HA front
网页 UI 进行操作。
具体配置详细,请参考下篇文章。
本文链接:https://deepzz.com/post/homeassistant-introduce.html,参与评论 »
--EOF--
发表于 2021-03-26 11:31:00,并被添加「homeassistant」标签。
本站使用「署名 4.0 国际」创作共享协议,转载请注明作者及原网址。更多说明 »
提醒:本文最后更新于 1336 天前,文中所描述的信息可能已发生改变,请谨慎使用。
专题「智能家居」的其它文章 »
- 如何玩转智能家居 - 组建局域网,访问家庭网络 (Nov 20, 2022)
- 如何玩转智能家居 - 网络组网方案实施 (Jun 23, 2022)
- 如何玩转智能家居 - 家庭组网方案选择 (Apr 13, 2022)
- 如何玩转智能家居 - 灯控方案选择 (Mar 31, 2022)
- 如何玩转智能家居 - HomeAssistant接触 (Apr 12, 2021)
Comments