0%

基础架构

介绍

基础架构

HA为家庭控制和自动化提供一个平台,HA不止是一个应用,它是一个嵌入式系统,提供了与其他消费者现成产品一样的体验:安装、配置和更新都是通过一个易用的界面完成的。

  • operating system,提供一个运行Supervisor和Core的最小Linux环境;
  • Supervisor,管理operating system;
  • core,用于与用户、Supervisor以及物联网设备和服务进行交互;

04db23f3f5bb40f69877ba4278ab1e41

Running parts of the stack

用户对家庭自动化平台有不同的需求。这就是为什么只能运行部分Home Assistant堆栈的原因。有关更多信息,请参见安装指导

核心(Core)结构

HA core由4个主要部分组成,在此之上,它包含了许多帮助类来处理常见场景,如提供实体或处理位置。

  • 事件总线(Event Bus),方便事件的触发和监听——HA的心跳。

  • 状态机(State Machine),跟踪事物的状态,并在状态发生改变时触发state_changed事件。

  • 服务注册表(Service Registry),在事件总线上监听call_service事件,并允许其他代码注册服务。

  • 计时器(Timer),在事件总线上每1秒发送一个time_changed事件;

2f13800efefc4cde86eee30139b64e3c

集成(Integration)架构

HA Core能够通过集成进行扩展,每一个集成在HA中负责一个特定域(即特定的功能模块)。集成可以监听或触发事件、提供服务和维护状态。集成由组件(基本逻辑)和平台(与其他集成集成的位)组成。集成是用Python编写的,可以实现Python提供的所有好处。HA提供了一堆现成的内置集成

267c141932b74ea3ba8e1e6c55efed77

HA区分以下集成类型:

定义一个物联网(IOT)域

这些集成定义了HA中物联网设备的特定设备类别,比如灯。由Light集成来定义什么数据可以在HA中使用以及以什么格式使用。它还提供控制灯光的服务。

已定义域的列表,请见entities

要建议一个新领域,请在体系结构存储库中开始讨论。确保展示您所提议的实体将包含哪些数据,以及如何控制这些数据。包括来自多个品牌的例子。

与外部设备和服务交互

这些集成与外部设备和服务交互,并通过定义物联网领域(如Light)的集成使它们在HA中可用。这种集成的一个例子是飞利浦Hue。飞利浦Hue灯在家庭助手中作为Light实体可用。

有关更多信息,请参见entity architecture

表示虚拟或计算的数据节点

这些集成表示实体,要么基于虚拟数据,比如input_boolean集成,即虚拟开关。或者,他们根据HA中可用的其他数据(如template integrationutility_meter integration)来获得自己的数据。

可以由用户触发或响应事件的操作

这些集成提供了家庭自动化逻辑的小块,可以完成您家里的常见任务。最流行的是automation integration,允许用户通过配置格式创建自动化。

它也可以更具体,比如flux integration,它可以根据太阳落山来控制光线。