Android 上的 Automation API 概览

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

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

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

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

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

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

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

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

开发者历程

Automation API 是更长开发历程的一部分。它是在集成结构和设备 API 之后提供的,以确保用户在想要使用自动化操作时能够使用。

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

用户可以随时创建自动化操作的新实例,选择不同的结构,或者(取决于应用逻辑)选择不同的设备集。每次执行此操作时,应用都会生成自动化操作的新实例。

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

自动化操作建议

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

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

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

资源限制

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

表:Automation API 资源限制
指标 限制
每个结构的最大自动化操作数 64
每个自动化操作的最大节点数 128
每个自动化操作的最大表达式节点数 64
每个结构的最大自动化操作实例数 1024
每个开发者在每个 结构中的最大自动化操作实例数 64
每个结构每天的最大执行次数 1024
每个开发者在每个结构中每天的最大执行次数 128