دستگاههای مجازی Matter برای توسعه و آزمایش راهحلهای Matter مفید هستند و میتوانند بااستفاده از Google Home app (GHA) راهاندازی شوند و درست مثل دستگاههای فیزیکی Matter بااستفاده از GHA و Google Assistant کنترل شوند.
برای توسعهدهندگان برنامه و دیگر افرادی که نیاز دارند دستگاه مجازی Matter را آزمایش یا شبیهسازی کنند اما منابع لازم برای ساختن دستگاه فیزیکی یا مجازی Matter خودشان را ندارند، Google Matter Virtual Device (MVD) را ارائه میدهد. MVD ابزاری سبک و مستقل برای رایانه Linux یا macOS است که انواع مختلف دستگاههای مجازی Matter را شبیهسازی میکند و یک میانای کاربر گرافیکی برای کنترل و نمایش وضعیتهای دستگاه مجازی Matter ارائه میدهد.
برخلاف دستگاه فیزیکی Matter، MVD برای پیوستن به ساختار Matter به Bluetooth® کممصرف (BLE) یا Thread® متکی نیست. درعوض، برای آمادهسازی از اتصال شبکه Wi-Fi موجود در ماشین میزبان Linux یا macOS استفاده میکند.
در مقایسه با ابزارهای دیگر
MVD با Virtual Device Controller (VDC) تفاوت دارد زیرا راهحلی خودکفا است که دستگاه مجازی را با رابط کاربری برای کنترل آن ترکیب میکند. درمقابل، از VDC برای کنترل دستگاه مجازی Matter جداگانه استفاده میشود.
MVD شامل چندین دستگاه مجازی پیشساخته مختلف است و دارای یک رابط کاربری یکپارچه برای اجرا و کنترل آنها است.
دستگاههای پشتیبانیشده
MVD از انواع دستگاههای Matter زیر پشتیبانی میکند:
| Matter نوع دستگاه | خوشه(های) برنامه | نوع بومسازگان خانه |
|---|---|---|
| دستگاه تصفیه هوا |
0x0202 0x0006 0x0071 0x0072 |
دستگاه تصفیه هوا |
| حسگر کیفیت هوا |
0x005b 0x0402 0x0405 0x040c 0x040d 0x042a 0x042b 0x042c 0x042d 0x042e 0x042f 0x0413 0x0415 |
حسگر |
| پخشکننده ویدیو پایه |
0x0006 0x0506 0x0509 |
تلویزیون |
| نور دمای رنگ |
0x0300 0x0008 0x0006 |
روشن |
| حسگر تماس |
0x0045 |
حسگر |
| چراغ کمنورشدنی |
0x0008 0x0006 |
روشن |
| واحد افزایهای کمنورشدنی |
0x0006 0x0008 |
Outlet |
| ماشین ظرفشویی |
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 |
Outlet |
| حسگر فشار |
0x0403 |
حسگر |
| پمپ |
0x0006 0x0200 0x0402 0x0403 0x0404 |
پمپ |
| جاروبرقی رباتیک |
0x0054 0x0055 0x0061 |
جاروبرقی |
| دستگاه تهویه مطبوع اتاق |
0x0006 0x0201 0x0202 |
دستگاه تهویه مطبوع |
| هشدار دود و مونوکسید کربن |
0x005C |
آشکارساز منوکسید کربن
آشکارساز دود |
| حسگر دما |
0x0402 |
حسگر |
| دماپا |
0x0201 |
دماپا |
| پوشش پنجره |
0x0102 |
کرکره |
نصب MVD
MVD در ماشینهای پردازنده x86 ۶۴ بیتی که Debian (نسخه ۱۳ Trixie یا بالاتر)، Ubuntu (نسخه ۲۰.۰۴ Noble Numbat یا بالاتر)، یا macOS را اجرا میکنند اجرا میشود.
Linux
بسته MVD Debian (.deb) را بارگیری کنید
بارگیری فایل امضای armored-ASCII (.asc)
سپس dpkg را اجرا کنید تا بسته MVD
Debian (.deb) نصب شود:
sudo dpkg -i mvd_1.7.0_amd64.debmacOS
بارگیری فایل dmg مربوط به MVD (macOS x86)
بارگیری فایل dmg مربوط به MVD (ARM64 M1)
سپس روی فایل dmg دوکلیک کنید تا پنجره نصب باز شود.
برای تکمیل نصب، نماد mvd را انتخاب کنید و به
پوشه Applications بکشید:
بررسی مصرف درگاه
واحد کنترلکننده در MVD از درگاه TCP 33000 برای برقراری تماسهای RPC با دستگاه مجازی استفاده میکند، بنابراین اگر این درگاه ازقبل توسط فرایند دیگری در رایانه شما استفاده میشود، حتماً آن را آزاد کنید.
برای دیدن اینکه آیا فرایندی از درگاه ۳۳۰۰۰ استفاده میکند یا نه:
Linux
sudo fuser -v 33000/tcpmacOS
lsof -i:33000با یک فرمان میتوانید هر فرایندی را که از درگاه TCP 33000 استفاده میکند متوقف کنید:
Linux
sudo fuser -k 33000/tcpmacOS
lsof -ti:33000 | xargs killاجرای MVD
Linux
در Linux، MVD را از پوشه برنامهها یا از پایانه اجرا کنید:
mvdmacOS
در macOS، از Launchpad برای باز کردن MVD یا اجرای MVD از پایانه استفاده کنید:
cd /Applicationsopen mvd.app
پیکربندی دستگاه
صفحه اصلی پساز راهاندازی ظاهر میشود و به شما امکان میدهد دستگاه مجازی را پیکربندی کنید:
- نوع دستگاه: نوع دستگاه را انتخاب کنید (برای مثال، «چراغ»، «کلید»، «حسگر»، و غیره).
- نام دستگاه: نامی کاربرپسند برای دستگاه انتخاب کنید.
- جداساز: عدد ۱۲ بیتی که برای تشخیص بین چندین تبلیغات دستگاه قابلکارمزد استفاده میشود. (پیشفرض:
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 enablemacOS
برای پیکربندی یا غیرفعال کردن دیوار آتش در macOS:
- به منو Apple بروید و System Settings (تنظیمات سیستم) را انتخاب کنید.
- در فهرست نوار کناری، روی شبکه کلیک کنید.
- روی دیوار آتش کلیک کنید.
- کلید دیوار آتش را به وضعیت خاموش تغییر دهید.
اجرای دستگاه
پساز پیکربندی دستگاه، روی ایجاد دستگاه کلیک کنید. وقتی دستگاه ایجاد میشود، صفحه کنترلکننده نمایش داده میشود. بسته به نوع دستگاهی که انتخاب کردهاید، ممکن است یک یا چند مورد از کنترلهای زیر را ببینید:
- روشن/خاموش: در اکثر دستگاهها مشترک است.
- سطح: برای مثال، چراغ میتواند لغزنده سطح برای تنظیم روشنایی داشته باشد.
- رنگ: برای مثال، یک چراغ رنگی میتواند این کنترل را داشته باشد.
- اشغال: «حسگر اشغال» این کنترل را برای شبیهسازی وضعیت اشغال یا عدم اشغال ارائه میدهد.
همه دستگاههای مجازی کنترلهای زیر را دارند:
- QRCode: رمزینه پاسخسریع مورداستفاده برای راهاندازی را نشان میدهد.
- بازراهاندازی: دستگاه مجازی را بازراهاندازی میکند. اتصال دستگاه بهطور موقت از شبکه قطع میشود.
- بازنشانی: دستگاه فعلی را به تنظیمات کارخانه بازنشانی میکند و همه وضعیتها، ازجمله راهاندازی، وضعیت کنترلهای فعلی، و غیره را پاک میکند
- حذف: دستگاه را ازبین میبرد و به صفحه ایجاد دستگاه برمیگردد.
ویژگیهای مختص سازنده
ویژگیهای ویژه سازنده (MS) توسط «میاناهای برنامهسازی کاربردی خانه» برای Android پشتیبانی میشوند و کارکردهای اضافی فراتر از ویژگیهای استاندارد در Matter ارائه میدهند. برای آزمایش دستگاهی با مشخصه MS، MVD به شما امکان میدهد با مشخصهها در بخشی به نام خوشههای سفارشی تعامل داشته باشید (تصویر بالا را ببینید).
راهاندازی دستگاه
دستگاه بهمحض ایجاد شدن قابلکارمزد است.
چند پیشنیاز برای راهاندازی دستگاه وجود دارد:
باید پروژهای در Google Home Developer Console داشته باشید. این پروژه باید حاوی یکپارچهسازی Matter باشد که ترکیب VID/PID آن با ترکیب مورد استفاده شما در راهاندازی دستگاه مجازی یکسان باشد. برای جزئیات، راهنمای ایجاد پروژه را ببینید.
باید Google Nest Hub که از Matter پشتیبانی میکند داشته باشید
باید تلفن Android با سیستمعامل Android 8.1 یا بالاتر داشته باشید و GHA نصب شده باشد.
تلفن Android باید به همان شبکه Wi-Fi که مرکز کنترل به آن متصل است متصل باشد.
دستگاه میزبان باید به شبکه Wi-Fi متصل باشد.
برای راهاندازی دستگاه بااستفاده از GHA، روی QRCode کلیک کنید تا رمزینه پاسخسریع دستگاه نمایش داده شود، سپس دستورالعملهای جفت کردن دستگاه Matter را دنبال کنید که نحوه آمادهسازی دستگاه Matter بااستفاده از GHA را توضیح میدهد. همچنین میتوانید دستگاه را بااستفاده از Google Home Sample App for Matter مأمور کنید.
برای آشنایی با نحوه عملکرد Matter سفارش تولید محتوا، Matter راهنمای اولیه ما را ببینید.
کنترل دستگاه
پساز مأمور کردن دستگاه مجازی، میتوانید دستگاه را بااستفاده از برنامه Google Home یا «دستیار Google» ازطریق صدا کنترل کنید. یا میتوانید:
- دستگاه را ازطریق GHA یا Assistant کنترل کنید و درعینحال تغییرات وضعیت را در دستگاه مجازی پایش کنید، یا
- دستگاه را بااستفاده از Sample App for Matter کنترل کنید و تغییرات وضعیت را در دستگاه مجازی پایش کنید، یا
- وضعیت دستگاه را ازطریق خود MVD کنترل کنید و تغییرات وضعیت را در GHA یا Assistant پایش کنید.
آزمایش با دستگاه
برای آزمایش با Assistant، توصیه میکنیم از شبیهساز بیان استفاده کنید، مثلاً افزونه Google Home برای VS Code یا افزایه Google Home برای Android Studio.
مشاهده جزئیات دستگاه
صفحه جزئیات دستگاه اطلاعات دقیق دستگاه را نشان میدهد:
- نام: نام مستعاری که به دستگاه داده شده است.
- نوع دستگاه: نوع دستگاه انتخابشده.
- جداساز: جداساز دستگاه فعلی.
- شناسه فروشنده: شناسه فروشنده دستگاه فعلی.
- شناسه محصول: شناسه محصول دستگاه فعلی.
- درگاه RPC: درگاه RPC که دستگاه با کنترلکنندهها (GUI) ارتباط برقرار میکند.
- Matter درگاه: درگاهی که دستگاه فعلی برای برقراری ارتباط ازطریق شبکه IP استفاده میکند.
- کد عبور: پین استفادهشده برای آمادهسازی دستگاه ازطریق شبکه.
- پوشه پیکربندی: پوشهای که دستگاه مجازی پیکربندی را در آن ذخیره میکند.
- اطلاعات واگذاری: پارچههایی را که دستگاه به آنها پیوسته است و شناسه گره دستگاه در پارچه را نشان میدهد.
مشاهده گزارشهای دستگاه
اگر MVD را از پایانه راهاندازی کردید، برونداد گزارش در stdout نشان داده میشود.
همچنین میتوانید گزارشهای دستگاه را در زبانه گزارشهای دستگاه مشاهده کنید.
متوقف کردن دستگاه
برای متوقف کردن و ازبین بردن دستگاه، روی حذف کلیک کنید.
بستن برنامه
بستن پنجره کنترل باعث ازبین رفتن دستگاه و پایان یافتن برنامه MVD میشود. اگر از پایانه راهاندازی کردهاید، میتوانید با تایپ کردن Ctrl-C در پایانه، برنامه را نیز ببندید.
دریافت راهنمایی
برای دریافت راهنمایی درباره MVD، گزارش کردن اشکال، یا درخواست ویژگی جدید، با مخاطب پشتیبانی Google خود تماس بگیرید.
با کلیک کردن روی دکمه راهنما در گوشه بالا سمت راست پنجره به این صفحه هدایت میشوید.
گزارش اشکال
اگر احساس میکنید در MVD نقصی پیدا کردهاید، میتوانید با کلیک کردن روی دکمه «مشکل» در گوشه بالای پنجره، اشکال را گزارش کنید.
ارسال بازخورد
برای ارسال نظراتتان درباره آنچه در MVD دوست دارید یا اینکه چگونه میتوانیم تجربه شما را با این ابزار بهبود دهیم، «فرم بازخورد» ما را تکمیل کنید.
فرم را میتوان از دکمه بازخورد در گوشه بالا سمت چپ پنجره، یا با کلیک کردن روی دکمه زیر راهاندازی کرد.
بازخوردتان را برای ما ارسال کنید
همچنین میتوانید با نظرسنجی که هنگام استفاده از MVD در پایین بالا میآید بازخورد ارائه دهید.