1. 简介
学习内容
- 如何规划和编写基于脚本的自动化操作。
- 如何测试编写了脚本的自动化操作。
所需条件
- 运行 Google Home 应用的 Android 或 iOS 手机。
- 智能灯或其他经“支持 Google Home”认证的设备,可开启或关闭。
2. 设置设备
如果你尚未设置设备,请直接在住宅中进行设置。
确认该设备显示在 Google Home 应用中,并且您可以使用 Home 应用开启和关闭该设备。
3. 规划自动化操作
首先,我们要思考我们希望脚本化自动化功能做什么。其中包括以下注意事项:
- 您想自动管理哪些设备。
- 什么启动方式(或事件)应触发脚本化自动化的执行。
- 还有哪些其他条件(如果有)可以控制脚本自动化在触发后是否运行。
- 要执行的操作。
在此 Codelab 中,我们计划让脚本自动化完成以下两件事:
- 在具体时间打开灯(或其他智能设备)。
- 在特定时间关闭您的设备。
至此,我们已经清楚了想要通过脚本自动化执行的操作,接下来我们将打开脚本编辑器,然后编写脚本自动化操作。
4. 编写脚本化的自动化操作
脚本化自动化使用 YAML 数据序列化语言以声明方式编写,
脚本自动化操作由两个主要部分组成:
- 元数据 - 编写了脚本的自动化操作的名称及其作用的说明。
- 自动化操作规则 - 定义自动化操作的启动逻辑和行为。
元数据
自动化操作的元数据会告知用户自动化操作的名称及其用途。元数据在 metadata
块中指定,如下所示:
metadata:
name: Scheduled light
description: Turn the light on and off at specific times
Automation 规则
自动化规则才是实际工作发生的地方。它由三部分组成:启动方式、条件和操作,将按顺序进行评估:
1 启动方式 | 2 个条件 | 3 项操作 |
启动方式是自动化操作的发起者。必须至少有一个启动方式的计算结果为 | 这些约束条件是可选的,由启动启动方式后评估的一个或多个额外约束条件组成。如果条件解析为 添加多个约束条件时,请使用 条件与状态变化通知不同:
| 操作是在满足起始条件和任何限制条件条件时执行的操作。 |
自动化操作中的 automations
代码块包含两条规则:
automations:
- starters:
- type: time.schedule
at: 1:00 PM
actions:
- type: device.command.OnOff
devices: Desk light - Office
on: true
- starters:
- type: time.schedule
at: 1:05 PM
actions:
- type: device.command.OnOff
devices: Desk light - Office
on: false
请注意以下几点:
- 共有两条
automations
规则。第一个按钮会开灯,第二个按钮会关灯。 - 每条规则都有一个操作。
on: true
表示开灯。同样,on: false
表示“关灯”。- 每条规则都有一个
time.schedule
启动方式,用于告知自动化操作在什么时间启动自动化操作。 - 此项自动化操作没有任何条件。
5. 全脚本自动化
综上所述,脚本自动化的完整过程如下所示:
metadata:
name: Scheduled light
description: Turn the light on and off at specific times
automations:
- starters:
- type: time.schedule
at: 1:00 PM
actions:
- type: device.command.OnOff
devices: Desk light - Office
on: true
- starters:
- type: time.schedule
at: 1:05 PM
actions:
- type: device.command.OnOff
devices: Desk light - Office
on: false
- 复制自动化操作(见上文)。
- 转到网页版 Google Home。
- 选择“自动化操作”标签页(由三颗星的图标表示):
- 点击 + 添加新对比项。
- 在脚本编辑器中,删除自动化操作模板。
- 粘贴您的自动化操作。
- 将
Desk light - Office
替换为您设备的名称和位置。 - 点击验证。脚本编辑器会在脚本自动化操作中,为包含错误的部分加下划线。解决出现的所有错误,并不断验证和修正,直到不再出现任何错误。例如,您的设备名称可能有所不同。在这种情况下,您可以使用自动补全功能选择一个有效的设备名称。
- 点击保存。
- 确保脚本文字下方的激活开关处于开启位置:
6. 测试自动化操作
- 确保您的设备已接通电源,且显示在 Google Home 应用中。
- 如果设备当前处于开启状态,请将其关闭。
- 在网页版 Google Home 的自动化操作页面上,点击“运行”按钮。
- 设备应该开机。
现在,我们来测试自动化操作。
- 关闭设备。
- 修改自动化操作,并更改“设备开启”将第 7 行上的时间更改为五分钟后的时间。
- 更改“设备关闭”设置更改为“准点”之后不久的某个时间
- 点击验证。解决可能出现的任何错误。
- 点击保存。
- 确保启用开关处于开启位置。
- 等待两个启动时间过后。设备应该会开启,然后在您指定的时间关闭。
7. 恭喜!
您已成功创建了基于脚本的自动化操作,太棒了!
在此 Codelab 中,您学习了如何执行以下操作:
- 如何设计和编写自动化操作。
- 如何测试自动化操作。
后续步骤
在此 Codelab 中,我们创建了一个非常简单的自动化操作。自动化操作不仅仅是安排电源开关的开关,现在,您已经了解了创建自动化操作的基础知识,接下来可以探索 Google Home 生态系统中提供的各种启动方式、条件和操作。
请尝试以下练习:
- 为自动化操作添加更多
time.schedule
启动方式。 - 修改自动化操作,以便按照相同的时间表开启和关闭其他设备。
- 在不移除
time.schedule
启动方式的情况下,将自动化操作修改为仅在另一台设备已开机时才开启设备。请参阅使用condition
子句的示例脚本。 - 将自动化操作修改为仅在家中时开启设备。
深入阅读
如需详细了解 Google Home 自动化操作,请参阅自动化操作参考文档: