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

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

סוגי מכשירים

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

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

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

רשימה של סוגי מכשירים והמאפיינים שלהם ב-Android

מאפיינים

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

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

לדוגמה, כדי להשתמש בתכונה Matter On/Off ובסוג המכשיר On/Off Plug-in 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 ב-Android.

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

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

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

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

לדוגמה, סוג המכשיר Fan מורכב מ- וכולל שלושה מאפיינים:

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

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

קבוצות מכשירים

קבוצת מכשירים מייצגת אוסף של מכשירים שהוגדר על ידי המשתמש בתוך מבנה יחיד. קבוצות מכשירים מיוצגות על ידי הישות DeviceGroup, שהיא שונה מ-HomeDevice.

מידע נוסף על קבוצות מכשירים זמין במאמר ממשקי API של מבנה.