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

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

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

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

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

لا تتّبع منصة "المنزل" المحلية أسلوبًا محدّدًا عند اختيار جهاز 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 مع البيئات التالية لوقت التشغيل:

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

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

مسار التنفيذ

لاستخدام حزمة تطوير البرامج (SDK) المحلية للمنزل الذكي في عملية الدمج، عليك تنفيذ المهام التالية:

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

قبل البدء