Basitleştirilmiş özellikler

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:

Tablo: Basitleştirilmiş özellikler
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) }