建立自動化範本

1. 簡介

課程內容

  • 如何設計及編寫自動化範本。
  • 如何使用 Google Home 開發人員控制台測試自動化動作範本。

軟硬體需求

  • 搭載 Google Home 應用程式的 Android 或 iOS 手機。
  • 已加入住家的智慧型燈具,或 Google Home Playground 中的模擬裝置。

必要條件

您也要瞭解如何編寫 Google Home 自動化動作。如果您從未編寫自動化動作,建議先完成「使用指令碼建立自動化動作」程式碼研究室,再繼續進行本研究室。

2. 自動化範本和執行個體

開發人員可以使用 Google Home 開發人員控制台的自動化動作範本編輯器,建立自動化動作範本。自動化範本包含指令碼邏輯的本質,會參照裝置類型,但不會參照特定裝置。

使用者可以透過 Google Home 網頁版的自動化動作指令碼編輯器,使用自動化動作範本建立個人化執行個體,在自家特定裝置上執行動作。儲存後,Google Home 應用程式 (GHA) 的「住家日常安排」下方就會顯示該執行個體。

3. 規劃自動化範本

建立自動化動作時,首先要思考想解決的問題,以及自動化動作將如何解決問題。包括:

  • 要自動化的裝置。
  • 應觸發自動化動作執行的啟動條件 (或事件)。
  • 自動化動作觸發後,是否要執行,取決於哪些額外條件 (如有)。
  • 要執行的動作。

在本程式碼研究室中,自動化程序會執行兩項操作:

  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. 將「Scheduled light」自動化範本貼到範本編輯器。
  8. 按一下「驗證」。解決所有可能出現的錯誤,並持續驗證及修正,直到系統不再回報錯誤為止。
  9. 按一下「儲存」即可儲存範本。

5. 測試範本

現在您可以在控制台中測試範本。

  1. 確認燈具已接上電源,且顯示在 Google Home 應用程式中。
  2. 如果燈號亮起,請關閉電源。
  3. 前往 Google Home 開發人員控制台
  4. 開啟建立範本的專案。
  5. 選取「自動化動作」,然後選取「測試」分頁標籤。
  6. 按一下「預定時間開燈」自動化範本旁邊的「開啟」
  7. 選取要測試範本的結構,然後按一下「下一步」
  8. 在「InputValue」InputValue編輯器中,指定燈具名稱。舉例來說,如果燈具名稱為「辦公室桌燈」,請點選 lights 右側的 Desk light - Office,然後從下拉式選單中選取「辦公室桌燈」。或輸入裝置名稱。
  9. 同樣在「InputValue」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. 恭喜!

您已成功建立自動化範本。太棒了!

在本程式碼研究室中,您瞭解如何:

  • 如何設計及編寫自動化範本。
  • 如何在 Google Home 開發人員控制台中測試。

後續步驟

在本程式碼研究室中,您建立了一個非常簡單的自動化動作。自動化動作的功能不只排定燈光開關時間,瞭解如何建立及測試自動化範本的基本概念後,您就可以嘗試使用其他啟動條件、限制條件和動作,為其他類型的裝置建立自動化範本。

延伸閱讀

如要進一步瞭解 Google Home 自動化動作,請參閱自動化動作參考說明文件: