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