ממשקי ה-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.
סוגי מכשירים מכילים מאפיינים שמשמשים לשליטה במכשירים ולניהול שלהם. בדומה לסוגי מכשירים, התכונות נגזרות מאשכולות Matter ומאפייני Cloud-to-cloud ומוצגות בפורמט משותף שדומה לפורמט של אשכולות Matter. ב-Home APIs, תכונות שמקורן ב-Matter נקראות traits ולא clusters.
לכן, סוגי המכשירים והמאפיינים בממשקי ה-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 ו-Groups, לא נחשפים דרך ממשקי ה-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.
לדוגמה, סוג המכשיר מאוורר מורכב מ- וכולל שלוש תכונות:
- מאפיין
IdentifyMatter מספק את כל הפונקציונליות של מאפיין MatterIdentify. - מאפיין
FanControlMatter מספק את כל הפונקציונליות של מאפיין MatterFanControl - מאפיין
ExtendedFanControlGoogle מספק את כל הפונקציונליות של מאפיין smart homeFanSpeedGoogle שלא נכללת במאפייןFanControlMatter
ההרכב הזה של מאפיינים מספק מודל גמיש לפונקציונליות מלאה של סוג המכשיר, ומבצע הפשטה של מודלים בסיסיים של נתונים ב-smart home.