创建一个新平台对接
与设备交互的组件被称为 “实体组件”。它们由核心逻辑和平台逻辑构成,这意味着不同品牌可以使用相同的逻辑来处理灯光等设备。
例如,内置的 “switch” 组件由homeassistant/components/switch/中的各种平台组成。文件__init__.py包含所有平台的核心逻辑,而vendor_name.py文件仅包含相关平台代码。
如果你计划为现有组件添加对新型设备的支持,你可以仅编写平台逻辑。查看该组件如何与其他平台协同工作,并为你要添加的平台创建一个类似的文件:
示例传感器平台:平台的 “Hello World” 示例。
示例灯光平台:展示最佳实践。
与设备接口
Home Assistant 的一个规则是平台逻辑不应直接与设备接口。相反,应使用第三方 Python 3 库。这样,Home Assistant 可以与 Python 社区共享代码并保持项目的可维护性。
要集成第三方库,为你的设备创建一个实体类。实体是 Home Assistant 对灯光、开关、传感器等的表示,它们派生自实体抽象类。这个抽象类包含将大多数标准功能集成到你的实体中的逻辑,例如可见性、实体 ID、更新等等。
需求和依赖
平台可以像组件一样指定依赖和需求:
REQUIREMENTS = ['some-package==2.0.0', 'some-other-package==2.5.0']
DEPENDENCIES = ['mqtt']
总结
主要介绍了在 Home Assistant 中为现有组件添加新平台支持的相关内容。首先说明了实体组件的结构特点,以 “switch” 组件为例展示了核心与平台逻辑的组织方式,为开发者提供了参考范例。接着强调了平台逻辑与设备交互的规则,即通过第三方 Python 3 库间接通信,以实现代码共享和项目维护性,并阐述了创建实体类来集成第三方库的方法及其优势。最后提及平台可像组件一样指定需求和依赖,为开发者在扩展 Home Assistant 功能时提供了全面的指导,有助于确保新平台与现有系统的兼容性和协同工作能力,丰富设备支持类型,提升系统的通用性和扩展性。
5225

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



