本地交車

Local Home SDK 新增了轉送智慧型住宅意圖的本機執行要求路徑,強化智慧型住宅與 Google 助理的整合作業。

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

整合 SDK 可改善智慧型住宅動作的效能,包括縮短延遲時間並提高可靠性。所有裝置類型和裝置特徵都支援本機執行要求,但使用次要使用者驗證的項目除外。

開始建構 試用範例

瞭解運作方式

透過雲端執行要求收到 SYNC 回應後,本機首頁平台會使用 mDNS、UDP 廣播或 UPnP 掃描使用者的區域網路,以找出已連結至 Google 助理的智慧型裝置。

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

收到確認本機裝置的回應時,平台會建立指向使用者 Google Home 或 Google Nest 裝置的本機執行要求路徑,然後再轉送使用者指令以執行本機執行要求。

當使用者觸發具有本機執行要求路徑的智慧型住宅動作時,Google 助理會將 EXECUTE 意圖或 QUERY 意圖傳送至 Google Home 或 Google Nest 裝置,而非雲端執行要求。然後,裝置會執行本機執行要求應用程式來處理意圖。

下圖顯示本機執行要求的執行流程。執行路徑會透過 Google 助理在手機上擷取使用者的意圖,然後 Google Cloud 處理使用者意圖,然後在 Google Home 裝置上的本機執行,指令則會直接發送到裝置中樞裝置或直接傳送至裝置。開發人員雲端可做為雲端備用方案。
圖 1:新增智慧型住宅動作的本機執行要求路徑。

選擇觸發指令的 Google Home 或 Google Nest 裝置時,本地住家平台並非決定性的。EXECUTEQUERY 意圖可能會透過與目標裝置相同 Home Graph 結構中定義的任何 Google Home 或 Google Nest 裝置。

本機出貨應用程式

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

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

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

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

本機執行要求目前不支援 Report State API。Google 會使用您的雲端執行要求來處理這些要求。

應用程式生命週期

當本地 Home 平台發現符合專案掃描設定的新本機裝置,或是有待處理的意圖提供與先前識別裝置相關的意圖時,就會隨選載入本機執行要求應用程式。

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

當使用者取消連結帳戶,或沒有任何裝置支援與使用者 agentUserId 相關聯的本機執行要求時,本機首頁平台會在閒置逾時後卸載您的應用程式。

支援的裝置

本地 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

執行環境

本機執行要求應用程式的執行環境取決於您的裝置。當地 Home 平台支援下列執行階段環境:

  • Chrome:您的本機執行要求應用程式會在搭載 Chrome M80 以上版本的 Chrome 瀏覽器 window 內執行,並支援 ECMAScript ES2018 版
  • Node.js:本機執行要求應用程式會以指令碼的形式,執行在執行 Node v10.x LTS 或以上版本且支援 ECMAScript ES2018 的 Node.js 程序中。

原始碼結構

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

實作路徑

如要使用 Local Home SDK 進行智慧型住宅整合,您必須執行以下工作:

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

事前準備