מודל הנתונים של המכשיר

למכשירים בMatter יש מודל נתונים מוגדר היטב (DM), שהוא מודל היררכי של תכונות המכשיר. ברמה העליונה של ההיררכיה הזו נמצא מכשיר.

מכשירים ונקודות קצה (Endpoint)

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

צמתים הם אוסף של נקודות קצה. כל נקודת קצה (Endpoint) כוללת קבוצת תכונות. לדוגמה, נקודת קצה (endpoint) יכולה להיות קשורה לפונקציונליות תאורה, בעוד שנקודת קצה אחרת קשורה לזיהוי תנועה, ולעסקה אחרת עם כלי עזר כמו OTA של המכשיר.

היררכיה של מכשירים, צמתים ונקודות קצה
איור 1: מכשירים, צמתים ונקודות קצה

תפקידי צמתים

תפקיד צומת הוא קבוצה של התנהגויות קשורות. לכל צומת יכול להיות תפקיד אחד או יותר. תפקידי הצומת כוללים:

  • Commissioner: צומת שמבצע Commission.
  • בקר: צומת שיכול לשלוט בצומת אחד או יותר. לדוגמה: Google Home app (GHA), Google Assistant, ו-Google Nest Hub (2nd gen). בסוגים מסוימים של מכשירים, כמו מתג ההפעלה/כיבוי, יש את התפקיד 'בקר'.
  • נשלט: צומת שאפשר לשלוט בו באמצעות צומת אחד או יותר. רוב סוגי המכשירים יכולים להיות מוגדרים כבעלי שליטה, מלבד סוגי מכשירים מסוימים עם תפקיד של בקר, למשל מתג התאורה 'הפעלה/כיבוי'. מתג ההפעלה/כיבוי יכול לשמש רק בקר. הוא לא יכול להיות 'נאמן מידע'.
  • ספק OTA: צומת שיכול לספק עדכוני תוכנה OTA.
  • OTA Requestor: צומת שיכול לבקש עדכוני תוכנה OTA.

אשכולות

בתוך נקודת קצה, יש בצומת אשכול אחד או יותר. זהו שלב נוסף בהיררכיית המכשירים: הן מקבצות פונקציונליות ספציפית כמו אשכול הפעלה/כיבוי בשקע חכם או אשכול בקרה על נקודת קצה (endpoint) של תאורה מעומעמת.

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

מאפיינים

ברמה האחרונה נמצא Attributes (מאפיינים), שהם המצבים של הצומת, למשל המאפיין current level (רמה נוכחית) של אשכול level Control. אפשר להגדיר מאפיינים כסוגי נתונים שונים, כמו uint8, מחרוזות או מערכים.

היררכיה של צמתים, נקודות קצה, מאפיינים ופקודות
איור 2: צמתים, נקודות קצה, מאפיינים ופקודות

פקודות

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

אירועים

לבסוף, אשכולות יכולים לכלול גם Events (אירועים) שאפשר להתייחס אליהם כתיעוד של מעברים בין מצבים קודמים. המאפיינים מייצגים את המצבים הנוכחיים, אבל אירועים הם יומן מהעבר וכוללים מונה מונוטוני שהולך וגדל, חותמת זמן ועדיפות. הם מאפשרים לתעד מעברי מצבים, וגם ליצור מודלים של נתונים שלא ניתן להשיג באופן מיידי בעזרת מאפיינים.

מכשיר לדוגמה מלא
איור 3: דגימה של ההיררכיה של Matter מודל האינטראקציה עם מכשירים

הערך endpoint 0 שמור ל-אשכולות שירותים. אשכולות של כלי עזר הם אשכולות ספציפיים שכוללים את פונקציות השירות בנקודת קצה (Endpoint), כמו גילוי, טיפול, אבחון ועדכון תוכנה. מצד שני, אשכולות אפליקציות תומכים בפעולות ראשיות כמו הפעלה/כיבוי או מדידת טמפרטורה.

סוגי מכשירים

בסך הכול, אילו שילובים של אשכול יש לכלול כאשר יצרן מכשירים מתכנן מכשיר חדש?

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

סוגי המכשירים לא מצוינים במסמך הראשי של המפרט Matter, אלא במסמך נלווה: ספריית המכשירים. באופן דומה, כל אשכולות האפליקציות מוגדרים ב-Application Cluster Library. שלושת המסמכים האלה נמצאים באתר של Connectivity Standards Alliance (Alliance) המנויים.

בכל נקודת קצה (endpoint) שמטמיעה סוג מכשיר צריך להטמיע את האשכולות הנדרשים שמגדירים את סוג המכשיר הזה. בנוסף לאשכולות החובה, נקודת הקצה (endpoint) עשויה להטמיע אשכולות נוספים, כולל אשכולות אופציונליים אחד או יותר מסוג המכשיר, או אפילו אשכולות שלא שייכים לסוג המכשיר.

לקוחות ושרתים

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

  • קורא מהמאפיינים המרוחקים שלו וכותב אליהם.
  • מתחיל של האירועים המרוחקים שלו.
  • בהפעלת הפקודות המרוחקות שלו.

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

לדוגמה, אנחנו עשויים להשתמש בשתי מנורות שולחן: צומת A וצומת B. בשני הצמתים מוטמעים מכשירים מסוג הפעלה/כיבוי של התאורה. סוג המכשיר הזה כולל אשכול של הפעלה/כיבוי של שרת ששולט בפלט האור הפיזי הרלוונטי של כל אחד מהם.

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

מנורות עם מתג תאורה פועל/כבוי
איור 4: אשכולות של לקוחות ושרתים

בדוגמה הזו, אשכול הלקוחות של הפעלה/כיבוי בצומת א' משנה את המאפיינים של אשכול השרתים שפועל/כבוי בצומת א' ובצומת B, ואילו אשכול הלקוחות של צומת ב' משנה רק את אשכול השרת בצומת B עצמו.

בקטע הבא נסביר את האינטראקציה בין אשכולות לקוחות ואשכולות שרתים: מודל האינטראקציה.

אשכול מתאר

כפי שמרמז השם, שרת אשכול התיאורים מספק מידע על התבוננות עצמית. היא מתארת את נקודת הקצה (endpoint) שמציינת את:

  • אשכולות שרתים.
  • אשכולות לקוחות.
  • סוגי מכשירים.
  • נקודות קצה נוספות, שנקראות 'חלקים'.

לכל סוג מכשיר נדרשת הטמעה של אשכולות מתאר. סוג המכשיר ברמה הבסיסית מוגדר ב-Endpoint 0. קריאה של אשכול התיאור תאפשר ללקוח לחצות את כל העץ של נקודות הקצה (endpoint) הזמינות ולבצע פעולות רלוונטיות.

הנציב או המכשיר בעל השליטה, כמו טלפון או רכזת, יכול להשתמש במידע שמופיע באשכול התיאור כדי לבנות מודל של המכשיר (תאורה, מתג, משאבה, תרמוסטט) ותכונות ספציפיות שמוטמעות על ידי המופע הספציפי של המכשיר, ולהציג למשתמש את ממשק המשתמש הנכון.

אשכולות שרתים

המאפיין ServerList מפרט את שרתי האשכולות בנקודת הקצה.

אשכולות לקוח

המאפיין ClientList מפרט את לקוחות האשכול בנקודת הקצה.

רשימת סוגי המכשירים

המאפיין DeviceTypeList הוא רשימה של סוגי מכשירים שנתמכים על ידי נקודת הקצה (Endpoint), יחד עם הגרסאות הקודמות שלה. היא חייבת להכיל לפחות סוג מכשיר אחד.

רשימת החלקים

השדה PartsList מכיל את רשימת נקודות הקצה שמשמשות להטמעת סוג המכשיר הזה.

הערך PartsList של נקודת קצה 0 (צומת Root) מכיל את כל נקודות הקצה של המכשיר בנפרד ממנו (נקודת קצה 0).

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

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


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