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

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

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

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

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

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

תפקידים בצמתים

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

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

אשכולות

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

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

מאפיינים

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

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

פקודות

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

אירועים

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

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

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

סוגי מכשירים

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

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

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

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

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

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

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

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

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

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

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

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

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

אשכול מתאר

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

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

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

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

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

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

אשכולות לקוחות

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

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

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

רשימת חלקים

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

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

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

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


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