دستگاههای مجازی Matter برای توسعه و آزمایش راهحلهای Matter مفید هستند و میتوانند با استفاده از Google Home app (GHA) راهاندازی شوند و با استفاده از GHA و Google Assistant ، درست مانند دستگاههای فیزیکی Matter ، کنترل شوند.
برای توسعهدهندگان اپلیکیشن و سایر افرادی که نیاز به آزمایش یا شبیهسازی یک دستگاه Matter مجازی دارند اما منابع لازم برای ساخت دستگاه Matter فیزیکی یا مجازی خود را ندارند، گوگل Matter Virtual Device (MVD) ارائه میدهد. MVD یک ابزار دسکتاپ مستقل و سبک برای لینوکس یا macOS است که انواع مختلف دستگاههای Matter مجازی را شبیهسازی میکند و یک رابط کاربری گرافیکی برای کنترل و نمایش حالتهای دستگاه Matter مجازی ارائه میدهد.
برخلاف یک دستگاه فیزیکی Matter ، MVD برای اتصال به یک دستگاه Matter به بلوتوث کممصرف (BLE) یا Thread® متکی نیست. در عوض، از اتصال شبکه Wi-Fi موجود دستگاه میزبان لینوکس یا macOS برای راهاندازی استفاده میکند.
در مقایسه با ابزارهای دیگر
MVD با Virtual Device Controller (VDC) متفاوت است، زیرا یک راهکار مستقل است که یک دستگاه مجازی را با یک رابط کاربری برای کنترل آن ترکیب میکند. در مقابل، VDC برای کنترل یک دستگاه مجازی Matter جداگانه استفاده میشود.
MVD شامل چندین دستگاه مجازی از پیش ساخته شده مختلف است و شامل یک رابط کاربری یکپارچه برای اجرا و کنترل آنها میباشد.
دستگاههای پشتیبانیشده
MVD از انواع دستگاههای Matter زیر پشتیبانی میکند:
| نوع دستگاه Matter | خوشه(های) کاربردی | نوع اکوسیستم خانگی |
|---|---|---|
| تصفیه کننده هوا | 0x0202 0x0006 0x0071 | تصفیه کننده هوا |
| سنسور کیفیت هوا | 0x005b 0x0402 0x0405 0x040c 0x040d 0x042a 0x042d 0x042e | سنسور |
| پخش کننده ویدیوی پایه | 0x0006 0x0506 0x0509 | تلویزیون |
| نور دمای رنگ | 0x0300 0x0008 0x0006 | نور |
| سنسور تماسی | 0x0045 | سنسور |
| نور قابل تنظیم | 0x0008 0x0006 | نور |
| واحد پلاگین قابل تنظیم نور | 0x0006 0x0008 | خروجی |
| ماشین ظرفشویی | 0x0006 0x0059 0x0056 0x0060 | ماشین ظرفشویی |
| قفل درب | 0x0101 | قفل |
| نور رنگی توسعهیافته | 0x0300 0x0008 0x0006 | نور |
| فن | 0x0202 0x0006 | فن |
| سنسور جریان | 0x0404 | سنسور |
| سوئیچ عمومی | 0x003b | سوئیچ |
| سنسور رطوبت | 0x0405 | سنسور |
| ماشین لباسشویی | 0x0006 0x0051 0x0053 0x0056 0x0060 | واشر |
| حسگر نور | 0x0400 | سنسور |
| حسگر حضور | 0x0406 | سنسور |
| چراغ روشن/خاموش | 0x0008 0x0006 | نور |
| کلید روشن/خاموش چراغ | 0x0006 | سوئیچ |
| واحد پلاگین روشن/خاموش | 0x0008 0x0006 | خروجی |
| سنسور فشار | 0x0403 | سنسور |
| پمپ | 0x0006 0x0200 0x0402 0x0403 0x0404 | پمپ |
| جاروبرقی رباتی | 0x0054 0x0055 0x0061 | خلاء |
| تهویه مطبوع اتاق | 0x0006 0x0201 0x0202 | تهویه مطبوع |
| هشدار دهنده دود CO | 0x005C | آشکارساز شرکت آشکارساز دود |
| سنسور دما | 0x0402 | سنسور |
| ترموستات | 0x0201 | ترموستات |
| پوشش پنجره | 0x0102 | پردهها |
نصب MVD
MVD روی دستگاههای دارای پردازنده ۶۴ بیتی x86 که دبیان (۱۳ Trixie یا بالاتر)، اوبونتو (۲۰.۰۴ Noble Numbat یا بالاتر) یا macOS را اجرا میکنند، اجرا میشود.
لینوکس
بسته MVD دبیان (.deb) را دانلود کنید
فایل امضای زرهی-ASCII (.asc) را دانلود کنید
سپس dpkg برای نصب بسته MVD Debian (.deb) اجرا کنید:
sudo dpkg -i mvd_1.7.0_amd64.debمکاواس
فایل dmg مربوط به MVD (macOS x86) را دانلود کنید
فایل dmg مربوط به MVD (ARM64 M1) را دانلود کنید
سپس روی فایل dmg دوبار کلیک کنید تا پنجره نصب باز شود.
برای تکمیل نصب، آیکون mvd را انتخاب کرده و به پوشه Applications بکشید:

بررسی میزان استفاده از پورت
ماژول کنترلر در MVD از پورت TCP 33000 برای برقراری تماسهای RPC به دستگاه مجازی استفاده میکند، بنابراین اگر این پورت از قبل توسط فرآیند دیگری در رایانه شما در حال استفاده است، حتماً آن را آزاد کنید.
برای دیدن اینکه آیا فرآیندی از پورت ۳۳۰۰۰ استفاده میکند یا خیر:
لینوکس
sudo fuser -v 33000/tcpمکاواس
lsof -i:33000شما میتوانید هر فرآیندی را که از پورت TCP 33000 استفاده میکند، با یک دستور واحد از بین ببرید:
لینوکس
sudo fuser -k 33000/tcpمکاواس
lsof -ti:33000 | xargs killاجرای MVD
لینوکس
در لینوکس، MVD از پوشه برنامههای خود یا از ترمینال اجرا کنید:
mvdمکاواس
در macOS، از Launchpad برای باز کردن MVD استفاده کنید یا MVD از ترمینال اجرا کنید:
cd /Applicationsopen mvd.app
دستگاه خود را پیکربندی کنید
صفحه اصلی پس از اجرا ظاهر میشود و به شما امکان پیکربندی یک دستگاه مجازی را میدهد:
- نوع دستگاه : نوع دستگاه را انتخاب کنید (برای مثال، چراغ، کلید، سنسور و غیره).
- نام دستگاه : یک نام کاربرپسند برای دستگاه انتخاب کنید.
- متمایزکننده : یک عدد ۱۲ بیتی که برای تشخیص بین چندین تبلیغ دستگاه قابل سفارش استفاده میشود. (پیشفرض:
3840). - پورت Matter : پورتی برای راهاندازی Matter و ارتباط از طریق شبکههای IP. Matter به طور پیشفرض از پورت TCP/UDP 5540 استفاده میکند، اما میتوانید دستگاه مجازی را طوری پیکربندی کنید که از پورت دیگری استفاده کند، البته تا زمانی که هیچ سرویس دیگری از آن استفاده نکند.
- شناسه فروشنده : فقط شناسه فروشنده آزمایشی
0xFFF1پشتیبانی میشود. - شناسه محصول : فقط شناسههای محصول آزمایشی
0x8000تا0x801Fپشتیبانی میشوند.

فایروال خود را پیکربندی کنید
لینوکس
اگر فایروال روی رایانهتان فعال است، آن را خاموش کنید یا به اتصالات TCP/UDP ورودی روی پورت Matter اجازه ورود بدهید.
برای مشاهده قوانین فعال فعلی فایروال netfilter ، دستور زیر را اجرا کنید:
sudo iptables -L -nاگر از `ufw` استفاده میکنید، میتوانید آن را با دستور زیر غیرفعال کنید:
sudo ufw disableو میتوان آن را دوباره با دستور زیر فعال کرد:
sudo ufw enableمکاواس
برای پیکربندی یا غیرفعال کردن فایروال در macOS:
- به منوی Apple بروید و System Settings را انتخاب کنید.
- در فهرست نوار کناری، روی Network کلیک کنید.
- روی فایروال کلیک کنید.
- سوئیچ مربوط به فایروال را در حالت خاموش (Off) قرار دهید.
دستگاه خود را اجرا کنید
پس از پیکربندی دستگاه، روی «ایجاد دستگاه» کلیک کنید. وقتی دستگاه ایجاد شد، صفحه «کنترلر» ظاهر میشود. بسته به نوع دستگاهی که انتخاب کردهاید، ممکن است یک یا چند مورد از کنترلهای زیر را مشاهده کنید:
- روشن/خاموش : در اکثر دستگاهها مشترک است.
- سطح : برای مثال، یک چراغ میتواند یک نوار لغزنده سطح برای تنظیم روشنایی داشته باشد.
- رنگ : برای مثال، یک چراغ رنگی میتواند این کنترل را داشته باشد.
- اشغال : حسگر اشغال این کنترل را برای شبیهسازی حالت اشغال یا خالی بودن ارائه میدهد.
همه دستگاههای مجازی دارای کنترلهای زیر هستند:
- QRCode : کد QR مورد استفاده برای راهاندازی را نشان میدهد.
- Reboot : دستگاه مجازی را مجدداً راهاندازی میکند. دستگاه برای مدت کوتاهی از شبکه جدا میشود.
- تنظیم مجدد : دستگاه فعلی را به تنظیمات کارخانه برمیگرداند و تمام وضعیتها، از جمله راهاندازی، وضعیت کنترلهای فعلی و غیره را پاک میکند.
- حذف : دستگاه را از بین میبرد و به صفحه ایجاد دستگاه برمیگردد.

ویژگیهای خاص تولیدکننده
ویژگیهای مختص تولیدکننده (MS) توسط رابطهای برنامهنویسی کاربردی (API) اندروید پشتیبانی میشوند و قابلیتهای بیشتری فراتر از ویژگیهای استاندارد در Matter ارائه میدهند. برای آزمایش دستگاهی با ویژگی MS، MVD به شما امکان میدهد با ویژگیهای موجود در بخشی به نام خوشههای سفارشی (Custom Clusters) تعامل داشته باشید (تصویر بالا را ببینید).
دستگاه خود را راه اندازی کنید
دستگاه به محض ساخت، قابل سفارش است.
برای راه اندازی دستگاه، دو پیش نیاز وجود دارد:
شما باید یک پروژه در Google Home Developer Console داشته باشید. این پروژه باید شامل یک ادغام Matter باشد که همان ترکیب VID/PID را داشته باشد که در راهاندازی دستگاه مجازی خود استفاده کردهاید. برای جزئیات بیشتر به راهنمای ایجاد پروژه مراجعه کنید.
شما باید یک Google Nest Hub داشته باشید که از Matter پشتیبانی کند
شما باید یک گوشی اندروید با سیستم عامل اندروید ۸.۱ یا بالاتر داشته باشید که GHA روی آن نصب شده باشد.
گوشی اندروید باید به همان شبکه وایفای که هاب به آن متصل است، متصل باشد.
دستگاه میزبان باید به شبکه Wi-Fi متصل باشد.
برای راهاندازی دستگاه با استفاده از GHA ، روی QRCode کلیک کنید تا کد QR دستگاه نمایش داده شود، سپس دستورالعملهای موجود در Pair a Matter را دنبال کنید که نحوه راهاندازی دستگاه Matter با استفاده از GHA را توضیح میدهد. همچنین میتوانید دستگاه را با استفاده از Google Home Sample App for Matter راهاندازی کنید.
برای آشنایی با نحوهی عملکرد راهاندازی Matter ، به کتاب راهنمای Matter Primer مراجعه کنید.
دستگاه را کنترل کنید
پس از راهاندازی یک دستگاه مجازی، میتوانید دستگاه را با استفاده از برنامه Google Home یا دستیار صوتی Google کنترل کنید. میتوانید:
- دستگاه را از طریق GHA یا Assistant کنترل کنید و همزمان تغییرات وضعیت را در دستگاه مجازی زیر نظر داشته باشید، یا
- دستگاه را با استفاده از Sample App for Matter کنترل کنید و همزمان تغییرات وضعیت را در دستگاه مجازی زیر نظر داشته باشید، یا
- وضعیت دستگاه را از طریق خود MVD کنترل کنید و همزمان تغییرات وضعیت را در GHA یا Assistant زیر نظر داشته باشید.
با دستگاه تست کنید
برای آزمایش با Assistant ، توصیه میکنیم از یک شبیهساز گفتار مانند افزونه Google Home برای VS Code یا افزونه Google Home برای اندروید استودیو استفاده کنید.
مشاهده جزئیات دستگاه
صفحه جزئیات دستگاه، اطلاعات دقیق دستگاه را نشان میدهد:
- نام: نام دوستانهای که به دستگاه داده میشود.
- نوع دستگاه : نوع دستگاه انتخاب شده.
- متمایزکننده : متمایزکننده دستگاه فعلی.
- شناسه فروشنده : شناسه فروشنده فعلی دستگاه.
- شناسه محصول : شناسه محصول دستگاه فعلی.
- پورت RPC : پورت RPC که دستگاه از طریق آن با کنترلکنندهها (GUI) ارتباط برقرار میکند.
- پورت Matter : پورتی که توسط دستگاه فعلی برای برقراری ارتباط از طریق شبکه IP استفاده میشود.
- کد عبور : پینی که برای راهاندازی دستگاه از طریق شبکه استفاده میشود.
- پوشه پیکربندی : پوشهای که پیکربندی دستگاه مجازی در آن ذخیره میشود.
- اطلاعات کمیسیون : فابریک(هایی) که دستگاه به آنها متصل شده و شناسه گره دستگاه در فابریک را نشان میدهد.
مشاهده گزارشهای دستگاه
اگر MVD از ترمینال اجرا کرده باشید، خروجی لاگ در stdout ظاهر میشود. همچنین میتوانید لاگهای دستگاه را در برگه Device logs مشاهده کنید.
دستگاه را متوقف کنید
برای متوقف کردن و از بین بردن دستگاه، روی حذف کلیک کنید.
برنامه را خاتمه دهید
بستن پنجره کنترل، دستگاه را از بین میبرد و برنامه MVD را خاتمه میدهد. اگر از طریق ترمینال اجرا کردهاید، میتوانید با تایپ کردن Ctrl-C در ترمینال، برنامه را خاتمه دهید.
کمک بگیرید
برای دریافت کمک در مورد MVD ، گزارش اشکال یا درخواست ویژگی جدید، با پشتیبانی گوگل خود تماس بگیرید.
کلیک روی دکمهی در گوشهی بالا سمت راست پنجره، شما را به این صفحه میبرد.
ثبت اشکال
اگر احساس میکنید نقصی در MVD پیدا کردهاید، میتوانید با کلیک بر روی دکمهی «مشکل در گوشهی بالا سمت راست پنجره، یک اشکال (bug) ثبت کنید.
ارسال بازخورد
برای ارسال نظرات خود در مورد آنچه در مورد MVD دوست دارید یا اینکه چگونه میتوانیم تجربه شما را با این ابزار بهبود بخشیم، فرم بازخورد ما را تکمیل کنید.
این فرم را میتوان از طریق دکمه feedback در گوشه بالا سمت راست پنجره یا با کلیک روی دکمه زیر، اجرا کرد.
نظرات خود را برای ما ارسال کنید
همچنین میتوانید با استفاده از نظرسنجی که هنگام استفاده از MVD در پایین صفحه ظاهر میشود، بازخورد خود را ارائه دهید.