Android-এ সরলীকৃত trait

সহজে ব্যবহারের জন্য, Android-এ অটোমেশন API-এর সাথে ব্যবহার করার জন্য কিছু ট্রেটের সরলীকৃত ভার্সন উপলভ্য।

একটি সরলীকৃত ট্রেট, একটি স্ট্যান্ডার্ড Home API ট্রেটের জন্য কাজ করে, ঠিক যেভাবে ফেসেড প্যাটার্ন কাজ করে। সহজীকৃত ট্রেট এমন কমান্ড প্রদান করে যা নির্দিষ্ট ধরনের ডিভাইসের জন্য সাধারণ টাস্ককে আরও সহজ করে তোলে। সরলীকৃত ট্রেট হল Home API ট্রেট এবং অন্যান্য Home API ট্রেটের মতো, এগুলি Matter ও Cloud-to-cloud ডিভাইস, দুটির ক্ষেত্রেই কাজ করে।

একটি সরলীকৃত ট্রেট, অ্যাট্রিবিউট ও কমান্ডের একটি বিকল্প সাবসেট অফার করে যা সংশ্লিষ্ট স্ট্যান্ডার্ড ট্রেটের তুলনায় আরও বেশি ডিভাইস-নির্দিষ্ট। যেমন, স্ট্যান্ডার্ড LevelControl ট্রেড হল একটি জেনেরিক ট্রেড যা এমন যেকোনও ডিভাইসের জন্য ব্যবহার করা যেতে পারে যেটিতে এমন একটি সেটিং আছে যা সংখ্যাসূচক মানের একটি রেঞ্জ জুড়ে ক্রমাগত পরিবর্তিত হয়। Brightness হল একটি সরলীকৃত ট্রেট যা LevelControl-এর পরিবর্তে কাজ করে এবং শুধু কমান্ড ও অ্যাট্রিবিউট প্রদান করে যা DimmableLight ডিভাইসের প্রয়োজন। Brightness-এ একটি moveToBrightness কমান্ড আছে যা একটি brightnessPercent আর্গুমেন্ট নেয়, যেখানে LevelControl-এ একাধিক move কমান্ড আছে, যার বেশিরভাগে কমপক্ষে চারটি প্যারামিটার থাকে যাতে আরও বেশি সংখ্যক ব্যবহারের ক্ষেত্রে মানানসই হয়।

নিচের সারণীতে প্রতিটি সরলীকৃত ট্রেট এবং তার অন্তর্নিহিত স্ট্যান্ডার্ড ট্রেট দেখানো হয়েছে। প্রতিটি ট্রেট নাম সংশ্লিষ্ট API ডকুমেন্টেশনের সাথে লিঙ্ক করা থাকে:

টেবিল: সরলীকৃত বৈশিষ্ট্য
সরলীকৃত trait স্ট্যান্ডার্ড trait
SimplifiedThermostat Thermostat
Brightness LevelControl
SimplifiedOnOff OnOff
Volume LevelControl
OnOff

সরলীকৃত বৈশিষ্ট্য ও Discovery API

Discovery API, সরলীকৃত বৈশিষ্ট্য এবং তার অন্তর্নিহিত স্ট্যান্ডার্ড বৈশিষ্ট্য, দু'টিই রিপোর্ট করে, তবে দুটি বৈশিষ্ট্যই FactoryRegistry-এ রেজিস্টার করা থাকতে হবে। যেমন, যদি কোনও স্ট্রাকচারে DimmableLight ডিভাইস থাকে এবং ডেভেলপার FactoryRegistry-এ LevelControl ও Brightness, দুটি ট্রেটই রেজিস্টার করে থাকেন, তাহলে ডিসকভারি API দুটি ট্রেটের উপস্থিতিই নির্দেশ করবে। ডেভেলপার তার অটোমেশনে যেকোনও একটি ট্রেড ব্যবহার করতে পারেন।

আরও তথ্যের জন্য Android-এ Discovery API দেখুন।

সহজ ট্রেইট কাজ করে এমন ডিভাইস রিট্রিভ করা

SimplifiedThermostat-এর মতো সরলীকৃত ট্রেড সাপোর্ট করে এমন স্ট্রাকচারে ডিভাইস পাওয়ার জন্য Device API ব্যবহার করার সময়, আপনি has(trait) মেথড ব্যবহার করতে পারবেন না। পরিবর্তে, has(deviceType) পদ্ধতি ব্যবহার করুন:

val thermostat = home.devices().list().first { device -> device.has(ThermostatDevice) }