情境

「智慧型住宅意圖」是簡單的訊息物件,用來描述要執行的 smart home 動作,例如開燈或將音訊投放到揚聲器。

action.devices 命名空間包含所有 smart home 意圖,您必須為這些意圖提供執行要求。每當 Google Assistant 傳送意圖至執行要求時,使用者的第三方 OAuth 2 存取權杖都會透過授權標頭傳遞。

支援的 smart home 意圖如下:

同步處理

action.devices.SYNC 意圖用於要求使用者已連線且可供使用的 smart home 裝置清單。

使用者透過 Google Home app (GHA) 設定裝置時,也會通過您的雲端基礎架構驗證。接著,Assistant 會收到 OAuth2 權杖。此時,Assistant 會傳送 action.devices.SYNC 意圖至執行要求,以從雲端基礎架構擷取使用者裝置和功能的初始清單。

下圖顯示 Google 基礎架構與合作夥伴基礎架構之間的互動。在 Google 基礎架構中,Google 助理用戶端應用程式會提供一份合作夥伴清單,這些合作夥伴會傳送至合作夥伴基礎架構完成 OAuth 驗證。合作夥伴端的 OAuth 驗證包括合作夥伴設定 WebView、OAuth WebView、選用設定與條款,以及合作夥伴雲端服務。接著,合作夥伴基礎架構會將 OAuth 憑證傳回 Google 助理用戶端應用程式。合作夥伴雲端服務會將可用的裝置和功能傳送至 Google 助理服務,再將資訊儲存在 Home Graph 中。
圖 1:Google 與合作夥伴基礎架構之間的互動

為避免取消連結帳戶或重新連結使用者帳戶,您可以傳送要求同步處理至 Assistant。這會將 action.devices.SYNC 意圖傳送至執行要求,以同步處理裝置和功能清單。詳情請參閱「實作要求同步處理」一文。

SYNC 意圖的流程圖
圖 2:同步意圖

本機執行要求設定期間,本機首頁平台會檢查 smart home Action 雲端執行要求的 SYNC 回應。如要進一步瞭解如何修改 SYNC 回應以支援本機執行要求,請參閱在雲端執行要求中更新 SYNC 回應

查詢

action.devices.QUERY 意圖是用於查詢 smart home 裝置目前的狀態。

當使用者查詢裝置狀態時,可以回答如「Ok Google,廚房的燈號是多少?」這類問題。Assistant 會將 action.devices.QUERY 意圖傳送至執行要求。

QUERY 意圖的流程圖
圖 3:查詢意圖

為提供最佳使用者體驗,建議您實作回報狀態,主動將使用者裝置的目前狀態直接回報給 Google Home Graph。舉例來說,這可讓 Assistant 瞭解使用者是否透過實體燈具開關開啟智慧型燈具。

使用「回報狀態」功能回報裝置狀態
圖 4:回報裝置狀態

執行

action.devices.EXECUTE 意圖的用途是提供在 smart home 裝置上執行的指令。

當使用者透過 Assistant 將指令傳送至裝置時,執行要求會收到 action.devices.EXECUTE 意圖,說明要執行的動作和要執行操作的裝置。使用者可以使用「Ok Google,打開客廳的燈」這類指令,在裝置上執行動作。

執行意圖的流程圖
圖 5:執行意圖

取消連結

當使用者將應用程式帳戶與 Assistant 取消連結時,系統會觸發 action.devices.DISCONNECT 意圖,通知您。收到 action.devices.DISCONNECT 意圖後,請勿回報這位使用者裝置的狀態。