دستگاه مجازی مهم

Matter Device SDK

دستگاه‌های مجازی Matter برای توسعه و آزمایش راه‌حل‌های Matter مفید هستند و می‌توانند با استفاده از Google Home app (GHA) راه‌اندازی شوند و با استفاده از GHA و Google Assistant کنترل شوند، درست مانند دستگاه‌های فیزیکی Matter .

برای توسعه دهندگان برنامه و سایر افرادی که نیاز به آزمایش یا شبیه سازی یک دستگاه مجازی Matter دارند اما منابع لازم برای ساختن دستگاه Matter فیزیکی یا مجازی خود را ندارند، Google Matter Virtual Device (MVD) ارائه می دهد. MVD یک ابزار دسکتاپ مستقل سبک وزن لینوکس یا macOS است که انواع مختلف دستگاه های مجازی Matter را شبیه سازی می کند و یک رابط کاربری گرافیکی برای کنترل و نمایش حالت های دستگاه مجازی Matter ارائه می دهد.

برخلاف یک دستگاه فیزیکی Matter ، MVD برای اتصال به پارچه Matter به Bluetooth® Low Energy (BLE) یا Thread® متکی نیست. در عوض، از اتصال شبکه Wi-Fi موجود لینوکس میزبان یا macOS برای راه اندازی استفاده می کند.

در مقایسه با سایر ابزارها

تفاوت MVD با Virtual Device Controller (VDC) در این است که یک راه حل مستقل است که یک دستگاه مجازی را با یک UI برای کنترل آن ترکیب می کند. در مقابل، VDC برای کنترل یک دستگاه Matter مجازی جداگانه استفاده می‌شود، مانند دستگاهی که ما در Matter Virtual Device Development Environment (MVD-DE) می‌سازیم.

ممکن است قبلاً با Codelab MVD-DE کار کرده باشید. در این کد لبه، شما یک نوع واحد مجازی می سازید - یک لامپ هوشمند. در مقابل، MVD شامل چندین دستگاه مجازی مختلف از پیش ساخته شده است و شامل یک رابط کاربری یکپارچه برای اجرا و کنترل آنها است.

جدول: مقایسه ابزار دستگاه Matter مجازی
MVD VDC MVD-DE (Codelab)
یک دستگاه Matter را شبیه سازی کنید
یک دستگاه Matter شبیه سازی شده را کنترل کنید
تلاش برای توسعه مورد نیاز است
دانلود کنید کمتر از 100 مگابایت 9 گیگابایت 20 گیگابایت

دستگاه های پشتیبانی شده

MVD از انواع دستگاه Matter زیر پشتیبانی می کند:

جدول: انواع دستگاه های Matter که برای MVD پشتیبانی می شوند
Matter نوع دستگاه خوشه(های) برنامه نوع اکوسیستم خانگی
پخش کننده اصلی ویدیو 0x0006
0x0506
0x0509
تلویزیون
نور دمای رنگ 0x0300
0x0008
0x0006
نور
سنسور تماس 0x0045
سنسور
نور قابل کاهش 0x0008
0x0006
نور
قفل درب 0x0101
قفل کنید
نور رنگی گسترده 0x0300
0x0008
0x0006
نور
فن 0x0202
0x0006
فن
سنسور جریان 0x0404
سنسور
سوئیچ عمومی 0x003b
سوئیچ
سنسور رطوبت 0x0405
سنسور
سنسور نور 0x0400
سنسور
سنسور اشغال 0x0406
سنسور
چراغ روشن/خاموش 0x0008
0x0006
نور
کلید روشن/خاموش نور 0x0006
سوئیچ
واحد پلاگین روشن/خاموش 0x0008
0x0006
خروجی
سنسور فشار 0x0403
سنسور
پمپ 0x0006
0x0200
0x0402
0x0403
0x0404
پمپ آب
ربات جاروبرقی 0x0054
0x0055
0x0061
وکیوم
تهویه مطبوع اتاق 0x0006
0x0201
0x0202
Ac
هشدار دود CO 0x005C
دود
سنسور دما 0x0402
سنسور
ترموستات 0x0201
ترموستات
پوشش پنجره 0x0102
پرده

MVD را نصب کنید

MVD روی ماشین‌های پردازنده 64 بیتی x86 اجرا می‌شود که دارای Debian (11 یا بالاتر)، اوبونتو (20.04 یا بالاتر) یا macOS هستند.

لینوکس

بسته MVD Debian (.deb) را دانلود کنید

فایل امضای armored-ASCII (.asc) را دانلود کنید

سپس dpkg برای نصب بسته MVD Debian (.deb) اجرا کنید:

sudo dpkg -i mvd_1.4.0_amd64.deb

macOS

فایل dmg MVD (macOS x86) را دانلود کنید

فایل dmg MVD (ARM64 M1) را دانلود کنید

سپس روی فایل dmg دوبار کلیک کنید تا پنجره نصب باز شود.

برای تکمیل نصب، نماد mvd را انتخاب کرده و به پوشه Applications بکشید:

macOS نصب کنید

استفاده از پورت را بررسی کنید

ماژول کنترلر در MVD از پورت TCP 33000 برای برقراری تماس های RPC با دستگاه مجازی استفاده می کند، بنابراین اگر این پورت قبلاً توسط فرآیند دیگری در رایانه شما استفاده می شود، حتماً آن را آزاد کنید.

برای مشاهده اینکه آیا فرآیندی از پورت 33000 استفاده می کند یا خیر:

لینوکس

sudo fuser -v 33000/tcp

macOS

lsof -i:33000

شما می توانید هر فرآیندی را با استفاده از پورت TCP 33000 تنها با یک دستور از بین ببرید:

لینوکس

sudo fuser -k 33000/tcp

macOS

lsof -ti:33000 | xargs kill

MVD را اجرا کنید

لینوکس

در لینوکس، MVD از پوشه برنامه های خود یا از ترمینال اجرا کنید:

mvd

macOS

در macOS، از Launchpad برای باز کردن MVD یا اجرای MVD از ترمینال استفاده کنید:

cd /Applications
open mvd.app

دستگاه خود را پیکربندی کنید

صفحه اصلی پس از راه اندازی ظاهر می شود و به شما امکان می دهد یک دستگاه مجازی را پیکربندی کنید:

  • نوع دستگاه : نوع دستگاه را انتخاب کنید (به عنوان مثال، نور، سوئیچ، سنسور و غیره).
  • نام دستگاه : نامی کاربرپسند به دستگاه بدهید.
  • Discriminator : یک عدد 12 بیتی است که برای تشخیص بین تبلیغات چند دستگاه قابل سفارش استفاده می شود. (پیش‌فرض: 3840 ).
  • Matter Port : پورتی برای راه اندازی و ارتباط Matter از طریق شبکه های IP. Matter به طور پیش‌فرض از پورت TCP/UDP 5540 استفاده می‌کند، اما تا زمانی که هیچ سرویس دیگری از آن استفاده نمی‌کند، می‌توانید دستگاه مجازی را برای استفاده از پورت دیگری پیکربندی کنید.
  • شناسه فروشنده : فقط شناسه فروشنده آزمایشی 0xFFF1 پشتیبانی می شود.
  • شناسه محصول : فقط شناسه‌های محصول آزمایشی 0x8000 تا 0x801F پشتیبانی می‌شوند.

پیکربندی دستگاه مجازی صفحه نمایش

فایروال خود را پیکربندی کنید

لینوکس

اگر فایروال در رایانه خود دارید، آن را خاموش کنید یا به اتصالات TCP/UDP ورودی در پورت Matter اجازه دهید.

برای مشاهده قوانین فعلی فایروال فیلتر نت ، اجرا کنید:

sudo iptables -L -n

اگر از «ufw» استفاده می کنید، می توان آن را با موارد زیر غیرفعال کرد:

sudo ufw disable

و می توان آن را دوباره فعال کرد:

sudo ufw enable

macOS

برای پیکربندی یا غیرفعال کردن فایروال در macOS:

  1. به منوی  Apple رفته و System Settings را انتخاب کنید.
  2. روی Network در لیست نوار کناری کلیک کنید.
  3. روی فایروال کلیک کنید.
  4. سوئیچ فایروال را در موقعیت خاموش قرار دهید.

دستگاه خود را اجرا کنید

پس از پیکربندی دستگاه، روی ایجاد دستگاه کلیک کنید. هنگامی که دستگاه ایجاد می شود، صفحه کنترلر ظاهر می شود. بسته به نوع دستگاهی که انتخاب کرده اید، ممکن است یک یا چند مورد از کنترل های زیر را مشاهده کنید:

  • روشن/خاموش : در اکثر دستگاه ها رایج است.
  • سطح : به عنوان مثال، یک چراغ می تواند یک نوار لغزنده برای تنظیم روشنایی داشته باشد.
  • رنگ : برای مثال، یک نور رنگی می تواند این کنترل را داشته باشد.
  • Occupancy : سنسور اشغال این کنترل را برای شبیه سازی حالت اشغال یا غیر اشغال ارائه می دهد.

تمام دستگاه های مجازی دارای کنترل های زیر هستند:

  • QRCode : کد QR مورد استفاده برای راه اندازی را نشان می دهد.
  • راه اندازی مجدد : دستگاه مجازی را مجددا راه اندازی می کند. دستگاه برای مدت کوتاهی از شبکه قطع می شود.
  • بازنشانی : دستگاه فعلی را به حالت کارخانه بازنشانی می‌کند و تمام وضعیت‌ها، از جمله راه‌اندازی، وضعیت کنترل‌های فعلی و غیره را پاک می‌کند.
  • حذف : دستگاه را از بین می برد و به صفحه ایجاد دستگاه باز می گردد.

کنترل دستگاه مجازی صفحه نمایش

دستگاه خود را سفارش دهید

دستگاه به محض ایجاد قابل راه اندازی است.

چند پیش نیاز برای راه اندازی دستگاه وجود دارد:

  • شما باید یک پروژه در Google Home Developer Console داشته باشید. این پروژه باید حاوی یک ادغام Matter باشد که دارای همان ترکیب VID/PID باشد که در راه اندازی دستگاه مجازی خود استفاده کردید. برای جزئیات به راهنمای ایجاد پروژه مراجعه کنید.

  • باید یک Google Nest Hub داشته باشید که از Matter پشتیبانی کند

  • شما باید یک گوشی اندرویدی داشته باشید که دارای اندروید 8.1 یا بالاتر است و GHA آن نصب شده باشد.

  • تلفن Android باید به همان شبکه Wi-Fi متصل باشد که هاب است.

  • دستگاه میزبان باید به شبکه Wi-Fi متصل باشد.

برای راه‌اندازی دستگاه با استفاده از GHA ، روی QRCode کلیک کنید تا کد QR دستگاه نمایش داده شود، سپس دستورالعمل‌های موجود در دستگاه Pair a Matter را دنبال کنید که نحوه سوار کردن دستگاه Matter با استفاده از GHA را توضیح می‌دهد. همچنین می‌توانید با استفاده از Google Home Sample App for Matter دستگاه را راه‌اندازی کنید.

برای آشنایی با نحوه عملکرد Matter Commissioning به Matter Primer مراجعه کنید.

دستگاه را کنترل کنید

پس از راه اندازی یک دستگاه مجازی، می توانید دستگاه را با استفاده از برنامه Google Home یا Google Assistant به صورت صوتی کنترل کنید. شما می توانید یا:

  • هنگام نظارت بر تغییرات وضعیت در دستگاه مجازی، دستگاه را از طریق GHA یا Assistant کنترل کنید، یا
  • هنگام نظارت بر تغییرات وضعیت در دستگاه مجازی، دستگاه را با استفاده از Sample App for Matter کنترل کنید، یا
  • هنگام نظارت بر تغییرات وضعیت در GHA یا Assistant ، وضعیت دستگاه را از طریق خود MVD کنترل کنید.

با دستگاه تست کنید

برای آزمایش با Assistant ، توصیه می‌کنیم از یک شبیه‌ساز گفتار مانند Google Home Extension برای VS Code یا Google Home Plugin برای Android Studio استفاده کنید.

مشاهده جزئیات دستگاه

صفحه جزئیات دستگاه اطلاعات دقیق دستگاه را نشان می دهد:

  • نام: نام دوستانه ای که به دستگاه داده می شود.
  • نوع دستگاه : نوع دستگاه انتخاب شده.
  • Discriminator : تشخیص دهنده دستگاه فعلی.
  • شناسه فروشنده : شناسه فروشنده دستگاه فعلی.
  • شناسه محصول : شناسه محصول فعلی دستگاه.
  • پورت RPC : پورت RPC که دستگاه با کنترلرها (GUI) ارتباط برقرار می کند.
  • Matter Port : پورتی که دستگاه فعلی برای برقراری ارتباط از طریق شبکه IP استفاده می کند.
  • رمز عبور : پین مورد استفاده برای راه اندازی دستگاه از طریق شبکه.
  • پوشه پیکربندی : پوشه ای که دستگاه مجازی پیکربندی را ذخیره می کند.
  • اطلاعات کمیسیون : فابریک(هایی) که دستگاه به آن متصل شده و شناسه گره دستگاه در پارچه را نشان می دهد.

مشاهده گزارش های دستگاه

اگر MVD از ترمینال راه اندازی کرده اید، خروجی ورود به سیستم در stdout ظاهر می شود. همچنین می توانید گزارش های دستگاه را در تب Device logs مشاهده کنید.

دستگاه را متوقف کنید

برای متوقف کردن و نابود کردن دستگاه، روی حذف کلیک کنید.

برنامه را خاتمه دهید

بستن پنجره کنترل دستگاه را از بین می برد و برنامه MVD را خاتمه می دهد. اگر از ترمینال راه‌اندازی کرده‌اید، می‌توانید با تایپ کردن Ctrl-C در ترمینال، برنامه را خاتمه دهید.

کمک بگیرید

برای دریافت راهنمایی در مورد MVD ، گزارش یک اشکال، یا درخواست یک ویژگی جدید، با تماس با پشتیبانی Google خود تماس بگیرید.

با کلیک بر روی دکمه در گوشه سمت راست بالای پنجره به این صفحه می‌روید.

یک اشکال را ثبت کنید

اگر احساس می‌کنید نقصی در MVD پیدا کرده‌اید، می‌توانید با کلیک کردن روی دکمه Issue در گوشه سمت راست بالای پنجره، یک اشکال را ثبت کنید.

ارسال بازخورد

برای ارائه نظرات خود در مورد آنچه در مورد MVD دوست دارید یا اینکه چگونه می توانیم تجربه شما را با این ابزار بهبود بخشیم، فرم بازخورد ما را تکمیل کنید.

فرم را می توان از دکمه بازخورد در گوشه سمت راست بالای پنجره یا با کلیک کردن روی دکمه زیر راه اندازی کرد.

نظرات خود را برای ما ارسال کنید