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

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

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

נקודת הקצה 0 שמורה לאשכולות שירות. אשכולי שירות (Utility Clusters) הם אשכולים ספציפיים שמכילים פונקציונליות של שירות בנקודת קצה, כמו גילוי, טיפול בכתובות, אבחון ועדכון תוכנה. לעומת זאת, אשכולות האפליקציות תומכים בפעולות ראשיות כמו הפעלה/השבתה או מדידת טמפרטורה.
סוגי מכשירים
באופן כללי, אילו שילובים של Cluster צריך לכלול כשמייצרים מכשיר חדש?
במפרט Matter נדרש שהמכשיר יטמיע או ירחיב סוגי מכשירים אחד או יותר. סוג המכשיר הוא אוסף של קלאסטרים (Clusters) שהם חובה או אופציונליים, שמגדירים את המאפיינים ברמה העליונה של מכשיר פיזי, כמו Dimmable Light (אור ניתן לעמעום), Door Lock (נעילת דלת) או Video Player (נגן וידאו).
סוגי המכשירים לא מפורטים במסמך הראשי של המפרט Matter, אלא במסמך נלווה: Device Library. באופן דומה, כל קלאסטרי האפליקציות מוגדרים בספריית קלאסטרי האפליקציות. שלושת המסמכים האלה זמינים בConnectivity Standards Alliance (Alliance)אתר לחברי המועדון.
כל נקודת קצה שמטמיעה סוג מכשיר חייבת להטמיע את האשכולות (Clusters) הנדרשים שמגדירים את סוג המכשיר הזה. בנוסף לקלאסטרים שחובה להטמיע, יכול להיות שנקודת הקצה תטמיע קלאסטרים נוספים, כולל קלאסטרים אופציונליים של סוג המכשיר, או אפילו קלאסטרים שלא שייכים לסוג המכשיר.
לקוחות ושרתים
אשכולות יכולים להיות אשכול לקוח או אשכול שרת. בעוד ששרת הוא בעל מצב ומכיל מאפיינים, אירועים ופקודות, לקוח הוא חסר מצב והתפקיד שלו הוא ליזום אינטראקציות עם אשכול שרתים מרוחק, ולכן הוא מבצע:
- קריאה של המאפיינים המרוחקים וכתיבה שלהם.
- קריאות של האירועים המרוחקים שלו.
- הפעלה של פקודות מרחוק.
ה-DM הוא היררכי בתוך צומת, אבל הקשר בין הצמתים הוא לא היררכי. לצמתים ב-Matter אין יחסים אנכיים של בקר/ציוד היקפי או מוביל/עוקב. לעומת זאת, היחסים הם אופקיים: כל אשכול יכול להיות שרת או לקוח. לכן, צומת יכול להיות גם שרת וגם לקוח בהקשר של אשכולות ופונקציות שונים.
לדוגמה, יכול להיות שיש לנו שתי מנורות שולחן: צומת A וצומת B. שני הצמתים מטמיעים סוג מכשיר של הפעלה/השבתה של אור. סוג המכשיר הזה כולל אשכול On/Off Server ששולט על פלט האור הפיזי המתאים.
אבל כמו במנורות שולחן רגילות, המכשירים הפיזיים שלנו יכללו גם את סוג המכשיר On/Off Light Switch (מתג אור הפעלה/השבתה) למתגי ההפעלה/השבתה המקומיים שלהם. במכשיר מסוג Device Type צריך להטמיע את האשכול On/Off Client כדי שיוכל לשלוט באשכולות Server Clusters.

בדוגמה הזו, קבוצת הלקוחות On/Off בצומת א' משנה את המאפיינים של קבוצת השרתים On/Off בצומת א' ובצומת ב', בעוד שקבוצת הלקוחות של צומת ב' משנה רק את קבוצת השרתים בצומת ב' עצמו.
בקטע הבא נסביר בפירוט איך אשכולות בצד הלקוח ובצד השרת פועלים יחד: מודל האינטראקציה.
אשכול תיאורים
כפי שהשם מרמז, שרת Descriptor Cluster מספק מידע על אינטרוספקציה. היא מתארת את נקודת הקצה ומפרטת את:
- אשכולות שרתים.
- אשכולות לקוחות.
- סוגי מכשירים.
- נקודות קצה נוספות, שנקראות חלקים.
לכל סוג מכשיר נדרשת הטמעה של אשכולות תיאור. סוג מכשיר הבסיס מוגדר בנקודת קצה 0. קריאה של Descriptor Cluster תספק ללקוח את היכולת לעבור על העץ המלא של נקודות הקצה הזמינות ולבצע פעולות רלוונטיות.
המכשיר המפקח או המרכזייה, כמו טלפון או רכזת, יכולים להשתמש במידע שנמצא ב-Descriptor Cluster כדי ליצור מודל של המכשיר (אור, מתג, משאבה, תרמוסטט) ושל תכונות ספציפיות שהוטמעו במופע המסוים הזה של המכשיר, ולהציג למשתמש את ממשק המשתמש הנכון.
אשכולות שרתים
המאפיין ServerList
מפרט את שרתי האשכול בנקודת הקצה.
אשכולות לקוחות
המאפיין ClientList
מפרט את הלקוחות של האשכול בנקודת הקצה.
רשימת סוגי מכשירים
המאפיין DeviceTypeList
הוא רשימה של סוגי מכשירים שנתמכים על ידי נקודת הקצה, יחד עם הגרסאות המתאימות שלהם. היא חייבת להכיל לפחות Device Type אחד.
רשימת חלקים
הקטע PartsList
מכיל את רשימת נקודות הקצה שמשמשות להטמעה של סוג המכשיר הזה.
ה-PartsList
של נקודת קצה 0 (צומת הבסיס) מכיל את כל נקודות הקצה של המכשיר, מלבד נקודת קצה 0 עצמה.
בדרך כלל, השדה PartsList
של נקודות קצה אחרות יהיה ריק. לדוגמה, חיישן טמפרטורה מחייב אשכול שרתים למדידת טמפרטורה, ולא שום דבר אחר.
סוגי מכשירים אחרים עשויים להיות מורכבים במבנה עץ של יותר ממופע אחד של DeviceType. לדוגמה, סוג המכשיר Video Player יכול לכלול TV, Video Player, Speaker וסוגים שונים של מכשירי אפליקציות תוכן, כל אחד בנקודת קצה שונה.
-
במפרט Matter נקבע שמכשיר יכול לכלול כמה צמתים. לדוגמה, בסמארטפונים יכולות להיות כמה אפליקציות, וכל אפליקציה היא צומת שונה. לצורך המבוא הזה, כל המכשירים יכילו צומת יחיד. רוב המכשירים הפיזיים צפויים לפעול לפי הדפוס הזה. ↩