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

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 का नाम, उससे जुड़े एपीआई के दस्तावेज़ से लिंक होता है:

टेबल: आसान 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) }