تعرض واجهات برمجة التطبيقات Home لنظام التشغيل 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، وهي تتضمّن ميزات إضافية خاصة بواجهات برمجة تطبيقات 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.
على سبيل المثال، يتألف نوع جهاز المروحة من كليهما ويتضمّن ثلاث سمات:
- توفّر السمة
Identify
Matter جميع الوظائف من السمة MatterIdentify
. - توفّر السمة
FanControl
Matter جميع الوظائف من السمة MatterFanControl
- توفّر سمة
ExtendedFanControl
Google جميع الوظائف من سمة smart homeFanSpeed
Google غير المشمولة بسمةFanControl
Matter.
يوفر هذا النوع من تركيبة السمات نموذجًا مرنًا لوظائف نوع الجهاز الكاملة، مع تجريد نماذج بيانات smart home الأساسية.