本地交車

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

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

  • 在本機執行功能中,系統會透過本機執行路徑傳送 EXEC 意圖來執行指令,而非發出雲端 API 呼叫。舉例來說,要求「開燈」可由本機執行處理。
  • 本機查詢可透過本機完成路徑傳送 QUERY 意圖,處理與裝置狀態相關的查詢。舉例來說,如果查詢「我的燈亮著嗎?」,Local Query 會直接完成查詢,而不會發出雲端 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 回應 在雲端服務中,修改 SYNC 要求處理常式,支援平台用來建立 otherDeviceIds 本機服務路徑的欄位。在該欄位中,指定可在本機控制的裝置 ID。
3 導入店內取貨應用程式 使用 Local Home SDK 建立 JavaScript 應用程式,處理 IDENTIFY EXECUTE QUERY 意圖。如果是中樞或橋接器 Proxy 裝置,您也應處理 REACHABLE_DEVICES 意圖。
4 測試及偵錯應用程式 使用 Google Home 測試套件測試整合 (或自行認證)。

事前準備