একটি ডিভাইস সরান

একটি ডিভাইস অপসারণের সাথে এটি কাঠামো থেকে ডিকমিশন করা জড়িত। একজন ব্যবহারকারী Google Home app (GHA) ব্যবহার করে এটি করতে পারেন এবং একটি অ্যাপ প্রোগ্রাম্যাটিকভাবে একটি স্মার্ট হোম ডিভাইসকে ডিকমিশন করতে পারে। কোন ডিভাইসগুলি সরানো যেতে পারে তার সীমাবদ্ধতা রয়েছে৷ এছাড়াও, একটি ডিভাইস সরানো আপনার অ্যাপের জন্য আপনার কাঠামো এবং ব্যবহারকারীর অভিজ্ঞতাকে প্রভাবিত করতে পারে।

আপনি কি অপসারণ করতে পারেন

আপনি হোম API-এর মাধ্যমে প্রোগ্রাম্যাটিকভাবে নিম্নলিখিত ডিভাইসগুলি সরাতে পারেন:

  • Matter ডিভাইস যার জন্য আপনার অ্যাপের অনুমতি আছে।
  • Matter ব্রিজ, যদি আপনার অ্যাপটি সেতুর মাধ্যমে সংযুক্ত সমস্ত ডিভাইসে অ্যাক্সেস থাকে। সেতুটি সরানো হলে এটির সাথে সংযুক্ত সমস্ত Matter ডিভাইস মুছে যায়।

যা আপনি সরাতে পারবেন না

হোম API-এর মাধ্যমে নিম্নলিখিত ডিভাইসগুলি প্রোগ্রাম্যাটিকভাবে সরানো যাবে না:

  • Matter ডিভাইস যার জন্য আপনার অ্যাপে ব্যবহারকারীর অনুমতি নেই।
  • একটি Matter ব্রিজের পিছনে সংযুক্ত পৃথক ডিভাইস।
  • Cloud-to-cloud লিঙ্কযুক্ত ডিভাইস।
  • ডুয়াল-পাথ ডিভাইস (ডিভাইস যা Matter এবং Cloud-to-cloud উভয়ই বাস্তবায়ন করে)।

একটি ডিভাইস অপসারণ করার আগে গুরুত্বপূর্ণ বিবেচনা

যখন আপনার অ্যাপ্লিকেশান একটি ডিভাইস সরিয়ে দেয়, তখন এটি সমগ্র কাঠামো থেকে সরানো হয়, যা GHA সহ সমস্ত ব্যবহারকারী এবং সমস্ত অ্যাপকে প্রভাবিত করে৷ এটি কি ধরণের ডিভাইস তার উপর নির্ভর করে, একটি ডিভাইস ডিকমিশন করার অতিরিক্ত পার্শ্ব প্রতিক্রিয়া হতে পারে:

  • একাধিক ডিভাইসের ধরন বাস্তবায়নকারী ডিভাইস: যদি একটি ডিভাইসের একাধিক ফাংশন থাকে - উদাহরণস্বরূপ, একটি স্মার্ট লাইট যা হাব হিসাবেও কাজ করে, এটিকে সরানো সমস্ত সংশ্লিষ্ট ডিভাইসগুলিকেও সরিয়ে দেয়। একাধিক ডিভাইস ফাংশন প্রভাবিত হলে অ্যাপ ব্যবহারকারীকে জানাতে হবে।
  • ডিভাইসের ইতিহাস: একটি ডিভাইস মুছে ফেলার ফলে ডিভাইসের ইতিহাস মুছে ফেলা হতে পারে।
  • শেয়ার্ড সারফেস: শেয়ার্ড সারফেস থেকে ডিভাইস মুছে দেওয়ার সময় সতর্ক থাকুন, কারণ এটি অন্যদের জন্য অনিচ্ছাকৃত পরিণতি হতে পারে।
  • প্রমাণীকরণ: ডিভাইস অপসারণ শুধুমাত্র প্রমাণীকৃত পৃষ্ঠে সঞ্চালিত করা উচিত, যেমন একটি মোবাইল ফোন, টিভির মতো অপ্রমাণিত ডিভাইসগুলিতে নয়। এটি করা Google হোম বিকাশকারী নীতিগুলি লঙ্ঘন করে৷

একটি ডিভাইস সরান

অপসারণ করার জন্য একটি ডিভাইসের যোগ্যতা পরীক্ষা করা ব্যয়বহুল এবং শুধুমাত্র প্রয়োজন হলেই করা উচিত৷ একটি ডিভাইস সরানোর যোগ্য কিনা তা পরীক্ষা করতে, নিম্নলিখিত কমান্ডটি ব্যবহার করুন:

swift let eligibility = try await device.decommissionEligibility

ম্যাটার ডিভাইস

যদি ডিভাইসটি একটি Matter ব্রিজের পিছনে না থাকে তবে আপনি একটি Matter ডিভাইস প্রোগ্রাম্যাটিকভাবে সরাতে পারেন।

একটি Matter ডিভাইস সরাতে, এটিতে decommission() কল করুন:

swift let decommissionedDeviceIDs = try await device.decommission()

কল একটি ত্রুটি নিক্ষেপ না হলে, এটি সফল.

decommission() দ্বারা ফেরত আসাদের মধ্যে ডিভাইসের আইডি আছে কিনা তা আপনি দেখতে পারেন:

swift do { let decommissionedDeviceIDs = try await device.decommission() print("The following devices were decommissioned: \(decommissionedDeviceIDs)") } catch { print("An error occurred: \(error)") }

নন-ম্যাটার ডিভাইস

নন- Matter ডিভাইসগুলি প্রোগ্রাম্যাটিকভাবে সরানো যাবে না। একটি নন- Matter ডিভাইস সরাতে, আপনি একটি সিঙ্ক অনুরোধ ইস্যু করতে পারেন ( অনুরোধ সিঙ্ক দেখুন), বা Cloud-to-cloud ইন্টিগ্রেশন মুছে ফেলতে পারেন ( একটি চালু হওয়া ক্লাউড-টু-ক্লাউড ইন্টিগ্রেশন মুছুন দেখুন)।

আপনি যদি একটি নন- Matter ডিভাইসে decommission() কল করেন, তাহলে একটি HomeError নিক্ষেপ করা হয়।

একবার আপনি একটি নন- Matter ডিভাইস সরিয়ে ফেললে, ডিভাইসটি সফলভাবে সরানো হয়েছে তা যাচাই করতে সেটির উপস্থিতি পরীক্ষা করুন:

swift guard try await !self.context.devices().list().contains(where: { $0.id == deviceID }) else { // The device still exists in Home APIs }

মাল্টি সোর্স ডিভাইস

মাল্টি-সোর্স ডিভাইসগুলি এমন ডিভাইস যা Cloud-to-cloud এবং Matter API উভয়ই ব্যবহার করে। আপনি যদি এই ধরনের একটি ডিভাইসের ডিকমিশন যোগ্যতা পরীক্ষা করেন, তাহলে আপনি একটি DecommissionIneligibleReason.multiSourceDevice পাবেন, যা নির্দেশ করে যে ডিভাইসটি মাল্টি-সোর্স হওয়ার কারণে, এটি ডিকমিশন করা যাবে না।

একটি মাল্টি-সোর্স ডিভাইস সরাতে, নিম্নলিখিত পদ্ধতি ব্যবহার করুন:

  1. নন-ম্যাটার ডিভাইসে বর্ণিত Cloud-to-cloud অ্যাসোসিয়েশনটি সরান।
  2. ম্যাটার ডিভাইসে বর্ণিত Matter ডিভাইসটিকে ডিকমিশন করুন।

এই পদক্ষেপগুলির ক্রম গুরুত্বপূর্ণ। আপনি যদি Cloud-to-cloud অ্যাসোসিয়েশন অপসারণের আগে Matter ডিভাইসটি ডিকমিশন করার চেষ্টা করেন, একটি HomeError নিক্ষেপ করা হয়।