מודל נתונים ב-iOS

ממשקי ה-API של Home ל-iOS מציגים את כל המכשירים בסביבה העסקית של Google Home במודל נתונים מאוחד. מודל הנתונים הזה מכסה את כל סוגי המכשירים (מ-Google Nest או מיצרנים של צד שלישי), ללא קשר לטכנולוגיה הבסיסית של הבית החכם (כמו Matter או Cloud-to-cloud), ומספק ממשק API משותף ליצירת חוויות משתמש למפתחי smart home ולמפתחי אפליקציות לנייד.

סוגי מכשירים

סוגי המכשירים שמוצגים בממשקי ה-API של Home הם איחוד של מודלים של נתונים מסוג Matter ו-Cloud-to-cloud. חלק מהם נגזרים ישירות מ-Matter, חלקם הם הרחבה של סוגי המכשירים של Matter וחלקם נגזרים מ-Cloud-to-cloud.

סוגי המכשירים מכילים מאפיינים שמשמשים לשליטה ולניהול של מכשירים. בדומה לסוגים של מכשירים, המאפיינים נגזרים מאשכולות Matter וממאפייני Cloud-to-cloud, והם מוצגים בפורמט נפוץ שדומה לפורמט של אשכולות Matter. ב-Home APIs, מאפיינים שמבוססים על Matter נקראים מאפיינים ולא אשכולות.

לכן, סוגי המכשירים והמאפיינים שלהם בממשקי ה-API של Home מיועדים לשימוש ב-Matter-first. סוג מכשיר או מאפיין Matter מקבלים עדיפות על פני Cloud-to-cloud מקביל.

בקישור סוגי המכשירים הנתמכים ב-iOS מופיעה רשימה של סוגי המכשירים והמאפיינים שלהם.

מאפיינים

גרסאות Swift של מאפיינים נוצרות לשימוש ב-Home APIs, והן מכילות תכונות נוספות שספציפיות ל-Home APIs (לא נמצאות ב-Matter או ב-Cloud-to-cloud). לדוגמה, לכל מאפיין יש שיטות לבדיקת התמיכה של המאפיין במאפיין או בפקודה ספציפיים. המידע הזה שימושי כשרוצים לקבוע אם אפשר לבצע קריאה של מצב או פעולות מסוימות במכשיר של משתמש, כי לא כל המכשירים באותו סוג מכשיר צפויים לכלול את אותן תכונות.

כדי לייבא מאפיינים וסוגי מכשירים, מייבאים את המודול GoogleHomeTypes לאפליקציה:

import GoogleHomeTypes

בנוסף, אפשר להשתמש ב-typealias בשמות של מאפיינים וסוגים של מכשירים כדי לקצר את הקוד ולהימנע מהחזרה על שמות במרחב השמות:

import GoogleHomeTypes

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

אפשר להשתמש במאפיינים גם עם פעולות אוטומטיות, אבל יכול להיות שהשימוש בהם יהיה מוגבל, וחלק מהמאפיינים זמינים רק לפעולות אוטומטיות. בקישור הבא אפשר למצוא רשימה של המאפיינים שנתמכים ב-Automation API ב-iOS: תמיכה במאפיינים של Automation API ב-iOS.

הרכב של סוגי המכשירים

ממשקי ה-API של Home תומכים ברוב אשכולות האפליקציות של Matter בתור מאפיינים במודל הנתונים. מאפיינים שלא תואמים לשליטה במכשיר או למצבים שלו, ולא מציעים תועלת למשתמשי קצה, כמו קישור וקבוצות, לא נחשפים דרך ממשקי ה-API של Home.

לתכונות שמקורן בתכונות הבית החכם של Cloud-to-cloud יש בדרך כלל שם זהה ב-Cloud-to-cloud וב-Home APIs, כמו בדוגמה של OpenCloseTrait. מאפיינים אחרים מיוצגים כתוספים למאפייני Matter, שנוצרים באמצעות תוספים Matter ספציפיים ליצרן. המאפיינים האלה פותרים את הבעיה של מאפיין smart home שבו הפונקציונליות מחולקת בין ה-SDK של Matter לבין הסביבה העסקית של Google Home. דוגמה ספציפית לכך היא סוגי המכשירים Google* שמגיעים מ-Cloud-to-cloud אבל עדיין אין להם מקבילים ל-Matter.

סוגי המכשירים מורכבים ממאפיינים ממקור אחד או משני המקורות, Matter או Cloud-to-cloud.

לדוגמה, המאפיין FanDeviceType מורכב משניהם וכולל שלושה מאפיינים:

  • המאפיין IdentifyTrait Matter מספק את כל הפונקציונליות של המאפיין Matter IdentifyTrait.
  • המאפיין FanControlTrait Matter מספק את כל הפונקציונליות של המאפיין Matter FanControlTrait.
  • המאפיין Google‏ ExtendedFanControlTrait מספק את כל הפונקציונליות של Google‏ smart home FanSpeedTrait שלא מכוסה במאפיין FanControlTrait Matter.

סוג ההרכבה הזה של המאפיינים מספק מודל גמיש לפונקציות מלאות של סוג המכשיר, ומבודד את מודלי הנתונים הבסיסיים של smart home.