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

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

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

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

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

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

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

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

  • נציב: צומת שמבצע הקצאת הרשאות.
  • בקר: צומת שיכול לשלוט בצומת אחד או יותר. דוגמאות: Google Home app (GHA), Google Assistant ו-Google Nest Hub (2nd gen). לסוגים מסוימים של מכשירים, כמו מתג הפעלה/השבתה של תאורה, יש תפקיד של בקר.
  • מכשיר נשלט: צומת שאפשר לשלוט בו באמצעות צומת אחד או יותר. רוב סוגי המכשירים יכולים להיות מכשירים נשלטים, למעט סוגים מסוימים של מכשירים שיש להם תפקיד של בקר, כמו מתג אור הפעלה/השבתה. מתג אור הפעלה/השבתה יכול להיות רק בקר, ולא יכול להיות מכשיר נשלט.
  • ספק OTA: צומת שיכול לספק עדכוני תוכנה OTA.
  • OTA Requestor: A Node that can request OTA software updates.

אשכולות

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

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

מאפיינים

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

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

פקודות

בנוסף למאפיינים, יש גם פקודות באשכולות, שהן פעולות שאפשר לבצע. הן שוות ערך ב-DM של Matter לקריאה לפרוצדורה מרוחקת. הפקודות הן כמו פועל, למשל lock door (נעילת הדלת) באשכול Door Lock (מנעול הדלת). יכול להיות שהפקודות ייצרו תגובות ותוצאות. ב-Matter, תגובות כאלה מוגדרות גם כפקודות, אבל בכיוון ההפוך.

אירועים

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

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

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

סוגי מכשירים

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

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

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

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

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

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

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

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

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

אבל, כמו במנורות שולחן רגילות, המכשירים הפיזיים שלנו יכללו גם את סוג המכשיר On/Off Light Switch (מתג הפעלה/השבתה של מנורה) עבור מתגי ההפעלה/השבתה המקומיים שלהם. סוג המכשיר הזה חייב להטמיע את קלאסטר On/Off Client (לקוח הפעלה/השבתה) כדי שיוכל לשלוט בקלאסטרים של השרת.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

רשימת חלקים

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

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

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

סוגים אחרים של מכשירים עשויים להיות מורכבים במבנה עץ של יותר ממופע אחד של Device Type. לדוגמה, סוג המכשיר Video Player יכול להיות מורכב מ-TV,‏ Video Player, ‏ Speaker וסוגים שונים של מכשירים של אפליקציות תוכן, כל אחד בנקודת קצה שונה.


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