تعمل حزمة تطوير البرامج (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 تم تحديده في بنية "مخطط المنزل" نفسها التي يتضمّنها الجهاز المستهدف.
تطبيق تلبية الطلبات محليًا
يحتوي تطبيق التنفيذ غير المستند إلى السحابة على منطق النشاط التجاري لمعالجة الطلبات التي ترسلها منصة 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 أو إصدار أحدث ويتوافق مع الإصدار ES2018 من ECMAScript. - Node.js: يتم تنفيذ تطبيق التنفيذ المحلي كنص برمجي ضمن عملية Node.js تعمل بالإصدار Node v10.x LTS أو إصدار أحدث مع توفير الدعم لإصدار ECMAScript ES2018.
بنية رمز المصدر
ننصحك بتجميع التبعيات في ملف JavaScript واحد باستخدام إعدادات المجمّع التي توفّرها حزمة تطوير البرامج (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".