ממשקי ה-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 ב-iOS.
הרכב סוגי המכשירים
ממשקי Home API תומכים ברוב 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
מורכב משני המאפיינים האלה וכולל שלוש תכונות:
- מאפיין
IdentifyTrait
Matter מספק את כל הפונקציונליות של מאפיין MatterIdentifyTrait
. - מאפיין
FanControlTrait
Matter מספק את כל הפונקציונליות של מאפיין MatterFanControlTrait
. ExtendedFanControlTrait
מאפיין Google מספק את כל הפונקציונליות של smart homeFanSpeedTrait
Google שלא נכללת במאפייןFanControlTrait
Matter.
סוג ההרכב הזה של מאפיינים מספק מודל גמיש לפונקציונליות מלאה של סוג המכשיר, ומבצע הפשטה של מודלי הנתונים הבסיסיים של smart home.