Kullanım kolaylığı için bazı özelliklerin basitleştirilmiş sürümleri Automation API ile kullanılabilir.
Basitleştirilmiş özellik, facade pattern'ın işleyiş şekline benzer şekilde standart bir Home API özelliğinin yerini alır. Basitleştirilmiş özellikler, belirli cihaz türlerinde sık kullanılan görevleri kolaylaştıran komutlar sağlar. Basitleştirilmiş özellikler Home API özellikleridir ve diğer Home API özellikleri gibi hem Matter hem de Cloud-to-cloud cihazlarda çalışır.
Basitleştirilmiş özellik, ilgili standart özelliğe kıyasla cihaza daha özel olan alternatif bir özellik ve komut alt kümesi sunar.
Örneğin, standart LevelControl
özelliği, bir sayısal değerler aralığında sürekli olarak değişen bir ayarı olan tüm cihazlar için kullanılabilen genel bir özelliktir.
Brightness
, LevelControl
yerine geçen basitleştirilmiş bir özelliktir ve yalnızca DimmableLight
cihazının gerektirdiği komutları ve özellikleri sağlar. Brightness
, tek bir brightnessPercent
bağımsız değişkeni alan bir moveToBrightness
komutuna sahiptir. LevelControl
ise daha geniş bir kullanım alanı sağlamak için çoğu en az dört parametreye sahip olan birden fazla move
komutuna sahiptir.
Aşağıdaki tabloda, basitleştirilmiş özelliklerin her biri ve temel standart özellikler gösterilmektedir. Her özellik adı, ilgili API belgelerine bağlantı verir:
Basitleştirilmiş özellik | Standart özellik |
---|---|
SimplifiedThermostat
|
Thermostat
|
Brightness
|
LevelControl
|
SimplifiedOnOff
|
OnOff
|
Volume
|
LevelControl OnOff
|
Basitleştirilmiş özellikler ve Discovery API
Discovery API, her iki özellik de FactoryRegistry
'e kaydedilmişse basitleştirilmiş özelliklerin yanı sıra temel standart özelliklerini de raporlar. Örneğin, yapıda bir DimmableLight
cihaz varsa ve geliştirici hem LevelControl
hem de Brightness
özelliklerini FactoryRegistry
'a kaydettiyse Discovery API her iki özelliğin de bulunduğunu gösterir. Geliştirici, otomasyonunda bu özelliklerin ikisinden birini kullanmayı seçebilir.
Daha fazla bilgi için Discovery API'ye bakın.
Basitleştirilmiş bir özelliği destekleyen bir cihazı alma
SimplifiedThermostat
gibi basitleştirilmiş bir özelliği destekleyen bir yapıdaki cihazları almak için Device API'yi kullanırken has(trait)
yöntemini kullanamazsınız. Bunun yerine has(deviceType)
yöntemini kullanın:
val thermostat = home.devices().list().first { device -> device.has(ThermostatDevice) }