ממשקי ה-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 נקראות traits ולא clusters.
לכן, סוגי מכשירים ותכונות בממשקי ה-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 ב-Android.
הרכב סוגי המכשירים
ממשקי ה-API של Home תומכים ברוב אשכולות האפליקציות של Matter כמאפיינים במודל הנתונים. מאפיינים שלא תואמים לשליטה במכשיר או למצבים, ולא מציעים שום תועלת למשתמשי הקצה, כמו Binding ו-Groups, לא נחשפים דרך ממשקי ה-API של Home.
מאפיינים שנגזרים מCloud-to-cloud מאפיינים של בית חכם בדרך כלל נקראים באותו שם ב-Cloud-to-cloud ובממשקי ה-API של Home, כמו בדוגמה של OpenCloseTrait. מאפיינים אחרים מיוצגים כהרחבות של מאפייני Matter, שנוצרו באמצעות הרחבות ספציפיות ליצרן של Matter. המאפיינים האלה מגשרים על הפער במאפיין smart home, שבו הפונקציונליות מחולקת בין Matter SDK לבין המערכת האקולוגית של Google Home. דוגמה ספציפית לכך היא סוגי המכשירים Google* שמגיעים מ-Cloud-to-cloud אבל עדיין אין להם אנלוגים של Matter.
סוגי המכשירים מורכבים מ-Traits ממקור אחד או משני המקורות, Matter או Cloud-to-cloud.
לדוגמה, FanDeviceType מורכב מ- וכולל שלושה מאפיינים:
- מאפיין
IdentifyTraitMatter מספק את כל הפונקציונליות של מאפיין MatterIdentifyTrait. - מאפיין
FanControlTraitMatter מספק את כל הפונקציונליות של מאפיין MatterFanControlTrait. ExtendedFanControlTraitמאפיין Google מספק את כל הפונקציונליות של smart homeFanSpeedTraitGoogle שלא נכללת במאפייןFanControlTraitMatter.
ההרכב הזה של מאפיינים מספק מודל גמיש לפונקציונליות מלאה של סוג המכשיר, ומבצע הפשטה של מודלים בסיסיים של נתונים ב-smart home.