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

למכשירים ב-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 גם אירועים, שאפשר לחשוב עליהם כרשומה של מעברים קודמים בין מצבים. מאפיינים מייצגים את המצבים הנוכחיים, ואילו אירועים הם יומן של העבר, והם כוללים מונה בעל עלייה מונוטונית, חותמת זמן ועדיפות. הם מאפשרים ללכוד מעברים בין מצבים, וגם לבצע מודלים של נתונים שלא ניתן להשיג בקלות באמצעות מאפיינים.

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

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

סוגי מכשירים

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

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

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

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

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

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

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

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

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

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

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

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

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

אשכול מאפיינים

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

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

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

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

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

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

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

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

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

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

רשימת חלקים

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

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

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

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


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