تعرِض واجهات برمجة التطبيقات Home APIs لنظام التشغيل Android جميع الأجهزة في منظومة Google Home المتكاملة في نموذج بيانات موحّد. يشمل نموذج البيانات هذا جميع أنواع الأجهزة (من Google Nest أو المصنّعين الخارجيين)، بغض النظر عن تكنولوجيا المنازل الذكية الأساسية (مثل Matter أو Cloud-to-cloud)، ويقدّم واجهة API شائعة لإنشاء تجارب مستخدمين لكل من 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 APIs، وتحتوي على ميزات إضافية خاصة بـ Home APIs (لا يمكن العثور عليها في Matter أو Cloud-to-cloud). على سبيل المثال، تحتوي كل سمة على طُرق للتحقّق مما إذا كانت السمة تتيح استخدام سمة أو أمر معيّن. يكون ذلك مفيدًا عند تحديد ما إذا كان بالإمكان قراءة الحالة أو تنفيذ إجراءات معيّنة على جهاز المستخدم، لأنّه من غير المتوقّع أن تتضمّن جميع الأجهزة من نوع معيّن كل الميزات نفسها.
يتم تضمين كل سمة في مساحة الاسم الخاصة بها ويجب استيرادها بشكلٍ فردي لاستخدامها.
على سبيل المثال، لاستخدام سمة Matter "تشغيل/إيقاف" ونوع جهاز "وحدة مكوّنة/تشغيل/إيقاف"، استورِد الحِزم التالية إلى تطبيقك:
import com.google.home.matter.standard.OnOff
import com.google.home.matter.standard.OnOffPluginUnitDevice
بالنسبة إلى نوع جهاز المرآب (من المنزل الذكي من Google)، يجب تضمين مزيج من 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.
تركيبة أنواع الأجهزة
تتوافق واجهات برمجة تطبيقات Home مع معظم Matter مجموعات التطبيقات 1.3 كسمات في نموذج البيانات. لا يتم عرض السمات التي لا تتوافق مع عناصر التحكّم في الجهاز أو حالاته ولا تقدّم أي فائدة للمستخدمين النهائيين، مثل الربط و المجموعات، من خلال واجهات برمجة التطبيقات Home APIs.
عادةً ما يكون للسمات المستمدة من سمات المنزل الذكي في 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 جميع الوظائف من سمة Google smart homeFanSpeed
التي لا توفّرها سمةFanControl
Matter.
يقدّم هذا النوع من تركيب السمات نموذجًا مرنًا لوظائف نوع الجهاز الكاملة، ما يؤدي إلى تجميع نماذج data smart home الأساسية.