מודל נתונים

ממשקי ה-API של Home מציגים את כל המכשירים בסביבה העסקית של 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. בממשקי ה-API של Home, מאפיינים שמבוססים על Matter נקראים מאפיינים ולא אשכולות.

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

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

מאפיינים

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

כל מאפיין נמצא במרחב שמות משלו, וצריך לייבא אותו בנפרד כדי להשתמש בו.

לדוגמה, כדי להשתמש במאפיין Matter On/Off ובסוג המכשיר On/Off Plugin Unit, צריך לייבא את החבילות הבאות לאפליקציה:

import com.google.home.matter.standard.OnOff
import com.google.home.matter.standard.OnOffPluginUnitDevice

לסוג מכשיר בחניה (מהבית החכם של Google), צריך לכלול שילוב של מאפייני Matter ומאפייני Google:

import com.google.home.google.LockUnlock
import com.google.home.matter.standard.DoorLock
import com.google.home.matter.standard.GoogleGarageDevice

ל-Android Studio יש פונקציונליות של השלמה אוטומטית, ולרוב היא יטפל בשמות המלאים של החבילות בשבילכם כשתוסיפו שורות import לקובצי המקור בפרויקט. עם זאת, שמות החבילות לא עקביים בכל סוגי המכשירים והמאפיינים שלהם. במסמך העזרה מפורט שם החבילה הנכון לכל DeviceType או Trait.

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

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

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

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

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

לדוגמה, Fan device type מורכב משניהם וכולל שני מאפיינים של FanControl:

  • המאפיין FanControl Matter מספק את כל הפונקציונליות של המאפיין FanControl Matter
  • מאפיין Google‏ ExtendedFanControl מספק את כל הפונקציונליות של מאפיין Google‏ smart home FanSpeed שלא מכוסה על ידי מאפיין FanControl‏ Matter

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