集成平台
Home Assistant有各种内置集成来抽象设备类型,包括灯光、开关、窗帘、气候设备等等。你的集成可以通过创建一个平台来挂钩到这些集成中。对于你要集成的每个集成,都需要一个平台。
要创建一个平台,你需要创建一个文件,文件名是你正在为其构建平台的集成的域名。所以如果你正在构建一个灯光平台,你将在你的集成文件夹中添加一个新文件light.py。
我们创建了两个示例集成,它们应该能让你了解这是如何工作的:
与设备接口
Home Assistant的一个规则是,集成绝不应该直接与设备接口。相反,它应该与一个第三方Python 3库交互。这样,Home Assistant可以与Python社区共享代码并保持项目的可维护性。
一旦你的Python库准备好并发布到PyPI,将它添加到清单中。现在是时候实现你正在为其创建平台的集成所提供的[Entity基类](https://developers.home-assistant.io/docs/core/entity)了。
在实体索引中找到你的集成,以查看有哪些方法和属性可供实现。
与多个平台集成
大多数集成由单个平台组成。在这种情况下,仅定义这一个平台就可以。然而,如果你要添加第二个平台,你会希望集中你的连接逻辑。这是在组件(__init__.py)内部完成的。
如果你的集成可通过configuration.yaml进行配置,这将导致你的配置入口点发生变化,因为现在用户将需要直接设置你的集成,并且由你的集成来设置平台。
通过配置项设置时加载平台
如果你的集成是通过配置项设置的,你将需要将配置项转发到相应的集成以设置你的平台。如需更多信息,请参阅配置项文档。
通过configuration.yaml配置时加载平台
如果你的集成不使用配置项,它将必须使用我们的发现助手来设置其平台。请注意,这种方法不支持卸载。
要做到这一点,你将需要使用发现助手的load_platform和async_load_platform方法。
总结
该页面主要介绍了Home Assistant中的集成平台相关内容,包括如何创建平台(需根据集成类型创建对应文件名的文件),提供了示例集成供参考,强调了集成不应直接与设备接口而应与第三方Python 3库交互,以及在准备好Python库并发布到PyPI后要实现相关Entity基类,还提及可在实体索引中查看集成的方法和属性等信息。
多个平台集成时的相关操作,当有多个平台时需在__init__.py中集中连接逻辑;若集成通过configuration.yaml配置,配置入口点会改变且由集成负责设置平台;通过配置项设置集成时需转发配置项来加载平台,不使用配置项时则要用发现助手的特定方法加载平台,但该方法不支持卸载。
638

被折叠的 条评论
为什么被折叠?



