Android पर, Automation API के साथ इस्तेमाल करने के लिए, कुछ traits के आसान वर्शन उपलब्ध हैं.
आसान trait, स्टैंडर्ड Home API trait की जगह काम करता है. यह ठीक उसी तरह काम करता है जैसे the facade पैटर्न काम करता है. आसान traits, ऐसे निर्देश देते हैं जिनकी मदद से कुछ डिवाइस टाइप के लिए सामान्य टास्क आसान हो जाते हैं. आसान traits, Home API traits होते हैं. साथ ही, ये अन्य Home API traits की तरह, Matter और Cloud-to-cloud दोनों तरह के डिवाइसों के लिए काम करते हैं.
आसान trait, एट्रिब्यूट और निर्देश का एक ऐसा सबसेट उपलब्ध कराता है जो उससे जुड़े स्टैंडर्ड trait के मुकाबले, डिवाइस के हिसाब से ज़्यादा काम का होता है.
उदाहरण के लिए, स्टैंडर्ड
LevelControl
trait एक सामान्य trait है. इसका इस्तेमाल किसी भी ऐसे डिवाइस के लिए किया जा सकता है जिसमें कोई
सेटिंग हो और जिसकी वैल्यू, संख्या वाली वैल्यू की किसी रेंज में लगातार बदलती रहती हो.
Brightness एक
आसान trait है, जो LevelControl की जगह काम करता है. यह सिर्फ़ उन
निर्देशों और एट्रिब्यूट को उपलब्ध कराता है जिनकी ज़रूरत एक
DimmableLight
डिवाइस को होती है. Brightness में
moveToBrightness निर्देश होता है, जो सिर्फ़ एक
brightnessPercent आर्ग्युमेंट लेता है. वहीं, LevelControl में कई move
निर्देश होते हैं. इनमें से ज़्यादातर में कम से कम चार पैरामीटर होते हैं, ताकि इस्तेमाल के ज़्यादा से ज़्यादा मामलों को शामिल किया जा सके.
यहां दी गई टेबल में, हर आसान trait और उससे जुड़े स्टैंडर्ड trait के बारे में बताया गया है. हर trait का नाम, उससे जुड़े एपीआई के दस्तावेज़ से लिंक होता है:
| आसान trait | स्टैंडर्ड trait |
|---|---|
SimplifiedThermostat
|
Thermostat
|
Brightness
|
LevelControl
|
SimplifiedOnOff
|
OnOff
|
Volume
|
LevelControlOnOff
|
आसान traits और Discovery API
Discovery API, आसान traits के साथ-साथ उनसे जुड़े
स्टैंडर्ड traits की जानकारी भी देता है. हालांकि, इसके लिए ज़रूरी है कि दोनों traits को
FactoryRegistryमें रजिस्टर किया गया हो. उदाहरण
के लिए, अगर स्ट्रक्चर में कोई DimmableLight डिवाइस मौजूद है और डेवलपर ने
LevelControl
और
Brightness दोनों traits को
FactoryRegistry में रजिस्टर किया है, तो Discovery API, दोनों
traits की मौजूदगी की जानकारी देगा. डेवलपर, अपने ऑटोमेशन में इनमें से किसी भी trait का इस्तेमाल कर सकता है.
ज़्यादा जानकारी के लिए, Android पर Discovery API देखें.
किसी ऐसे डिवाइस को वापस पाना जो आसान trait के साथ काम करता है
स्ट्रक्चर में मौजूद उन डिवाइसों की जानकारी पाने के लिए, Device API का इस्तेमाल किया जा सकता है जो SimplifiedThermostat जैसे आसान trait के साथ काम करते हैं. हालांकि, इसके लिए has(trait) तरीके का इस्तेमाल नहीं किया जा सकता. इसके बजाय, has(deviceType) तरीके का इस्तेमाल करें:
val thermostat = home.devices().list().first { device -> device.has(ThermostatDevice) }