סקירה כללית על Home APIs ל-Android

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

ממשקי ה-API של Home מגדירים את הישויות הבאות שמשתמש יכול ליצור איתן אינטראקציה:

  • מבנים מייצגים בית שמכיל חדרים ומכשירים.
  • חדרים הם חלק ממבנה ומכילים מכשירים.
  • מכשירים מטמיעים מאפיינים שמכילים תכונות, תואמים לסוגים, פולטים אירועים ומגיבים לפקודות.
  • פעולות אוטומטיות הן חלק מהמבנה ומשתמשות במטא-נתונים של הבית ובמכשירים כדי להפוך משימות בבית לאוטומטיות.

איור 1 מציג את הארכיטקטורה הזו:

תרשים שמתאר את ארכיטקטורת ממשקי ה-API של Home באפליקציית Android
איור 1: ארכיטקטורה של ממשקי ה-API של Home באפליקציית Android

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

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

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

יש גם מאפיינים אחרים, כמו אשכולות ספציפיים ליצרן ומאפייני פלטפורמה. מידע נוסף על מודל הנתונים ב-Android

שפה

ממשקי ה-API של Home ל-Android כתובים ב-Kotlin ומספקים ממשק Kotlin אידיומטי שמשתמש ב-Flow כדי לנהל את המצב והמינוי. הגישה הזו מספקת מספר יתרונות בהשוואה ל-API רגיל למינויים.

מומלץ לעיין במסמכי התיעוד של Kotlin בנושאים הבאים, אם עדיין לא עשיתם זאת: קורוטינות, זרימה ו-Jetpack Compose:

מזהים של ישויות

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

בממשק של HasId מוסבר אילו ישויות כוללות מזהה.

מיפוי מונחים

המיפוי של ישויות בממשקי ה-API של Home למושגים Matter ו-Cloud-to-cloud הוא כדלקמן:

Home APIs Matter Cloud-to-cloud
תכונה אשכול תכונה
מאפיין מאפיין מאפיין, מצב
פקודה פקודה פקודה
אירוע אירוע תגובה להמשך טיפול, התראה