介绍
基础架构
HA为家庭控制和自动化提供一个平台,HA不止是一个应用,它是一个嵌入式系统,提供了与其他消费者现成产品一样的体验:安装、配置和更新都是通过一个易用的界面完成的。
- operating system,提供一个运行Supervisor和Core的最小Linux环境;
- Supervisor,管理operating system;
- core,用于与用户、Supervisor以及物联网设备和服务进行交互;
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事件;
集成(Integration)架构
HA Core能够通过集成进行扩展,每一个集成在HA中负责一个特定域(即特定的功能模块)。集成可以监听或触发事件、提供服务和维护状态。集成由组件(基本逻辑)和平台(与其他集成集成的位)组成。集成是用Python编写的,可以实现Python提供的所有好处。HA提供了一堆现成的内置集成
HA区分以下集成类型:
定义一个物联网(IOT)域
这些集成定义了HA中物联网设备的特定设备类别,比如灯。由Light
集成来定义什么数据可以在HA中使用以及以什么格式使用。它还提供控制灯光的服务。
已定义域的列表,请见entities
要建议一个新领域,请在体系结构存储库中开始讨论。确保展示您所提议的实体将包含哪些数据,以及如何控制这些数据。包括来自多个品牌的例子。
与外部设备和服务交互
这些集成与外部设备和服务交互,并通过定义物联网领域(如Light
)的集成使它们在HA中可用。这种集成的一个例子是飞利浦Hue。飞利浦Hue灯在家庭助手中作为Light
实体可用。
有关更多信息,请参见entity architecture。
表示虚拟或计算的数据节点
这些集成表示实体,要么基于虚拟数据,比如input_boolean集成,即虚拟开关。或者,他们根据HA中可用的其他数据(如template integration或utility_meter integration)来获得自己的数据。
可以由用户触发或响应事件的操作
这些集成提供了家庭自动化逻辑的小块,可以完成您家里的常见任务。最流行的是automation integration,允许用户通过配置格式创建自动化。
它也可以更具体,比如flux integration,它可以根据太阳落山来控制光线。