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