质量等级

integrations质量等级是 Home Assistant 用来根据用户体验、功能、代码质量和开发者体验对integrations进行评级的框架。 为此,项目制定了一组层级,每个层级都有自己的一套标准。

标准层级

共有 4 个标准层级:铜级、银级、金级和白金级。 要达到某个层级,integrations必须满足该层级及其以下所有层级的规则。

这些层级的定义如下。

🥉 铜级

铜级是所有新integrations的基线标准和要求。它在代码质量、功能性和用户体验方面满足最低要求。它符合基本期望,为用户与其devices和服务交互提供可靠的基础。

文档提供了直接从 Home Assistant 用户界面设置integrations的指南。

从技术角度来看,此integrations已经过审查,符合所有基线标准,这是我们对所有新integrations的要求,包括设置integrations的automation测试。

铜级具有以下特征:

  • 可以通过 UI 轻松设置。
  • 源代码遵循基本编码标准和开发指南。
  • automation测试可确保此integrations能够正确configuration。
  • 提供基本的最终用户文档,足以让用户轻松入门。

🥈 银级

银级在铜级基础上提升,通过提高integrations的可靠性和健壮性确保稳固的运行体验。它确保integrations能够正确处理错误,例如当devices或服务认证失败时、处理离线devices以及其他错误。

这些integrations的文档提供了在 Home Assistant 中使用此integrations时可用的功能信息,以及出现问题时的故障排除信息。

此integrations有一个或多个活跃的代码维护者,帮助维护它以确保当前和未来的体验水平。

银级具有以下特征:

  • 提供铜级的所有功能。
  • 在各种条件下提供稳定的用户体验。
  • 有一个或多个活跃的代码维护者帮助维护integrations。
  • 能够正确、自动地从连接错误或离线devices中恢复,不会填满日志文件,也不会产生不必要的消息。
  • 如果与devices或服务的认证失败,自动触发重新认证。
  • 提供integrations功能的详细文档和问题排查指南。

🥇 金级

integrations用户体验的黄金标准,为integrations的devices和服务提供广泛全面的支持。金级integrations旨在用户友好、功能齐全,并面向更广泛的受众。

在可能的情况下,devices可以自动发现以实现轻松无缝的设置,其固件/软件可以直接从 Home Assistant 更新。

所有提供的devices和entities都有逻辑命名且完全可翻译,并已正确分类和启用以供长期统计使用。

这些integrations的文档非常详尽,主要面向最终用户,非技术消费者也能理解。除了提供integrations的常规信息外,文档还提供可能的使用示例、兼容devices列表、integrations提供的entities描述列表,以及integrations提供的可用动作的详细描述和使用示例。强烈鼓励使用示例automation、仪表盘、可用的蓝图以及外部资源的链接。

integrations提供调试问题的方法,包括下载诊断信息和记录故障排除说明。如有需要,可以通过 UI 重新configurationintegrations。

从技术角度来看,integrations需要对其代码库进行完整的automation测试覆盖,以确保当前和未来保持设定的integrations质量。

所有参与 Works with Home Assistant 计划提供devices的integrations至少需要达到此层级。

金级具有以下特征:

  • 提供银级的所有功能。
  • 拥有integrations能够提供的最佳最终用户体验;流畅直观。
  • 可以自动发现,简化integrations设置。
  • integrations可以重新configuration和调整。
  • 支持翻译。
  • 详尽的文档,面向非技术用户。
  • 在可能的情况下支持通过 Home Assistant 更新devices的软件/固件。
  • integrations有覆盖整个integrations的automation测试。
  • 为提供 Works with Home Assistant 计划devices的integrations的必要等级。

🏆 白金级

白金是integrations可以达到的最高层级,是 Home Assistant 中质量的典范。它不仅提供最佳的用户体验,还通过遵循最高标准、卓越的代码质量以及优化良好的性能和效率来实现技术卓越。

白金级具有以下特征:

  • 提供金级的所有功能。
  • 所有源代码遵循所有编码和 Home Assistant integrations标准及最佳实践,并具有完整的类型注释和清晰的代码注释,以提高代码清晰度和可维护性。
  • 完全异步的integrations代码库确保高效运行。
  • 实现高效的数据处理,减少网络和 CPU 使用。

特殊层级

有 4 个特殊层级用于那些不适合标准层级列表的integrations。 这是因为它们要么是 Home Assistant 核心的内部组成部分,要么根本不在 Home Assistant 核心中,或者它们不符合标准层级的最低要求。

这些特殊层级的定义如下。

❓ 无评分

这些integrations可以通过 Home Assistant 用户界面设置。无评分标识并不意味着它们不好或有缺陷,而是表明它们尚未按照质量等级进行评估,或者需要一些维护才能达到现在被认为最低的铜级标准。

无评分层级不能分配给新integrations,因为它们在引入时需要至少达到铜级水平。Home Assistant 项目鼓励社区帮助更新这些无评分的integrations,使其至少达到铜级要求。

特征:

  • 尚未评分或缺乏足够的评分信息。
  • 可以通过 UI 设置,但可能需要改进以获得更好的体验。
  • 可能功能正常,但尚未根据当前标准进行验证。
  • 文档通常只提供基本的设置步骤。

🏠 内部

内部层级分配给 Home Assistant 内部使用的integrations。这些integrations为 Home Assistant 核心程序或其他在其之上构建的integrations提供基本组件和构建块。

内部integrations由 Home Assistant 项目维护,并遵循严格的架构设计程序。

特征:

  • 内部、内置的 Home Assistant 核心程序构建块。
  • 为其他integrations使用和构建提供构建块。
  • 由 Home Assistant 项目维护。

💾 遗留

遗留integrations是较旧的integrations,已成为 Home Assistant 的一部分多年,可能自其诞生之初。它们只能通过configuration文件configuration,通常缺乏活跃的维护者(代码维护者)。这些integrations可能设置复杂,在使用和功能方面不符合当前/现代最终用户的期望。

Home Assistant 项目鼓励社区帮助将这些integrations迁移到 UI,并更新它们以符合现代标准,使这些integrations对每个人都可用。

特征:

  • 设置过程复杂;只能通过configuration文件configuration,没有基于 UI 的设置。
  • 可能缺乏活跃的代码所有权和维护。
  • 可能缺少最近的更新或错误修复。
  • 文档可能仍然面向开发者。

📦 自定义

自定义integrations由社区开发和分发,为 Home Assistant 提供额外的功能以及对devices和服务的支持。这些integrations不包含在官方 Home Assistant 版本中,可以手动安装或通过 HACS (Home Assistant Community Store) 等第三方工具安装。

Home Assistant 项目不审查、安全审计、维护或支持第三方自定义integrations。我们鼓励用户在安装前谨慎行事,审查自定义integrations的源代码和社区反馈。

我们鼓励并邀请开发者通过将其与integrations质量等级对齐并提交纳入,将他们的自定义integrations贡献给 Home Assistant 项目。

特征:

  • 不包含在官方 Home Assistant 版本中。
  • 可手动安装或通过社区工具安装,如 HACS
  • 由个人开发者或社区成员维护。
  • 用户体验可能差异很大。
  • 功能、安全性和稳定性可能差异很大。
  • 文档可能有限。