在开始使用 Automation API 之前,您应先设计自动化操作。
为每个自动化操作确定以下参数:
- 应在哪些情况下向用户推荐自动化操作。 例如,如果用户刚刚向住宅添加了三盏新灯,他们可能对专门用于控制灯的特定自动化操作感兴趣。
- 自动化操作需要哪些设备类型。例如,如果用户刚刚向住宅添加了三盏新灯,他们可能对专门用于控制灯的特定自动化操作感兴趣。灯设备类型的示例包括
OnOffLightDevice、ColorTemperatureLightDevice、DimmableLightDevice或ExtendedColorLightDevice。 - 自动化操作需要哪些特征属性和命令,以及 Android 上的 Automation API 是否支持这些属性和命令。
- 应作为启动方式激活自动化操作的特征。启动方式将在 Android 上的自动化操作组件中讨论。
- 用于确定自动化操作是否应实际运行的其他条件,以及要执行的操作。
- 自动化操作的执行流程。应按顺序执行还是并行执行?您是否需要多个逻辑路径?
在设计时,按节点绘制自动化操作的流程图,并注明每个步骤所需的逻辑,可能会很有帮助。
设计自动化操作后,请使用 Automation DSL 构建它。您构建的自动化操作本质上是一个“模板” - 其中的任何结构和设备都是占位符,当用户“采用”自动化操作供自己使用时,系统会使用每个用户的特定结构和设备填充这些占位符。
以下是应用可以使用 Home API 创建的不同类型的自动化操作。如需查看与这些示例相关的代码摘录,请参阅构建自动化操作页面。
简单自动化操作
假设您需要编写一个应用,用于创建在上午 8:00 升起百叶窗的自动化操作。为此,该应用需要一个列表中包含结构中支持自动化操作的百叶窗(设备类型为
WindowCoveringDevice 的设备),该列表可由 Discovery API 提供。
对于需要在特定时间运行的自动化操作,您还需要确保 用户已在 Google Home app (GHA)中为其选择的结构分配了街道地址,否则自动化操作将不知道其运行的时区 。Discovery API 可以帮助您确定是否已为结构分配地址。
因此,执行流程将如下所示:
- 使用 Discovery API 收集
WindowCoveringDevice设备列表。 - 如果未填充街道地址,请通知用户需要提供街道地址,并停止执行。
- 否则,请定义自动化操作:
- 在上午 8:00 启动自动化操作。
- 对于每个百叶窗,调用
WindowCovering特征的upOrOpen命令。
复杂自动化操作
假设有一个应用,用于构建在检测到运动时触发闪烁灯的自动化操作。
实现此应用的首要任务之一是使用 Discovery API 找出用户住宅中有哪些灯。有了这些信息,您的应用现在可以显示可用的灯,或许还可以让用户选择要闪烁的灯。
执行流程:
- 使用 Discovery API 收集结构中存在的灯设备列表,这些设备可以是设备类型为
OnOffLightDevice、ColorTemperatureLightDevice、DimmableLightDevice或ExtendedColorLightDevice的任何设备。 - 提供一种选择闪烁灯的方式,例如通过自定义“设置”面板。
- 定义自动化操作:
- 通过监控
AreaPresenceState,在有人离开或到达住宅时启动自动化操作。 - 如果
presenceState表明结构有人,则闪烁所选的灯。
- 通过监控
通用自动化操作
如需查看更复杂的自动化操作示例,请考虑一个自动化操作,该操作会根据用户住宅中的任何或所有设备,引导用户创建开放式自动化操作。
自动化操作可能会先提示用户选择一个结构。
然后,自动化操作可以在可展开的大纲视图中显示结构中的所有房间,展开房间会显示其中的设备。进一步展开设备会列出该设备支持的启动方式和命令。
用户可以选择要使用的设备、启动方式和命令,自动化操作会引导用户完成自动化操作的组装。
当用户的所有选择和决定最终确定后,自动化操作会生成自动化操作并将其保存到用户选择的结构中。
从宏观层面来看,此类自动化操作需要使用适用于 Android 的 Structure API、适用于 Android 的 Device API和 Discovery API 收集有关用户住宅的几组数据 。
| API | 信息 |
|---|---|
| Structure API |
|
| Device API |
|
| Discovery API |
|