صفات ساده شده

برای سهولت استفاده، نسخه های ساده شده برخی از ویژگی ها برای استفاده با Automation API موجود است.

یک ویژگی ساده شده به معنای یک ویژگی استاندارد Home API است، مشابه نحوه عملکرد الگوی نما . ویژگی های ساده شده دستوراتی را ارائه می دهند که کارهای رایج را برای انواع دستگاه های خاص آسان تر می کند. ویژگی‌های ساده‌شده، ویژگی‌های Home API هستند، و مانند سایر ویژگی‌های Home API، برای دستگاه‌های Matter و Cloud-to-cloud کار می‌کنند.

یک صفت ساده شده یک زیرمجموعه جایگزین از ویژگی‌ها و دستورات را ارائه می‌دهد که بیشتر از ویژگی‌های استاندارد مربوطه، مختص دستگاه است. به عنوان مثال، صفت استاندارد LevelControl یک صفت عمومی است که می تواند برای هر دستگاهی که دارای تنظیماتی است که به طور مداوم در طیف وسیعی از مقادیر عددی تغییر می کند، استفاده شود. Brightness یک ویژگی ساده شده است که مخفف LevelControl است و فقط دستورات و ویژگی های مورد نیاز دستگاه DimmableLight را ارائه می دهد. Brightness دارای یک فرمان moveToBrightness است که یک آرگومان واحد brightnessPercent را می گیرد، در حالی که LevelControl چندین دستور move دارد که اکثر آنها حداقل چهار پارامتر دارند تا طیف وسیع تری از موارد استفاده را در خود جای دهند.

جدول زیر هر صفت ساده شده و صفت(های) استاندارد زیرین را نشان می دهد. نام هر صفت به اسناد API مربوطه پیوند دارد:

جدول: صفات ساده شده
صفت ساده شده صفت استاندارد
SimplifiedThermostat Thermostat
Brightness LevelControl
SimplifiedOnOff OnOff
Volume LevelControl
OnOff

ویژگی های ساده شده و Discovery API

Discovery API ویژگی‌های ساده‌شده و همچنین ویژگی‌های استاندارد زیربنایی آنها را گزارش می‌کند، تا زمانی که هر دو صفت در FactoryRegistry ثبت شده باشند. برای مثال، اگر یک دستگاه DimmableLight در ساختار وجود داشته باشد، و توسعه‌دهنده هر دو ویژگی LevelControl و Brightness را در FactoryRegistry ثبت کرده باشد، Discovery API وجود هر دو ویژگی را نشان می‌دهد. توسعه دهنده ممکن است انتخاب کند که از هر یک از این ویژگی ها در اتوماسیون خود استفاده کند.

برای اطلاعات بیشتر به Discovery API مراجعه کنید.

دستگاهی را بازیابی کنید که از یک ویژگی ساده شده پشتیبانی می کند

هنگام استفاده از Device API برای به دست آوردن دستگاه هایی در ساختاری که از یک ویژگی ساده شده مانند SimplifiedThermostat پشتیبانی می کنند، نمی توانید از روش has(trait) استفاده کنید. در عوض، از روش has(deviceType) استفاده کنید:

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