建立自動化範本

程式碼研究室簡介
schedule34 分鐘
subject上次更新時間:2023年9月26日
account_circle作者:Jonathan Donald and Andres Gomez
  • 如何設計及編寫自動化範本。
  • 如何使用 Google Home 開發人員控制台測試自動化動作範本。
  • 已安裝 Google Home 應用程式的 Android 或 iOS 手機。
  • 可能是從住家開啟的智慧型燈具,或是 Google Home Playground 中的模擬裝置。

你應該熟悉如何編寫 Google Home 自動化動作的編寫方法。如果您從未編寫自動化動作,建議先完成「建立自動化動作指令碼」程式碼研究室,再繼續本練習。

開發人員使用 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. 貼上「排定的燈具」複製到範本編輯器中
  8. 按一下「驗證」。修正所有可能出現的錯誤,並持續驗證並修正問題,直到沒有錯誤發生為止。
  9. 按一下「儲存」以儲存範本。

5. 測試範本

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

  1. 請確認你的燈具已接上電源並顯示在 Google Home 應用程式中。
  2. 如果指示燈亮起,請關機。
  3. 前往 Google Home 開發人員控制台
  4. 開啟您已建立範本的專案。
  5. 依序選取「Automations」和「Test」分頁標籤。
  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 自動化動作,請參閱自動化動作參考說明文件: