تُعدّ أجهزة Matter الافتراضية مفيدة لتطوير حلول Matter واختبارها، ويمكن إصدارها باستخدام Google Home app (GHA) والتحكّم فيها باستخدام GHA و Google Assistant، تمامًا مثل أجهزة Matter الفعلية.
تقدّم Google حزمة Matter Virtual Device (MVD)، وذلك لمطوّري التطبيقات وغيرهم من المستخدمين الذين يحتاجون إلى اختبار جهاز Matter افتراضي أو محاكته، لكنهم يفتقرون إلى الموارد اللازمة لإنشاء جهاز Matter فعلي أو افتراضي. إنّ MVD هي أداة سطح مكتب مستقلة وخفيفة تعمل بنظام التشغيل Linux وتحاكي أنواعًا مختلفة من أجهزة Matter الافتراضية وتوفّر واجهة مستخدم تصويرية للتحكّم في حالات جهاز Matter الافتراضي وعرضها.
على عكس جهاز Matter الفعلي، لا يعتمد MVD على تقنية Bluetooth® Low Energy (BLE) أو Thread® لدمج نسيج Matter. بل يستخدم بدلاً من ذلك اتصال شبكة Wi-Fi الحالي لجهاز المضيف الذي يعمل بنظام التشغيل Linux من أجل التنفيذ.
مقارنةً بالأدوات الأخرى
تختلف علامة MVD عن Virtual Device Controller (VDC) في أنّها حلّ مستقل، إذ تجمع بين جهاز افتراضي وواجهة مستخدم للتحكّم فيه. في المقابل، يتم استخدام VDC للتحكّم في جهاز Matter افتراضي منفصل، مثل الجهاز الذي ننشئه في Matter Virtual Device Development Environment (MVD-DE).
ربما سبق لك العمل على الدرس التطبيقي حول ترميز MVD-DE. في هذا الدرس التطبيقي حول الترميز، يمكنك إنشاء نوع واحد من الأجهزة الافتراضية، وهو مصباح ذكي. في المقابل، يحتوي MVD على العديد من الأجهزة الافتراضية المختلفة التي تم إنشاؤها مسبقًا، كما يتضمّن واجهة مستخدم متكاملة لتشغيلها والتحكّم فيها.
MVD | VDC | MVD-DE (الدرس التطبيقي حول الترميز) | |
---|---|---|---|
محاكاة جهاز Matter | |||
التحكّم في جهاز Matter في وضع المحاكاة | |||
جهود التطوير المطلوبة | |||
تنزيل | أقل من 100 ميغابايت | 9 غيغابايت | 20 غيغابايت |
الأجهزة المتوافقة
في الوقت الحالي، يتوافق MVD مع Matter نوع الجهاز التالي:
نوع جهاز واحد (Matter) | مجموعات التطبيقات | نوع المنظومة المتكاملة للمنزل |
---|---|---|
ضوء درجة حرارة الألوان |
0x0300 0x0008 0x0006 |
فاتح |
إضاءة خافتة |
0x0008 0x0006 |
فاتح |
إضاءة ملوَّنة موسّعة |
0x0300 0x0008 0x0006 |
فاتح |
جهاز استشعار تواجد الأفراد في المنزل |
0x0406 |
جهاز استشعار |
تشغيل/إيقاف الإضاءة |
0x0008 0x0006 |
فاتح |
تشغيل/إيقاف وحدة المكون الإضافي |
0x0008 0x0006 |
المقبس |
تثبيت فيديو موسيقي (MVD)
يعمل MVD على أجهزة معالِج بيانات 64 بت × 86 وتعمل بنظام التشغيل Debian (11 أو الإصدارات الأحدث) أو Ubuntu (الإصدار 20.04 أو الإصدارات الأحدث).
لتثبيت التطبيق:
تنزيل ملف توقيع armored-ASCII (asc.)
نفِّذ بعد ذلك dpkg
لتثبيت حزمة MVD Debian (.deb):
sudo dpkg -i mvd_1.1.0_amd64.deb
التحقُّق من استخدام المنفذ
تستخدم وحدة التحكّم في MVD منفذ TCP رقم 33000 لإجراء مكالمات RPC إلى الجهاز الافتراضي، ولذلك إذا كان هذا المنفذ قيد الاستخدام في عملية أخرى على جهاز الكمبيوتر، احرص على تحريره.
لمعرفة ما إذا كانت هناك أي عملية تستخدم المنفذ 33000:
sudo fuser -v 33000/tcp
يمكنك إنهاء أي عملية باستخدام منفذ TCP رقم 33000 باستخدام أمر واحد:
sudo fuser -k 33000/tcp
تشغيل MVD
شغِّل MVD من مجلد التطبيقات أو من الوحدة الطرفية:
mvd
إعداد الجهاز
تظهر الشاشة الرئيسية عند بدء التشغيل، وتتيح لك تهيئة جهاز افتراضي:
- نوع الجهاز: اختَر نوع الجهاز (على سبيل المثال، "مصباح" و"مفتاح تبديل" و"أداة الاستشعار" وما إلى ذلك).
- اسم الجهاز: امنح الجهاز اسمًا سهلاً.
- المُميِّز: رقم مكوَّن من 12 بت يُستخدم للتمييز بين الإعلانات المتعددة للأجهزة الخاضعة للتفويض. (القيمة التلقائية:
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
تشغيل جهازك
بعد إعداد الجهاز، انقر على إنشاء جهاز. عند إنشاء الجهاز، تظهر شاشة وحدة التحكم. وبناءً على نوع الجهاز الذي اخترته، قد يظهر لك عنصر أو أكثر من عناصر التحكّم التالية:
- تفعيل/إيقاف: شائع على معظم الأجهزة.
- المستوى: على سبيل المثال، يمكن أن يتضمّن المصباح شريط تمرير لضبط مستوى السطوع.
- اللون: على سبيل المثال، يمكن أن يتضمّن مصباح اللون عنصر التحكّم هذا.
- الإشغال: يوفّر جهاز استشعار تواجد الأفراد في المنزل عنصر التحكّم هذا لمحاكاة حالة الإشغال/الشاغل.
تتضمّن جميع الأجهزة الافتراضية عناصر التحكّم التالية:
- QRCode: يعرض رمز الاستجابة السريعة المستخدَم للتفويض.
- إعادة التشغيل: يؤدي هذا الإجراء إلى إعادة تشغيل الجهاز الافتراضي. انقطع اتصال الجهاز بالشبكة لفترة قصيرة.
- إعادة الضبط: يؤدي هذا الخيار إلى إعادة ضبط الجهاز الحالي على الإعدادات الأصلية ومحو كل حالاته، بما في ذلك بدء التشغيل وحالة عناصر التحكّم الحالية وما إلى ذلك.
- حذف: يؤدي هذا الإجراء إلى تدمير الجهاز والعودة إلى شاشة إنشاء جهاز.
اختبار الجهاز
يصبح الجهاز مؤهلاً فور إنشائه.
هناك بضعة متطلبات أساسية لتشغيل الجهاز:
يجب أن يكون لديك مشروع في Google Home Developer Console. يجب أن يتضمّن هذا المشروع عملية دمج Matter تتضمّن مجموعة VID/PID نفسها التي استخدمتها في إعداد جهازك الافتراضي. راجع دليل إنشاء المشروع للحصول على التفاصيل.
يجب أن يكون لديك جهاز Google Nest Hub متوافق مع المسائل القانونية.
يجب أن يكون لديك هاتف Android يعمل بالإصدار 8.1 من نظام التشغيل 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 الذي يتصل به الجهاز بوحدات التحكم (GUI).
- منفذ Matter: المنفذ الذي يستخدمه الجهاز الحالي للاتصال عبر شبكة IP.
- رمز المرور: رقم التعريف الشخصي المُستخدَم لتشغيل الجهاز من خلال الشبكة.
- مجلد الضبط: المجلد الذي يخزِّنه الجهاز الافتراضي بيانات الضبط.
- معلومات العمولة: تعرض الأقمشة التي انضم إليها الجهاز ومعرّف عقدة الجهاز في القماش.
عرض سجلات الجهاز
إذا أطلقت MVD من الوحدة الطرفية، ستظهر نتائج السجل
في stdout
.
يمكنك أيضًا عرض سجلات الجهاز في علامة تبويب سجلات الجهاز.
إيقاف الجهاز
لإيقاف الجهاز وإتلافه، انقر على حذف.
إنهاء التطبيق
يؤدي إغلاق نافذة التحكم إلى تدمير الجهاز وإنهاء تطبيق MVD. إذا تم إطلاق التطبيق من الوحدة الطرفية، يمكنك أيضًا إنهاء التطبيق من خلال كتابة Ctrl-C في الوحدة الطرفية.
الحصول على مساعدة
للحصول على مساعدة بشأن MVD أو للإبلاغ عن خطأ أو لطلب ميزة جديدة، يمكنك التواصل مع جهة اتصال دعم Google.
ويؤدي النقر على زر المساعدة
في أعلى يسار النافذة إلى نقلك إلى هذه الصفحة.الإبلاغ عن خطأ
إذا كنت تعتقد أنّك وجدت عيبًا في MVD، يمكنك الإبلاغ عن الخطأ بالنقر على زر المشكلة في أعلى يسار النافذة.
إرسال ملاحظات
لإرسال ملاحظاتك حول ما يعجبك في MVD أو حول كيفية تحسين تجربتك في استخدام الأداة، يُرجى ملء نموذج الملاحظات.
يمكن فتح النموذج من خلال زر "تعليقات"
في أعلى يسار النافذة، أو عن طريق النقر على الزر أدناه.