本地交車

Local Home SDK 會新增本機執行要求路徑來轉送智慧型住宅意圖,藉此提高智慧型住宅的整合程度。

Local Home SDK 提供兩項功能:本機執行和本機查詢。

  • 本機執行功能可透過本機執行路徑傳送 EXEC 意圖,藉此完成指令,而不必發出雲端 API 呼叫。舉例來說,要求「開燈」可由本機執行處理。
  • 本機查詢可透過本機履行路徑傳送 QUERY 意圖,處理裝置狀態相關查詢。舉例來說,如果查詢「我的燈亮著嗎?」,Local Query 會直接完成查詢,而不會呼叫 Cloud API。

您可以使用 TypeScript 或 JavaScript 編寫包含智慧住宅商業邏輯的本機履行應用程式。Google Home 或 Google Nest 裝置可以載入及執行裝置上的應用程式。您的應用程式會透過區域網路 (LAN) 上的 Wi-Fi,直接與現有智慧型裝置通訊,並透過現有通訊協定執行使用者指令。

整合 SDK 可提升Cloud-to-cloud整合的效能,包括縮短延遲時間及提高可靠性。所有裝置類型和裝置特徵都支援店內取貨,但使用次要使用者驗證的裝置除外。

開始建構 試用範例

瞭解運作方式

從雲端執行要求取得 SYNC 回應後,Local Home 平台會使用 mDNS、UDP 廣播或 UPnP 掃描使用者的區域網路,找出已連線至 Google 助理的智慧型裝置。

平台會傳送 IDENTIFY 意圖,比較 IDENTIFY 回應中的裝置 ID 與先前 SYNC 回應傳回的 ID,判斷裝置是否可在本機控制。如果偵測到的裝置是中樞或橋接器,平台會傳送 REACHABLE_DEVICES 意圖,並將中樞視為本機通訊的 Proxy 裝置。

平台收到確認本機裝置的回應後,會建立通往使用者 Google Home 或 Google Nest 裝置的本機履行路徑,並將使用者指令轉送至本機履行路徑。

使用者觸發具有本機執行要求路徑的 Cloud-to-cloud 整合時,Google 助理會將 EXECUTE 意圖或 QUERY 意圖傳送至 Google Home 或 Google Nest 裝置,而非雲端執行要求。裝置接著會執行本機履行應用程式,處理意圖。

下圖顯示本機履行作業的執行流程。執行路徑會從搭載 Google 助理的手機擷取使用者意圖,然後由 Google Cloud 處理使用者意圖,接著在 Google Home 裝置上於本機執行,並直接向裝置中樞或裝置發出指令。開發人員雲端可做為雲端備援。
圖 1:為智慧型住宅動作新增本機執行要求路徑。

Local Home 平台會隨機選擇要觸發指令的 Google Home 或 Google Nest 裝置。EXECUTEQUERY 意圖可能會透過與目標裝置定義在相同住家圖表結構中的任何 Google Home 或 Google Nest 裝置傳送。

店內取貨應用程式

本機執行要求應用程式包含處理本機智慧型住宅平台傳送意圖的商業邏輯,並透過區域網路存取智慧型裝置。整合店內取貨功能時,硬體應不需要修改。應用程式會透過應用程式層通訊協定 (包括 HTTP、TCP 或 UDP) 將控制指令傳送至智慧型裝置,以完成 Cloud-to-cloud 整合要求。如果本機履行路徑失敗,系統會使用雲端履行做為備用執行路徑。

為支援建構應用程式,Local Home SDK 提供下列兩個主要類別:

  • DeviceManager: 提供使用 TCP、UDP 通訊端或 HTTP 要求與智慧型裝置通訊的方法。
  • App: 提供方法,可為 Google 在探索本機可控制裝置後傳送的意圖 (IDENTIFYREACHABLE_DEVICES) 附加處理常式。這個類別也會執行使用者指令 (EXECUTE),並回答使用者對目前裝置狀態的查詢 (QUERY)。

開發期間,您可以將應用程式載入自己的代管伺服器或本機開發電腦,建構及測試應用程式。在正式版中,Google 會在使用者 Google Home 或 Google Nest 裝置上的安全 JavaScript 沙箱環境中代管應用程式。

目前店面取貨功能不支援 Report State API。Google 會依據雲端履行服務處理這些要求。

應用程式生命週期

當區域網路平台發現符合專案掃描設定的新區域網路裝置,或有待處理的意圖要傳送給先前識別的裝置時,系統會視需要載入本機履行應用程式。

Google Home 或 Google Nest 裝置的記憶體有限,系統記憶體壓力過大時,隨時可能終止本機執行應用程式。如果應用程式開始耗用過多記憶體,或是系統需要為其他應用程式騰出空間,就可能發生這種情況。只有在有新的意圖要傳送,且應用程式有足夠的記憶體資源可供執行時,本機住家平台才會重新啟動應用程式。

如果使用者取消連結帳戶,或不再有與使用者 agentUserId 相關聯的裝置支援本機執行要求,本機住家平台會在閒置逾時後卸載應用程式。

支援的裝置

Local Home 平台會在支援的 Google Home 或 Google Nest 裝置上執行本機履行應用程式。下表說明支援的裝置,以及各裝置使用的執行階段。如要進一步瞭解執行階段需求,請參閱「執行環境」。

裝置 類型 環境
Google Home 喇叭 Chrome
Google Home Mini 喇叭 Chrome
Google Home Max 喇叭 Chrome
Nest Mini 喇叭 Chrome
Nest Hub 多媒體 Chrome
Nest Hub Max 多媒體 Chrome
Nest Wifi 路由器 Node.js
Chrome

執行環境

本機履行應用程式的執行環境取決於裝置。Local Home 平台支援下列執行階段環境:

原始碼結構

建議您使用 Local Home SDK 提供的組合器設定,將依附元件組合到單一 JavaScript 檔案中,並將原始碼封裝為立即叫用函式運算式 (IIFE)

實作路徑

如要使用 Local Home SDK 整合智慧型住宅,請完成下列工作:

1 設定掃描設定 使用必要的參數設定 Google Home Developer Console,讓 Google 助理探索可在本機控制的裝置。
2 在雲端服務中更新 SYNC 回應 在雲端履行中,修改要求處理常式,支援平台用來建立本機履行路徑的 otherDeviceIds 欄位。SYNC在該欄位中,指定可在本機控制的裝置 ID。
3 導入店面出貨應用程式 使用 Local Home SDK 建立 JavaScript 應用程式,處理 IDENTIFY EXECUTE QUERY 意圖。如果是中樞或橋接器 Proxy 裝置,您也應處理 REACHABLE_DEVICES 意圖。
4 測試應用程式並進行偵錯 使用 Google Home 測試套件測試整合 (或自行認證)。

事前準備