ממשקי ה-API של Google Home ל-Android מספקים ממשק API מאוחד שמאפשר למפתחים לקיים אינטראקציה עם מצב הישויות בבית של המשתמש. הישויות האלה יכולות לתאר מכשירים ומידע שאינו קשור למכשירים, שמשויכים למבנה ולחדרים של המשתמש.
ממשקי ה-API של Home מגדירים את הישויות הבאות שהמשתמש יכול לקיים איתן אינטראקציה:
- מבנים מייצגים בית שמכיל חדרים ומכשירים.
- חדרים הם חלק ממבנה ומכילים מכשירים.
- מכשירים מיישמים תכונות שמכילות מאפיינים, תואמים לסוגים, פולטים אירועים ומגיבים לפקודות.
- קבוצות מכשירים הן אוספים של מכשירים במבנה שהמשתמשים מגדירים.
- פעולות אוטומטיות הן חלק ממבנה, והן משתמשות במטא-נתונים ובמכשירים של הבית כדי לבצע משימות בבית באופן אוטומטי.
באיור 1 מוצגת הארכיטקטורה הזו:
סוגי המכשירים ב-Home API יכולים להיות מבוססים על Matter, תקן פתוח לבית החכם, או להיות מכשיר Cloud-to-cloud בסביבה העסקית של Google Home. יש סוגי מכשירים שכוללים פונקציונליות משני הסוגים. מידע נוסף זמין במאמר סוגי מכשירים נתמכים ב-Android.
ב-Matter, הפונקציונליות של המכשיר מקובצת לפי אשכולות, שמיוצגים ב-Home APIs כתכונות סטנדרטיות של Matter. ממשקי ה-API לבית תומכים בקבוצת האשכולות הרגילה של Matter, כפי שמוגדר במפרט הנוכחי של Matter.
בסביבה העסקית של Google Home, הפונקציונליות של המכשירים מקובצת לפי תכונות של בית חכם, שמיוצגות בממשקי ה-API של Home כתכונות של בית חכם של Google. ממשקי ה-API של Home תומכים בקבוצה של תכונות לבית חכם, כפי שמוגדר בתוכנית Cloud-to-cloud.
יש גם תכונות אחרות, כמו אשכולות ספציפיים ליצרן ותכונות פלטפורמה. מידע נוסף על מודל הנתונים ב-Android
המערכת האקולוגית
הסביבה העסקית של Google Home מספקת בסיס יעיל ליצירה, לניהול, לאבטחה ולשילוב של חוויות בבית החכם. באיור 2 מוצג איך כל הרכיבים פועלים יחד.
המערכת כוללת את מנוע האוטומציה של Google, שמאחסן ומריץ פעולות אוטומטיות שמאפשרות לבצע משימות באופן אוטומטי ולשנות את הגדרות המכשירים בבית.
ממשקי ה-API של Home משתמשים ב-OAuth 2.0 כדי לתת גישה למכשירים במבנה. באמצעות OAuth, המשתמשים יכולים לתת הרשאה לאפליקציה או לשירות בלי לחשוף את פרטי הכניסה שלהם.
Google Home Developer Console משמש לניהול כל השלבים של פרויקט Home APIs, מאימות המותג ועד לפיתוח, לבדיקה, לאישור ולבסוף להשקה. הוא מייעל את תהליך הפיתוח ומספק כלים חזקים והפצה דרך הסביבה העסקית של Google Home.
שפה
ממשקי ה-Home API ל-Android כתובים ב-Kotlin ומספקים ממשק Kotlin אידיומטי שמשתמש ב-Flow כדי לנהל את המצב והמינוי. יש לכך כמה יתרונות על פני API רגיל של מינויים.
אם אתם עדיין לא מכירים את התיעוד של Kotlin בנושא שגרות המשך, זרימה ו-Jetpack Compose, מומלץ לעיין בו:
- פיתוח אפליקציות ל-Android באמצעות Kotlin
- למידת Kotlin ל-Android
- שגרות המשך (coroutines) ב-Kotlin ב-Android. יכול להיות ששיעורי ה-Codelab הספציפיים האלה יהיו שימושיים:
- תהליכי Kotlin ב-Android, ובאופן ספציפי יותר, StateFlow.
- מצב ו-Jetpack Compose, במיוחד הפונקציה
collectAsStateWithLifecycle(). הפונקציה הזו מנהלת באופן אוטומטי את ההרשמה לזרימות ואת ביטול ההרשמה אליהן, בהתאם לשאלה אם ממשק המשתמש שמציג את המצב הזה נמצא בפועל בחזית או לא. - אם אתם עובדים עם Automation API, כדאי לקרוא על Kotlin type-safe builders כדי להבין איך Automation DSL פועל.
מזהי ישויות
לכל ישות ב-Home APIs יש מזהה שמייצג את המזהה הראשי שלה. המזהה הזה הוא מזהה ייחודי וקבוע שלא ישתנה אף פעם במהלך חיי הישות. אפשר להשתמש במזהה הזה כדי לשמור אובייקטים במטמון או לבדוק אם הם זהים, כי המטא-נתונים של ישות יכולים להשתנות.
כדי לראות לאילו ישויות יש מזהה, אפשר לעיין בממשק של HasId.
מיפוי מונחים
הישויות בממשקי ה-API של Home ממפות למושגים של Matter ו-Cloud-to-cloud באופן הבא:
| Home APIs | Matter | Cloud-to-cloud |
|---|---|---|
| תכונה | אשכול | תכונה |
| מאפיין | מאפיין | מאפיין, מדינה |
| פקודה | פקודה | פקודה |
| אירוע | אירוע | תגובת המשך, התראה |