אפשר להטמיע מכשירים במערכת האקולוגית של Google Home באמצעות Cloud-to-cloud, Matter או שניהם. יש סוגים של מכשירים שהם מורכבים יותר מאחרים, וקשה לפתח אותם באמצעות ממשקי ה-API של Home באופן שמאפשר אינטראקציה חלקה עם מכשירים אחרים בסביבה העסקית.
אחד האתגרים בהטמעה של חלק מסוגי המכשירים האלה הוא שהמכשירים יכולים להיות מורכבים משילובים שונים של מאפיינים. חלק מהשילובים לא עובדים טוב כמו אחרים. בנוסף, מודל הנתונים Cloud-to-cloud ממופה למודל הנתונים Matter, אבל לא תמיד בצורה ברורה של מיפוי אחד לאחד. במאמר מודל נתונים ב-iOS מוסבר על מודלי הנתונים ועל המיפוי שלהם בצורה מפורטת יותר.
בדף הזה מופיע מידע נוסף על המיפוי של מודלי הנתונים למכשירים ספציפיים, ומוצעות הנחיות לגבי המאפיינים שבהם כדאי להשתמש כדי להטמיע את סוגי המכשירים האלה.
תנור
סוג המכשיר Oven (תנור) (OvenDeviceType
) והמאפיינים של הרכיבים שלו לא פשוטים להטמעה כמו סוגי מכשירים אחרים. יש כמה דרכים להטמיע תנור ב-Matter, אבל לא כל הגישות מאפשרות פעולה חלקה עם מכשירים אחרים או עם המערכת האקולוגית של Google Home.
מיפוי מאפיינים
במקום להטמיע מכשיר Matter Oven באמצעות האשכולות Oven Mode ו-On Off, מומלץ להשתמש באשכול Oven Cavity Operational State. האוסף הזה מיוצג בממשקי ה-API של Home באמצעות מאפיין OvenCavityOperationalStateTrait
, ומופה למאפיין Cloud-to-cloud
RunCycle
. הוא מגדיר שלבים כמו pre-heating (חימום מראש), pre-heated (מחומם מראש) ו-cooling down (התקררות).
Home APIs | Cloud-to-cloud |
---|---|
OvenCavityOperationalState
|
RunCycle
|
יש מגבלות במודל הנתונים של Cloud-to-cloud Oven. מודל הנתונים של התנור Cloud-to-cloud מאפשר רק תא אחד, עם RunCycle
אחד. לעומת זאת, Matter מתאר תנור עם כמה תאים כנקודת קצה של מכשיר עם אשכול של מצב תפעולי של תא תנור לכל תא.
יכול להיות שבחלק ממכשירי Oven, רשימת השלבים תשתנה בזמן הריצה. לדוגמה, לתנורים שתומכים בחימום מראש יכולים להיות ערכים שונים ברשימת השלבים במהלך שלב החימום מראש מאשר במהלך שלבי החימום או הקירור.
הטמעה מומלצת
כמו שצוין בקטע הקודם, הטמעה של Matter תנור
צריכה לכלול את אשכול מצב ההפעלה של חלל התנור, שממומש בממשקי Home API בתור מאפיין OvenCavityOperationalStateTrait
.
כדי לקבל את התוצאות הטובות ביותר, חשוב לוודא שמכשיר Cloud-to-cloud התנור
מטמיע את מאפיין RunCycle
ולפרסם את המצב הנוכחי על ידי הגדרת מאפיין currentRunCycle
. אפשר לראות את המאפיין הזה באמצעות ממשקי ה-API של Home דרך המאפיינים OvenCavityOperationalStateTrait.phaseList
ו-OvenCavityOperationalStateTrait.currentPhase
.
מכשיר התנור צריך גם לפרסם התראה על מחזור הפעלה על ידי עדכון המאפיינים priority
, status
ו-currentCycleRemainingTime
של RunCycle
. בדוגמה הבאה, האירוע OperationalStateTrait.OperationCompletion
נשלח, ואפשר להשתמש בו כדי לציין שהתנור עבר מהמחזור pre-heating (חימום מוקדם) למחזור pre-heated (חימום מוקדם הושלם):
{
"currentRunCycle": [
{
"currentCycle": "pre-heating",
"nextCycle": "pre-heated",
"lang": "en"
}
],
"currentTotalRemainingTime": 1200,
"currentCycleRemainingTime": 300
}
שימוש ב-Oven באוטומציה
כשיוצרים אוטומציה לתנור שהוטמעה באמצעות אשכול Oven Cavity Operational State, צריך להפנות למאפיין currentPhase
כדי לדעת באיזה מחזור התנור נמצא:
sequential {
let operationalState = starter(
oven,
OvenDeviceType.self,
OvenCavityOperationalStateTrait.self
)
operationalState
condition {
operationalState.phaseList[operationalState.currentPhase.toUInt()].equals("pre-heated")
}
for speaker in speakers {
action(speaker, SpeakerDeviceType.self) {
Google.AssistantBroadcastTrait.broadcast(msg: "Oven Cycle Complete")
}
}
}
דוגמה מלאה מופיעה במאמר אם הטלוויזיה פועלת כשהמחזור בתנור מסתיים, האורות בסלון מהבהבים והרמקול החכם משמיע את ההודעה 'המחזור בתנור הסתיים'.