تعرِض واجهات برمجة التطبيقات Home APIs جميع الأجهزة في منظومة Google Home المتكاملة في ملف بيانات موحَّد. يشمل نموذج البيانات هذا جميع أنواع الأجهزة (من Google Nest أو المصنّعين الخارجيين)، بغض النظر عن تكنولوجيا المنزل الذكي الأساسية (مثل Matter أو Cloud-to-cloud)، ويوفّر واجهة برمجة تطبيقات موحّدة لإنشاء تجارب مستخدمين لكل من smart home ومطوّري التطبيقات المتوافقة مع الأجهزة الجوّالة.
أنواع الأجهزة
أنواع الأجهزة المعروضة في Home APIs هي عبارة عن دمج لنماذج بيانات Matter وCloud-to-cloud. وبعضها مشتق مباشرةً من Matter، وبعضها هو إضافة إلى أنواع أجهزة Matter، وبعضها مشتق من Cloud-to-cloud.
تحتوي أنواع الأجهزة على سمات تُستخدَم للتحكّم في الأجهزة وإدارتها. مثل أنواع الأجهزة، يتم اشتقاق السمات من Matter المجموعات Cloud-to-cloud السمات ويتم عرضها بتنسيق شائع مشابه لتنسيق Matter المجموعات. في واجهات برمجة تطبيقات Home، تُعرف السمات المشتقة من Matter باسم السمات، وليس المجموعات.
وبناءً على ذلك، من المفترض أن تكون أنواع الأجهزة وسمات الأجهزة في واجهات برمجة التطبيقات في Home Matter أولاً. يكون لنوع جهاز أو سمة Matter الأولوية على نظيرهما في Cloud-to-cloud.
اطّلِع على أنواع الأجهزة المتوافقة للحصول على قائمة بأنواع الأجهزة والسمات الخاصة بها.
السمات
يتم إنشاء إصدارات 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.
تركيبة أنواع الأجهزة
تتوافق واجهات برمجة تطبيقات 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.
على سبيل المثال، يتكون نوع جهاز المروحة من كليهما ويحتوي على سمتَي FanControl:
- توفّر سمة FanControl Matter كل الوظائف التي يوفّرها Matter FanControl
- توفّر سمة Google ExtendedFanControl جميع الوظائف من سمة Google smart home FanSpeed التي لا توفّرها سمة FanControl Matter
يقدّم هذا النوع من تركيب السمات نموذجًا مرنًا لوظائف نوع الجهاز الكاملة، ما يؤدي إلى تجميع نماذج data smart home الأساسية.