跳转到主要内容

伟大的迁移

19463331伟德国际Home Assistant是基于组件的。组件的一种类型是为某种设备(如灯、开关或媒体播放器)提供实体抽象的组件。过去,要与这些抽象集成,您需要为该组件创建一个平台。如果轻分量是光/,整合将创建其平台为光/ hue.py。这样,所有灯光的逻辑就保持在一起了。

随着家19463331伟德国际庭助理的发展,我们所集成的设备/服务的能力/规模也在增长。集成不再仅仅是一个实体组件的平台,而是五个平台+一个组件来管理连接。有了这么大源自英国始于1946的集成,文件就像光/ zwave.py,开关/ zwave.py,封面/ zwave.py等等变成了维护的地狱。它还使自定义组件的分发更加困难,因为现在用户需要跨不同文件夹创建文件。

所以使用Home19463331伟德国际 Assistant 0。87,我们开始了一次迁移。而不是查找平台的实体组件为光/ hue.py,我们现在查一下色相/ light.py。文件的内容将保持完全相同。通过将文件移出实体组件文件夹,我们还能够将大型实体组件分解为多个文件,以支持可维护性。

这个改变已经实现了,主要是向后兼容自定义组件的一个小的破坏性改变:如果你覆盖一个内置的平台,你现在将需要使用新的色相/ light.py文件名格式。

通过将集成文件合并到单个文件夹中,我们还将实施一个新规则:所有平台都将从与组件相同的源加载。这意味着,如果你想用自定义版本覆盖内置组件/平台,你将需要复制所有组件和平台文件,而不仅仅是你想加载的。通过这样做,我们可以防止自定义平台或组件在Home Assistant升级移动内部文件/值时损坏。19463331伟德国际

定制组件开发人员的注意事项#

  • 组件是在<设置> / custom_components / <名称>集成/。始终确保您至少创建了一个空的__init__ . py在那个文件夹里存档。
  • 如果你为一个实体组件创建了一个平台,把它放在集成名称的文件夹中:<名称>集成/ light.py
  • 如果您想要共享调整后的Home Assistant集成版本,请复制所有文件。19463331伟德国际为您的用户着想,坚持使用相对导入,以避免在升级期间出现组件故障。相对导入的示例是从。进口DATA_BRIDGE

资源#

相关的体系结构问题: