iOS-এর জন্য হোম এপিআই (Home APIs) গুগল হোম ইকোসিস্টেমের সমস্ত ডিভাইসকে একটি সমন্বিত ডেটা মডেলে উপস্থাপন করে। এই ডেটা মডেলটি অন্তর্নিহিত স্মার্ট হোম প্রযুক্তি (যেমন Matter বা Cloud-to-cloud ) নির্বিশেষে, গুগল নেস্ট বা তৃতীয় পক্ষের নির্মাতাদের সব ধরনের ডিভাইসকে অন্তর্ভুক্ত করে এবং smart home ও মোবাইল অ্যাপ ডেভেলপার উভয়ের জন্য ইউজার এক্সপেরিয়েন্স তৈরির উদ্দেশ্যে একটি সাধারণ এপিআই প্ল্যাটফর্ম প্রদান করে।
ডিভাইসের প্রকারভেদ
হোম এপিআই-তে উপস্থাপিত ডিভাইসের প্রকারগুলি হলো Matter এবং Cloud-to-cloud ডেটা মডেলের একীকরণ। এর মধ্যে কিছু সরাসরি Matter থেকে উদ্ভূত, কিছু Matter ডিভাইসের প্রকারের সম্প্রসারণ, এবং কিছু Cloud-to-cloud থেকে উদ্ভূত।
ডিভাইস টাইপগুলিতে এমন বৈশিষ্ট্য থাকে যা ডিভাইস নিয়ন্ত্রণ ও পরিচালনা করতে ব্যবহৃত হয়। ডিভাইস টাইপের মতোই, বৈশিষ্ট্যগুলি Matter ক্লাস্টার এবং Cloud-to-cloud বৈশিষ্ট্য থেকে উদ্ভূত হয় এবং Matter ক্লাস্টারের অনুরূপ একটি সাধারণ বিন্যাসে উপস্থাপন করা হয়। হোম এপিআই-গুলিতে, Matter -উদ্ভূত বৈশিষ্ট্যগুলিকে বৈশিষ্ট্য (traits) বলা হয়, ক্লাস্টার (clusters ) নয়।
সেই অনুযায়ী, হোম এপিআই-এর ডিভাইস টাইপ এবং ট্রেইটগুলো Matter -ফার্স্ট হওয়ার জন্য ডিজাইন করা হয়েছে। একটি Matter ডিভাইস টাইপ বা ট্রেইট তার Cloud-to-cloud অ্যানালগের চেয়ে অগ্রাধিকার পায়।
ডিভাইসের প্রকারভেদ এবং তাদের বৈশিষ্ট্যগুলির তালিকার জন্য iOS-এ সমর্থিত ডিভাইসের প্রকারভেদ দেখুন।
বৈশিষ্ট্য
হোম এপিআই-তে ব্যবহারের জন্য ট্রেইট-এর সুইফট সংস্করণ তৈরি করা হয় এবং এতে হোম এপিআই-এর জন্য নির্দিষ্ট কিছু অতিরিক্ত বৈশিষ্ট্য থাকে ( Matter বা Cloud-to-cloud -এ পাওয়া যায় না)। উদাহরণস্বরূপ, প্রতিটি ট্রেইট-এর নিজস্ব মেথড রয়েছে যা দিয়ে পরীক্ষা করা যায় যে, ট্রেইটটি কোনো নির্দিষ্ট অ্যাট্রিবিউট বা কমান্ড সমর্থন করে কি না। ব্যবহারকারীর ডিভাইসে স্টেট পড়া বা নির্দিষ্ট কোনো অ্যাকশন চালানো যাবে কি না, তা নির্ধারণ করার ক্ষেত্রে এটি বেশ কার্যকর, কারণ একটি ডিভাইস টাইপের সব ডিভাইসে একই রকম সব বৈশিষ্ট্য থাকবে বলে আশা করা যায় না।
বৈশিষ্ট্য এবং ডিভাইসের ধরণ আমদানি করতে, আপনার অ্যাপ্লিকেশনে GoogleHomeTypes মডিউলটি ইম্পোর্ট করুন:
import GoogleHomeTypes
এছাড়াও, কোড সংক্ষিপ্ত করতে এবং নেমস্পেসের পুনরাবৃত্তি এড়াতে আপনি ট্রেইট এবং ডিভাইস টাইপের নামগুলির জন্য typealias ব্যবহার করতে পারেন:
import GoogleHomeTypes
typealias OpenCloseTrait = Google.OpenCloseTrait
typealias OnOffTrait = Matter.OnOffTrait
typealias FanDevice = Matter.FanDeviceType
বেশিরভাগ ট্রেইট অটোমেশনের সাথে ব্যবহারের জন্য সমর্থিত, এবং কিছু ট্রেইট শুধুমাত্র অটোমেশনের জন্যই উপলব্ধ। আরও বিস্তারিত জানতে, অ্যান্ড্রয়েডে অটোমেশন এপিআই ট্রেইট সাপোর্ট দেখুন।
ডিভাইসের প্রকারের গঠন
হোম এপিআইগুলো ডেটা মডেলে ট্রেইট হিসেবে বেশিরভাগ Matter অ্যাপ্লিকেশন ক্লাস্টারকে সমর্থন করে। যেসব ট্রেইট ডিভাইস নিয়ন্ত্রণ বা অবস্থার সাথে সম্পর্কিত নয় এবং শেষ ব্যবহারকারীদের জন্য কোনো উপযোগিতা প্রদান করে না, যেমন বাইন্ডিং এবং গ্রুপ, সেগুলো হোম এপিআইগুলোর মাধ্যমে উন্মুক্ত করা হয় না।
Cloud-to-cloud স্মার্ট হোম ট্রেইট থেকে উদ্ভূত ট্রেইটগুলোর নাম সাধারণত Cloud-to-cloud এবং হোম এপিআই-এর মধ্যে একই থাকে, যেমন OpenCloseTrait এর উদাহরণে দেখা যায়। অন্যগুলো Matter ট্রেইটের এক্সটেনশন হিসেবে উপস্থাপিত হয়, যা Matter প্রস্তুতকারক-নির্দিষ্ট এক্সটেনশন ব্যবহার করে তৈরি করা হয়। এই ট্রেইটগুলো একটি smart home ট্রেইটের সেই শূন্যস্থান পূরণ করে, যেখানে কার্যকারিতা Matter এসডিকে এবং গুগল হোম ইকোসিস্টেমের মধ্যে বিভক্ত থাকে। এর একটি নির্দিষ্ট উদাহরণ হলো Google* ডিভাইস টাইপগুলো, যা Cloud-to-cloud থেকে এসেছে কিন্তু এখনও পর্যন্ত এগুলোর কোনো ম্যাটার অ্যানালগ নেই।
ডিভাইসের প্রকারভেদগুলো Matter বা Cloud-to-cloud —এই দুই উৎসের এক বা উভয়টির বৈশিষ্ট্য দ্বারা গঠিত।
উদাহরণস্বরূপ, FanDeviceType উভয় দ্বারাই গঠিত এবং এতে তিনটি বৈশিষ্ট্য রয়েছে:
-
IdentifyTraitMatter ট্রেইটটি MatterIdentifyTraitএর সমস্ত কার্যকারিতা প্রদান করে। -
FanControlTraitMatter ট্রেইটটি MatterFanControlTraitএর সমস্ত কার্যকারিতা প্রদান করে। -
ExtendedFanControlTraitGoogle trait-টি Google smart homeFanSpeedTraitএর সেই সমস্ত কার্যকারিতা প্রদান করে, যাFanControlTraitMatter trait-এর আওতাভুক্ত নয়।
এই ধরনের বৈশিষ্ট্য বিন্যাস অন্তর্নিহিত smart home ডেটা মডেলগুলোকে বিমূর্ত করে সম্পূর্ণ ডিভাইস টাইপের কার্যকারিতার জন্য একটি নমনীয় মডেল প্রদান করে।