تعرض واجهات برمجة التطبيقات لمنزل Google على Android جميع الأجهزة في نظام Google Home المتكامل في نموذج بيانات موحّد. ويشمل نموذج البيانات هذا جميع أنواع الأجهزة (من Google Nest أو الشركات المصنّعة التابعة لجهات خارجية)، بغض النظر عن تكنولوجيا المنزل المزوّد بأجهزة ذكية الأساسية (مثل Matter أو Cloud-to-cloud)، ويوفّر واجهة برمجة تطبيقات شائعة لإنشاء تجارب المستخدمين لكلّ من smart home ومطوّري تطبيقات الأجهزة الجوّالة.
أنواع الأجهزة
إنّ أنواع الأجهزة المعروضة في واجهات برمجة التطبيقات لمنزل Google هي توحيد لنموذجَي بيانات Matter وCloud-to-cloud. بعضها مستمد مباشرةً من Matter، وبعضها عبارة عن إضافة لأنواع أجهزة Matter، وبعضها مستمد من Cloud-to-cloud.
تحتوي أنواع الأجهزة على سمات تُستخدم للتحكّم في الأجهزة وإدارتها. على غرار أنواع الأجهزة، يتم استمداد السمات من Matter مجموعات و Cloud-to-cloud سمات وعرضها بتنسيق شائع مشابه لـ تنسيق مجموعات Matter. في واجهات برمجة التطبيقات لمنزل Google، تُعرف السمات المستمدة من Matter باسم السمات، وليس المجموعات.
على هذا النحو، يُقصد بأن تكون أنواع الأجهزة والسمات في واجهات برمجة التطبيقات لمنزل Google متوافقة مع Matter-أولاً. وتكون الأولوية لنوع جهاز Matter أو سمة مقارنةً بنظيرتها Cloud-to-cloud.
للاطّلاع على قائمة بأنواع الأجهزة وسماتها، يُرجى الانتقال إلى أنواع الأجهزة المتوافقة على Android.
السمات
يتم إنشاء إصدارات Kotlin من السمات لاستخدامها في واجهات برمجة التطبيقات لمنزل Google، وتحتوي على ميزات إضافية خاصة بواجهات برمجة التطبيقات لمنزل Google (غير متوفّرة في 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
بالنسبة إلى نوع جهاز Garage (من 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.
تركيبة نوع الجهاز
تتيح واجهات برمجة التطبيقات لمنزل Google معظم Matter مجموعات تطبيقات Matter كسمات في نموذج البيانات. لا يتم عرض السمات التي لا تتوافق مع أدوات التحكم بالجهاز أو حالاته ولا تقدّم أي فائدة للمستخدمين النهائيين، مثل Binding وGroups، من خلال واجهات برمجة التطبيقات لمنزل Google.
تحمل السمات المستمدة من Cloud-to-cloud سمات منزل مزوّد بأجهزة ذكية عادةً الاسم نفسه بين Cloud-to-cloud وواجهات برمجة التطبيقات لمنزل Google، كما في مثال OpenClose. ويتم تمثيل السمات الأخرى كإضافات لسمات
Matter، تم إنشاؤها باستخدام Matter
إضافات خاصة بالشركة المصنّعة. وتسدّ هذه السمات الفجوة في سمة
smart home حيث يتم تقسيم الوظائف بين حزمة تطوير البرامج (SDK)
Matter ونظام Google Home المتكامل. ومن الأمثلة المحدّدة على ذلك أنواع الأجهزة Google* التي تأتي من
Cloud-to-cloud ولكن ليس لها نظائر في Matter بعد.
تتألّف أنواع الأجهزة من سمات من أحد المصدرَين أو كليهما، Matter أو Cloud-to-cloud.
على سبيل المثال، يتألّف نوع جهاز Fan device من كلّ من ويحتوي على ثلاث سمات:
- توفر السمة Matter
Identifyجميع الوظائف منIdentifyMatter. - توفر سمة
FanControlMatter جميع الوظائف من سمة MatterFanControl - توفر سمة
ExtendedFanControlمن Google جميع الوظائف من سمة Google smart homeFanSpeedالتي لا تغطيها سمةFanControlMatter
يوفّر هذا النوع من تركيبة السمات نموذجًا مرنًا لوظائف نوع الجهاز الكاملة ، ما يجرّد نماذج البيانات الأساسيةsmart home.