توفر واجهات برمجة التطبيقات الرئيسية لنظام Android جميع الأجهزة في نظام Google Home البيئي في نموذج بيانات موحد. يشمل نموذج البيانات هذا جميع أنواع الأجهزة (من Google Nest أو الشركات المصنّعة الخارجية)، بغض النظر عن تكنولوجيا المنزل الذكي الأساسية (مثل Matter أو Cloud-to-cloud)، ويوفّر واجهة برمجة تطبيقات مشتركة لإنشاء تجارب المستخدمين لكل من smart home ومطوّري تطبيقات الأجهزة الجوّالة.
أنواع الأجهزة
أنواع الأجهزة المعروضة في واجهات برمجة التطبيقات الخاصة بمنصة Home هي توحيد لنماذج البيانات Matter وCloud-to-cloud. بعضها مشتق مباشرةً من Matter، وبعضها عبارة عن امتداد لأنواع أجهزة Matter، وبعضها مشتق من Cloud-to-cloud.
تحتوي أنواع الأجهزة على سمات تُستخدَم للتحكّم في الأجهزة وإدارتها. مثل أنواع الأجهزة، يتم استخلاص السمات من مجموعات Matter وسمات Cloud-to-cloud، ويتم عرضها بتنسيق مشترك يشبه تنسيق مجموعات Matter. في Home APIs، تُسمى السمات المستندة إلى Matter سمات، وليس مجموعات.
وبالتالي، تم تصميم أنواع الأجهزة وسماتها في واجهات برمجة التطبيقات Home لتكون Matter-الأولوية. ويكون لنوع الجهاز أو السمة Matter الأولوية على النوع أو السمة المشابهة Cloud-to-cloud.
اطّلِع على أنواع الأجهزة المتوافقة على Android للحصول على قائمة بأنواع الأجهزة وخصائصها.
السمات
يتم إنشاء إصدارات Kotlin من السمات لاستخدامها في واجهات برمجة التطبيقات الخاصة بمنصة Home، وهي تتضمّن ميزات إضافية خاصة بواجهات برمجة التطبيقات هذه (لا تتوفّر في Matter أو Cloud-to-cloud). على سبيل المثال، تحتوي كل سمة على طرق للتحقّق مما إذا كانت السمة تتوافق مع سمة أو أمر معيّن. ويكون ذلك مفيدًا عند تحديد ما إذا كان يمكن قراءة الحالة أو تنفيذ إجراءات معيّنة على جهاز المستخدم، لأنّه ليس من المتوقّع أن تتوفّر الميزات نفسها على جميع الأجهزة من نوع الجهاز نفسه.
يتم تضمين كل سمة في مساحة الاسم الخاصة بها ويجب استيرادها بشكل فردي لاستخدامها.
على سبيل المثال، لاستخدام السمة Matter On/Off ونوع الجهاز On/Off Plug-in Unit، استورِد الحِزم التالية إلى تطبيقك:
import com.google.home.matter.standard.OnOff
import com.google.home.matter.standard.OnOffPluginUnitDevice
بالنسبة إلى نوع جهاز المرآب (من Google Smart Home)، أدرِج مزيجًا من Matter وسمات Google:
import com.google.home.google.LockUnlock
import com.google.home.matter.standard.DoorLock
import com.google.home.matter.standard.GoogleGarageDevice
تتضمّن Android Studio وظيفة الإكمال التلقائي، وغالبًا ما تتعامل مع أسماء الحِزم الكاملة عند إضافة أسطر import إلى ملفات المصدر في مشروعك. ومع ذلك، لا تتشابه أسماء الحِزم في جميع أنواع الأجهزة وسماتها. راجِع المرجع للتأكّد من اسم الحزمة الصحيح لكل
DeviceType أو
Trait.
تتوفّر معظم السمات للاستخدام مع عمليات التشغيل الآلي، وبعض السمات تتوفّر فقط لعمليات التشغيل الآلي. لمزيد من التفاصيل، اطّلِع على توافق سمات Automation API على Android.
تركيبة أنواع الأجهزة
تتوافق واجهات برمجة التطبيقات الخاصة بالمنزل الذكي مع معظم Matter مجموعات التطبيقات كسمات في نموذج البيانات. لا يتم عرض السمات التي لا تتوافق مع عناصر التحكّم في الأجهزة أو الحالات ولا تقدّم أي فائدة للمستخدمين النهائيين، مثل الربط والمجموعات، من خلال واجهات برمجة التطبيقات Home.
عادةً ما تحمل السمات المستمدّة من سمات Cloud-to-cloud المنزل الذكي الاسم نفسه بين Cloud-to-cloud وHome APIs، كما هو الحال في مثال OpenClose. ويتم تمثيل البعض الآخر كإضافات لسمات Matter، ويتم إنشاؤها باستخدام إضافات خاصة بالشركة المصنّعة Matter. تساعد هذه السمات في سد الفجوة بين سمة
smart home التي يتم فيها تقسيم الوظائف بين
Matter SDK ونظام Google Home المتكامل. ومن الأمثلة المحدّدة على ذلك أنواع أجهزة Google* التي تأتي من Cloud-to-cloud ولكن ليس لديها أجهزة مماثلة متوافقة مع Matter بعد.
تتكوّن أنواع الأجهزة من سمات من أحد المصدرَين أو كليهما، Matter أو Cloud-to-cloud.
على سبيل المثال، يتألف نوع جهاز المروحة من كليهما ويتضمّن ثلاث سمات:
- تقدّم السمة
IdentifyMatter جميع الوظائف من MatterIdentify. - توفّر السمة
FanControlMatter جميع الوظائف من السمة MatterFanControl - توفّر السمة
ExtendedFanControlGoogle جميع الوظائف من السمة smart homeFanSpeedGoogle غير المشمولة بالسمةFanControlMatter.
يوفر هذا النوع من تركيبة السمات نموذجًا مرنًا لوظائف نوع الجهاز الكاملة، مع تجريد نماذج بيانات smart home الأساسية.