Android 適用的 Home API 總覽

Android 專用 Google Home API 提供統一的 API 介面,可讓開發人員與使用者住家的實體狀態互動。這些實體可以描述與使用者住家結構和房間相關聯的裝置和非裝置資訊。

Home API 定義了使用者可互動的下列實體:

  • 結構體代表包含房間和裝置的住家。
  • 房間是住家結構的一部分,包含裝置。
  • 裝置會實作包含屬性的特徵、符合類型、發出事件,以及回應指令。
  • 裝置群組是使用者定義的裝置集合,位於結構中。
  • 自動化動作是住家結構體的一部分,會使用住家中繼資料和裝置,自動執行住家中的工作。

圖 1 說明瞭這個架構:

Android 應用程式的 Home API 架構圖
圖 1:Android 應用程式的 Home API 架構

Home API 裝置類型可能由 Matter (智慧住宅的開放標準) 支援,也可能是 Google Home 生態系統中的 Cloud-to-cloud 裝置。部分裝置類型可能同時具備這兩種功能。詳情請參閱「Android 支援的裝置類型」。

在 Matter 中,裝置功能會依叢集分組,在 Home API 中以 Matter 標準特徵表示。Home API 支援目前 Matter 規格中定義的標準 Matter 叢集組合。

在 Google Home 生態系統中,裝置功能會依智慧住宅特質分組,在 Home API 中以 Google 智慧住宅特質表示。Home API 支援 Cloud-to-cloud 計畫中定義的一組智慧住宅特徵。

此外,您也可以使用其他特徵,例如製造商專屬叢集和平台特徵。詳情請參閱「Android 資料模型」。

生態系統

Google Home 生態系統提供簡化的基礎,可用於建構、管理、保護及整合智慧型住宅體驗。圖 2 顯示各元件如何搭配運作。

Android 應用程式 Home API 生態系統圖
圖 2:Android 應用程式的 Home API 生態系統

這個生態系統包含 Google 自動化引擎,可儲存及執行自動化動作,自動執行住家中的工作和裝置設定。

Home API 使用 OAuth 2.0 授予住家裝置的存取權。OAuth 可讓使用者授權應用程式或服務,而不必公開登入憑證。

Google Home Developer Console 可用於管理 Home API 專案的所有階段,包括品牌驗證、開發、測試、認證,以及最終推出。這項服務可簡化開發程序,並透過 Google Home 生態系統提供強大的工具和發布功能。

語言

Android 適用的 Home API 是以 Kotlin 編寫,並提供慣用的 Kotlin 介面,使用 Flow 管理狀態和訂閱項目。與標準訂閱 API 相比,這項功能具有多項優勢。

如果您還不熟悉協同程式、流程和 Jetpack Compose 的 Kotlin 說明文件,建議您先熟悉這些內容:

實體 ID

Home API 中的每個實體都有一個 ID,代表其主要 ID。這個 ID 是專屬且固定的 ID,在實體的生命週期內不會改變。由於實體的中繼資料可能會變更,因此這個 ID 可用於快取物件或檢查是否相等。

請參閱 HasId 介面,瞭解哪些實體具有 ID。

術語對應

Home API 中的實體會對應至 Matter 和 Cloud-to-cloud 概念,如下所示:

Home API Matter Cloud-to-cloud
Trait 叢集 Trait
屬性 屬性 屬性、狀態
指令 指令 指令
事件 事件 後續回覆、通知