Android-এর জন্য Home API-এর ওভারভিউ

Android-এর জন্য Google Home API, ডেভেলপারদের ব্যবহারকারীর হোমের এন্টিটির স্ট্যাটাসের সাথে ইন্টার‍্যাক্ট করার জন্য একটি ইউনিফায়েড API সারফেস প্রদান করে। এইসব এনটিটি কোনও ব্যবহারকারীর স্ট্রাকচার ও রুমের সাথে যুক্ত ডিভাইস ও ডিভাইস নয় এমন তথ্য বর্ণনা করতে পারে।

Home API নিম্নলিখিত এন্টিটি নির্ধারণ করে যেগুলির সাথে ব্যবহারকারী ইন্টার‍্যাক্ট করতে পারেন:

  • স্ট্রাকচার হল এমন একটি বাড়ি যেখানে রুম ও ডিভাইস থাকে।
  • রুম হল স্ট্রাকচারের অংশ এবং এতে ডিভাইস থাকে।
  • ডিভাইস অ্যাট্রিবিউট সহ ট্রেড প্রয়োগ করে, ধরন মেনে চলে, ইভেন্ট এমিট করে এবং কমান্ডের উত্তর দেয়।
  • ডিভাইস গ্রুপ হল স্ট্রাকচারের মধ্যে ব্যবহারকারীর সংজ্ঞায়িত ডিভাইসের সংগ্রহ।
  • অটোমেশন হল স্ট্রাকচারের অংশ এবং এটি বাড়ির মেটাডেটা ও ডিভাইস ব্যবহার করে বাড়ির টাস্ক অটোমেট করে।

ছবি ১-এ এই আর্কিটেকচার দেখানো হয়েছে:

Android অ্যাপের জন্য Home API আর্কিটেকচার দেখানো ডায়াগ্রাম
ছবি ১: Android অ্যাপের জন্য Home API-এর আর্কিটেকচার

হোম এপিআই ডিভাইসের ধরন এগুলি দ্বারা ব্যাক-আপ করা হতে পারে: Matter, স্মার্ট হোমের জন্য একটি ওপেন স্ট্যান্ডার্ড অথবা Google Home ইকোসিস্টেমে একটি Cloud-to-cloud ডিভাইস। কিছু ডিভাইসের ধরনের মধ্যে দু'টিই অন্তর্ভুক্ত থাকতে পারে। আরও তথ্যের জন্য Android-এ কাজ করে এমন ডিভাইসের ধরন দেখুন।

Matter-এ, ডিভাইস ফাংশনালিটি ক্লাস্টার অনুযায়ী গ্রুপ করা হয়, যেগুলি Home API-তে Matter স্ট্যান্ডার্ড ট্রেট হিসেবে দেখানো হয়। বর্তমান Matter স্পেসিফিকেশনে বর্ণিত Matter ক্লাস্টারগুলির স্ট্যান্ডার্ড সেট Home API-তে কাজ করে।

Google Home ইকোসিস্টেমে, ডিভাইস ফাংশনালিটি স্মার্ট হোম ট্রেইট অনুযায়ী গ্রুপ করা হয়, যা Home API-তে Google স্মার্ট হোম ট্রেইট হিসেবে দেখানো হয়। হোম API, Cloud-to-cloud প্রোগ্রামে সংজ্ঞায়িত স্মার্ট হোম ট্রেটের সেটকে সমর্থন করে।

এছাড়াও, প্রস্তুতকারক-নির্দিষ্ট ক্লাস্টার ও প্ল্যাটফর্মের মতো অন্যান্য বৈশিষ্ট্যও উপলভ্য। আরও জানতে, Android-এ ডেটা মডেল দেখুন।

ইকোসিস্টেম

Google Home ইকোসিস্টেম স্মার্ট হোম অভিজ্ঞতা তৈরি, ম্যানেজ করা, সুরক্ষিত করা ও ইন্টিগ্রেট করার জন্য একটি সুবিন্যস্ত ভিত্তি প্রদান করে। ছবি ২-এ দেখানো হয়েছে যে কীভাবে সব কম্পোনেন্ট একসাথে কাজ করে।

Android অ্যাপের জন্য Home API ইকোসিস্টেমের ডায়াগ্রাম
ছবি ২: Android অ্যাপের জন্য Home API ইকোসিস্টেম

ইকোসিস্টেমের মধ্যে Google অটোমেশন ইঞ্জিন অন্তর্ভুক্ত যা অটোমেশন স্টোর ও রান করে যা কোনও বাড়িতে টাস্ক ও ডিভাইস সেটিংস অটোমেট করার একটি উপায় প্রদান করে।

স্ট্রাকচারে থাকা ডিভাইসে অ্যাক্সেস দিতে Home API OAuth 2.0 ব্যবহার করে। OAuth ব্যবহারকারীকে তার লগ-ইন ক্রেডেনশিয়াল প্রকাশ না করেই কোনও অ্যাপ বা পরিষেবাকে অনুমতি দেওয়ার সুযোগ দেয়।

Google Home Developer Console Home API প্রজেক্টের সব পর্যায় ম্যানেজ করতে ব্যবহার করা হয়, ব্র্যান্ড যাচাইকরণ থেকে শুরু করে ডেভেলপ করা, পরীক্ষা করা এবং সার্টিফাই করা থেকে শুরু করে অবশেষে লঞ্চ করা পর্যন্ত। এটি Google Home ইকোসিস্টেমের মাধ্যমে শক্তিশালী টুল ও ডিস্ট্রিবিউশন প্রদান করার পাশাপাশি ডেভেলপমেন্ট প্রসেসকে সুশৃঙ্খল করে।

ভাষা

Android-এর জন্য Home API Kotlin-এ লেখা এবং এটি একটি ইডিওম্যাটিক Kotlin ইন্টারফেস প্রদান করে যা স্টেট ও সাবস্ক্রিপশন ম্যানেজ করার জন্য Flow ব্যবহার করে। এটি স্ট্যান্ডার্ড সাবস্ক্রিপশন API-এর তুলনায় অনেক সুবিধা প্রদান করে।

আপনি আগে থেকে পরিচিত না হলে, আমরা কোরুটিন, ফ্লো এবং Jetpack Compose-এর Kotlin ডকুমেন্টেশন সম্পর্কে পরিচিত হওয়ার জন্য সাজেস্ট করি:

এন্টিটি শনাক্তকারী

Home API-তে প্রতিটি এন্টিটির একটি ID থাকে যা তার প্রাথমিক পরিচয়কে উপস্থাপন করে। এই আইডি হল একটি অনন্য ও স্থিতিশীল শনাক্তকারী যা এন্টিটির লাইফটাইম কখনও পরিবর্তন হবে না। এই আইডিটি অবজেক্ট ক্যাশে করতে বা সমান কিনা তা চেক করতে ব্যবহার করা যেতে পারে, কারণ কোনও এন্টিটির মেটাডেটা পরিবর্তন হতে পারে।

কোন এন্টিটির আইডি আছে তা জানতে HasId ইন্টারফেস দেখুন।

পরিভাষা ম্যাপিং

হোম API-তে থাকা এন্টিটিগুলি Matter এবং Cloud-to-cloud কনসেপ্টের সাথে নিম্নলিখিতভাবে ম্যাপ করা হয়:

Home API Matter Cloud-to-cloud
বৈশিষ্ট্য ক্লাস্টার বৈশিষ্ট্য
অ্যাট্রিবিউট অ্যাট্রিবিউট অ্যাট্রিবিউট, স্টেট
কমান্ড কমান্ড কমান্ড
ইভেন্ট ইভেন্ট ফলো-আপ উত্তর, বিজ্ঞপ্তি