ממשקי Google Home API ל-Android מספקים ממשק API מאוחד שמאפשר למפתחים לבצע אינטראקציה עם מצב הישויות בבית של המשתמש. הישויות האלה יכולות לתאר מכשירים ומידע שאינו קשור למכשירים, שמשויך למבנה ולחדרים של המשתמש.
ממשקי ה-API של Home מגדירים את הישויות הבאות שמשתמש יכול ליצור איתן אינטראקציה:
- מבנים מייצגים בית שמכיל חדרים ומכשירים.
- חדרים הם חלק ממבנה ומכילים מכשירים.
- מכשירים מטמיעים מאפיינים שמכילים תכונות, תואמים לסוגים, פולטים אירועים ומגיבים לפקודות.
- פעולות אוטומטיות הן חלק מהמבנה, והן משתמשות במטא-נתונים של הבית ובמכשירים כדי לבצע פעולות אוטומטיות בבית.
איור 1 מציג את הארכיטקטורה הזו:
יכול להיות שסוגי מכשירים ב-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.
מערכת אקולוגית
המערכת האקולוגית של Google Home מספקת בסיס יעיל לבנייה, לניהול, לאבטחה ולשילוב של חוויות בית חכם. באיור 2 אפשר לראות איך כל הרכיבים פועלים יחד.
המערכת האקולוגית כוללת את Google Automation Engine שמאחסן ומריץ פעולות אוטומטיות. הפעולות האלה מאפשרות לבצע אוטומציה של משימות והגדרות מכשירים בבית.
ממשקי ה-API של Home משתמשים ב-OAuth 2.0 כדי להעניק גישה למכשירים במבנה. פרוטוקול OAuth מאפשר למשתמש להעניק הרשאה לאפליקציה או לשירות בלי לחשוף את פרטי הכניסה שלו.
ה-Google Home Developer Console משמש לניהול כל השלבים בפרויקט של ממשקי Home API, החל מאימות המותג, דרך פיתוח, בדיקה ואישור, ועד להשקה הסופית. היא מייעלת את תהליך הפיתוח ומספקת כלים חזקים והפצה דרך הסביבה העסקית של Google Home.
שפה
ממשקי ה-API של Home ל-Android כתובים ב-Kotlin ומספקים ממשק Kotlin אידיומטי שמשתמש ב-Flow כדי לנהל את המצב והמינוי. הגישה הזו מספקת מספר יתרונות בהשוואה ל-API רגיל למינויים.
מומלץ לעיין במסמכי התיעוד של Kotlin בנושאים הבאים, אם עדיין לא עשיתם זאת: קורוטינות, זרימה ו-Jetpack פיתוח נייטיב:
- פיתוח אפליקציות ל-Android באמצעות Kotlin
- לימוד Kotlin ל-Android
- שגרות משנה (coroutines) ב-Kotlin ב-Android. ה-codelabs הספציפיים האלה עשויים להיות שימושיים:
- Kotlin flows on Android, ובאופן ספציפי יותר, StateFlow.
- מצב ו-Jetpack פיתוח נייטיב, במיוחד הפונקציה
collectAsStateWithLifecycle(). הפונקציה הזו מנהלת באופן אוטומטי את ההרשמה לזרימות ואת ביטול ההרשמה מהן, בהתאם לכך שממשק המשתמש שמציג את המצב נמצא בפועל בחזית או לא. - אם אתם עובדים עם Automation API, כדאי לקרוא על Kotlin type-safe builders כדי להבין איך Automation DSL פועל.
מזהי ישויות
לכל ישות בממשקי ה-API של Home יש מזהה שמייצג את המזהה הראשי שלה. המזהה הזה הוא ייחודי וקבוע, והוא לא ישתנה אף פעם במהלך חיי הישות. אפשר להשתמש במזהה הזה כדי לשמור אובייקטים במטמון או כדי לבדוק אם הם זהים, כי המטא-נתונים של ישות יכולים להשתנות.
בממשק של HasId מפורטות הישויות שיש להן מזהה.
מיפוי מונחים
המיפוי של ישויות בממשקי ה-API של Home למושגים Matter ו-Cloud-to-cloud הוא כדלקמן:
| Home APIs | Matter | Cloud-to-cloud |
|---|---|---|
| תכונה | אשכול | תכונה |
| מאפיין | מאפיין | מאפיין, מצב |
| פקודה | פקודה | פקודה |
| אירוע | אירוע | Follow up response, Notification |