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

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

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

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

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

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

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

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

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

אשכולות

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

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

מאפיינים

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

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

פקודות

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

אירועים

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

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

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

סוגי מכשירים

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

אשכולות לקוח

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

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

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

רשימת חלקים

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

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

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

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


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