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 應用程式中設定的裝置登入。
- 請建立或選取現有專案。
- 在「自動化」下方,按一下「開發」。
- 按一下「建立範本」。
- 複製「排定的燈具」建立自動化範本
- 貼上「排定的燈具」複製到範本編輯器中
- 按一下「驗證」。修正所有可能出現的錯誤,並持續驗證並修正問題,直到沒有錯誤發生為止。
- 按一下「儲存」以儲存範本。
5. 測試範本
您現在可以在控制台中測試範本。
- 請確認你的燈具已接上電源並顯示在 Google Home 應用程式中。
- 如果指示燈亮起,請關機。
- 前往 Google Home 開發人員控制台。
- 開啟您已建立範本的專案。
- 依序選取「Automations」和「Test」分頁標籤。
- 按一下「排定的燈具」旁邊的「開啟」。建立自動化範本
- 選取要測試範本的結構,然後點選「下一步」。
- 在「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 自動化動作,請參閱自動化動作參考說明文件: