Android-এ ডেটা মডেল

Android-এর জন্য 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 অ্যানালগের চেয়ে বেশি গুরুত্বপূর্ণ।

ডিভাইসের ধরন ও তাদের ট্রেটের তালিকা দেখতে Android-এ কাজ করে এমন ডিভাইসের ধরন দেখুন।

বৈশিষ্ট্য

Home API-তে ব্যবহারের জন্য ট্রেইটের Kotlin ভার্সন তৈরি করা হয় এবং এতে Home API-এর জন্য নির্দিষ্ট অতিরিক্ত ফিচার থাকে (যা Matter বা Cloud-to-cloud-এ পাওয়া যায় না)। যেমন, প্রতিটি ট্রেইটে এমন পদ্ধতি থাকে যার মাধ্যমে কোনও ট্রেইট নির্দিষ্ট অ্যাট্রিবিউট বা কমান্ডকে সাপোর্ট করে কিনা তা চেক করা যায়। এটি তখন কাজে লাগে যখন কোনও ব্যবহারকারীর ডিভাইসে স্ট্যাটাস রিডিং বা নির্দিষ্ট অ্যাকশন করা যাবে কিনা তা নির্ধারণ করতে হয়, কারণ কোনও ডিভাইস টাইপের সব ডিভাইসে একই ফিচার থাকে না।

প্রতিটি বৈশিষ্ট্য তার নিজস্ব নেমস্পেসে থাকে এবং ব্যবহারের জন্য আলাদাভাবে ইম্পোর্ট করতে হবে।

যেমন, Matter চালু/বন্ধ করার বৈশিষ্ট্য এবং চালু/বন্ধ করার প্লাগ-ইন ইউনিট ডিভাইসের ধরন ব্যবহার করতে, আপনার অ্যাপ্লিকেশনে নিম্নলিখিত প্যাকেজ ইমপোর্ট করুন:

import com.google.home.matter.standard.OnOff
import com.google.home.matter.standard.OnOffPluginUnitDevice

গ্যারেজ ডিভাইস টাইপ (Google স্মার্ট হোম থেকে)-এর জন্য, Matter এবং Google বৈশিষ্ট্যের মিশ্রণ অন্তর্ভুক্ত করুন:

import com.google.home.google.LockUnlock
import com.google.home.matter.standard.DoorLock
import com.google.home.matter.standard.GoogleGarageDevice

Android Studio-এ অটোমেটিক সম্পূর্ণ করার ফাংশনালিটি আছে এবং আপনার প্রোজেক্টে সোর্স ফাইলে import লাইন যোগ করার সময় এটি প্রায়ই আপনার জন্য সম্পূর্ণ প্যাকেজের নাম ম্যানেজ করবে। তবে, সব ধরনের ডিভাইস ও বৈশিষ্ট্যের ক্ষেত্রে প্যাকেজের নাম একই থাকে না। প্রতিটি DeviceType অথবা Trait-এর জন্য সঠিক প্যাকেজের নাম যাচাই করতে রেফারেন্স দেখুন।

অটোমেশনের সাথে ব্যবহার করার জন্য বেশিরভাগ বৈশিষ্ট্য কাজ করে এবং কিছু বৈশিষ্ট্য শুধুমাত্র অটোমেশনের জন্য উপলভ্য। আরও জানতে, Android-এ অটোমেশন API ট্রেট সাপোর্ট দেখুন।

ডিভাইসের ধরন অনুযায়ী কম্পোজিশন

Home API ডেটা মডেলে বৈশিষ্ট্য হিসেবে বেশিরভাগ Matter অ্যাপ্লিকেশন ক্লাস্টার সাপোর্ট করে। নিম্ন-স্তরের কনফিগারেশন ক্লাস্টার যা ব্যবহারকারীদের জন্য সরাসরি উপযোগিতা অফার করে না, যেমন Binding, Home API-এর মাধ্যমে প্রকাশ করা হয় না।

Cloud-to-cloud স্মার্ট হোম ট্রেট থেকে প্রাপ্ত ট্রেট সাধারণত Cloud-to-cloud এবং Home API-এর মধ্যে একই নাম থাকে, যেমন OpenClose-এর উদাহরণে। অন্যান্য ডিভাইসকে Matter-এর এক্সটেনশন হিসেবে দেখানো হয়, যা Matter-এর প্রস্তুতকারক-নির্দিষ্ট এক্সটেনশন ব্যবহার করে তৈরি করা হয়। এইসব ট্রেট smart home ট্রেটের জন্য শূন্যস্থান পূরণ করে যেখানে কার্যকারিতা Matter SDK এবং Google Home ইকোসিস্টেমের মধ্যে বিভক্ত। এর একটি নির্দিষ্ট উদাহরণ হল Google* ডিভাইসের ধরন যা Cloud-to-cloud থেকে আসে কিন্তু এখনও Matter অ্যানালগ নেই।

ডিভাইসের ধরন এক বা দুটি সোর্স থেকে পাওয়া বৈশিষ্ট্য নিয়ে তৈরি হয়, Matter বা Cloud-to-cloud।

যেমন, ফ্যান ডিভাইসের ধরন দু'টি দিয়ে গঠিত এবং এতে তিনটি বৈশিষ্ট্য আছে:

  • Identify Matter বৈশিষ্ট্যটি Matter Identify থেকে সমস্ত কার্যকারিতা প্রদান করে।
  • FanControl Matter ট্রেট Matter FanControl ট্রেটের সব কার্যকারিতা প্রদান করে
  • ExtendedFanControl Google ট্রেট, Google smart home FanSpeed ট্রেট থেকে সব কার্যকারিতা প্রদান করে যা FanControl Matter ট্রেটের মাধ্যমে কভার করা হয় না

এই ধরনের বৈশিষ্ট্য কম্পোজিশন সম্পূর্ণ ডিভাইস টাইপ ফাংশনালিটির জন্য একটি নমনীয় মডেল প্রদান করে, যা অন্তর্নিহিত smart home ডেটা মডেলগুলিকে বিমূর্ত করে।

ডিভাইস গ্রুপ

ডিভাইস গ্রুপ বলতে একটি স্ট্রাকচারের মধ্যে ব্যবহারকারীর দ্বারা সংজ্ঞায়িত ডিভাইসের সংগ্রহকে বোঝায়। Google পরিষেবায় গ্রুপ মেম্বারশিপ বজায় রাখা হয় এবং স্ট্রাকচারের অন্যান্য মেম্বার ও স্ট্রাকচারে অ্যাক্সেস আছে এমন অন্যান্য অ্যাপের কাছে তা দৃশ্যমান হয়।

ডিভাইস গ্রুপ DeviceGroup এন্টিটি দ্বারা প্রতিনিধিত্ব করা হয়, যা HomeDevice থেকে আলাদা। প্রতিটি HomeDevice, GroupMembership বৈশিষ্ট্যের (group.devices()-এর সাথে রিঅ্যাক্টিভভাবে সমাধান করা) মাধ্যমে এটি যে গ্রুপের অন্তর্গত তার তালিকা তৈরি করে, যাতে আপনার অ্যাপ গ্রুপ মেম্বারশিপ পরীক্ষা করতে পারে এবং গ্রুপের মেম্বার ডিভাইসের উপর সরাসরি পুনরাবৃত্তি করতে পারে। এছাড়াও, DeviceGroup PartsProvider ইন্টারফেস প্রয়োগ করে যাতে সম্পূর্ণ গ্রুপকে টার্গেট করার সময় এর মেম্বার ডিভাইসের মাধ্যমে কাজ করে এমন ডিভাইসের ধরন প্রকাশ করা যায়।

ডিভাইস গ্রুপ সম্পর্কে আরও তথ্যের জন্য Structure API এবং ডিভাইস গ্রুপ কন্ট্রোল করুন দেখুন।