Android पर आसानी से इस्तेमाल किए जा सकने वाले ट्रैट

Android पर Automation API के साथ इस्तेमाल करने के लिए, कुछ traits के आसान वर्शन उपलब्ध हैं.

आसान trait, स्टैंडर्ड Home API trait की जगह काम करता है. यह ठीक उसी तरह काम करता है जैसे the facade pattern काम करता है. आसान 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 का नाम, उससे जुड़े एपीआई के दस्तावेज़ से लिंक होता है:

टेबल: आसान traits
आसान trait स्टैंडर्ड trait
SimplifiedThermostat Thermostat
Brightness LevelControl
SimplifiedOnOff OnOff
Volume LevelControl
OnOff

आसान 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) }