نموذج البيانات على نظام التشغيل iOS

تعرض واجهات برمجة التطبيقات Home لنظام التشغيل iOS جميع الأجهزة في منظومة Google Home المتكاملة في نموذج بيانات موحّد. يشمل نموذج البيانات هذا جميع أنواع الأجهزة (من Google Nest أو الشركات المصنّعة الخارجية)، بغض النظر عن تكنولوجيا المنزل الذكي الأساسية (مثل Matter أو Cloud-to-cloud)، ويوفّر واجهة برمجة تطبيقات مشتركة لإنشاء تجارب المستخدمين لكل من 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.

يمكنك الاطّلاع على أنواع الأجهزة المتوافقة على iOS للحصول على قائمة بأنواع الأجهزة وسماتها.

السمات

يتم إنشاء إصدارات Swift من السمات لاستخدامها في واجهات برمجة التطبيقات الخاصة بمنصة Home، وهي تتضمّن ميزات إضافية خاصة بهذه الواجهات (لا تتوفّر في 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.

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

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

عادةً ما تحمل السمات المستمدّة من سمات Cloud-to-cloud المنزل الذكي الاسم نفسه بين Cloud-to-cloud وواجهات برمجة التطبيقات الخاصة بمنصة Home، كما هو الحال في مثال OpenCloseTrait. ويتم تمثيل البعض الآخر كإضافات لسمات Matter، ويتم إنشاؤها باستخدام إضافات خاصة بالشركة المصنّعة Matter. تساعد هذه السمات في سد الفجوة بين سمة smart home التي يتم فيها تقسيم الوظائف بين Matter SDK ونظام Google Home المتكامل. ومن الأمثلة المحدّدة على ذلك أنواع أجهزة Google* التي تأتي من Cloud-to-cloud ولكن ليس لديها أجهزة مماثلة متوافقة مع Matter بعد.

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

على سبيل المثال، يتكون FanDeviceType من كليهما ويتميز بثلاث سمات:

  • تقدّم السمة IdentifyTrait Matter جميع الوظائف من Matter IdentifyTrait.
  • توفر السمة FanControlTrait Matter جميع الوظائف من Matter FanControlTrait.
  • توفر سمة Google ExtendedFanControlTrait جميع الوظائف من Google smart home FanSpeedTrait التي لا تغطيها سمة FanControlTrait Matter.

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