סכמה לאריגה

סכימה של Weave

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

הסכימה היא:

  • סטנדרטית - היא מכילה הגדרות מאושרות של פונקציונליות שמספקת ממשק עקבי, ללא קשר להטמעה. לדוגמה, לנורה שמיוצגת בסכימה יהיו תמיד פונקציות בסיסיות, כגון מצבי הפעלה/כיבוי, פעולות או רמות עמעום.
  • Composion — משתמש יכול ליצור משאבים מורכבים המורכבים מביטים קטנים יותר של פונקציונליות מוגדרת היטב. לדוגמה, Nest Detect מכיל שני סוגי חיישנים: תנועה ופתיחה/סגירה. הפונקציונליות לסוגי החיישנים מתבצעת בצורה רגילה, וניתן להשתמש בה מחדש בכל המכשירים.
  • ניתן להרחבה – משתמש יכול ליצור תוספים מותאמים אישית לפונקציות רגילות. לדוגמה, תוכלו להרחיב את הפונקציונליות של חיישן התנועה הרגיל של הסכימה באמצעות פונקציונליות נוספת, לאפליקציית אבטחה מסוימת.
  • גרסה – כל השינויים בסכימה מטופלים עבור הרצה קדימה ותאימות.

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

תכונות

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

לדוגמה, בסכימה אפשר להגדיר את התכונות הבאות לשימוש במכשירי Nest:

תכונה

ממשקים

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

לדוגמה, ממשק Intercom עשוי לכלול תכונות של רמקול ומיקרופון:

תכונות וממשקים

משאבים

משאב מייצג דבר לוגי או פיזי בסכימה. לדוגמה, Nest Protect הוא משאב. אז זה Nest Guard. או משתמש, או מבנה כמו הבית של המשתמש.

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

הקשר בין משאבים, תכונות ומאפיינים נראה כך:

משאבים, ממשקים ותכונות

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

רכיבי תכונה

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

נכסים

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

למשל:

  • גרסת התוכנה היא מאפיין של התכונה 'זהות המכשיר'. זוהי תכונה כללית שרוב המכשירים משתמשים בה. מכשירי Nest Thermostat, מצלמות והגנה, לכל אלה יש גרסת תוכנה ספציפית משלהם.
  • Bolt State הוא מאפיין של תכונת ה-Bolt Lock, אבל הוא ספציפי למכשיר כמו Yale x Nest Lock. למשל, לא תמצאו מנעול בריח בתרמוסטט של Nest.

פקודות

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

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

אירועים

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

לדוגמה, האירוע Bolt Actuator state של התכונה Bolt Lock מיידע את המנוי של המצב הנוכחי של נכסי Bolt Lock, וכן את הגורם שגרם לאחרונה לשינוי בנכס ה-Bolt Actorator. כל המידע הזה מועבר כאירוע אחד.

שפת התיאור של סכימת Weave

התכונות, הממשקים והמשאבים ב-Weave מוגדרים ומתוארים בשפה ספציפית לדומיין (DSL) שמשתמשת בתחביר של Google Protocol Buffers. שפה זו נקראת תיאור סכימה של Weave שפה (WDL) .

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

  • המטרה: C, Swift, Java, Scala – אפליקציות לנייד ושירותי ענן
  • C++ עם קידודי Weave TLV — מכשירים מוטמעים ואפליקציות לנייד

בהמשך נתעמק בדוגמאות של WDL.

Recap

מה למדת:

  • הסכימה מתארת את מודל הנתונים הבסיסי למערכת Weave.
  • הסכימה מגדירה שלושה רכיבים:
    • תכונה יחידת פונקציונליות בסיסית
    • ממשק קבוצת תכונות המייצגות פונקציה חדשה וספציפית
    • משאב דבר לוגי או פיזי
  • המאפיינים כוללים נכסים, פקודות ואירועים:
    • מאפיין המצב של תכונת משאב
    • פקודות בקשה מותאמת אישית לפעולה של תכונה
    • אירוע – רישום של פעולה שקורה
  • הסכימה מוגדרת באמצעות 'שפת התיאור של Weave Schema' (WDL) , המבוססת על Google Protocol Buffers 3

מידע מפורט יותר זמין בדפים הבאים: