تعمل حزمة تطوير البرامج (SDK) لمنصة Local Home على تحسين عملية الدمج بين "مساعد Google" والمنزل المزوّد بأجهزة ذكية من خلال إضافة مسار تنفيذ غير مستند إلى السحابة لتوجيه الطلبات المتعلقة بالمنزل المزوّد بأجهزة ذكية.
توفّر حزمة تطوير البرامج Local Home SDK ميزتَين: "التنفيذ على الجهاز" و"الطلب على الجهاز".
- تتيح ميزة التنفيذ على الجهاز تنفيذ الأوامر من خلال إرسال
EXECintents عبر مسار التنفيذ على الجهاز، بدلاً من إجراء طلب بيانات من Cloud APIs. على سبيل المثال، يمكن معالجة طلب "تشغيل الإضاءة" من خلال ميزة "التنفيذ على الجهاز". - تتيح ميزة الاستعلام المحلي معالجة طلبات البحث المتعلقة بحالة الجهاز من خلال إرسال طلبات
QUERYعبر مسار التنفيذ المحلي. على سبيل المثال، يمكن لـ Local Query تنفيذ طلب البحث "هل المصباح مضاء؟" بدون إجراء طلب بيانات من واجهة برمجة التطبيقات في السحابة الإلكترونية.
تتيح لك حزمة تطوير البرامج (SDK) كتابة تطبيق محلي للتنفيذ، باستخدام TypeScript أو JavaScript، يحتوي على منطق نشاطك التجاري في المنزل المزوّد بأجهزة ذكية. يمكن لأجهزة Google Home أو جهاز Google Nest تحميل تطبيقك وتشغيله على الجهاز فقط. يتواصل تطبيقك مباشرةً مع أجهزتك الذكية الحالية عبر شبكة Wi-Fi على شبكة اتصال محلية (LAN) لتنفيذ طلبات المستخدمين، وذلك من خلال البروتوكولات الحالية.
يؤدي دمج حزمة تطوير البرامج (SDK) إلى تحسين أداء عملية دمج Cloud-to-cloud، بما في ذلك تقليل وقت الاستجابة وزيادة الموثوقية. تتوفّر ميزة التنفيذ المحلي لجميع أنواع الأجهزة وسماتها، باستثناء تلك التي تستخدم إجراءً ثانويًا لإثبات هوية المستخدم.
التعرّف على طريقة العمل
بعد الحصول على ردّ SYNC من عملية التنفيذ في السحابة الإلكترونية، تفحص منصة Local Home شبكة الاتصال المحلية الخاصة بالمستخدم باستخدام بروتوكول mDNS أو بث UDP أو بروتوكول UPnP للعثور على الأجهزة الذكية المرتبطة بـ "مساعد Google".
ترسل المنصة طلب IDENTIFY لتحديد ما إذا كان الجهاز
قابلاً للتحكّم فيه محليًا، وذلك من خلال مقارنة رقم تعريف الجهاز في استجابة IDENTIFY
بالأرقام التي تم عرضها في استجابة SYNC السابقة. إذا كان الجهاز الذي تم رصده هو
محور أو جسر، ترسل المنصة طلب REACHABLE_DEVICES وتتعامل مع
المحور كجهاز وكيل للتواصل محليًا.
عندما تتلقّى المنصة ردًا يؤكّد توفّر جهاز محلي، تنشئ مسارًا محليًا لتنفيذ الطلبات على جهاز Google Home أو جهاز Google Nest الخاص بالمستخدم، ثم توجّه أوامر المستخدم لتنفيذها محليًا.
عندما يشغّل المستخدم عملية دمج Cloud-to-cloud تتضمّن مسار تنفيذ محلي، يرسل "مساعد Google" طلب EXECUTE أو طلب QUERY إلى جهاز Google Home أو جهاز Google Nest بدلاً من التنفيذ المستند إلى السحابة الإلكترونية. بعد ذلك، يشغّل الجهاز تطبيق التنفيذ المحلي
لمعالجة الطلب.
لا تختار منصة Local Home بشكل غير حتمي جهاز Google Home أو جهاز Google Nest الذي سيتم تشغيل الأمر عليه. قد يتم تلقّي نيتَي EXECUTE وQUERY من خلال أي جهاز Google Home أو Google Nest محدّد في بنية Home Graph نفسها كجهاز الاختبار.
تطبيق التنفيذ المحلي
يحتوي تطبيق التنفيذ المحلي على منطق النشاط التجاري لمعالجة الطلبات التي ترسلها منصة Local Home والوصول إلى جهازك الذكي عبر شبكة الاتصال المحلية. لا يُتوقّع إجراء أي تعديل على أجهزتك لدمج ميزة "تنفيذ الطلبات محليًا". يستجيب التطبيق لطلبات الدمج في Cloud-to-cloud من خلال إرسال أوامر التحكّم إلى الجهاز الذكي عبر بروتوكولات طبقة التطبيقات، بما في ذلك HTTP أو TCP أو UDP. في حال تعذّر تنفيذ الطلب محليًا، يتم استخدام التنفيذ في السحابة الإلكترونية كمسار تنفيذ احتياطي.
لدعم إنشاء التطبيق، توفّر حزمة تطوير البرامج (SDK) للمنزل المحلي هاتين الفئتين الرئيسيتين:
-
DeviceManager: توفّر هذه السمة طرقًا للتواصل مع الأجهزة الذكية باستخدام بروتوكول TCP أو مقابس UDP أو طلبات HTTP. App: توفّر طرقًا لإرفاق معالِجات للطلبات التي ترسلها Google بعد اكتشاف الأجهزة التي يمكن التحكّم فيها محليًا (IDENTIFY،REACHABLE_DEVICES). وتنفّذ هذه الفئة أيضًا أوامر المستخدم (EXECUTE)، وتجيب عن طلبات بحث المستخدم حول حالة الجهاز الحالية (QUERY).
أثناء عملية التطوير، يمكنك إنشاء التطبيق واختباره من خلال تحميله على خادم الاستضافة الخاص بك أو جهاز التطوير المحلي. في مرحلة الإنتاج، تستضيف Google تطبيقك في بيئة وضع حماية آمنة لـ JavaScript على جهاز Google Home أو جهاز Google Nest الخاص بالمستخدم.
لا تتوفّر حاليًا واجهة برمجة التطبيقات Report State لعمليات التنفيذ المحلية. تعتمد Google على تنفيذ الطلبات في السحابة الإلكترونية لمعالجة هذه الطلبات.
مراحل نشاط التطبيق
يتم تحميل تطبيق التنفيذ المحلي عند الطلب عندما تكتشف منصة Local Home أجهزة محلية جديدة تتطابق مع إعدادات فحص المشروع، أو عندما يكون لديها طلبات معلّقة لتسليمها ذات صلة بجهاز تم تحديده مسبقًا.
تتسم أجهزة Google Home أو جهاز Google Nest بذاكرة محدودة، وقد يتم إنهاء تطبيق التنفيذ المحلي في أي وقت بسبب الضغط على الذاكرة في النظام. يمكن أن يحدث ذلك إذا بدأ تطبيقك في استهلاك قدر كبير من الذاكرة، أو إذا احتاج النظام إلى إخلاء مساحة لتطبيق آخر. لا تعيد منصة Local Home تشغيل تطبيقك إلا عندما تكون هناك طلبات جديدة لتسليمها وموارد ذاكرة كافية لتشغيل التطبيق.
تزيل منصة Local Home تطبيقك بعد انتهاء مهلة عدم النشاط عندما يلغي المستخدم
ربط حسابه أو عندما لا تعود هناك أجهزة متوافقة مع التنفيذ المحلي
مرتبطة بحساب المستخدم على agentUserId.
الأجهزة المعتمدة
تنفّذ منصة Local Home تطبيق التنفيذ المحلي على أجهزة Google Home أو أجهزة Google Nest المتوافقة. يوضّح الجدول التالي الأجهزة المتوافقة ووقت التشغيل المستخدَم على كل جهاز. لمزيد من المعلومات حول متطلبات وقت التشغيل، يُرجى الاطّلاع على بيئة التنفيذ.
| الجهاز | النوع | البيئة |
|---|---|---|
| Google Home | المتحدّث | Chrome |
| Google Home Mini | المتحدّث | Chrome |
| Google Home Max | المتحدّث | Chrome |
| Nest Mini | المتحدّث | Chrome |
| Nest Hub | الشبكة الإعلانية | Chrome |
| Nest Hub Max | الشبكة الإعلانية | Chrome |
| Nest Wifi | جهاز التوجيه | Node.js |
| نقطة | Chrome |
بيئة التنفيذ
تعتمد بيئة تنفيذ تطبيق التنفيذ المحلي على جهازك. تتيح منصة Local Home استخدام بيئات التشغيل التالية:
- Chrome: يتم تنفيذ تطبيق التنفيذ المحلي ضمن سياق متصفّح Chrome
windowالذي يشغّل الإصدار Chrome M80 أو إصدارًا أحدث مع إتاحة استخدام الإصدار ES2018 من ECMAScript. - Node.js: يتم تنفيذ تطبيق التنفيذ المحلي كنص برمجي ضمن عملية Node.js التي تشغّل Node v10.x LTS أو إصدار أحدث مع دعم إصدار ECMAScript ES2018.
بنية الرمز المصدر
ننصحك بتجميع التبعيات في ملف JavaScript واحد باستخدام إعدادات الحِزم التي توفّرها حزمة تطوير البرامج (SDK) لمنصة Local Home وتجميع الرمز المصدر كـ تعبير دالة يتم استدعاؤه على الفور (IIFE).
مسار التنفيذ
لاستخدام حزمة تطوير البرامج (SDK) لمنصة Local Home في عملية دمج الأجهزة المنزلية المزوّدة بأجهزة ذكية، عليك تنفيذ المهام التالية:
| 1 | إعداد إعدادات الفحص | اضبط Google Home Developer Console باستخدام المَعلمات اللازمة ليتمكّن "مساعد Google" من اكتشاف الأجهزة التي يمكن التحكّم فيها محليًا. |
| 2 | تعديل استجابة المزامنة في عملية التنفيذ على السحابة الإلكترونية | في عملية التنفيذ المستندة إلى السحابة الإلكترونية، عدِّل معالج طلبات SYNC لإتاحة حقل
otherDeviceIds الذي تستخدمه المنصة لإنشاء مسار تنفيذ غير مستند إلى السحابة الإلكترونية. في هذا الحقل، حدِّد أرقام تعريف الأجهزة التي يمكن التحكّم فيها محليًا.
|
| 3 | تنفيذ تطبيق التنفيذ المحلي | استخدِم حزمة تطوير برامج المنزل المحلية لإنشاء تطبيق JavaScript
يتعامل مع طلبات IDENTIFY
و
EXECUTE و
QUERY. بالنسبة إلى أجهزة الخادم الوكيل أو أجهزة الربط، يجب أيضًا التعامل مع الغرض REACHABLE_DEVICES.
|
| 4 | اختبار تطبيقك وتصحيح أخطائه | اختبِر عملية الدمج (أو أجرِ تقييمًا ذاتيًا) باستخدام حزمة اختبار Google Home. |
قبل البدء
- ننصحك بالتعرّف على أساسيات إنشاء عملية تكامل مع "Cloud-to-cloud".
- في Google Home Developer Console، تأكَّد من أنّ لديك مشروعًا حاليًا للمنزل المزوّد بأجهزة ذكية ومن أنّ ربط الحساب قد تم ضبطه.
- تأكَّد من أنك مُسجِّل الدخول باستخدام حساب Google نفسه في Developer Console وفي "مساعد Google" على جهاز الاختبار.
- ستحتاج إلى بيئة Node.js لكتابة تطبيقك. لتثبيت Node.js وnpm، ننصحك باستخدام Node Version Manager.
- للعمل مع أحدث إصدار من حزمة تطوير البرامج (SDK) لـ Local Home، عليك تسجيل أجهزتك الاختبارية في برنامج Cast Preview.