আইওএস-এ ইন্টারঅপারেবিলিটি

গুগল হোম ইকোসিস্টেমের ডিভাইসগুলি Cloud-to-cloud , Matter , অথবা উভয় ব্যবহার করে বাস্তবায়িত করা যেতে পারে। কিছু ডিভাইসের ধরণ অন্যদের তুলনায় বেশি জটিল, এবং হোম এপিআই ব্যবহার করার সময় এমনভাবে বিকাশ করা একটি চ্যালেঞ্জ উপস্থাপন করে যা ইকোসিস্টেমের অন্যান্য ডিভাইসের সাথে মসৃণ ইন্টারফেসিংয়ের অনুমতি দেয়।

এই ধরণের ডিভাইস বাস্তবায়নের ক্ষেত্রে একটি চ্যালেঞ্জ হল ডিভাইসগুলি বিভিন্ন বৈশিষ্ট্যের সমন্বয়ে গঠিত হতে পারে। সমস্ত সমন্বয় অন্যান্যগুলির মতো ভালভাবে কাজ করে না। এছাড়াও, Cloud-to-cloud ডেটা মডেল Matter ডেটা মডেলের সাথে ম্যাপ করে, তবে সর্বদা স্পষ্ট, এক-থেকে-এক পদ্ধতিতে নয়। iOS-এ ডেটা মডেল দেখুন, যা ডেটা মডেল এবং তাদের ম্যাপিং সম্পর্কে আরও গভীরভাবে আলোচনা করে।

এই পৃষ্ঠায় নির্দিষ্ট ডিভাইসের ডেটা মডেলগুলি একে অপরের সাথে ম্যাপ করার বিষয়ে আরও তথ্য রয়েছে এবং সেই ডিভাইসের ধরণগুলি বাস্তবায়নের জন্য কোন বৈশিষ্ট্যগুলি ব্যবহার করতে হবে সে সম্পর্কে কিছু নির্দেশিকা প্রদান করে।

ওভেন

অন্যান্য ডিভাইসের তুলনায় ওভেন ( OvenDeviceType ) ডিভাইসের ধরণ এবং এর উপাদান বৈশিষ্ট্যগুলি বাস্তবায়ন করা এত সহজ নয়। Matter ওভেন বাস্তবায়নের একাধিক উপায় রয়েছে, তবে সমস্ত পদ্ধতির ফলে অন্যান্য ডিভাইস বা গুগল হোম ইকোসিস্টেমের সাথে নিরবচ্ছিন্ন আন্তঃক্রিয়া ঘটে না।

বৈশিষ্ট্য ম্যাপিং

ওভেন মোড এবং অন অফ ক্লাস্টার ব্যবহার করে Matter ওভেন ডিভাইস বাস্তবায়নের পরিবর্তে, আমরা ওভেন ক্যাভিটি অপারেশনাল স্টেট ক্লাস্টার ব্যবহার করার পরামর্শ দিচ্ছি। এই ক্লাস্টারটি হোম API গুলিতে OvenCavityOperationalStateTrait বৈশিষ্ট্য দ্বারা প্রতিনিধিত্ব করা হয় এবং Cloud-to-cloud RunCycle বৈশিষ্ট্যের সাথে ম্যাপ করে। এটি "প্রি-হিটিং", "প্রি-হিটেড" এবং "কুলিং ডাউন" এর মতো পর্যায়গুলি সংজ্ঞায়িত করে।

হোম এপিআই Cloud-to-cloud
OvenCavityOperationalState RunCycle

Cloud-to-cloud ওভেন ডেটা মডেলের সীমাবদ্ধতা রয়েছে। Cloud-to-cloud ওভেন ডেটা মডেলটি শুধুমাত্র একটি একক চেম্বার, একটি একক RunCycle সহ, ব্যবহারের অনুমতি দেয়। বিপরীতে, Matter প্রতিটি চেম্বারের জন্য একটি ওভেন ক্যাভিটি অপারেশনাল স্টেট ক্লাস্টার সহ একটি ডিভাইস এন্ডপয়েন্ট হিসাবে একটি মাল্টি-চেম্বার ওভেন মডেল করে।

কিছু ওভেন ডিভাইসের ক্ষেত্রে, রানটাইমের সময় ফেজ তালিকা পরিবর্তন করা উপযুক্ত হতে পারে। উদাহরণস্বরূপ, প্রিহিটিং সমর্থনকারী ওভেনগুলির প্রিহিটিং পর্যায়ে ফেজ তালিকায় হিটিং বা কুলডাউন পর্যায়ের তুলনায় ভিন্ন এন্ট্রি থাকতে পারে।

পূর্ববর্তী বিভাগে আলোচনা করা হয়েছে, একটি Matter ওভেন বাস্তবায়নে ওভেন ক্যাভিটি অপারেশনাল স্টেট ক্লাস্টার বাস্তবায়ন করা উচিত, যা হোম এপিআইগুলিতে OvenCavityOperationalStateTrait বৈশিষ্ট্য হিসাবে মডেল করা হয়েছে।

সেরা ফলাফলের জন্য, নিশ্চিত করুন যে আপনার Cloud-to-cloud ওভেন ডিভাইসটি RunCycle বৈশিষ্ট্যটি প্রয়োগ করে এবং currentRunCycle বৈশিষ্ট্যটি সেট করে বর্তমান অবস্থা প্রকাশ করে। এই বৈশিষ্ট্যটি OvenCavityOperationalStateTrait.phaseList এবং OvenCavityOperationalStateTrait.currentPhase বৈশিষ্ট্যের মাধ্যমে হোম API গুলিতে পর্যবেক্ষণযোগ্য।

ওভেন ডিভাইসটি RunCycle এর priority , status , এবং currentCycleRemainingTime অ্যাট্রিবিউট আপডেট করে একটি run cycle ডিভাইস বিজ্ঞপ্তি প্রকাশ করবে। নিম্নলিখিত উদাহরণটি একটি OperationalStateTrait.OperationCompletion ইভেন্ট পাঠানোর ফলাফল হিসাবে দেখাবে, এবং এটি ব্যবহার করে বোঝানো যেতে পারে যে ওভেন 'pre-heating' চক্র থেকে 'pre-heated' চক্রে রূপান্তরিত হয়েছে:

{
  "currentRunCycle": [
    {
      "currentCycle": "pre-heating",
      "nextCycle": "pre-heated",
      "lang": "en"
    }
  ],
  "currentTotalRemainingTime": 1200,
  "currentCycleRemainingTime": 300
}

অটোমেশনে ওভেন ব্যবহার করুন

ওভেন ক্যাভিটি অপারেশনাল স্টেট ক্লাস্টার ব্যবহার করে বাস্তবায়িত একটি ওভেনের জন্য অটোমেশন তৈরি করার সময়, ওভেনটি কোন চক্রে রয়েছে তা জানতে currentPhase অ্যাট্রিবিউটটি উল্লেখ করুন:

sequential {
  let operationalState = starter(
    oven,
    OvenDeviceType.self,
    OvenCavityOperationalStateTrait.self
  )
  operationalState
  condition {
    operationalState.phaseList[operationalState.currentPhase.toUInt()].equals("pre-heated")
  }
  for speaker in speakers {
    action(speaker, SpeakerDeviceType.self) {
      Google.AssistantBroadcastTrait.broadcast(msg: "Oven Cycle Complete")
    }
  }
}

সম্পূর্ণ উদাহরণের জন্য, ওভেন সাইকেল সম্পূর্ণ হওয়ার পরে টিভি চালু থাকলে, লিভিং রুমের লাইট জ্বলে উঠলে এবং স্মার্ট স্পিকার "ওভেন সাইকেল সম্পূর্ণ" সম্প্রচার করলে দেখুন।