1. 簡介
課程內容
- 如何設計及編寫自動化範本。
- 如何使用 Google Home 開發人員控制台測試自動化動作範本。
軟硬體需求
- 搭載 Google Home 應用程式的 Android 或 iOS 手機。
- 已加入住家的智慧型燈具,或 Google Home Playground 中的模擬裝置。
必要條件
您也要瞭解如何編寫 Google Home 自動化動作。如果您從未編寫自動化動作,建議先完成「使用指令碼建立自動化動作」程式碼研究室,再繼續進行本研究室。
2. 自動化範本和執行個體
開發人員可以使用 Google Home 開發人員控制台的自動化動作範本編輯器,建立自動化動作範本。自動化範本包含指令碼邏輯的本質,會參照裝置類型,但不會參照特定裝置。
使用者可以透過 Google Home 網頁版的自動化動作指令碼編輯器,使用自動化動作範本建立個人化執行個體,在自家特定裝置上執行動作。儲存後,Google Home 應用程式 (GHA) 的「住家日常安排」下方就會顯示該執行個體。
3. 規劃自動化範本
建立自動化動作時,首先要思考想解決的問題,以及自動化動作將如何解決問題。包括:
- 要自動化的裝置。
- 應觸發自動化動作執行的啟動條件 (或事件)。
- 自動化動作觸發後,是否要執行,取決於哪些額外條件 (如有)。
- 要執行的動作。
在本程式碼研究室中,自動化程序會執行兩項操作:
- 在特定時間開啟燈具。
- 在特定時間關閉同一盞燈。
瞭解上述事項後,即可開啟範本編輯器並編寫自動化動作。
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 應用程式中設定裝置時使用的帳戶登入。
- 建立或選取現有專案。
- 在「自動化動作」下方,按一下「開發」。
- 按一下「建立範本」。
- 複製「預定時間開燈」自動化範本。
- 將「Scheduled light」自動化範本貼到範本編輯器。
- 按一下「驗證」。解決所有可能出現的錯誤,並持續驗證及修正,直到系統不再回報錯誤為止。
- 按一下「儲存」即可儲存範本。
5. 測試範本
現在您可以在控制台中測試範本。
- 確認燈具已接上電源,且顯示在 Google Home 應用程式中。
- 如果燈號亮起,請關閉電源。
- 前往 Google Home 開發人員控制台。
- 開啟建立範本的專案。
- 選取「自動化動作」,然後選取「測試」分頁標籤。
- 按一下「預定時間開燈」自動化範本旁邊的「開啟」。
- 選取要測試範本的結構,然後按一下「下一步」。
- 在「InputValue」InputValue編輯器中,指定燈具名稱。舉例來說,如果燈具名稱為「辦公室桌燈」,請點選
lights右側的Desk light - Office,然後從下拉式選單中選取「辦公室桌燈」。或輸入裝置名稱。 - 同樣在「InputValue」InputValue編輯器中,將
time_on時間指定為五分鐘後的時間,並將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. 恭喜!
您已成功建立自動化範本。太棒了!
在本程式碼研究室中,您瞭解如何:
- 如何設計及編寫自動化範本。
- 如何在 Google Home 開發人員控制台中測試。
後續步驟
在本程式碼研究室中,您建立了一個非常簡單的自動化動作。自動化動作的功能不只排定燈光開關時間,瞭解如何建立及測試自動化範本的基本概念後,您就可以嘗試使用其他啟動條件、限制條件和動作,為其他類型的裝置建立自動化範本。
延伸閱讀
如要進一步瞭解 Google Home 自動化動作,請參閱自動化動作參考說明文件: