গুগল হোম ইকোসিস্টেমের ডিভাইসগুলো Cloud-to-cloud , Matter , অথবা উভয়ই ব্যবহার করে বাস্তবায়ন করা যেতে পারে। কিছু ডিভাইসের ধরন অন্যগুলোর চেয়ে বেশি জটিল, এবং হোম এপিআই ব্যবহার করে এমনভাবে এগুলো তৈরি করা একটি চ্যালেঞ্জ, যা ইকোসিস্টেমের অন্যান্য ডিভাইসের সাথে নির্বিঘ্ন ইন্টারফেসিং নিশ্চিত করে।
এই ডিভাইস প্রকারগুলির কিছু বাস্তবায়নের ক্ষেত্রে একটি চ্যালেঞ্জ হলো, ডিভাইসগুলি বিভিন্ন বৈশিষ্ট্যের সংমিশ্রণে গঠিত হতে পারে। সব সংমিশ্রণ অন্যগুলোর মতো সমানভাবে কার্যকর হয় না। এছাড়াও, Cloud-to-cloud ডেটা মডেলটি Matter ডেটা মডেলের সাথে ম্যাপ করে, কিন্তু সবসময় একটি স্পষ্ট, এক-এক পদ্ধতিতে নয়। অ্যান্ড্রয়েডের ডেটা মডেল দেখুন, যেখানে ডেটা মডেল এবং তাদের ম্যাপিং নিয়ে আরও বিস্তারিত আলোচনা করা হয়েছে।
এই পৃষ্ঠায় নির্দিষ্ট ডিভাইসগুলোর ডেটা মডেলগুলো কীভাবে একে অপরের সাথে সম্পর্কিত, সে সম্পর্কে আরও তথ্য রয়েছে এবং সেই ডিভাইস টাইপগুলো বাস্তবায়নের জন্য কোন বৈশিষ্ট্যগুলো ব্যবহার করতে হবে, সে বিষয়ে কিছু নির্দেশনা দেওয়া হয়েছে।
ওভেন
অন্যান্য ডিভাইসের ধরনের তুলনায় ওভেন ( OvenDevice ) ডিভাইসের ধরন এবং এর উপাদানগত বৈশিষ্ট্যগুলো বাস্তবায়ন করা ততটা সহজ নয়। Matter এ একটি ওভেন বাস্তবায়নের একাধিক উপায় রয়েছে, কিন্তু সব পদ্ধতিই অন্যান্য ডিভাইস বা গুগল হোম ইকোসিস্টেমের সাথে নির্বিঘ্ন আন্তঃক্রিয়া নিশ্চিত করে না।
বৈশিষ্ট্য ম্যাপিং
Oven Mode এবং On Off ক্লাস্টার ব্যবহার করে Matter ওভেন ডিভাইস প্রয়োগ করার পরিবর্তে, আমরা Oven Cavity Operational State ক্লাস্টারটি ব্যবহার করার পরামর্শ দিই। এই ক্লাস্টারটি Home API-তে OvenCavityOperationalState ট্রেইট দ্বারা উপস্থাপিত হয় এবং এটি Cloud-to-cloud RunCycle ট্রেইটের সাথে ম্যাপ করা থাকে। এটি "প্রি-হিটিং", "প্রি-হিটেড" এবং "কুলিং ডাউন"-এর মতো পর্যায়গুলো সংজ্ঞায়িত করে।
| হোম এপিআই | Cloud-to-cloud |
|---|---|
OvenCavityOperationalState | RunCycle |
ক্লাউড Cloud-to-cloud Cloud-to-cloud ওভেন ডেটা মডেলে কিছু সীমাবদ্ধতা রয়েছে। এই মডেলে শুধুমাত্র একটি চেম্বার এবং একটিমাত্র RunCycle ব্যবহার করা যায়। এর বিপরীতে, Matter একটি মাল্টি-চেম্বার ওভেনকে ডিভাইস এন্ডপয়েন্ট হিসেবে মডেল করে, যেখানে প্রতিটি চেম্বারের জন্য একটি করে ওভেন ক্যাভিটি অপারেশনাল স্টেট ক্লাস্টার (Oven Cavity Operational State cluster) থাকে।
কিছু ওভেন ডিভাইসের ক্ষেত্রে, চালু থাকা অবস্থায় ফেজ লিস্ট পরিবর্তন করা উপযুক্ত হতে পারে। উদাহরণস্বরূপ, যে ওভেনগুলো প্রিহিটিং সমর্থন করে, সেগুলোর ক্ষেত্রে প্রিহিটিং পর্যায়ের ফেজ লিস্টে হিটিং বা কুলডাউন পর্যায়ের এন্ট্রিগুলো থেকে ভিন্ন এন্ট্রি থাকতে পারে।
প্রস্তাবিত বাস্তবায়ন
পূর্ববর্তী বিভাগে যেমন আলোচনা করা হয়েছে, একটি Matter ওভেন ইমপ্লিমেন্টেশনে অবশ্যই ওভেন ক্যাভিটি অপারেশনাল স্টেট ক্লাস্টারটি ইমপ্লিমেন্ট করতে হবে, যা হোম এপিআই-তে OvenCavityOperationalState ট্রেইট হিসেবে মডেল করা হয়েছে।
সর্বোত্তম ফলাফলের জন্য, নিশ্চিত করুন যে আপনার Cloud-to-cloud ওভেন ডিভাইসটি RunCycle ট্রেইটটি ইমপ্লিমেন্ট করে এবং currentRunCycle অ্যাট্রিবিউট সেট করার মাধ্যমে বর্তমান স্টেটটি পাবলিশ করে। এই অ্যাট্রিবিউটটি Home API-এর মাধ্যমে OvenCavityOperationalState.phaseList এবং OvenCavityOperationalState.currentPhase অ্যাট্রিবিউটগুলোর দ্বারা অবজার্ভ করা যায়।
ওভেন ডিভাইসটির RunCycle এর priority , status , এবং currentCycleRemainingTime অ্যাট্রিবিউটগুলো আপডেট করার মাধ্যমে একটি রান সাইকেল ডিভাইস নোটিফিকেশনও প্রকাশ করা উচিত। নিম্নলিখিত উদাহরণটির ফলে একটি OperationalState.OperationCompletion ইভেন্ট পাঠানো হয়, এবং এটি নির্দেশ করতে ব্যবহার করা যেতে পারে যে ওভেনটি 'প্রি-হিটিং' সাইকেল থেকে 'প্রি-হিটেড' সাইকেলে রূপান্তরিত হয়েছে:
{
"currentRunCycle": [
{
"currentCycle": "pre-heating",
"nextCycle": "pre-heated",
"lang": "en"
}
],
"currentTotalRemainingTime": 1200,
"currentCycleRemainingTime": 300
}
অটোমেশনে একটি ওভেন ব্যবহার করুন
ওভেন ক্যাভিটি অপারেশনাল স্টেট ক্লাস্টার ব্যবহার করে বাস্তবায়িত কোনো ওভেনের জন্য অটোমেশন তৈরি করার সময়, ওভেনটি কোন সাইকেলে আছে তা জানতে currentPhase অ্যাট্রিবিউটটি দেখুন:
sequential {
val starterNode =
starter<_>(oven, OvenDevice, OvenCavityOperationalState /* Or OperationalState */)
condition {
expression = starterNode.phaseList[operationalState.currentPhase.toUInt()] equals "pre-heated"
}
action(speaker, SpeakerDevice) {
command(AssistantBroadcast.broadcast("Oven Cycle Complete"))
}
// Additional actions here as needed
}
একটি সম্পূর্ণ উদাহরণের জন্য, “ওভেন নির্বাচিত তাপমাত্রায় পৌঁছালে বাতিগুলো জ্বালানো-নেভানো এবং ঘোষণা করা” দেখুন।