1. 简介
学习内容
- 如何设计和编写自动化模板。
- 如何使用 Google Home 开发者控制台测试自动化操作模板。
所需条件
- 运行 Google Home 应用的 Android 或 iOS 手机。
- 已加入您住宅的智能灯,或 Google Home Playground 中的模拟设备。
前提条件
您应该熟悉如何编写 Google Home 家居自动化操作。如果您从未编写过自动化操作,建议您先完成创建脚本化自动化操作 Codelab,然后再继续学习本 Codelab。
2. 自动化模板和实例
开发者可以使用 Google Home 开发者管理中心内的自动化模板编辑器创建自动化模板。自动化模板包含脚本逻辑的本质,引用设备类型,但不引用特定设备。
借助网页版 Google Home 的自动化脚本编辑器,最终用户可以采用自动化模板,并创建个性化的实例,以便在自己家中的特定设备上执行操作。保存后,该实例会显示在 Google Home 应用 (GHA) 的家庭日常安排下。
3. 规划自动化操作模板
创建自动化操作时,首先要考虑的是要解决的问题,以及自动化操作将如何解决该问题。这包括以下考虑因素:
- 您想自动控制哪些设备。
- 应使用哪个启动方式(或事件)来触发自动化操作的执行。
- 触发自动化操作后,还有哪些其他条件(如果有)会控制自动化操作是否运行。
- 要执行的操作。
在此 Codelab 中,自动化功能将执行以下两项操作:
- 在特定时间打开灯。
- 在特定时间关闭同一盏灯。
了解了这些信息后,您就可以打开模板编辑器并编写自动化脚本了。
4. 编写自动化操作模板
自动化操作以声明方式使用 YAML 数据序列化语言编写。
自动化模板包含三个主要部分:
- 元数据 - 自动化操作的名称、其功能说明,以及用于对自动化操作进行分类的可选标签。关键字为:
- 照明和插座
- 气候和能源
- 安全和提醒
- 娱乐
- 家用电器及其他
- 输入 - 定义自动化功能旨在控制的设备类型。自动化引擎会使用此信息来了解哪些类型的操作适用于目标设备。
- 自动化规则 - 定义自动化操作的启动逻辑和行为。
以下是您将要使用的自动化模板:
metadata:
name:
en: Scheduled light
description:
en: Turn the light on and off at specific times
tags:
- LIGHTING AND PLUGS
input:
the_light:
metadata:
name:
en: The light
description:
en: The light to be controlled
selector:
type: device
multiSelect: true
supportedTypes:
- LIGHT
time_on:
metadata:
name:
en: Time to turn on the light.
description:
en: The time of day to turn on the selected light.
selector:
type: time
default: sunset+30min
time_off:
metadata:
name:
en: Time to turn off the light.
description:
en: The time of day to turn off the selected light.
selector:
type: time
default: 10:00 pm
automations:
- name: Turn on the light
starters:
- type: time.schedule
at: $time_on
actions:
- type: device.command.OnOff
devices: $the_light
on: true
- name: Turn off the light
starters:
- type: time.schedule
at: $time_off
actions:
- type: device.command.OnOff
devices: $the_light
on: false
请仔细阅读该模板,并注意以下事项:
metadata部分包含相应自动化操作的名称和说明。input部分定义了一个名为the_light的变量,用于指定类型为LIGHT的设备。这意味着此模板可能仅适用于灯具,而不适用于其他类型的设备。换句话说,当用户在其住宅中设置自动化操作时,如果系统提示用户为$the_light选择设备,那么用户只能选择您指定的类型的设备。- 在
input部分中还定义了两个名为time_on和time_off的变量。用户可以通过这些设置指定何时开始自动化操作。time_on表示灯开启的时间,time_off表示灯关闭的时间。如果用户未设置time_on或time_off的值,则使用默认值。 - 自动化中的
automations部分包含两条自动化规则。每条规则都有一个time.schedule启动方式,用于告知自动化操作何时启动。
模板编辑器
自动化模板编辑器是您用来编写自动化模板的工具。
- 前往 Google Home 开发者控制台。
- 使用 Google Home 应用中设置设备时所用的同一账号登录。
- 创建或选择现有项目。
- 在自动化操作下,点击开发。
- 点击创建模板。
- 复制“定时开灯”自动化操作模板。
- 将“预定调光”自动化模板粘贴到模板编辑器中。
- 点击验证。解决可能出现的任何错误,并继续验证和修正,直到不再出现任何错误。
- 点击保存即可保存模板。
5. 测试模板
现在,您可以在控制台中测试该模板。
- 确保灯具已插好电源,并且在 Google Home 应用中可见。
- 如果指示灯亮起,请将其关闭。
- 前往 Google Home 开发者控制台。
- 打开您创建模板的项目。
- 选择自动化,然后选择测试标签页。
- 点击“预定亮灯”自动化模板旁边的打开。
- 选择要测试模板的结构,然后点击下一步。
- 在 InputValue 编辑器中,指定灯具的名称。例如,如果您的灯具名为“Desk light - Office”,您需要从点击
lights右侧后显示的下拉菜单中选择Desk light - Office。或者,您也可以输入设备的名称。 - 同样在 InputValue 编辑器中,将
time_on时间指定为未来某个时间(例如 5 分钟后),并将time_off时间更改为time_on之后不久的时间。 - 完成后,InputValue 编辑器应如下所示:
inputValue: #add value the_light: Desk light - Office #add value time_off: 11:45 am #add value time_on: 11:40 am - 点击启用测试。
- 等待两个开始时间过去。灯应在指定时间亮起,然后在指定时间熄灭。
成功测试模板后,您便可确定自动化功能正常运行。
6. 恭喜!
您已成功创建自动化模板。也很棒!
在此 Codelab 中,您学习了如何执行以下操作:
- 如何设计和编写自动化模板。
- 如何在 Google Home 开发者控制台中进行测试。
后续步骤
在此 Codelab 中,您创建了一个非常简单的自动化操作。自动化操作的功能远不止于安排灯的开关。现在,您已了解创建和测试自动化模板的基础知识,接下来可以尝试使用不同的启动器、条件和操作,为其他类型的设备创建自动化模板。
深入阅读
如需详细了解 Google Home 自动化操作,请参阅自动化参考文档: