意圖

智慧型住宅意圖是簡單的訊息物件,用於說明要執行什麼 smart home 動作,例如開燈或將音訊投放到揚聲器。

所有的 smart home 意圖都包含在 action.devices 命名空間中,且您必須為這些意圖提供執行要求。每當 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:SYNC 意圖

本機執行要求設定期間,Local Home 平台會檢查 smart home 動作的 Cloud 執行要求中的 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 意圖後,您不應回報這位使用者的裝置狀態。