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