iOS 上的資料模型

iOS 版 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 類比裝置。

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

Traits

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

如要匯入特徵和裝置類型,請將 GoogleHomeTypes 模組匯入應用程式:

import GoogleHomeTypes

此外,您也可以使用 typealias 做為特徵和裝置類型名稱,以縮短程式碼並避免命名空間重複:

import GoogleHomeTypes

typealias OpenCloseTrait = Google.OpenCloseTrait
typealias OnOffTrait = Matter.OnOffTrait
typealias FanDevice = Matter.FanDeviceType

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

裝置類型組合

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

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

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

舉例來說,FanDeviceType 包含兩者,並具有三個特徵:

  • IdentifyTrait Matter 特徵提供 Matter IdentifyTrait 的所有功能。
  • FanControlTrait Matter 特徵提供 Matter FanControlTrait 的所有功能。
  • ExtendedFanControlTrait Google 特徵提供 Google smart home FanSpeedTraitFanControlTrait Matter 特徵未涵蓋的所有功能。

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