自动化操作是一种在住宅中自动执行任务和设置设备的方式。 在 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 上初始化住宅。
用户撤消完整权限时的指南
如果用户撤消完整权限,所有现有的自动化操作都将停止运行。此外,如果用户撤消对特定设备的访问权限,则与这些设备关联的启动器、条件和操作将停止运行。
每次应用启动时,请务必检查权限是否仍然有效。如果权限已被撤消,请务必移除所有先前的数据,包括应用中缓存的所有数据。
撤消结构访问权限后,系统会将
StructureAccessRevokedEvent
传送给您的云后端。如需了解端到端合作伙伴云和移动应用撤消工作流,请参阅
结构授权。
开发者历程
Automation API 是较大开发历程的一部分。它是在集成结构和设备 API 之后提供的,以确保用户想要使用自动化操作时,可以正常使用。
- 开发者规划自动化操作,并使用 Automation DSL 定义自动化操作。
- 开发者将自动化操作定义嵌入到 Kotlin Android 应用中。
- 应用会根据用户设备的相关信息(包括特征、属性、命令和事件)向用户呈现自动化操作,这些信息是使用 Discovery API 或设备 API 收集的。
- 借助 Discovery API,应用可以生成根据用户结构中存在的设备类型和特征自定义的自动化操作草稿,无论用户是否输入内容。
- 设备 API 可以提供与 Discovery API 大部分相同的信息,但它并未针对自动化操作用例进行优化。如需了解详情,请参阅 比较设备 API 和 Discovery API 。
- 应用会创建与所选结构关联的实际自动化操作。
- 自动化操作现在可在用户的结构中使用,并且可以使用结构 API 方法执行或删除。
用户可以随时创建自动化操作的新实例,选择不同的结构,或者(取决于应用逻辑)选择不同的设备集。每次执行此操作时,应用都会生成自动化操作的新实例。
在最基本的情况下,您可以向用户推荐执行相对基本任务的预定义自动化操作。或者,您可以呈现自动化操作的框架,供用户自定义以满足自己的需求。或者,您可以编写一个开放式自动化操作编辑器,让用户可以使用 Automation API 中提供的所有构建块来构建复杂的自动化操作。
自动化操作建议
Home API 可以根据
空间中存在的设备类型等因素,为
Structure推荐自动化操作。
自动化操作建议由
AutomationSuggestion
类表示。
The Structure 接口包含
HasSuggestions
接口,后者提供
suggestions()
函数,该函数会返回自动化操作建议的集合。
likeSuggestion()
和
dislikeSuggestion()
方法旨在连接到
和
界面控件,用户可以点按
这些控件来提供反馈。
第三种方法
clearSuggestionFeedback()
可让用户移除对建议的自动化操作的反馈。
用户反馈会影响未来的建议。
资源限制
以下限制适用于 Home API 中的自动化操作:
| 指标 | 限制 |
|---|---|
| 每个结构的最大自动化操作数 | 64 |
| 每个自动化操作的最大节点数 | 128 |
| 每个自动化操作的最大表达式节点数 | 64 |
| 每个结构的最大自动化操作实例数 | 1024 |
| 每个开发者在每个 结构中的最大自动化操作实例数 | 64 |
| 每个结构每天的最大执行次数 | 1024 |
| 每个开发者在每个结构中每天的最大执行次数 | 128 |