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

دستگاه‌های مجازی 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 نوع دستگاه پشتیبانی‌شده برای MVD
نوع دستگاه 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.deb

macOS

بارگیری فایل dmg مربوط به MVD (macOS x86)

بارگیری فایل dmg مربوط به MVD (ARM64 M1)

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

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

نصب macOS

بررسی مصرف درگاه

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

برای اینکه ببینید آیا فرایندی از درگاه ۳۳۰۰۰ استفاده می‌کند یا نه:

Linux

sudo fuser -v 33000/tcp

macOS

lsof -i:33000

می‌توانید هر فرایندی را که از درگاه TCP‏ ۳۳۰۰۰ استفاده می‌کند با یک فرمان ازبین ببرید:

Linux

sudo fuser -k 33000/tcp

macOS

lsof -ti:33000 | xargs kill

اجرای MVD

Linux

در Linux، MVD را از پوشه برنامه‌ها یا از پایانه اجرا کنید:

mvd

macOS

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

cd /Applications
open 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 enable

macOS

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

  1. به منو  Apple بروید و تنظیمات سیستم را انتخاب کنید.
  2. در فهرست نوار کناری، روی شبکه کلیک کنید.
  3. روی دیوار آتش کلیک کنید.
  4. کلید دیوار آتش را روی وضعیت خاموش قرار دهید.

اجرای دستگاه

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

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

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

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

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

ویژگی‌های خاص سازنده

ویژگی‌های خاص سازنده (MS) توسط Home APIs برای Android پشتیبانی می‌شوند و قابلیت‌های بیشتری فراتر از ویژگی‌های استاندارد در Matter ارائه می‌دهند. برای آزمایش دستگاهی با مشخصه MS، MVD به شما امکان می‌دهد با مشخصه‌ها در بخش خوشه‌های سفارشی تعامل برقرار کنید (تصویر بالا را ببینید).

راه‌اندازی دستگاه

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

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

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

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

  • باید تلفن 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 در پایین ظاهر می‌شود بازخورد ارائه دهید.