iOS-এ ইন্টারঅপারেবিলিটি

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

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

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

ওভেন

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

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

Oven Mode এবং On Off ক্লাস্টার ব্যবহার করে Matter Oven ডিভাইস প্রয়োগ করার পরিবর্তে, আমরা Oven Cavity Operational State ক্লাস্টার ব্যবহার করার সাজেশন দিই। এই ক্লাস্টারটি Home API-তে OvenCavityOperationalStateTrait ট্রেটের মাধ্যমে দেখানো হয় এবং Cloud-to-cloud RunCycle ট্রেটের সাথে ম্যাপ করা হয়। এটি "প্রি-হিটিং", "প্রি-হিটেড" এবং "কুলিং ডাউন"-এর মতো ফেজগুলি সংজ্ঞায়িত করে।

Home API Cloud-to-cloud
OvenCavityOperationalState RunCycle

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

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

আগের বিভাগে আলোচনা করা হয়েছে যে Matter ওভেন ইমপ্লিমেন্টেশনে ওভেন ক্যাভিটি অপারেশনাল স্টেট ক্লাস্টার ইমপ্লিমেন্ট করতে হবে, যা Home API-তে OvenCavityOperationalStateTrait ট্রেটের মতো মডেল করা হয়েছে।

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

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

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

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

Oven Cavity Operational State ক্লাস্টার ব্যবহার করে ওভেনের জন্য অটোমেশন তৈরি করার সময়, ওভেন কোন সাইকেলে আছে তা জানতে 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")
    }
  }
}

সম্পূর্ণ উদাহরণ দেখতে, এটি দেখুন ওভেন সাইকেল সম্পূর্ণ হওয়ার সময় টিভি চালু থাকলে, বসার ঘরের আলো ব্লিঙ্ক করে এবং স্মার্ট স্পিকার "ওভেন সাইকেল সম্পূর্ণ হয়েছে" ব্রডকাস্ট করে।