برای سهولت استفاده، نسخه های ساده شده برخی از ویژگی ها برای استفاده با 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) }