Local Home SDK 可加入本機執行要求路徑來轉送智慧型住宅意圖,以加強您的智慧住宅與 Google 助理整合。
這個 SDK 可讓您使用 TypeScript 或 JavaScript 編寫本機執行應用程式,其中包含智慧型住宅商業邏輯。Google Home 或 Google Nest 裝置可以在裝置上載入並執行您的應用程式。您的應用程式會透過區域網路 (LAN) 上的 Wi-Fi 直接與現有的智慧型裝置通訊,透過現有的通訊協定完成使用者指令。
整合 SDK 後,智慧住宅操作就能提升效能,包括縮短延遲時間及提升可靠性。所有類型的裝置和裝置特性都支援本機執行要求 (使用次要使用者驗證的裝置除外)。
瞭解運作方式
收到雲端執行要求的 SYNC
回應後,Local Home 平台會使用 mDNS、UDP 廣播或 UPnP 掃描使用者的區域網路,找出已連線至 Google 助理的智慧型裝置。
平台會將 IDENTIFY
回應中的裝置 ID 與先前 SYNC
回應傳回的裝置 ID 進行比較,以傳送 IDENTIFY
意圖,以判斷裝置是否可供本機控制。如果偵測到的裝置是中樞或橋接器,平台會傳送 REACHABLE_DEVICES
意圖,並將該中心視為用來在本機通訊的 Proxy 裝置。
平台收到確認本機裝置的回應時,會為使用者的 Google Home 或 Google Nest 裝置建立本機執行要求路徑,然後轉送使用者指令以執行本機交車。
當使用者觸發包含本機執行路徑的智慧住宅動作時,Google 助理會將 EXECUTE
意圖或 QUERY
意圖傳送至 Google Home 或 Google Nest 裝置,而非雲端執行要求。接著,裝置會執行本地出貨應用程式來處理意圖。

本機首頁平台無法決定觸發指令的 Google Home 或 Google Nest 裝置。EXECUTE
和 QUERY
意圖可能會來自與目標裝置相同的首頁圖結構中定義的任何 Google Home 或 Google Nest 裝置。
本地出貨應用程式
本機出貨應用程式包含處理邏輯,可處理本機主畫面平台傳送的意圖,並透過區域網路存取智慧型裝置。我們不會對硬體進行修改,藉此整合本機執行要求。應用程式透過 HTTP、TCP 或 UDP 等應用程式層通訊協定將控制指令傳送至智慧型裝置,藉此完成智慧型住宅動作要求。如果本機執行路徑失敗,則會使用雲端執行機製做為備用執行路徑。
為支援建構應用程式,Local Home SDK 提供以下兩個主要類別:
DeviceManager
:提供使用 TCP、UDP 通訊端或 HTTP 要求與智慧型裝置通訊的方法。App
:提供方法,用於在發現可由本機控制的裝置 (IDENTIFY
、REACHABLE_DEVICES
) 後,由 Google 傳送的意圖附加處理常式。這個類別也會執行使用者指令 (EXECUTE
),並回答使用者目前裝置狀態 (QUERY
) 的查詢。
在開發期間,您可以透過自己的託管伺服器或本機開發機器載入,藉此建構及測試該應用程式。在實際工作環境中,Google 會將應用程式託管在使用者的 Google Home 或 Google Nest 裝置的安全 JavaScript 沙箱環境中。
本地狀態 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 |
執行環境
本機執行應用程式的執行環境取決於您的裝置。本機首頁平台支援下列執行階段環境:
- Chrome:本機執行應用程式是在執行 Chrome M80 以上版本的 Chrome 瀏覽器
window
內執行,且支援 ECMAScript 版本 ES2018。 - Node.js:您的本機執行應用程式是在執行 Node v10.x LTS 或之後支援 ECMAScript ES2018 的 Node.js 程序中以指令碼形式執行。
原始碼結構
建議您使用本機首頁 SDK 提供的套裝組合設定,將您的依附元件綁定為單一 JavaScript 檔案,並將原始碼封裝為立即叫用的函式運算式 (IIFE)。
實作路徑
使用 Local Home SDK 進行智慧型住宅整合時,您必須執行以下工作:
1 | 設定掃描設定 | 使用動作參數設定動作控制台,以便 Google 助理探索本機控制的裝置。 |
2 | 更新雲端執行要求中的同步處理通知 | 在雲端執行要求中,修改 SYNC 要求處理常式以支援平台用來建立本機執行路徑的
otherDeviceIds 欄位。在該欄位中,指定可由本機控制的裝置 ID。
|
3 | 實作本地出貨應用程式 | 使用 Local Home SDK 建立 JavaScript 應用程式來處理 IDENTIFY 、
EXECUTE 和
QUERY 意圖。對於中樞或橋接 Proxy 裝置,您也應該處理 REACHABLE_DEVICES 意圖。 |
4 | 測試應用程式並進行偵錯 | 使用 Google Home 測試套件測試整合 (或自我認證)。 |
事前準備
- 熟悉建立智慧型住宅動作的基本概念。
- 在動作主控台中,確認已有現有的智慧住宅專案,並已設定帳戶連結。
- 請確認您在動作主控台和測試裝置上的 Google 助理已登入同一個 Google 帳戶。
- 您必須使用 Node.js 環境來編寫應用程式。如要安裝 Node.js 和 npm,建議您使用 Node Version Manager。
- 如要使用最新版的 Local Home SDK,您必須將測試裝置註冊至 Cast 預覽計劃。