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

تعرِض واجهات برمجة التطبيقات 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 للحصول على قائمة بأنواع الأجهزة والسمات الخاصة بها.

Traits

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

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

على سبيل المثال، يتألّف نوع جهاز المراوح من السمتَين ويعرض ثلاث سمات:

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

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