نموذج البيانات على 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 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.

تركيبة نوع الجهاز

تتيح واجهات برمجة التطبيقات لمنزل Google معظم Matter مجموعات تطبيقات Matter كسمات في نموذج البيانات. لا يتم عرض السمات التي لا تتوافق مع التحكّم في الجهاز أو حالاته ولا تقدّم أي فائدة للمستخدمين النهائيين، مثل Binding وGroups، من خلال واجهات برمجة التطبيقات لمنزل Google.

تحمل السمات المستمدة من Cloud-to-cloud سمات smart home عادةً الاسم نفسه بين Cloud-to-cloud وواجهات برمجة التطبيقات لمنزل Google، كما في مثال OpenClose. يتم تمثيل السمات الأخرى كإضافات لسمات Matter، تم إنشاؤها باستخدام Matter إضافات خاصة بالشركة المصنّعة. تسدّ هذه السمات الفجوة في سمة smart home حيث يتم تقسيم الوظائف بين Matter SDK ونظام 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.