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