Android-এর জন্য Google Home API একটি ইউনিফায়েড API সারফেস প্রদান করে যাতে ডেভেলপাররা ব্যবহারকারীর হোমে এন্টিটির স্ট্যাটাসের সাথে ইন্টার্যাক্ট করতে পারেন। এইসব এনটিটি ব্যবহারকারীর স্ট্রাকচার ও রুমের সাথে সম্পর্কিত ডিভাইস ও ডিভাইস নয় এমন তথ্য বর্ণনা করতে পারে।
Home API নিম্নলিখিত এন্টিটিগুলি সংজ্ঞায়িত করে যার সাথে একজন ব্যবহারকারী ইন্টার্যাক্ট করতে পারেন:
- স্ট্রাকচার বলতে এমন হোমকে বোঝায় যেখানে রুম ও ডিভাইস আছে।
- রুম হল স্ট্রাকচারের অংশ এবং এতে ডিভাইস থাকে।
- ডিভাইস অ্যাট্রিবিউট সহ বৈশিষ্ট্য প্রয়োগ করে, ধরন মেনে চলে, ইভেন্ট প্রকাশ করে এবং কমান্ডের উত্তর দেয়।
- ডিভাইস গ্রুপ হল কোনও স্ট্রাকচারের মধ্যে ব্যবহারকারীর দ্বারা সংজ্ঞায়িত ডিভাইসের সংগ্রহ।
- অটোমেশন হল একটি স্ট্রাকচারের অংশ এবং এটি বাড়ির টাস্ক অটোমেট করতে হোম মেটাডেটা ও ডিভাইস ব্যবহার করে।
ছবি ১-এ এই আর্কিটেকচার দেখানো হয়েছে:
Home API ডিভাইসের ধরন Matter, স্মার্ট হোমের জন্য একটি ওপেন স্ট্যান্ডার্ড, বা Google Home ইকোসিস্টেমে একটি Cloud-to-cloud ডিভাইস দ্বারা সমর্থিত হতে পারে। কিছু ডিভাইসের ধরন দুটির থেকেই কার্যকারিতা অন্তর্ভুক্ত করতে পারে। আরও তথ্যের জন্য Android-এ কাজ করে এমন ডিভাইসের ধরন দেখুন।
Matter-এ, ডিভাইসের কার্যকারিতা ক্লাস্টার দ্বারা গ্রুপ করা হয়, যা Home API-তে Matter স্ট্যান্ডার্ড বৈশিষ্ট্য হিসেবে উপস্থাপন করা হয়। Home API বর্তমান Matter স্পেসিফিকেশনে সংজ্ঞায়িত Matter ক্লাস্টারের স্ট্যান্ডার্ড সেট সাপোর্ট করে।
Google Home ইকোসিস্টেমে, ডিভাইসের কার্যকারিতা স্মার্ট হোম বৈশিষ্ট্য দ্বারা গ্রুপ করা হয়, যা Home API-এ Google স্মার্ট হোম বৈশিষ্ট্য হিসাবে উপস্থাপন করা হয়। Home API, Cloud-to-cloud প্রোগ্রামে উল্লেখ করা স্মার্ট হোম বৈশিষ্ট্যের সেটকে সাপোর্ট করে।
অন্যান্য বৈশিষ্ট্য, যেমন প্রস্তুতকারক-নির্দিষ্ট ক্লাস্টার এবং প্ল্যাটফর্ম বৈশিষ্ট্যও উপলভ্য। আরও জানতে, Android-এ ডেটা মডেল দেখুন।
ইকোসিস্টেম
Google Home ইকোসিস্টেম স্মার্ট হোম অভিজ্ঞতা তৈরি, ম্যানেজ, সুরক্ষিত ও ইন্টিগ্রেট করার জন্য একটি স্ট্রিমলাইনড ফাউন্ডেশন প্রদান করে। ছবি ২-এ দেখানো হয়েছে কীভাবে সব কম্পোনেন্ট একসাথে কাজ করে।
ইকোসিস্টেমে 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 ডকুমেন্টেশন সম্পর্কে জেনে নেওয়ার সাজেশন দিই:
- Kotlin-এর সাহায্যে Android অ্যাপ ডেভেলপ করা
- Android-এর জন্য Kotlin শিখুন
- Android-এ Kotlin coroutines। এইসব নির্দিষ্ট কোডল্যাব কাজে লাগতে পারে:
- Android-এ Kotlin ফ্লো এবং আরও নির্দিষ্টভাবে, StateFlow।
- State ও Jetpack Compose, বিশেষ করে
collectAsStateWithLifecycle()ফাংশন। এই ফাংশনটি অটোমেটিক সাবস্ক্রাইব ও আনসাবস্ক্রাইব করার বিষয়টি ম্যানেজ করে। এটি নির্ভর করে UI-তে দেখানো স্ট্যাটাসটি আসলে ফোরগ্রাউন্ডে আছে কিনা তার উপর। - আপনি যদি অটোমেশন API নিয়ে কাজ করেন, তাহলে Kotlin টাইপ-সেফ বিল্ডার সম্পর্কে পড়লে অটোমেশন DSL কীভাবে কাজ করে তা বুঝতে সুবিধা হবে।
এন্টিটি শনাক্তকারী
Home API-তে প্রতিটি এন্টিটির একটি আইডি থাকে যা তার প্রাথমিক শনাক্তকারীকে প্রতিনিধিত্ব করে। এই আইডি হল একটি অনন্য এবং স্থায়ী শনাক্তকারী যা এন্টিটির লাইফটাইমের জন্য কখনও পরিবর্তন হবে না। এই আইডি অবজেক্ট ক্যাশে করতে বা সমতা চেক করতে ব্যবহার করা যেতে পারে কারণ কোনও এন্টিটির মেটাডেটা পরিবর্তন হতে পারে।
কোন কোন এন্টিটির আইডি আছে তা জানতে
HasId ইন্টারফেস দেখুন।
পরিভাষা ম্যাপিং
Home API-তে এন্টিটি Matter এবং Cloud-to-cloud কনসেপ্টে এইভাবে ম্যাপ করা হয়:
| Home API | Matter | Cloud-to-cloud |
|---|---|---|
| বৈশিষ্ট্য | Cluster | বৈশিষ্ট্য |
| অ্যাট্রিবিউট | অ্যাট্রিবিউট | অ্যাট্রিবিউট, রাজ্য |
| কমান্ড | কমান্ড | কমান্ড |
| ইভেন্ট | ইভেন্ট | ফলো-আপ উত্তর, বিজ্ঞপ্তি |