מכשיר וירטואלי חשוב

Matter Device SDK

מכשירים וירטואליים של Matter שימושיים לפיתוח ולבדיקת פתרונות של Matter. אפשר להפעיל אותם באמצעות Google Home app (GHA) ולשלוט בהם באמצעות GHA ו-Google Assistant, בדיוק כמו במכשירי Matter פיזיים.

למפתחי אפליקציות ולגורמים אחרים שצריכים לבדוק או לדמות מכשיר Matter וירטואלי, אבל אין להם את המשאבים לפתח מכשיר Matter פיזי או וירטואלי משלהם, Google מציעה את Matter Virtual Device (MVD). MVD הוא כלי עצמאי קל ל-Linux או ל-macOS למחשב, שמאפשר לדמות סוגים שונים של מכשירי Matter וירטואליים ומספק ממשק משתמש גרפי לצורך בקרה על המצבים של המכשיר הווירטואלי Matter והצגת המצבים האלה.

בניגוד למכשיר Matter פיזי, MVD לא מסתמך על Bluetooth®‎ עם צריכת אנרגיה נמוכה (BLE) או על Thread®‎ כדי להצטרף ל-Matter fabric. במקום זאת, הוא משתמש בחיבור ה-Wi-Fi הקיים של המכונה המארחת עם Linux או macOS לצורך ההפעלה.

בהשוואה לכלים אחרים

ההבדל בין MVD לבין Virtual Device Controller (VDC) הוא ש-MVD הוא פתרון עצמאי, שמשלב מכשיר וירטואלי עם ממשק משתמש לצורך בקרה עליו. לעומת זאת, השדה VDC משמש לשלוט במכשיר Matter וירטואלי נפרד, כמו זה שיצרנו ב-Matter Virtual Device Development Environment (MVD-DE).

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

טבלה: השוואה בין הכלים למכשירים וירטואליים של Matter
MVD VDC MVD-DE (Codelab)
יצירת אמולציה של מכשיר בתקן Matter
איך שולטים במכשיר Matter בגרסת אמולטור
מאמצי הפיתוח הנדרשים
הורדה קטנים מ-100MB 9 GB ‎20 GB

מכשירים נתמכים

ב-MVD יש תמיכה בסוגי המכשירים הבאים של Matter:

טבלה: סוגי המכשירים של Matter שנתמכים ב-MVD
Matter סוג המכשיר אשכולות של אפליקציות סוג סביבת הבית החכמה
מטהר אוויר 0x0202
0x0006
0x0071
מטהר אוויר
חיישן איכות אוויר 0x005b
0x0402
0x0405
0x040c
0x040d
0x042a
0x042d
0x042e
חיישן
נגן וידאו בסיסי 0x0006
0x0506
0x0509
טלוויזיה
תאורה עם טמפרטורת צבע 0x0300
0x0008
0x0006
קל
חיישן מגע 0x0045
חיישן
תאורה עם אפשרות עמעום 0x0008
0x0006
קל
מנעול דלת 0x0101
נעילה
Extended Color Light 0x0300
0x0008
0x0006
קל
מאוורר 0x0202
0x0006
Fan
חיישן זרימה 0x0404
חיישן
Generic Switch 0x003b
החלפה
חיישן לחות 0x0405
חיישן
חיישן אור 0x0400
חיישן
חיישן נוכחות 0x0406
חיישן
תאורת הפעלה/השבתה 0x0008
0x0006
קל
מתג תאורה להפעלה/כיבוי 0x0006
החלפה
יחידת פלאג-אין להפעלה/כיבוי 0x0008
0x0006
Outlet
חיישן לחץ 0x0403
חיישן
משאבה 0x0006
0x0200
0x0402
0x0403
0x0404
Water-Pump
שואב אבק רובוטי 0x0054
0x0055
0x0061
Vacuum
מזגן לחדר 0x0006
0x0201
0x0202
Ac
גלאי עשן ופחמן חד-חמצני 0x005C
עשן
חיישן טמפרטורה 0x0402
חיישן
תרמוסטט 0x0201
תרמוסטט
סוככים ווילונות 0x0102
תריסים

התקנת MVD

אפשר להריץ את MVD במכונות עם מעבד x86 64 ביט שפועלות עם Debian‏ (11 ואילך), Ubuntu‏ (20.04 ואילך) או macOS.

Linux

מורידים את חבילת Debian (‎.deb) של MVD

הורדת קובץ החתימה המאובטח ב-ASCII (‎.asc)

לאחר מכן, מריצים את dpkg כדי להתקין את חבילת Debian‏ (‎.deb)‏ MVD:

sudo dpkg -i mvd_1.5.0_amd64.deb

macOS

הורדת קובץ ה-dmg של MVD (macOS x86)

הורדת קובץ ה-dmg של MVD‏ (ARM64 M1)

לאחר מכן לוחצים לחיצה כפולה על הקובץ dmg כדי לפתוח את חלון ההתקנה.

כדי להשלים את ההתקנה, בוחרים בסמל mvd וגוררים אותו לתיקייה Applications:

התקנה ב-macOS

בדיקת השימוש ביציאות

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

כדי לבדוק אם תהליך כלשהו משתמש ביציאה 33000:

Linux

sudo fuser -v 33000/tcp

macOS

lsof -i:33000

אפשר להפסיק כל תהליך שמשתמש ביציאת ה-TCP 33000 באמצעות פקודה אחת:

Linux

sudo fuser -k 33000/tcp

macOS

lsof -ti:33000 | xargs kill

הפעלת MVD

Linux

ב-Linux, מריצים את MVD מתיקיית האפליקציות או מהטרמינל:

mvd

macOS

ב-macOS, משתמשים ב-Launchpad כדי לפתוח את MVD או מריצים את MVD מהטרמינל:

cd /Applications
open mvd.app

הגדרת המכשיר

המסך הראשי מופיע עם ההפעלה ומאפשר להגדיר מכשיר וירטואלי:

  • סוג המכשיר: בוחרים את סוג המכשיר (לדוגמה, תאורה, מתג, חיישן וכו').
  • שם המכשיר: נותנים למכשיר שם ידידותי למשתמש.
  • מאפיין מבדיל (discriminator): מספר בן 12 ביט שמשמש להבדיל בין מספר מודעות למכשירים שאפשר לקבל עליהן עמלות. (ברירת המחדל: 3840).
  • יציאת Matter: יציאה להפעלה של Matter ולתקשורת דרך רשתות IP. ברירת המחדל של Matter היא יציאת TCP/UDP 5540, אבל אפשר להגדיר את המכשיר הווירטואלי כך שישתמש ביציאה אחרת, כל עוד אף שירות אחר לא משתמש בה.
  • מזהה ספק: רק מזהה הספק לבדיקה 0xFFF1 נתמך.
  • מזהה מוצר: יש תמיכה רק במזהי המוצרים לבדיקה 0x8000 עד 0x801F.

מסך ההגדרה של המכשיר הווירטואלי

הגדרת חומת האש

Linux

אם יש לכם חומת אש שפועלת במחשב, צריך לכבות אותה או לאפשר חיבורי TCP/UDP נכנסים ביציאה Matter.

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

sudo iptables -L -n

אם אתם משתמשים ב-ufw, תוכלו להשבית אותו באמצעות:

sudo ufw disable

אפשר להפעיל אותו מחדש באמצעות:

sudo ufw enable

macOS

כדי להגדיר או להשבית את חומת האש ב-macOS:

  1. עוברים לתפריט Apple  ובוחרים באפשרות הגדרות המערכת.
  2. לוחצים על רשת ברשימה בסרגל הצד.
  3. לוחצים על Firewall.
  4. מעבירים את המתג של חומת אש למצב מושבת.

הפעלת המכשיר

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

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

בכל המכשירים הווירטואליים יש את אמצעי הבקרה הבאים:

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

מסך הבקרה של המכשיר הווירטואלי

איך מפעילים את המכשיר

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

יש כמה תנאים מקדימים להפעלת המכשיר:

  • צריך להיות לכם פרויקט ב-Google Home Developer Console. הפרויקט הזה צריך לכלול שילוב של Matter עם אותו שילוב VID/PID שבו השתמשתם בהגדרת המכשיר הווירטואלי. פרטים נוספים זמינים במדריך ליצירת פרויקטים.

  • צריך מכשיר Google Nest Hub שתומך ב-Matter

  • צריך טלפון Android עם Android מגרסה 8.1 ואילך, שמותקנת בו אפליקציית GHA.

  • טלפון Android חייב להיות מחובר לאותה רשת Wi-Fi שאליה מחובר הצומת.

  • המכונה המארחת צריכה להיות מחוברת לרשת ה-Wi-Fi.

כדי להפעיל את המכשיר באמצעות GHA, לוחצים על QRCode כדי להציג את קוד ה-QR של המכשיר, ולאחר מכן פועלים לפי ההוראות במאמר התאמת מכשיר Matter שמוסבר בהן איך להפעיל מכשיר Matter באמצעות GHA. אפשר גם להפעיל את המכשיר באמצעות Google Home Sample App for Matter.

במאמר Matter הסבר ראשוני תוכלו לקרוא איך פועלת Matter Commissioning.

שליטה במכשיר

אחרי שמפעילים מכשיר וירטואלי, אפשר לשלוט בו באמצעות אפליקציית Google Home או Google Assistant באמצעות הקול. אתם יכולים:

  • לשלוט במכשיר באמצעות GHA או Assistant תוך מעקב אחרי שינויים במצב במכשיר הווירטואלי, או
  • לשלוט במכשיר באמצעות Sample App for Matter תוך מעקב אחרי שינויים במצב במכשיר הווירטואלי,או
  • שליטה בסטטוס המכשיר דרך MVD עצמו, תוך מעקב אחרי שינויים בסטטוס ב-GHA או ב-Assistant.

בדיקה עם המכשיר

כדי לבדוק עם Assistant, מומלץ להשתמש בסימולטור של ביטוי, כמו התוסף של Google Home ל-VS Code או הפלאגין של Google Home ל-Android Studio.

הצגת פרטי המכשיר

במסך פרטי המכשיר מוצגים פרטי המכשיר המפורטים:

  • שם: השם הידידותי שניתן למכשיר.
  • סוג המכשיר: סוג המכשיר שנבחר.
  • Discriminator: דיסקרימינטור המכשיר הנוכחי.
  • Vendor ID: מזהה הספק הנוכחי של המכשיר.
  • מזהה מוצר: מזהה המוצר הנוכחי של המכשיר.
  • יציאת RPC: יציאת ה-RPC שבאמצעותה המכשיר מתקשר עם בקרי GUI.
  • יציאת Matter: היציאה שבה המכשיר הנוכחי משתמש כדי לתקשר דרך רשת IP.
  • קוד גישה: מספר ה-PIN שמשמש להפעלת המכשיר דרך הרשת.
  • Configuration Folder: התיקייה שבה המכשיר הווירטואלי שומר את ההגדרות.
  • Commission Information: כאן מוצגים הרשתות שהמכשיר הצטרף אליהן ומזהה הצומת של המכשיר ברשת.

צפייה ביומני המכשיר

אם הפעלתם את MVD מהטרמינל, פלט היומן יופיע ב-stdout. אפשר גם להציג את יומני המכשיר בכרטיסייה יומני המכשיר.

עצירת המכשיר

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

סגירת האפליקציה

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

עזרה

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

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

דיווח על באג

אם מצאתם באג ב-MVD, תוכלו לדווח עליו בלחיצה על הלחצן 'דיווח על בעיה' בפינה השמאלית העליונה של החלון.

שליחת משוב

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

אפשר לפתוח את הטופס באמצעות לחצן המשוב בפינה השמאלית העליונה של החלון, או ללחוץ על הלחצן שבהמשך.

שליחת משוב