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