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 衍生特徵稱為「特徵」,而非「叢集」。
因此,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 公開不直接為使用者提供實用功能的低階設定叢集,例如 Binding。
衍生自 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) 的特徵組成。
IdentifyMatter 特徵提供 MatterIdentify的所有功能。FanControlMatter 特徵提供 MatterFanControl特徵的所有功能ExtendedFanControlGoogle 特徵提供 Google smart homeFanSpeed特徵的所有功能,但FanControlMatter 特徵未涵蓋這些功能
這類特徵組合提供彈性模型,可完整呈現裝置類型功能,並抽象化基礎 smart home 資料模型。
裝置群組
裝置群組代表單一結構內使用者定義的裝置集合。裝置群組是由 DeviceGroup 實體表示,與 HomeDevice 不同。
如要進一步瞭解裝置群組,請參閱「Structure API」。