智慧住宅意圖是簡單的訊息物件,用於說明要執行的 Cloud-to-cloud 整合作業,例如開啟燈或將音訊投放至揚聲器。
所有 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 助理服務,後者會將資訊儲存在 Google 住家圖表中。](https://developers.home.google.com/static/cloud-to-cloud/primer/images/smarthome001.png?authuser=2&hl=zh-tw)
為避免取消連結使用者帳戶再重新連結,您可以將要求同步處理作業傳送至 Assistant。這會將 action.devices.SYNC
意圖傳送至執行服務,以同步處理裝置和功能清單。詳情請參閱「實作要求同步處理」。
![SYNC 意圖的流程圖](https://developers.home.google.com/static/cloud-to-cloud/primer/images/smarthome002.png?authuser=2&hl=zh-tw)
在本機出貨設定期間,本機 Home 平台會檢查 smart home Action 雲端出貨服務的 SYNC
回應。如要進一步瞭解如何修改 SYNC
回應以支援本機執行要求,請參閱「在雲端執行要求中更新 SYNC 回應」。
QUERY
action.devices.QUERY
意圖用於查詢 smart home 裝置的目前狀態。
當使用者查詢裝置狀態時,以便回答類似「Hey Google,廚房有哪些燈亮?」這類問題,Assistant 會將 action.devices.QUERY
意圖傳送至你的服務。
![QUERY 意圖的流程圖](https://developers.home.google.com/static/cloud-to-cloud/primer/images/query-diagram.png?authuser=2&hl=zh-tw)
為了提供最佳使用者體驗,您應實作回報狀態,以便主動將使用者裝置的目前狀態直接回報給 Google Home Graph。舉例來說,這可讓 Assistant 瞭解使用者是否透過實體燈具開關開啟智慧燈具。
![使用 Report State 回報裝置狀態](https://developers.home.google.com/static/cloud-to-cloud/primer/images/smarthome004.png?authuser=2&hl=zh-tw)
執行
action.devices.EXECUTE
意圖用於提供要在 smart home 裝置上執行的指令。
當使用者透過 Assistant 將指令傳送至裝置時,您的服務供應商會收到 action.devices.EXECUTE
意圖,其中會說明動作和要執行動作的裝置。使用者可以透過「Ok Google,打開客廳燈」這類指令,在裝置上執行動作。
![EXECUTE 意圖的流程圖](https://developers.home.google.com/static/cloud-to-cloud/primer/images/smarthome003.png?authuser=2&hl=zh-tw)
取消連結
當使用者取消連結應用程式帳戶與 Assistant 時,系統會觸發 action.devices.DISCONNECT
意圖,通知您這項操作。收到 action.devices.DISCONNECT
意圖後,您不應回報此使用者裝置的狀態。