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

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

توفّر حزمة Local Home 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: إضافة مسار تنفيذ غير مستند إلى السحابة لمنزلك المزوّد بأجهزة ذكية Action.

تختار منصة Local Home بشكل غير محدّد جهاز Google Home أو جهاز Google Nest الذي سيتم تشغيل الأمر عليه. قد تأتي طلبات 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 API حاليًا مع ميزة التنفيذ غير المستند إلى السحابة. تعتمد 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 أو إصدارًا أحدث مع دعم الإصدار ES2018 من ECMAScript.

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

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

مسار التنفيذ

لاستخدام حزمة Local Home SDK لعملية الدمج بين المنزل المزوّد بأجهزة ذكية و"مساعد Google"، عليك تنفيذ المهام التالية:

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

قبل البدء