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