翻译:Home Assistant 家庭助理

发布时间:2024-12-18 10:39

下载翻译APP,如谷歌翻译或百度翻译,方便实时翻译 #生活技巧# #旅行技巧# #旅行语言指南#

翻译自:https://home-assistant.io/developers/architecture/
我是为了方便自己理解作出的翻译,供大家参考,转载请注明出处!

系统架构

在我们深入到家庭助理的架构之前,先知道家庭自动化系统清晰的整体概念是非常重要的。请允许我们用图片展现家庭助理的不同部分。会有有一个时间比较长的讨论在概述中各部分负责的功能,看看我们的博客。一个简洁版本的博客:

Home Control负责导通收集信息和控制设备。Home Automation根据用户的配置触发命令。 Smart Home触发基于之前的出现过的行为命令。(智能吗?)


家庭自动化概述

Home Assistant内核负责家庭控制。它有四个部分,包括以下功能:

该Event Bus 有利于事件的触发和听力。这是Home Assistant跳动的心脏。该State Machine 跟踪事物的状态。当状态已经改变时,发送state_changed的事件。该Service Registry监听Event bus(事件总线)上的call_service事件,并允许其他代码来注册服务。该Timer 将发送的每1秒的time_changed事件给Event bus。

民政助理核心架构的概述

家庭助理可以通过components(组件)扩展的。每个组件负责在家庭助理特定的域。组件可以监听或触发事件,提供服务和保持状态。组件是用Python编写的,可以做所有的Python所提供的善良。开箱即用,家庭助理提供了一堆内置的组件。

我们可以在助手首页区分两个不同类型的组件。

物联网领域里相互作用的组件

这些组件将在一个特定域内跟踪装置和存在一个核心部分和特定平台的逻辑的。这些组件使得可通过State Machine和 Event Bus获得他们的信息。该组件也将在 Service Registry注册服务,公开设备的控制方法。

例如,内置的组件之一是switch组件。此组件是负责与不同类型的开关交互。

如果你打算增加一个新的平台,请查看添加新的平台部分。

家庭助手中对事件作出响应的组件

这些组件提供小部分的家居自动化逻辑或服务——在你的房子里做些普通任务。

例如,device_sun_light_trigger组件跟踪设备的状态和太阳,以确保在灯都打开天黑时或有人在家。该组件的使用逻辑大致如下:

In the event that device 'Paulus Nexus 5' changes to the 'Home' state: If the sun has set and the lights are not on: Turn on the lights123

In the event that the combined state of all tracked devices changes to 'Not Home': If the lights are on: Turn off the lights123

In the event of the sun setting: If the lights are off and the combined state of all tracked device equals 'Home': Turn on the lights123

家庭自动化组件的扩展例子可以点这里。

全貌

当我们把家庭助理的所有的不同部分组合在一起,我们看到,非常接近最初的草图家庭自动化概述。智能家居的AI智能是尚未实现,因此,从下面的图片中省略。
这里写图片描述
完整的家庭助理架构与情侣装组件和平台的概述。

组件的平台逻辑使用第三方Python库的设备进行通信。这样做是为了让我们可以利用那些Python社区伟大的设备库。

多个连接实例

家庭助理支持使用主从模式运行多同步的实例。每当从机调用events.fire或states.set,它将其转发给主机。主机会复制所有的事件并改变状态回复从机。
这里写图片描述
民政助理架构的多种设备的概述。

从实例可以开始下面的代码,并具有组件作为主实例同样的支持。

import homeassistant.remote as remote import homeassistant.bootstrap as bootstrap # Location of the Master API: host, password, port. # Password and port are optional. remote_api = remote.API("127.0.0.1", "password", 8124) # Initialize slave hass = remote.HomeAssistant(remote_api) # To add an interface to the slave on localhost:8123 bootstrap.setup_component(hass, 'frontend') hass.start() hass.block_till_stopped()123456789101112131415

因为每个从机维护其自己的ServiceRegistry,它可能有多个从机对一个服务呼叫作出响应。

网址:翻译:Home Assistant 家庭助理 https://www.yuejiaxmz.com/news/view/508076

相关内容

探索家庭自动化的未来:Home Assistant实战指南
探索未来家居:Home Assistant
家庭自动化配置指南:基于bacco007的Home Assistant配置
Python打造的智能家居神器:Home Assistant
树莓派智能家居,如何在Raspberry Pi上设置Home Assistant
Home Assistant:基于Python的智能家居开源系统详解
打造智能家居的终极指南:Home Assistant配置推荐
探索未来家居控制中心:Mini Graph Card for Home Assistant
【家庭助理】home
**掌握智能烹饪的未来:小米电饭煲Home Assistant集成**

随便看看