توفّر واجهات برمجة التطبيقات لمنزل Google على Android واجهة برمجة تطبيقات موحّدة تتيح للمطوّرين التفاعل مع حالة الكيانات في منزل المستخدم. يمكن أن تصف هذه الكيانات الأجهزة والمعلومات غير المرتبطة بالأجهزة المرتبطة ببنية المستخدم وغرفه.
تحدّد واجهات برمجة التطبيقات لمنزل Google الكيانات التالية التي يمكن للمستخدم التفاعل معها:
- تمثّل البِنى منزلاً يحتوي على غرف وأجهزة.
- تكون الغرف جزءًا من البنية وتحتوي على أجهزة.
- تنفّذ الأجهزة سمات تحتوي على خصائص، وتتوافق مع أنواع، وتُصدر أحداثًا، وتستجيب للأوامر.
- تكون عمليات التشغيل الآلي جزءًا من البنية وتستخدم بيانات المنزل الوصفية والأجهزة لتشغيل المهام آليًا في المنزل.
يوضّح الشكل 1 هذه البنية:
قد تكون أنواع أجهزة واجهة برمجة التطبيقات لمنزل Google مدعومة من Matter، وهو معيار مفتوح لـ المنزل الذكي، أو قد تكون جهازًا من نوع Cloud-to-cloud في المنظومة المتكاملة لمنزل Google. قد تتضمّن بعض أنواع الأجهزة وظائف من كلا النوعَين. لمزيد من المعلومات، يُرجى الاطّلاع على أنواع الأجهزة المتوافقة على Android.
في Matter، يتم تجميع وظائف الجهاز حسب المجموعات، التي يتم تمثيلها في واجهات برمجة التطبيقات لمنزل Google على أنّها Matter سمات قياسية. تتوافق واجهات برمجة التطبيقات لمنزل Google مع المجموعة القياسية من Matter مجموعات كما هو محدّد في مواصفات Matter الحالية.
في المنظومة المتكاملة لمنزل Google، يتم تجميع وظائف الجهاز حسب سمات المنزل الذكي، التي يتم تمثيلها في واجهات برمجة التطبيقات لمنزل Google على أنّها سمات المنزل الذكي من Google. تتوافق واجهات برمجة التطبيقات لمنزل Google مع مجموعة سمات المنزل الذكي كما هو محدّد في الـ Cloud-to-cloud برنامج.
تتوفّر أيضًا سمات أخرى، مثل مجموعات خاصة بالمصنّع وسمات النظام الأساسي. لمزيد من المعلومات، يُرجى الاطّلاع على نموذج البيانات على Android.
المنظومة المتكاملة
توفّر المنظومة المتكاملة لمنزل Google أساسًا مبسطًا لإنشاء تجارب المنزل الذكي وإدارتها وتأمينها ودمجها. يوضّح الشكل 2 كيفية عمل المكوّنات معًا.
تستخدم واجهات برمجة التطبيقات لمنزل Google بروتوكول OAuth 2.0 لمنح إذن الوصول إلى الأجهزة في البنية. يسمح بروتوكول OAuth للمستخدم بمنح الإذن لتطبيق أو خدمة بدون الحاجة إلى الكشف عن بيانات تسجيل الدخول.
يتم استخدام Google Home Developer Console لإدارة جميع مراحل مشروع واجهات برمجة التطبيقات لمنزل Google ، بدءًا من التحقّق من العلامة التجارية، وصولاً إلى التطوير والاختبار والحصول على الشهادة ثم الإطلاق في النهاية. ويعمل ذلك على تبسيط عملية التطوير مع توفير أدوات قوية وتوزيعها من خلال المنظومة المتكاملة لمنزل Google.
اللغة
تمت كتابة واجهات برمجة التطبيقات لمنزل 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 على النحو التالي:
| واجهات برمجة التطبيقات لمنزل Google | Matter | Cloud-to-cloud |
|---|---|---|
| السمة | المجموعة | السمة |
| السمة | السمة | السمة، الحالة |
| الأوامر | الأوامر | الأوامر |
| الحدث | الحدث | الردّ المتابَع، الإشعار |