دستگاههای مجازی Matter برای توسعه و آزمایش کردن راهحلهای Matter مفید هستند و میتوان آنها را بااستفاده از Google Home app (GHA) راهاندازی کرد و بااستفاده از GHA و Google Assistant کنترل کرد، درست مثل دستگاههای فیزیکی Matter.
برای توسعهدهندگان نرمافزار و دیگر افرادی که نیاز به آزمایش یا شبیهسازی دستگاه مجازی 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 |
پریز |
| ماشین ظرفشویی |
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 |
دستگاه تهویه مطبوع |
| هشدار دود و مونوکسید کربن |
0x005C |
آشکارساز منوکسید کربن
آشکارساز دود |
| سنسور دما |
0x0402 |
حسگر |
| دماپا |
0x0201 |
دماپا |
| پوشش پنجره |
0x0102 |
کرکره |
نصب MVD
MVD در دستگاههای دارای پردازنده x86 ۶۴ بیتی که Debian (نسخه ۱۳ Trixie یا بالاتر)، Ubuntu (نسخه ۲۰.۰۴ Noble Numbat یا بالاتر)، یا macOS را اجرا میکنند اجرا میشود.
Linux
بارگیری بسته MVD Debian (.deb)
بارگیری فایل امضای ASCII زرهی (.asc)
سپس dpkg را اجرا کنید تا بسته Debian (.deb) MVD
نصب شود:
sudo dpkg -i mvd_1.7.0_amd64.debmacOS
بارگیری فایل dmg مربوط به MVD (macOS x86)
بارگیری فایل dmg مربوط به MVD (ARM64 M1)
سپس روی فایل dmg دوکلیک کنید تا پنجره نصب باز شود.
برای تکمیل نصب، نماد mvd را انتخاب کنید و به
پوشه Applications بکشید:
بررسی مصرف درگاه
ماژول کنترلکننده در MVD از درگاه TCP شماره ۳۳۰۰۰ برای برقراری تماسهای RPC با دستگاه مجازی استفاده میکند، بنابراین اگر این درگاه قبلاً توسط فرایند دیگری در رایانهتان استفاده شده است، حتماً آن را آزاد کنید.
برای اینکه ببینید آیا فرایندی از درگاه ۳۳۰۰۰ استفاده میکند یا نه:
Linux
sudo fuser -v 33000/tcpmacOS
lsof -i:33000میتوانید هر فرایندی را که از درگاه TCP ۳۳۰۰۰ استفاده میکند با یک فرمان ازبین ببرید:
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 شماره ۵۵۴۰ استفاده میکند، اما میتوانید دستگاه مجازی را برای استفاده از درگاه دیگری پیکربندی کنید، بهشرطی که سرویس دیگری از آن استفاده نکند.
- شناسه فروشنده: فقط شناسه فروشنده آزمایشی
0xFFF1پشتیبانی میشود. - شناسه محصول: فقط شناسههای محصول آزمایشی
0x8000تا0x801Fپشتیبانی میشوند.
پیکربندی دیوار آتش
Linux
اگر دیوار آتشی در رایانهتان درحال اجرا است، آن را خاموش کنید یا اجازه دهید اتصالات TCP/UDP ورودی در درگاه Matter برقرار شود.
برای مشاهده قوانین فعال کنونی دیوار آتشین netfilter، این دستور را اجرا کنید:
sudo iptables -L -nاگر از `ufw` استفاده میکنید، میتوانید آن را با این دستور غیرفعال کنید:
sudo ufw disableو میتوان آن را با این موارد دوباره فعال کرد:
sudo ufw enablemacOS
برای پیکربندی یا غیرفعال کردن دیوار آتش در macOS:
- به منو Apple بروید و تنظیمات سیستم را انتخاب کنید.
- در فهرست نوار کناری، روی شبکه کلیک کنید.
- روی دیوار آتش کلیک کنید.
- کلید دیوار آتش را روی وضعیت خاموش قرار دهید.
اجرای دستگاه
پساز پیکربندی دستگاه، روی ایجاد دستگاه کلیک کنید. وقتی دستگاه ایجاد شد، صفحه کنترلکننده نشان داده میشود. بسته به نوع دستگاهی که انتخاب کردهاید، ممکن است یک یا چند مورد از کنترلهای زیر را ببینید:
- روشن/خاموش: در اکثر دستگاهها رایج است.
- سطح: برای مثال، یک چراغ میتواند لغزنده سطح برای تنظیم روشنایی داشته باشد.
- رنگ: برای مثال، چراغ رنگی میتواند این کنترل را داشته باشد.
- حضور: «حسگر حضور در خانه» این کنترل را برای شبیهسازی وضعیت حضور یا عدم حضور در خانه ارائه میدهد.
همه دستگاههای مجازی کنترلهای زیر را دارند:
- QRCode: رمزینه پاسخسریع استفادهشده برای راهاندازی را نشان میدهد.
- بازراهاندازی: دستگاه مجازی را بازراهاندازی میکند. اتصال دستگاه برای مدت کوتاهی از شبکه قطع میشود.
- بازنشانی: دستگاه فعلی را بازنشانی کارخانهای میکند و همه وضعیتها را پاک میکند، ازجمله راهاندازی، وضعیت کنترلهای فعلی، و غیره
- حذف: دستگاه را ازبین میبرد و به صفحه ایجاد دستگاه برمیگردد.
ویژگیهای خاص سازنده
ویژگیهای خاص سازنده (MS) توسط Home APIs برای Android پشتیبانی میشوند و قابلیتهای بیشتری فراتر از ویژگیهای استاندارد در Matter ارائه میدهند. برای آزمایش دستگاهی با مشخصه MS، MVD به شما امکان میدهد با مشخصهها در بخش خوشههای سفارشی تعامل برقرار کنید (تصویر بالا را ببینید).
راهاندازی دستگاه
دستگاه بهمحض ایجاد شدن قابلراهاندازی است.
برای راهاندازی دستگاه چند پیشنیاز وجود دارد:
باید پروژهای در Google Home Developer Console داشته باشید. این پروژه باید حاوی ادغام Matter باشد که ترکیب VID/PID آن با ترکیبی که در راهاندازی دستگاه مجازیتان استفاده کردید یکسان باشد. برای جزئیات، راهنمای ایجاد پروژه را ببینید.
باید تلفن Android با Android نسخه ۸.۱ یا بالاتر داشته باشید و 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 که دستگاه ازطریق آن با کنترلکنندهها (رابط کاربری گرافیکی) ارتباط برقرار میکند.
- Matter درگاه: درگاهی که دستگاه فعلی برای برقراری ارتباط ازطریق شبکه IP استفاده میکند.
- گذرکد: پین مورداستفاده برای راهاندازی دستگاه ازطریق شبکه.
- پوشه پیکربندی: پوشهای که دستگاه مجازی پیکربندی را در آن ذخیره میکند.
- اطلاعات راهاندازی: ساختار(هایی) را که دستگاه به آن پیوسته است و شناسه گره دستگاه در ساختار را نشان میدهد.
مشاهده گزارشهای دستگاه
اگر MVD را از پایانه راهاندازی کردهاید، خروجی گزارش در stdout نشان داده میشود.
همچنین میتوانید گزارشهای دستگاه را در برگه گزارشهای دستگاه مشاهده کنید.
دستگاه را متوقف کن
برای متوقف کردن و ازبین بردن دستگاه، روی حذف کلیک کنید.
پایان دادن به برنامه
بستن پنجره کنترل باعث ازبین رفتن دستگاه و بسته شدن برنامه MVD میشود. اگر از پایانه راهاندازی کردهاید، میتوانید با تایپ کردن Ctrl-C در پایانه، برنامه را ببندید.
دریافت راهنمایی
برای دریافت راهنمایی درباره MVD، گزارش اشکال، یا درخواست ویژگی جدید، با مخاطب پشتیبانی Google تماس بگیرید.
با کلیک کردن روی دکمه راهنمای در گوشه بالا سمت چپ پنجره، به این صفحه هدایت میشوید.
گزارش اشکال
اگر فکر میکنید نقصی در MVD پیدا کردهاید، میتوانید با کلیک کردن روی دکمه «مشکل» در گوشه بالا سمت چپ پنجره، اشکالی را ثبت کنید.
ارسال بازخورد
برای ارسال نظراتتان درباره آنچه در MVD میپسندید یا اینکه چگونه میتوانیم تجربهتان را با این ابزار بهبود دهیم، «فرم بازخورد» ما را تکمیل کنید.
این فرم را میتوانید ازطریق دکمه بازخورد در گوشه بالا سمت چپ پنجره یا با کلیک کردن روی دکمه زیر راهاندازی کنید.
بازخوردتان را برای ما ارسال کنید
همچنین میتوانید با نظرسنجیای که هنگام استفاده از MVD در پایین ظاهر میشود بازخورد ارائه دهید.