開始使用 Automation API 前,請先設計自動化動作。
為每項自動化作業決定下列參數:
- 應向使用者建議自動化的情況。 舉例來說,如果使用者剛在住家中新增三盞燈,他們可能會對專門控制燈具的自動化動作感興趣。
- 自動化動作需要哪些裝置類型。舉例來說,如果使用者剛在住家新增三盞燈,他們可能會對專門控制燈具的自動化動作感興趣。燈具裝置類型範例包括
OnOffLightDevice
、ColorTemperatureLightDevice
、DimmableLightDevice
或ExtendedColorLightDevice
。 - 自動化功能需要哪些特徵屬性和指令,以及Android 上的 Automation API 是否支援這些屬性和指令。
- 應啟動自動化動作的特徵,做為啟動條件。如要瞭解啟動條件,請參閱 Android 的自動化元件。
- 其他條件,用於判斷是否應實際執行自動化作業,以及要執行的動作。
- 自動化動作的執行流程。應循序執行還是平行執行?您是否需要多個邏輯路徑?
設計時,逐一繪製自動化流程的節點圖,並標示每個步驟所需的邏輯,或許會有所幫助。
設計自動化動作後,請使用 Automation DSL 建構。您建立的自動化動作基本上是「範本」,其中的任何結構和裝置都是預留位置,使用者「採用」自動化動作供自己使用時,系統會填入特定結構和裝置。
以下是應用程式可使用 Home API 建立的不同自動化功能。如要查看這些範例的程式碼片段,請參閱「建構自動化程序」頁面。
簡單的自動化
假設您需要編寫應用程式,建立在上午 8 點升起百葉窗的自動化動作。為此,應用程式需要結構中支援自動化的窗簾 (裝置類型為 WindowCoveringDevice
的裝置) 清單,這份清單可由 Discovery API 提供。
如果自動化動作需要在特定時間執行,請務必確認使用者已在 Google Home app (GHA) 中為所選住家指派街道地址,否則自動化動作無法得知執行時的時區。您可以使用 Discovery API 判斷地址是否已指派給結構。
因此執行流程會如下所示:
- 使用 Discovery API 收集
WindowCoveringDevice
裝置清單。 - 如果系統未填入街道地址,請通知使用者必須提供街道地址,並停止執行作業。
- 否則,請定義自動化作業:
- 在上午 8 點啟動自動化動作。
- 針對每個百葉窗,呼叫
WindowCovering
特徵的upOrOpen
指令。
複雜的自動化作業
假設有個應用程式會建立自動化動作,在偵測到動作時觸發閃爍燈光。
實作這個應用程式時,首要工作之一就是使用 Discovery API,找出使用者住家可用的燈具。有了這項資訊,應用程式現在可以顯示可用的燈光,或許還能讓使用者選取要閃爍的燈光。
執行流程:
- 使用 Discovery API 收集結構中存在的燈具裝置清單,這些裝置的裝置類型為
OnOffLightDevice
、ColorTemperatureLightDevice
、DimmableLightDevice
或ExtendedColorLightDevice
。 - 提供選取閃爍燈光的途徑,例如透過自訂「設定」面板。
- 定義自動化作業:
- 只要監控
AreaPresenceState
,就能在有人離開或抵達住家時啟動自動化動作。 - 如果
presenceState
表示結構體已佔用,請閃爍所選燈光。
- 只要監控
一般自動化
舉例來說,您可以引導使用者根據家中擁有的任何或所有裝置,建立開放式自動化動作。
自動化程序可能會先提示使用者選取結構。
接著,自動化功能可能會在可展開的大綱檢視畫面中,顯示結構中的所有房間,展開房間即可查看其中的裝置。進一步展開裝置會列出啟動器,以及該裝置支援的指令。
使用者可以選擇要使用的裝置、啟動器和指令,自動化功能會引導使用者組裝自動化裝置。
使用者做出所有最終選擇和決定後,自動化功能就會產生自動化動作,並儲存至所選結構。
從高層次來看,這類自動化作業需要使用 Android 適用的 Structure API、Android 適用的 Device API 和 Discovery API,收集使用者住家相關的幾組資料。
API | 資訊 |
---|---|
Structure API |
|
Device API |
|
Discovery API |
|