创建自动化模板

关于此 Codelab
schedule34 分钟
subject上次更新时间:2023年9月26日
account_circleJonathan Donald and Andres Gomez 编写
  • 如何设计和编写自动化操作模板。
  • 如何使用 Google Home 开发者控制台测试自动化操作模板。
  • 运行 Google Home 应用的 Android 或 iOS 手机。
  • 您家中自带的智能灯,或者 Google Home 园地中的模拟设备。

您应该熟悉如何编写 Google Home 自动化操作。如果您从未编写过自动化操作,不妨考虑先完成创建脚本化自动化操作 Codelab,然后再继续学习本 Codelab。

开发者可以使用 Google Home 开发者控制台中的自动化模板编辑器创建自动化操作模板。自动化操作模板包含脚本逻辑的精髓,引用的是设备类型,而不是特定设备。

借助网页版 Google Home 的自动化脚本编辑器,最终用户可以采用自动化操作模板,创建可对自己住宅中的特定设备执行操作的个性化实例。保存后,该实例会显示在 Google Home 应用 (GHA) 中的家庭日常安排下方。

3. 规划自动化操作模板

在创建自动化操作时,首先要考虑自动化操作试图解决的问题,以及自动化操作将如何解决问题。其中包括以下注意事项:

  • 您想自动管理哪些设备。
  • 什么启动方式(或事件)应触发自动化操作执行。
  • 还有哪些其他条件(如果有)用于控制自动化操作在触发后是否运行。
  • 要执行的操作。

在此 Codelab 中,您的自动化操作将执行以下两项操作:

  1. 在具体时间打开一盏灯。
  2. 请在特定时间关闭同一盏灯。

了解了这一点,您就可以打开模板编辑器并编写自动化操作了。

4. 编写自动化操作模板

自动化操作使用 YAML 数据序列化语言以声明方式编写。

自动化操作模板有三个主要部分:

  1. 元数据 - 自动化操作的名称、用途说明,以及用于对自动化操作进行分类的一些标签(可选)。关键字是:
    • 灯具和插头
    • 气候与能源
    • 安全和意识
    • 娱乐
    • 设备及其他
  2. 输入 - 定义自动化操作要控制的设备类型。自动化引擎会使用这些信息来了解哪些类型的操作对目标设备是有效的。
  3. 自动化操作规则 - 定义自动化操作的启动逻辑和行为。

以下是您将使用的自动化操作模板:

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_ontime_off 的两个变量。通过这两个变量,用户可以指定何时启动自动化操作。time_on 表示开灯的时间,time_off 表示关灯的时间。如果用户未设置 time_ontime_off 的值,系统将使用默认值。
  • 自动化操作的 automations 部分包含两个自动化规则。每条规则都有一个 time.schedule 启动方式,用于告知自动化操作在什么时间启动这项自动化操作。

模板编辑器

自动化操作模板编辑器是用于编写自动化操作模板的工具。

  1. 前往 Google Home 开发者控制台
  2. 使用你在 Google Home 应用中设置时所用的账号登录。
  3. 创建或选择一个现有项目。
  4. 自动化操作下,点击开发
  5. 点击创建模板
  6. 复制“预定的灯光”自动化操作模板。
  7. 粘贴“预设的灯光”自动化模板导入模板编辑器。
  8. 点击验证。解决可能出现的任何错误,并不断验证和修正,直至不再出现任何错误。
  9. 点击保存以保存模板。

5. 测试模板

现在,您可以在控制台中测试该模板。

  1. 请确保您的灯已插好,并且在 Google Home 应用中可见。
  2. 如果指示灯亮起,请将其关闭。
  3. 前往 Google Home 开发者控制台
  4. 打开您创建了模板的项目。
  5. 选择自动化操作,然后选择测试标签页。
  6. 点击“预定的灯具”旁边的打开自动化操作模板。
  7. 选择要测试模板的结构,然后点击 Next
  8. InputValue 编辑器中,指定光源的名称。例如,如果您将灯具命名为“桌面灯 - 办公室”,则需要在点击 lights 右侧时显示的下拉菜单中选择 Desk light - Office。您也可以输入设备的名称。
  9. 同样在 InputValue 编辑器中,将 time_on 时间指定为某个时间(例如五分钟后),并将 time_off 时间更改为 time_on 之后不久的时间。
  10. 完成后,InputValue 编辑器应如下所示:
    inputValue:
     #add value
     the_light: Desk light - Office
     #add value
     time_off: 11:45 am
     #add value
     time_on: 11:40 am
    
  11. 点击启用测试
  12. 等待两个启动时间过后。指示灯应该会在指定的时间点亮起,然后熄灭。

成功测试模板后,您就会知道自动化功能在功能上是可靠的。

6. 恭喜!

您已成功创建自动化操作模板。也很棒!

在此 Codelab 中,您学习了如何执行以下操作:

  • 如何设计和编写自动化操作模板。
  • 如何在 Google Home 开发者控制台中进行测试。

后续步骤

在此 Codelab 中,您创建了一个非常简单的自动化操作。自动化操作不仅仅是调度灯的开关,您现在已经了解了创建和测试自动化操作模板的基础知识,接下来可以尝试使用不同的启动方式、条件和操作,在其他类型的设备上创建自动化操作模板。

深入阅读

如需详细了解 Google Home 自动化操作,请参阅自动化操作参考文档: