تعمل حزمة تطوير البرامج (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 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. |
قبل البدء
- تعرَّف على أساسيات إنشاء عملية Cloud-to-cloud تكامل.
- في Google Home Developer Console، تأكَّد من أنّ لديك مشروعًا حاليًا للأجهزة المنزلية الذكية وأنّه تم ضبط إعدادات ربط الحساب.
- تأكَّد من تسجيل الدخول باستخدام حساب Google نفسه في Developer Console وفي "مساعد Google" على جهاز الاختبار.
- ستحتاج إلى بيئة Node.js لكتابة تطبيقك. ننصحك باستخدام Node Version Manager لتثبيت Node.js وnpm.
- لاستخدام أحدث إصدار من Local Home SDK، عليك تسجيل أجهزتك الاختبارية في "برنامج معاينة Cast".