تعرض واجهات برمجة التطبيقات لمنزل Google على أجهزة iOS جميع الأجهزة في نظام 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.
يُرجى الاطّلاع على أنواع الأجهزة المتوافقة على أجهزة iOS للحصول على قائمة بأنواع الأجهزة وسماتها.
السمات
يتم إنشاء إصدارات Swift من السمات لاستخدامها في واجهات برمجة التطبيقات لمنزل Google، وتحتوي على ميزات إضافية خاصة بواجهات برمجة التطبيقات لمنزل Google (غير متوفّرة في Matter أو Cloud-to-cloud). على سبيل المثال، تحتوي كل سمة على طرق للتحقّق مما إذا كانت السمة تتيح سمة أو أمرًا معيّنًا. يكون ذلك مفيدًا عند تحديد ما إذا كان يمكن قراءة الحالة أو تنفيذ إجراءات معيّنة على جهاز المستخدم، لأنّه من المتوقّع ألا تتضمّن جميع الأجهزة من نوع جهاز معيّن جميع الميزات نفسها.
لاستيراد السمات وأنواع الأجهزة، استورِد وحدة GoogleHomeTypes في تطبيقك:
import GoogleHomeTypes
يمكنك أيضًا استخدام typealias لأسماء السمات وأنواع الأجهزة من أجل تقصير الرمز البرمجي وتجنُّب تكرار مساحة الاسم:
import GoogleHomeTypes
typealias OpenCloseTrait = Google.OpenCloseTrait
typealias OnOffTrait = Matter.OnOffTrait
typealias FanDevice = Matter.FanDeviceType
تتوفّر معظم السمات لاستخدامها مع ميزة "عمليات التشغيل الآلي"، وبعض السمات متاحة فقط لعمليات التشغيل الآلي. لمزيد من التفاصيل، يُرجى الاطّلاع على توافق سمات Automation API على أجهزة Android.
تركيبة نوع الجهاز
تتيح واجهات برمجة التطبيقات لمنزل Google معظم Matter مجموعات تطبيقات Matter كسمات في نموذج البيانات. لا يتم عرض السمات التي لا تتوافق مع أدوات التحكم بالجهاز أو حالاتها ولا تقدّم أي فائدة للمستخدمين النهائيين، مثل Binding وGroups، من خلال واجهات برمجة التطبيقات لمنزل Google.
عادةً ما يكون للسمات المستمدة من Cloud-to-cloud سمات المنزل الذكي الاسم نفسه بين Cloud-to-cloud وواجهات برمجة التطبيقات لمنزل Google، كما في مثال OpenCloseTrait. يتم تمثيل السمات الأخرى كإضافات لسمات
Matter، تم إنشاؤها باستخدام Matter
إضافات خاصة بالشركة المصنّعة. تسدّ هذه السمات الفجوة في سمة
smart home حيث يتم تقسيم الوظائف بين حزمة تطوير البرامج
Matter ونظام Google Home المتكامل. من الأمثلة المحدّدة على ذلك أنواع الأجهزة Google* التي تأتي من
Cloud-to-cloud ولكن ليس لها نظائر في Matter حتى الآن.
تتألّف أنواع الأجهزة من سمات من أحد المصدرَين أو كليهما، Matter أو Cloud-to-cloud.
على سبيل المثال، يتألّف
FanDeviceType
من كلتا السمتَين ويحتوي على ثلاث سمات:
- توفر السمة Matter
IdentifyTraitجميع الوظائف منIdentifyTraitMatter. - توفر سمة
FanControlTraitMatter جميع الوظائف من MatterFanControlTrait. - توفر سمة
ExtendedFanControlTraitمن Google جميع الوظائف من smart homeFanSpeedTraitفي Google التي لا تغطيها سمةFanControlTraitMatter.
يوفّر هذا النوع من تركيبة السمات نموذجًا مرنًا لوظائف نوع الجهاز الكاملة ، ما يجرّد نماذج البيانات الأساسيةsmart home.