تعرض واجهات برمجة التطبيقات 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، وهي تتضمّن ميزات إضافية خاصة بواجهات برمجة تطبيقات 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 مع نظام التشغيل iOS.
تركيبة أنواع الأجهزة
تتيح واجهات برمجة التطبيقات الخاصة بالأجهزة المنزلية معظم 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 جميع الوظائف من السمة MatterIdentifyTrait
. - توفّر السمة
FanControlTrait
Matter جميع الوظائف من السمة MatterFanControlTrait
. - توفّر سمة
ExtendedFanControlTrait
Google جميع الوظائف من smart homeFanSpeedTrait
Google التي لا تغطيها سمةFanControlTrait
Matter.
يوفر هذا النوع من تركيبة السمات نموذجًا مرنًا لوظائف نوع الجهاز الكاملة، مع تجريد نماذج بيانات smart home الأساسية.