Android 適用的 Home API 會以統一資料模型呈現 Google Home 生態系統中的所有裝置。這個資料模型涵蓋所有類型的裝置 (包括 Google Nest 或第三方製造商的裝置),無論底層智慧住宅技術為何 (例如 Matter 或 Cloud-to-cloud),都能提供通用的 API 介面,供 smart home 和行動應用程式開發人員建構使用者體驗。
裝置類型
Google Home API 中顯示的裝置類型是 Matter 和 Cloud-to-cloud 資料模型的統一版本。部分直接衍生自 Matter,部分是 Matter 裝置類型的延伸,部分則衍生自 Cloud-to-cloud。
裝置類型包含用於控制及管理裝置的特徵。與裝置類型類似,特徵是從 Matter 叢集和 Cloud-to-cloud 特徵衍生而來,並以與 Matter 叢集類似的常見格式呈現。在 Home API 中,Matter 衍生特徵稱為「特徵」,而非「叢集」。
因此,Google Home API 中的裝置類型和特徵會以 Matter 為優先。Matter 裝置類型或特徵的優先順序高於 Cloud-to-cloud 類比。
如需裝置類型及其特徵的清單,請參閱「Android 支援的裝置類型」。
特徵
系統會產生特徵的 Kotlin 版本,供 Home API 使用,並包含 Home API 專屬的其他功能 (Matter 或 Cloud-to-cloud 中沒有)。舉例來說,每個特徵都有方法可檢查特徵是否支援特定屬性或指令。這項資訊有助於判斷是否能在使用者的裝置上讀取狀態或執行特定動作,因為裝置類型中的所有裝置不一定都具備相同功能。
每個特徵都包含在自己的命名空間中,且必須個別匯入才能使用。
舉例來說,如要使用「開/關」Matter特徵和「開/關外掛程式單元」裝置類型,請將下列套件匯入應用程式:
import com.google.home.matter.standard.OnOff
import com.google.home.matter.standard.OnOffPluginUnitDevice
如果是車庫裝置類型 (來自 Google 智慧住宅),請加入 Google 特徵的組合:Matter 和
import com.google.home.google.LockUnlock
import com.google.home.matter.standard.DoorLock
import com.google.home.matter.standard.GoogleGarageDevice
Android Studio 具有自動完成功能,在專案的來源檔案中新增 import
行時,通常會為您處理完整套件名稱。不過,不同裝置類型和特徵的套件名稱並不一致。請參閱參考資料,確認每個 DeviceType
或 Trait
的套件名稱是否正確。
特徵也支援用於自動化動作,但可能有限制,且部分特徵僅適用於自動化動作。如需清單,請參閱「Android 上的 Automation API 特徵支援」。
裝置類型組成
Home API 支援大多數Matter應用程式叢集,做為資料模型中的特徵。不對應裝置控制項或狀態,且對使用者沒有任何實用性的特徵 (例如繫結和群組),不會透過 Home API 公開。
衍生自 Cloud-to-cloud 智慧住宅特徵的特徵,通常在 Cloud-to-cloud 和 Home API 之間具有相同名稱,例如 OpenClose 範例。其他則以 Matter 特徵的擴充功能形式呈現,並使用 Matter 製造商專屬擴充功能建立。這些特徵可彌補 smart home 特徵的落差,因為功能會分散在 Matter SDK 和 Google Home 生態系統之間。舉例來說,Google*
裝置類型來自 Cloud-to-cloud,但目前沒有對應的 Matter 裝置。
裝置類型是由一或兩個來源 (Matter 或 Cloud-to-cloud) 的特徵組成。
Identify
Matter 特徵提供 MatterIdentify
的所有功能。FanControl
Matter 特徵提供 MatterFanControl
特徵的所有功能ExtendedFanControl
Google 特徵提供 Google smart homeFanSpeed
特徵的所有功能,但FanControl
Matter 特徵未涵蓋這些功能
這類特徵組合提供彈性模型,可完整呈現裝置類型功能,並抽象化基礎 smart home 資料模型。