資料模型

Home API 會以統一的資料模型呈現 Google Home 生態系統中的所有裝置。這個資料模型涵蓋所有類型的裝置 (來自 Google Nest 或第三方製造商),不論底層智慧型家居技術為何 (例如 MatterCloud-to-cloud),並提供通用 API 介面,可為 smart home 和行動應用程式開發人員打造使用者體驗。

裝置類型

Home API 中顯示的裝置類型是 MatterCloud-to-cloud 資料模型的統一版本。有些是直接從 Matter 衍生,有些是 Matter 裝置類型的擴充功能,有些則是從 Cloud-to-cloud 衍生。

裝置類型包含用於控制及管理裝置的特徵。與裝置類型一樣,特徵會衍生自 Matter 叢集和 Cloud-to-cloud 特徵,並以類似於 Matter 叢集的通用格式呈現。在 Home API 中,Matter 衍生特徵稱為「特徵」,而非「叢集」

因此,Home API 中的裝置類型和特徵應以 Matter 為優先。Matter 裝置類型或特徵的優先順序高於 Cloud-to-cloud 類比裝置。

如需裝置類型清單及其特徵,請參閱「支援的裝置類型」。

特徵

系統會為 Home API 產生 Kotlin 版本的元件,並包含 Home API 專屬的其他功能 (MatterCloud-to-cloud 中沒有)。舉例來說,每個元件都有方法,可檢查元件是否支援特定屬性或指令。這項功能可用於判斷是否可以在使用者的裝置上執行狀態讀取或特定操作,因為某裝置類型的所有裝置不一定都具備相同功能。

每個特徵都包含在其專屬命名空間中,且必須個別匯入才能使用。

舉例來說,如要使用 Matter 開/關特徵和開/關外掛元件裝置類型,請將下列套件匯入應用程式:

import com.google.home.matter.standard.OnOff
import com.google.home.matter.standard.OnOffPluginUnitDevice

如果是 Garage 裝置類型 (來自 Google 智慧住宅),請混合使用 Matter 和 Google 特徵:

import com.google.home.google.LockUnlock
import com.google.home.matter.standard.DoorLock
import com.google.home.matter.standard.GoogleGarageDevice

Android Studio 具有自動完成功能,在專案中將 import 行新增至來源檔案時,通常會為您處理完整套件名稱。不過,套件名稱在所有裝置類型和特徵中並不一致。請參閱參考資料,確認每個 DeviceTypeTrait 的正確套件名稱。

特徵也支援與自動化動作搭配使用,但可能有所限制,且部分特徵僅適用於自動化動作。如需清單,請參閱「Automation API 特徵支援」。

裝置類型組合

Home API 支援大多數 Matter 1.3 應用程式叢集,可做為資料模型中的特徵。不對應裝置控制或狀態,且不提供任何實用功能給使用者 (例如 Binding 和 Group) 的特徵,不會透過 Google Home API 公開。

Cloud-to-cloud 智慧型家居特徵衍生的特徵,通常在 Cloud-to-cloud 和 Home API 之間具有相同的名稱,例如 OpenClose 範例。其他屬性則會以 Matter 特徵的擴充功能呈現,這些擴充功能是使用 Matter 製造商專屬擴充功能建立。這些特徵可彌補 smart home 特徵的差距,因為 Matter SDK 和 Google Home 生態系統之間的功能有所差異。具體來說,Google* 裝置類型就是這類情況的例子,因為它們來自 Cloud-to-cloud,但尚未有 Matter 類比。

裝置類型由 MatterCloud-to-cloud 等一或多個來源的 traits 組成。

舉例來說,風扇裝置類型包含兩者,並提供兩個 FanControl 特徵:

  • FanControl Matter 特徵提供 Matter FanControl 特徵的所有功能
  • ExtendedFanControl Google 特徵提供 Google smart home FanSpeed 特徵的所有功能,而 FanControl Matter 特徵不包含這些功能

這類特徵組合可為完整的裝置類型功能提供彈性模型,並抽象化基礎 smart home 資料模型。