توفّر واجهات Google Home APIs لنظام التشغيل Android مساحة موحّدة لواجهات برمجة التطبيقات تتيح للمطوّرين التفاعل مع حالة العناصر في منزل المستخدم. يمكن أن تصف هذه الكيانات الأجهزة والمعلومات غير المتعلّقة بالأجهزة والمرتبطة ببنية المستخدم وغرفه.
تحدّد واجهات برمجة التطبيقات الخاصة بمنصة Home الكيانات التالية التي يمكن للمستخدم التفاعل معها:
- تمثّل البُنى منزلاً يحتوي على غرف وأجهزة.
- الغرف هي جزء من بنية وتحتوي على أجهزة.
- تنفّذ الأجهزة سمات تحتوي على خصائص، وتتوافق مع أنواع، وتصدر أحداثًا، وتستجيب للأوامر.
- عمليات التشغيل الآلي هي جزء من بنية وتستخدم البيانات الوصفية الخاصة بالمنزل والأجهزة لتنفيذ المهام بشكل آلي في المنزل.
يوضّح الشكل 1 هذه البنية:
قد تكون أنواع الأجهزة المتوافقة مع Home API متوافقة مع Matter، وهو معيار مفتوح للمنزل الذكي، أو قد تكون جهاز Cloud-to-cloud في منظومة Google Home المتكاملة. قد تتضمّن بعض أنواع الأجهزة وظائف من كليهما. لمزيد من المعلومات، يُرجى الاطّلاع على أنواع الأجهزة المتوافقة على Android.
في Matter، يتم تجميع وظائف الجهاز حسب المجموعات، التي يتم تمثيلها في واجهات برمجة تطبيقات Home كسمات Matter عادية. تتيح واجهات برمجة التطبيقات Home مجموعة المعايير الخاصة بفئات Matter على النحو المحدّد في مواصفات Matter الحالية.
في نظام Google Home المتكامل، يتم تجميع وظائف الأجهزة حسب سمات المنزل الذكي، والتي يتم تمثيلها في واجهات برمجة التطبيقات الخاصة بمنصة Home على أنّها سمات Google Home الذكي. تتيح واجهات برمجة التطبيقات الخاصة بالمنزل مجموعة من سمات المنزل الذكي كما هو محدّد في برنامج Cloud-to-cloud.
تتوفّر أيضًا سمات أخرى، مثل المجموعات الخاصة بالشركة المصنّعة وسمات المنصة. لمزيد من المعلومات، يُرجى الاطّلاع على نموذج البيانات على Android.
المنظومة المتكاملة
توفّر منظومة Google Home المتكاملة أساسًا مبسطًا لإنشاء تجارب منزلية ذكية وإدارتها وتأمينها ودمجها. يوضّح الشكل 2 طريقة عمل المكوّنات معًا.
يتضمّن النظام المتكامل محرك التشغيل الآلي من Google الذي يخزّن عمليات التشغيل الآلي ويشغّلها، ما يوفّر طريقة لتنفيذ المهام وضبط إعدادات الأجهزة في المنزل بشكل آلي.
تستخدم واجهات برمجة التطبيقات Home APIs بروتوكول OAuth 2.0 لمنح إذن الوصول إلى الأجهزة في البنية. يسمح بروتوكول OAuth للمستخدم بمنح الإذن لتطبيق أو خدمة بدون الحاجة إلى الكشف عن بيانات اعتماد تسجيل الدخول.
يتم استخدام Google Home Developer Console لإدارة جميع مراحل مشروع واجهات برمجة التطبيقات الخاصة بمنصة Home، بدءًا من إثبات ملكية العلامة التجارية، ووصولاً إلى التطوير والاختبار والاعتماد ثم الإطلاق النهائي. فهي تبسّط عملية التطوير وتوفّر أدوات قوية وتتيح التوزيع من خلال منظومة Google Home المتكاملة.
اللغة
تمت كتابة واجهات برمجة التطبيقات Home APIs لنظام التشغيل Android بلغة Kotlin، وهي توفّر واجهة Kotlin اصطلاحية تستخدم Flow لإدارة الحالة والاشتراك. ويوفّر ذلك عددًا من المزايا مقارنةً بواجهة برمجة التطبيقات العادية للاشتراك.
ننصحك بالاطّلاع على مستندات Kotlin حول الروتينات المشتركة، والتدفق، وJetpack Compose، إذا لم يسبق لك ذلك:
- تطوير تطبيقات Android باستخدام لغة Kotlin
- تعلم لغة Kotlin لأجهزة Android
- الروتينات المشتركة في Kotlin على Android قد تكون هذه الدروس العملية مفيدة:
- تدفّقات Kotlin على Android، وتحديدًا StateFlow
- State وJetpack Compose، وتحديدًا الدالة
collectAsStateWithLifecycle()
تتولّى هذه الدالة تلقائيًا إدارة عمليات الاشتراك في التدفقات وإلغاء الاشتراك فيها استنادًا إلى ما إذا كانت واجهة المستخدم التي تعرض هذه الحالة معروضة في المقدّمة أم لا. - إذا كنت تعمل باستخدام Automation API، سيكون من المفيد الاطّلاع على أدوات إنشاء Kotlin الآمنة من حيث الأنواع لفهم طريقة عمل Automation DSL.
معرّفات الكيانات
يحتوي كل عنصر في واجهات برمجة التطبيقات الخاصة بمنصة Home على معرّف يمثّل المعرّف الأساسي له. هذا المعرّف هو معرّف فريد وثابت لن يتغير أبدًا طوال مدة صلاحية الكيان. يمكن استخدام هذا المعرّف لتخزين العناصر مؤقتًا أو التحقّق من التساوي لأنّ البيانات الوصفية الخاصة بالكيان يمكن أن تتغيّر.
راجِع واجهة HasId
لمعرفة العناصر التي تتضمّن معرّفًا.
ربط المصطلحات
يتم ربط الكيانات في واجهات برمجة التطبيقات الخاصة بمنزل Google بمفهومَي Matter وCloud-to-cloud على النحو التالي:
Home APIs | Matter | Cloud-to-cloud |
---|---|---|
السمة | المجموعة | السمة |
السمة | السمة | السمة، الحالة |
Command | Command | Command |
الحدث | الحدث | رد المتابعة، إشعار |