iOS 適用的 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 類比。
如需裝置類型及其特徵的清單,請參閱「iOS 支援的裝置類型」。
特徵
系統會產生特徵的 Swift 版本,供 Home API 使用,並包含 Home API 專屬的其他功能 (Matter 或 Cloud-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應用程式叢集,做為資料模型中的特徵。不對應裝置控制項或狀態,且對使用者沒有任何實用性的特徵 (例如繫結和群組),不會透過 Home API 公開。
衍生自 Cloud-to-cloud 智慧住宅特徵的特徵,通常在 Cloud-to-cloud 和 Home API 之間具有相同名稱,例如 OpenCloseTrait
範例。其他則以 Matter 特徵的擴充功能形式呈現,並使用 Matter 製造商專屬擴充功能建立。這些特徵可彌補 smart home 特徵的落差,因為功能會分散在 Matter SDK 和 Google Home 生態系統之間。舉例來說,Google*
裝置類型來自 Cloud-to-cloud,但目前沒有對應的 Matter 裝置。
裝置類型是由一或兩個來源 (Matter 或 Cloud-to-cloud) 的特徵組成。
舉例來說,FanDeviceType
包含兩者,並具有三項特徵:
IdentifyTrait
Matter 特徵提供 MatterIdentifyTrait
的所有功能。FanControlTrait
Matter 特徵提供 MatterFanControlTrait
的所有功能。ExtendedFanControlTrait
Google 特徵提供 Google smart homeFanSpeedTrait
的所有功能,但FanControlTrait
Matter 特徵未涵蓋這些功能。
這類特徵組合提供彈性模型,可完整呈現裝置類型功能,並抽象化基礎 smart home 資料模型。