دستگاههای مجازی 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 شامل چندین دستگاه مجازی مختلف از پیش ساخته شده است و شامل یک رابط کاربری یکپارچه برای اجرا و کنترل آنها است.
MVD | VDC | MVD-DE (Codelab) | |
---|---|---|---|
یک دستگاه Matter را شبیه سازی کنید | |||
یک دستگاه Matter شبیه سازی شده را کنترل کنید | |||
تلاش برای توسعه مورد نیاز است | |||
دانلود کنید | کمتر از 100 مگابایت | 9 گیگابایت | 20 گیگابایت |
دستگاه های پشتیبانی شده
MVD از انواع دستگاه Matter زیر پشتیبانی می کند:
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
بکشید:
استفاده از پورت را بررسی کنید
ماژول کنترلر در 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:
- به منوی Apple رفته و System Settings را انتخاب کنید.
- روی Network در لیست نوار کناری کلیک کنید.
- روی فایروال کلیک کنید.
- سوئیچ فایروال را در موقعیت خاموش قرار دهید.
دستگاه خود را اجرا کنید
پس از پیکربندی دستگاه، روی ایجاد دستگاه کلیک کنید. هنگامی که دستگاه ایجاد می شود، صفحه کنترلر ظاهر می شود. بسته به نوع دستگاهی که انتخاب کرده اید، ممکن است یک یا چند مورد از کنترل های زیر را مشاهده کنید:
- روشن/خاموش : در اکثر دستگاه ها رایج است.
- سطح : به عنوان مثال، یک چراغ می تواند یک نوار لغزنده برای تنظیم روشنایی داشته باشد.
- رنگ : برای مثال، یک نور رنگی می تواند این کنترل را داشته باشد.
- 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 دوست دارید یا اینکه چگونه می توانیم تجربه شما را با این ابزار بهبود بخشیم، فرم بازخورد ما را تکمیل کنید.
فرم را می توان از دکمه بازخورد
در گوشه سمت راست بالای پنجره یا با کلیک کردن روی دکمه زیر راه اندازی کرد.