Android 上的 Automation API 概览

自动化功能可用于自动执行住宅中的任务和设备设置。自动化操作已在 Google Home 生态系统中以日常安排的形式提供,可通过 Google Home app (GHA)Google Home for web 上的 automation script editor 使用。

现在,Google Home 生态系统中的自动化操作可通过适用于 Android 的 Home API 实现。它们使用与 GHA 日常安排和 script editor 中使用的基本概念相同的概念,但具有只能通过 Home API 实现的增强功能,包括:

  • 访问设备的所有 Matter 标准和 smart home 特征(如 Home API 中所示)。
  • 支持顺序、并行和选择性执行流程。

自动化操作使用 Automation DSL 编写,这是一种专门用于在 Kotlin 中构建自动化操作的领域特定语言。

您打算在应用中通过设备和结构或自动化 API 使用的任何特征和类型都必须在初始化时注册。请参阅在 Android 上初始化主页

用户撤消完整权限时的指导

如果用户撤消完整权限,所有现有自动化操作都将停止运行。此外,如果用户撤消对特定设备的访问权限,则与这些设备关联的启动器、条件和操作将停止工作。

每次应用启动时,请务必检查权限是否仍然有效。如果已撤消,请务必移除所有之前的数据,包括应用中缓存的所有数据。

开发者历程

Automation API 只是整个开发过程中的一部分。它是在集成结构和设备 API 之后实现的,以确保用户在想要使用自动化操作时能够顺利使用。

  1. 开发者规划自动化流程,并使用 Automation DSL 定义该流程。
  2. 开发者将自动化定义嵌入到 Kotlin Android 应用中。
  3. 应用会根据用户设备的相关信息(包括使用 Discovery API 或 Device API 收集的特征、属性、命令和事件)向用户显示自动化操作。
    1. 借助 Discovery API,应用可以生成根据用户结构中存在的设备类型和特征量身定制的自动化草稿,无论用户是否提供输入,都可以生成。
    2. Device API 可以提供与 Discovery API 大致相同的信息,但它并未针对自动化使用情形进行优化。如需了解详情,请参阅比较设备 API 和 Discovery API
  4. 应用会创建与所选结构对应的实际自动化操作。
  5. 自动化操作现在已在用户的结构中,可以使用 Structure API 方法执行或删除。

用户可以随时创建新的自动化实例,选择不同的结构,或者根据应用逻辑,选择不同的设备组。每次执行此操作时,应用都会生成一个新的自动化实例。

在最基本的情况下,您可以向用户建议执行相对基本任务的预定义自动化操作。或者,您也可以提供一个自动化操作框架,让用户根据自己的需求进行自定义。或者,您也可以编写一个开放式自动化编辑器,让用户能够使用 Automation API 中提供的所有构建块来构建复杂的自动化操作。

自动化操作建议

Home API 可以根据空间中存在的设备类型等因素,为 Structure 建议自动化操作。

自动化操作建议由 AutomationSuggestion 类表示。

Structure 接口包含 HasSuggestions 接口,后者提供 suggestions() 函数,该函数会返回自动化建议集合。

likeSuggestion()dislikeSuggestion() 方法旨在连接到 界面控件,用户可以通过点按这些控件来提供反馈。

第三种方法 clearSuggestionFeedback() 可让用户移除针对建议的自动化操作提供的反馈。

用户反馈会影响未来的建议。

资源限制

以下限制适用于 Home API 中的自动化操作:

表:自动化 API 资源限制
指标 限制
每个结构的自动化操作数量上限 64
每个自动化流程的节点数上限 128
每个自动化任务的表达式节点数上限 64
每个结构的自动化实例数上限 1024
每个开发者每个结构的自动化实例数上限 64
每个结构每天的执行次数上限 1024
每个开发者每天每个结构的执行次数上限 128