建議您按照前文所述步驟建構本機出貨應用程式,然後在自己的主機環境中測試智慧住宅整合作業,步驟如下:
在您自己的託管環境中,提供執行本機出貨應用程式的 HTML 頁面。以下程式碼片段顯示執行本機交貨應用程式的靜態 HTML 檔案範例。
<html> <head> <!-- Local Home SDK --> <script src="//www.gstatic.com/eureka/smarthome/smarthome_sdk.js"></script> <!-- Local app under development --> <script src="local_execution.js"></script> </head> </html>
透過 Chrome 進行偵錯。使用中斷點和記錄來排解整合問題。
修改並編譯您的 TypeScript 程式碼,然後重複這些步驟。
只要重複這個建構與測試程序,就能快速查看運作中的變更,並且更輕鬆地找出程式碼並進行偵錯。
測試裝置控制
在動作主控台中,您必須指定網路應用程式的網址,此網址會在本機執行要求時,提供在 Google Home 或 Google Nest 裝置上載入的 HTML。
如要使用本機執行要求測試裝置控制,請按照以下步驟操作:
Chrome
- 在動作控制台中開啟智慧型住宅專案。
- 在左側導覽面板中按一下 [動作]。
- 在「設定本機家用 SDK (選用)」 >「為 Chrome 輸入測試網址」,指定用於執行本機執行應用程式的 HTML 的開發環境伺服器網址。
- 按一下 [儲存];Google 最多可能需要 30 分鐘才能反映您的控制台變更。
- 重新啟動測試的 Google Home 或 Google Nest 裝置。
- 對智慧型裝置下達指令。舉例來說,如果您的裝置實作了 OnOff 特徵,則可以說「Ok Google,開燈」。
Node.js
- 在動作控制台中開啟智慧型住宅專案。
- 在左側導覽面板中按一下 [動作]。
- 在「設定本機家用 SDK (選用)」 >「輸入節點的測試網址」下方,指定用於執行本機執行應用程式的 JavaScript 的開發環境伺服器網址。
- 按一下 [儲存];Google 最多可能需要 30 分鐘才能反映您的控制台變更。
- 重新啟動測試的 Google Home 或 Google Nest 裝置。
- 對智慧型裝置下達指令。舉例來說,如果您的裝置實作了 OnOff 特徵,則可以說「Ok Google,開燈」。
如要進一步瞭解裝置使用的執行階段,請參閱支援的裝置。
指令將裝置重設為正常作業。對 Chrome 進行偵錯
您可以使用 Chrome 開發人員工具對本機出貨應用程式進行偵錯。進行偵錯前,請先確認環境已正確設定:
- 您在主控台中,將開發網址設為可透過 Google Home 或 Google Nest 裝置 (透過區域網路或網際網路) 存取的網址。
- 機器已連上與您要測試的 Google Home 或 Google Nest 裝置相同的區域網路。
- 你的網路未封鎖裝置之間的封包。
- 您已在動作主控台和 Google Home 或 Google Nest 裝置上登入同一個 Google 帳戶。
- 您已更新雲端執行要求中的 SYNC 回應。其應在
otherDeviceIds
欄位中傳回至少一個有效值。 - 您已在動作主控台中輸入正確的掃描設定資訊。
如要將本機執行應用程式連線至 Chrome DevTools 偵錯工具,請按照下列步驟操作:
Chrome
- 在本機開發機器中,安裝並啟動 Google Chrome 瀏覽器。
- 在 Chrome 瀏覽器的位址欄位中輸入
chrome://inspect#devices
,啟動 Chrome 檢查器。網頁上應會顯示裝置清單,您的 HTML 檔案會列在測試 Google Home 或 Google Nest 裝置的名稱下方。 - 按一下 HTML 下方的藍色檢查連結,即可啟動 Chrome 開發人員工具。 切換至「Console」(主控台) 分頁。 「Home Home」平台會在主控台記錄中輸出您的應用程式版本和 Local Home SDK 版本。如果您看到記錄,表示 Google 已成功載入您的應用程式並可以連線。 如果沒有,請重新啟動 Google Home 或 Google Nest 裝置。

Node.js
- 在本機開發機器中,安裝並啟動 Google Chrome 瀏覽器。
- 決定測試裝置的本機 IP 位址。
- 在 Chrome 瀏覽器的位址欄位中輸入
chrome://inspect#devices
,啟動 Chrome 檢查器。 - 選取「Configure...」(設定...) 以開啟「Target Discovery settings」(目標探索設定)。
- 在清單中輸入
DEVICE_IP_ADDRESS:9222
,然後按一下 [完成]。 - 按一下指令碼下方的藍色檢查連結,即可啟動 Chrome 開發人員工具。 切換至「Console」(主控台) 分頁。 「Home Home」平台會在主控台記錄中輸出您的應用程式版本和 Local Home SDK 版本。如果您看到記錄,表示 Google 已成功載入您的應用程式並可以連線。 如果沒有,請重新啟動 Google Home 或 Google Nest 裝置。

如要進一步瞭解裝置使用的執行階段,請參閱支援的裝置。
偵錯提示
偵錯時需要注意以下幾點:
- 請勿在同一區域網路上將多個 Google Home 或 Google Nest 裝置連結至測試帳戶。您將無法透過本機執行要求控制要指定哪個 Google Home 或 Google Nest 裝置。
- 重新整理 Chrome 開發人員工具中的頁面,使用開發網址的最新程式碼重新載入本機出貨應用程式容器。這項操作不會重設「本機主畫面」平台,這可能需要在本機本機執行應用程式中重新觸發平台意圖 (例如
IDENTIFY
)。如要重設「本機主畫面」平台,請重新啟動 Google Home 或 Google Nest 裝置。 - 檢查您的 JavaScript 應用程式是否順利載入。方法是檢查開發人員工具的主控台部分如果發生問題,系統會顯示類似以下的訊息:
Uncaught TypeError: Cannot read property ‘open’ of null.
IDENTIFY
回應中的verificationId
必須與SYNC
回應的其中一個otherDeviceIds
相符。- 針對
EXECUTE
處理常式,請確認裝置可接收您的 HTTP、TCP 或 UDP 指令。 - 請務必從處理常式傳回
Promise
。 - 避免在記憶體中維持全域狀態。請參閱應用程式生命週期。
- 本機出貨應用程式擲回的錯誤會顯示在專案的錯誤記錄中。
準備並推出正式版
準備好啟動智慧型住宅動作時,請按照下列步驟操作:
- 開啟終端機。在專案目錄中執行
npm run build
指令。這個指令會在dist
目錄下,為您的應用程式產生下列 JavaScript 套件:project-directory/ └── dist ├── web │ └── bundle.js └── node └── bundle.js
- 在主控台中,依序按一下「Develop」(開發) >「Actions」(動作),上傳 JavaScript 應用程式。在「Configure Local Home SDK」部分中,按一下「Upload JavaScript files」。
圖 3:上傳 JavaScript 應用程式。 - 在「Upload files」(上傳檔案) 對話方塊中,上傳您先前產生的套件檔案。請務必上傳兩個版本的套件檔案 (Node、Web),以便讓動作可在本機執行功能支援的所有執行階段環境中正常運作。
- 上傳 JavaScript 指定目標 Node.js:從
dist/node
目錄上傳bundle.js
檔案。 - 上傳指定 Chrome 的 JavaScript (瀏覽器):從
dist/web
目錄上傳bundle.js
檔案。
- 上傳 JavaScript 指定目標 Node.js:從
- 在支援 Google 助理的裝置上測試動作,確認是否可在實際執行環境中正常運作。詳情請參閱測試及分享智慧型住宅動作。
- 對動作的運作情況感到滿意後,請按照啟動智慧型住宅動作一文中的操作說明,將動作提交給 Google 以用於實際工作環境部署。包括完成自我測試和認證要求步驟。