الصفات المبسّطة

لتسهيل الاستخدام، تتوفّر إصدارات مبسّطة من بعض السمات لاستخدامها مع Automation API.

تستخدِم السمة المبسّطة سمة عادية في Home API، تمامًا مثل نمط الواجهة. توفّر السمات المبسّطة أوامر تسهّل المهام الشائعة لأنواع معيّنة من الأجهزة. السمات المبسّطة هي سمات Home API، وتعمل على كل من أجهزة Matter و Cloud-to-cloud، تمامًا مثل سمات Home API الأخرى.

تقدّم السمة المبسّطة مجموعة فرعية بديلة من السمات والأوامر التي تتعلّق بالأجهزة أكثر من السمة العادية المقابلة لها. على سبيل المثال، السمة العادية LevelControl هي سمة عامة يمكن استخدامها لأي جهاز يحتوي على إعداد يتغيّر باستمرار على مستوى نطاق من القيم الرقمية. ‫Brightness هي سمة مبسّطة تحلّ محل LevelControl، وتقدّم فقط الأوامر والسمات التي يتطلبها جهاز DimmableLight. يحتوي Brightness على الأمر moveToBrightness الذي يأخذ وسيطة brightnessPercent واحدة، في حين يحتوي LevelControl على أوامر move متعدّدة، تحتوي معظمها على أربع مَعلمات على الأقل لاستيعاب مجموعة أوسع من حالات الاستخدام.

يعرض الجدول التالي كلّ سمة مبسّطة والسمات العادية الأساسية. يرتبط كل اسم سمة بمستندات واجهة برمجة التطبيقات المقابلة:

الجدول: السمات المبسّطة
السمة المبسّطة السمة العادية
SimplifiedThermostat Thermostat
Brightness LevelControl
SimplifiedOnOff OnOff
Volume LevelControl
OnOff

السمات المبسّطة وDiscovery API

تُبلغ واجهة برمجة التطبيقات Discovery API عن الصفات المبسّطة بالإضافة إلى الصفات العادية الأساسية، ما دامت كلتا السمتَين مسجّلتين في ملف تعريف العلامة FactoryRegistry. على سبيل المثال، إذا كان هناك جهاز DimmableLight في البنية، وسجّل المطوّر سمتَي LevelControl وBrightness في FactoryRegistry، ستشير واجهة برمجة التطبيقات Discovery API إلى توفّر سمتَي FactoryRegistry. يمكن للمطوّر اختيار استخدام أيّ من السمتَين في عملية التشغيل الآلي.

اطّلِع على Discovery API للحصول على مزيد من المعلومات.

استرداد جهاز متوافق مع سمة مبسّطة

عند استخدام Device API للحصول على الأجهزة في بنية تتيح استخدام سمة مبسّطة مثل SimplifiedThermostat، لا يمكنك استخدام الأسلوب has(trait). بدلاً من ذلك، استخدِم الطريقة has(deviceType):

val thermostat = home.devices().list().first { device -> device.has(ThermostatDevice) }