Android'de basitleştirilmiş özellikler

Kullanım kolaylığı için bazı özelliklerin basitleştirilmiş sürümleri Android'deki Automation API ile kullanılabilir.

Basitleştirilmiş özellik, facade pattern'ın işleyişine benzer şekilde standart bir Home API özelliğinin yerini alır. Basitleştirilmiş özellikler, belirli cihaz türlerinde yaygın 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 özellikten daha cihaza özgü olan alternatif bir özellik ve komut alt kümesi sunar. Örneğin, standart LevelControl özelliği, bir sayı 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 varlığını gösterir. Geliştirici, otomasyonunda bu özelliklerin ikisinden birini kullanmayı seçebilir.

Daha fazla bilgi için Android'de Discovery API başlıklı makaleyi inceleyin.

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) }