نموذج البيانات على Android

تعرض واجهات برمجة التطبيقات لمنزل 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 حيث يتم تقسيم الوظائف بين حزمة تطوير البرامج Matter ونظام Google Home المتكامل. من الأمثلة المحدّدة على ذلك أنواع الأجهزة Google* التي تأتي من Cloud-to-cloud ولكن ليس لها نظائر في Matter بعد.

تتألّف أنواع الأجهزة من سمات من أحد المصدرَين أو كليهما، Matter أو Cloud-to-cloud.

على سبيل المثال، يتألّف نوع جهاز Fan device من كلّ من ويحتوي على ثلاث سمات:

  • توفر السمة Matter Identify جميع الوظائف من Identify Matter.
  • توفر سمة FanControl Matter جميع الوظائف من سمة Matter FanControl
  • توفر سمة ExtendedFanControl من Google جميع الوظائف من سمة Google smart home FanSpeed التي لا تغطيها سمة FanControl Matter

يوفّر هذا النوع من تركيبة السمات نموذجًا مرنًا لوظائف نوع الجهاز الكاملة ، ما يجرّد نماذج البيانات الأساسيةsmart home.