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
自动化规则
自动化规则是实际执行自动化操作的地方。它包含三个部分:启动方式、条件和操作,系统会按顺序评估这些部分:
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 行的“设备开启”时间更改为未来 5 分钟的时间。
- 将第 14 行的“设备关闭”时间更改为“开启时间”之后不久的时间。
- 点击验证。解决可能出现的任何错误。
- 点击保存。
- 确保启用开关处于开启位置。
- 等待两个开始时间过去。设备应在您指定的时间开启,然后在指定的时间关闭。
7. 恭喜!
您已成功创建脚本化自动化任务,太棒了!
在此 Codelab 中,您学习了如何执行以下操作:
- 如何设计和编写自动化操作。
- 如何测试自动化操作。
后续步骤
在此 Codelab 中,我们创建了一个非常简单的自动化操作。自动化操作的功能远不止于安排电源开关的切换。现在,您已经了解了创建自动化操作的基础知识,接下来可以探索 Google Home 生态系统中提供的各种类型的启动方式、条件和操作。
不妨试试以下练习:
- 向自动化操作添加更多
time.schedule启动方式。 - 修改自动化操作,以按同一时间表开启和关闭其他设备。
- 在不移除
time.schedule启动方式的情况下,修改自动化操作,使其仅在另一设备开机时开启设备。请参阅使用condition子句的脚本示例。 - 修改自动化操作,使其仅在有人在家时开启设备。
深入阅读
如需详细了解 Google Home 自动化操作,请参阅自动化参考文档: