智慧型住宅常見問題

一般大眾

問:我應該在哪些平台執行 Actions on Google 實作基礎架構?應該使用何種語言?

答:只要該架構支援新式 SSL (TLS) 和 OAuth 2.0,您就可以將基礎架構導入任何平台和您選擇的任何語言。建議您盡可能將基礎架構部署至其餘基礎架構,以提高可靠性並縮短實際執行使用者裝置的延遲時間。


問:裝置 ID 是否不得重複?

答:裝置 ID 不得重複。如果服務上沒有不重複的 ID,至少在每位使用者層級上不得重複。假設使用者有多個住家,讓同一使用者整合兩個住家。要求開啟其中一棟房屋的燈具,就不會在另一棟房屋中,開啟具有相同 ID 的燈具。


問題:裝置名稱可以重複嗎?

答:名稱可以重複,不過為了改善使用者體驗,我們可能會在設定完成後改善命名建議。

以下是一個簡短的命名指南:

  • 名稱應該要能實際唸出,
  • 系統可以辨識字串的子集,因此如果您有「ACME 色燈」,我們也會對「ACME 燈」做出回應。
  • 我們建議產品使用描述性名稱,以及一或多個使用者定義的名稱。
  • 使用者不必提供燈具的名稱,因為每個房間的房間應該要有不重複的名稱,但還是能使用複數指令來指令所有內容 (例如,辦公室壁紙中的兩個燈泡為「北燈」和「東照燈」,但可以只用「燈具」)。

問:裝置狀態的更新頻率為何?

答:使用者執行「查詢」或「執行」指令時,系統會擷取暫時狀態。如果使用者詢問「燈開著嗎?」,或者想要調亮燈光,我們就會執行查詢來找出目前狀態。


問:能否根據裝置的目前狀態直接更新 Home 圖譜?

答:可以,請使用 Report State API 呼叫。


帳戶連結和 OAuth

答:是,您必須連結帳戶才能將使用者的裝置連結至供應商的雲端服務。


問:針對 OAuth,我們每 15.213 小時就會過期存取權杖,這樣可以嗎?

答:可以,但也請試著設定較短的到期時間,例如 10 到 20 分鐘。 OAuth 用戶端應視需求更新權杖,而若以較短的到期時間進行測試,就能證明運作正常。


意圖

問:同步處理會在何時進行?

答:OAuth 完成且在發出 Request Sync 呼叫之後,系統會立即同步處理。


問:為什麼 SYNC 無法正常運作?

答:同步處理失敗的常見原因如下:

  • 您傳送的裝置類型有誤。

    • 例如,我們要求的是 action.devices.types.LIGHT,但您傳送 action.devices.types.Light
  • 您傳送的是不支援的裝置類型。

    • 例如,您在傳送 action.devices.types.FLASHLIGHT 時,我們並不支援。
  • 您傳送了無效或不支援的欄位。

    • 例如,您的版本欄位或其他欄位不在我們規格中。
  • 您的 SYNC 回應還有其他格式問題。

    • 檢查您的括號!
  • 帳戶連結發生問題。

    • 請確認您在 SYNC 要求的驗證標頭中收到有效的存取權杖。
  • 回應 SYNC 要求的時間過長。

    • 請確認您在 5 秒內回應 SYNC 要求。

問:可以使用「待處理」回覆嗎?

答:如果您的裝置可供即時使用,我們強烈建議您使用成功/失敗回應,不要使用待處理回應。我們瞭解,有些低功耗的非即時裝置可能需要等候回應和非同步執行模式,因此如果您覺得需要「待處理」的回應,請與我們聯絡。


測試與提交

問:我可以設定測試環境嗎?

答:可以,請建立個別專案,並完成該專案的設定。您可以根據自己的開發程序和基礎架構,建立數量不限的專案。


問:我需要多久更新一次專案草稿?

答:專案草稿每 3 天要更新一次。3 天後,測試代理程式就會從「mobile-HomeControl」設定中消失。如果您這麼做,請在 Actions on Google Console 中按一下專案的「Test DRAFT」按鈕。


問:我可以同時測試多部裝置嗎?

答: Actions on Google 一次只能支援一個「裝置端測試」AP。如果您是在「ap1」和同步裝置上首次使用測試草稿,然後在 (不取消連結 11) 的情況下直接執行 TEST DRAFT「ap2」,「ap1」會從 mobile-HomeControl-settings 消失。如要修正這個問題,請再次在「ap1」上執行測試草稿,並在設定中取消連結「ap1」。

請注意,此單一動作套件將提供給使用者的所有 Google Assistant 裝置。舉例來說,您可以在聲控喇叭和 Android 上測試新的硬體整合成果。


問:我的動作專案提交內容因名稱或發音問題而遭到拒絕。我需要更改哪些項目?

答:我們會檢查名稱發音,確保該名稱日後不會使用其他動作使用,並且與顯示名稱相符 (以避免不符而影響未來的名稱註冊)。

若要繼續使用相同名稱,請聯絡支援團隊,要求語音團隊將顯示名稱新增至 Assistant


問:Google Home 應用程式的「居家控制系統」專區未顯示我的動作,為什麼會這樣?

答:問題可能出在以下其中一項:

  • 您未在 Actions Console 中點選專案的「Test DRAFT」按鈕。
  • 「裝置端測試」中一次只能執行一項動作。
  • 請在 Actions Console 中,前往動作專案的「模擬工具」分頁,將「啟用/停用」切換按鈕切換為「停用」,然後再次啟用。
  • 如果這是他人與您分享的動作,請確認您已按照所有分享指示操作。
  • 裝置端測試會在三天後過期。在 Actions Console 中,按一下專案的「測試草稿」按鈕。

問:為什麼在模擬器中輸入「與<my agent name>交談」時會發生錯誤?

答:智慧型住宅動作並不會使用叫用名稱。如要在模擬工具中測試,您必須在已安裝 Google Home app (GHA)Android 或 iOS 手機上完成帳戶連結。在執行帳戶連結之前,您也必須擁有與您的帳戶相關聯的裝置。


問:嘗試使用模擬器時為什麼收到錯誤訊息?

答:您無法使用模擬工具測試已部署的 smart home 動作。如要在正式環境中使用模擬工具執行家用裝置自動化專案,您必須建立測試用的新專案。


報表狀態

問:導入「報告狀態」是否有先決條件?

答:專案必須使用 Smart Home API、支援 OAuth2,且必須具備要回報狀態的特徵。


問:我們多久必須回報裝置狀態?

答:Google 對轉換和終端機狀態感興趣,但如果使用者在短時間內多次開啟冰箱三次 (例如使用者一分鐘內開啟並關掉冰箱三次,或用暗色轉盤),則我們只需要回報最終狀態。


問:進行回報狀態呼叫時,是否需要傳送完整的裝置狀態?

答:系統不支援部分狀態更新,因此 Report State 呼叫應一律包含已更新的特定特徵的所有資料。如果兩個特徵會造成不一致,則應一併回報這些特徵。


問:Google 可以查詢我的裝置來取得狀態 (也就是輪詢裝置) 嗎?

答:我們不建議採用這項備用機制。如果需要回頭針對這些使用者頻繁輪詢裝置,我們無法保證額外負載會增加。這項需求來自新的視覺介面。除了未知的載入問題之外,也會降低使用者體驗。我們認為 Report State 對這個平台至關重要。


問題:哪些特徵支援「回報狀態」?

答:系統支援所有具有相關州名的公開特徵。如果裝置處於線上狀態有任何變化,也應一併回報。

請注意,場景沒有狀態。但可能會導致裝置狀態變更。如果「Google Home Graph」中的任何裝置處於變更狀態,就必須回報這項資訊。


問:報表狀態是否需要傳送時間戳記?

答:我們不需要時間戳記,最後傳送的狀態會覆寫先前的呼叫。


問:如果我已經在「查詢」和/或「執行」中傳送狀態,是否需要個別製作報表?

答: Home Graph 只會儲存透過 Report State 傳送的狀態。做為 EXECUTE 和 QUERY 意圖回應傳回的狀態只會用於向使用者顯示語音回應,並不會儲存狀態。因此,即使裝置已傳回 EXECUTE 或 QUERY 意圖的回應,仍應呼叫 Report State


問:沒有在指定期限內完全導入「報告狀態」的後果,

答:這會導致使用者體驗不佳,例如 GHA 和視覺途徑。這表示系統會將許多 QUERY 意圖傳送至狀態的輪詢,但我們無法保證這可對應合作夥伴雲端上的額外負載。


問:如何測試「報表狀態」的導入作業?

答:使用 Home Graph Viewer - 自助式測試工具顯示儲存在 Home Graph 中的目前裝置狀態。


問:我們可以對「報告狀態」使用隨機 requestId 嗎?

答:如果 Report State 是由 EXECUTE 要求觸發,建議合作夥伴使用從 EXECUTE 要求收到的 requestId,否則,您可以使用隨機 requestId。


問:如果使用者有多部裝置,其中一部裝置的狀態有所變更,我們是否必須回報所有裝置的最新狀態?

答:不行,你只要回報該裝置的狀態即可。


最佳做法

問:可接受的延遲時間類型為何?

答:200 毫秒以內,適合介於 2 至 5 秒之間。如果延遲時間超過 5 秒,請與我們聯絡。


問:要如何讓聲控喇叭在離線時正確回應?

答:將離線裝置改回離線狀態。針對這個錯誤,我們會傳回「目前無法使用」做為 TTS。詳情請參閱錯誤和例外狀況