توصيل الطلبات على المستوى المحلي

تعمل حزمة تطوير البرامج (SDK) المحلية للمنزل على تحسين عملية الدمج بين "مساعد Google" والمنزل المزوّد بأجهزة ذكية من خلال إضافة مسار تنفيذ غير مستند إلى السحابة لتوجيه الطلبات المتعلقة بالمنزل المزوّد بأجهزة ذكية.

توفّر حزمة تطوير البرامج (SDK) المحلية للمنزل ميزتَين: التنفيذ المحلي والاستعلام المحلي.

  • توفّر ميزة التنفيذ المحلي إمكانية تنفيذ الأوامر من خلال إرسال EXEC نوايا عبر مسار التنفيذ المحلي، بدلاً من إجراء طلب إلى واجهة برمجة التطبيقات السحابية. على سبيل المثال، يمكن أن تعالج ميزة "التنفيذ المحلي" الطلب "أريد إضاءة المصباح".
  • توفّر الطلبات المحلية إمكانية التعامل مع الطلبات المتعلقة بحالة الجهاز من خلال إرسال نوايا 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 بدلاً من التنفيذ على السحابة الإلكترونية. بعد ذلك، يشغّل الجهاز تطبيق التنفيذ المحلي لمعالجة الطلب.

يوضّح هذا الشكل مسار التنفيذ الخاص بخدمة التوصيل المحلية. يتضمّن مسار التنفيذ تحديد هدف المستخدم من خلال هاتف مزوّد بـ "مساعد Google"، ثم معالجة هدف المستخدم من خلال Google Cloud، ثم تنفيذه محليًا على جهاز Google Home، وإصدار الأمر مباشرةً إلى مركز الجهاز أو مباشرةً إلى الجهاز. تتوفّر السحابة الإلكترونية الخاصة بالمطوّرين كخيار احتياطي.
الشكل 1: إضافة مسار تنفيذ غير مستند إلى السحابة لمنزلك المزوّد بأجهزة ذكية.

لا يمكن تحديد الجهاز الذي سيتم تشغيل الأمر عليه من بين أجهزة Google Home أو Google Nest عند استخدام منصة Local Home. قد تأتي النيتان EXECUTE وQUERY من أي جهاز Google Home أو Google Nest تم تحديده في بنية Home Graph نفسها كالجهاز المستهدف.

تطبيق تلبية الطلبات محليًا

يحتوي تطبيق التنفيذ غير المستند إلى السحابة على منطق النشاط التجاري لمعالجة الطلبات التي ترسلها منصة Local Home والوصول إلى جهازك الذكي عبر شبكة المنطقة المحلية. لا يُتوقّع إجراء أي تعديل على أجهزتك لدمج ميزة "التنفيذ المحلي". يستوفي التطبيق طلبات الدمج Cloud-to-cloud من خلال إرسال أوامر تحكّم إلى الجهاز الذكي عبر بروتوكولات طبقة التطبيق، بما في ذلك HTTP أو TCP أو UDP. في حال تعذُّر تنفيذ مسار التنفيذ المحلي، يتم استخدام مسار التنفيذ السحابي كمسار احتياطي.

لتوفير الدعم اللازم لإنشاء التطبيق، توفّر حزمة Local Home 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 أو إصدار أحدث ويتوافق مع ECMAScript الإصدار ES2018.
  • Node.js: يتم تنفيذ تطبيق التنفيذ المحلي كنص برمجي ضمن عملية Node.js تعمل بالإصدار Node v10.x LTS أو إصدار أحدث مع توفير الدعم لإصدار ECMAScript ES2018.

بنية رمز المصدر

ننصحك بتجميع التبعيات في ملف JavaScript واحد باستخدام إعدادات المجمّع التي يوفّرها Local Home SDK، وتعبئة الرمز المصدر على شكل تعبير دالة يتم استدعاؤه على الفور (IIFE).

مسار التنفيذ

لاستخدام Local Home SDK لدمج أجهزة المنزل الذكي، عليك تنفيذ المهام التالية:

1 ضبط إعدادات المسح الضوئي اضبط Google Home Developer Console باستخدام المَعلمات اللازمة كي يتمكّن "مساعد Google" من رصد الأجهزة التي يمكن التحكّم بها محليًا.
2 تعديل استجابة SYNC في خدمة التنفيذ المستندة إلى السحابة الإلكترونية في عملية التنفيذ المستندة إلى السحابة، عدِّل معالج الطلبات SYNC ليتيح استخدام الحقل otherDeviceIds الذي تستخدمه المنصة لإنشاء مسار تنفيذ غير مستند إلى السحابة. في هذا الحقل، حدِّد أرقام تعريف الأجهزة التي يمكن التحكّم فيها محليًا.
3 تنفيذ تطبيق خدمة التنفيذ المحلية استخدِم حزمة Local Home SDK لإنشاء تطبيق JavaScript للتعامل مع أغراض IDENTIFY و EXECUTE و QUERY. بالنسبة إلى أجهزة الوكيل التي تعمل كمركز أو جسر، عليك أيضًا التعامل مع الغرض REACHABLE_DEVICES.
4 اختبار تطبيقك وتصحيح أخطائه اختبِر عملية الدمج (أو شهادة الاعتماد الذاتي) باستخدام مجموعة اختبارات Google Home.

قبل البدء