iOS 上的資料模型

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

裝置類型

Google Home API 中顯示的裝置類型是 MatterCloud-to-cloud 資料模型的整合結果。部分裝置類型直接衍生自 Matter,部分是 Matter 裝置類型的擴充功能,部分則衍生自 Cloud-to-cloud

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

因此,Home API 中的裝置類型和特徵會優先於MatterMatter裝置類型或Matter特徵會優先於Cloud-to-cloud類比。

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

特徵

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

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

import GoogleHomeTypes

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

import GoogleHomeTypes

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

大多數特徵都支援自動化動作,部分特徵則適用於自動化動作。詳情請參閱「Android 上的 Automation API 特徵支援」。

裝置類型組成

在資料模型中,Home API 支援大多數的Matter應用程式叢集做為特徵。不對應裝置控制或狀態,且不為使用者提供任何實用功能的特徵 (例如繫結和群組),不會透過 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

舉例來說,FanDeviceType 同時包含這兩者,並具有三項特徵:

  • IdentifyTrait Matter 特徵提供 Matter IdentifyTrait 的所有功能。
  • FanControlTrait Matter 特徵提供 Matter FanControlTrait 的所有功能。
  • ExtendedFanControlTrait Google 特徵提供 Google smart home FanSpeedTrait 的所有功能,FanControlTrait Matter 特徵未涵蓋的功能也包含在內。

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