একটি ডিভাইস অপসারণের ক্ষেত্রে এটিকে কাঠামো থেকে ডিকমিশন করা জড়িত। একজন ব্যবহারকারী Google Home app (GHA) ব্যবহার করে এটি করতে পারেন, এবং একটি অ্যাপ প্রোগ্রাম্যাটিকভাবে একটি স্মার্ট হোম ডিভাইসকে ডিকমিশন করতে পারে। কোন ডিভাইসগুলি সরানো যেতে পারে তার সীমাবদ্ধতা রয়েছে। এছাড়াও, একটি ডিভাইস অপসারণ করলে আপনার কাঠামো এবং আপনার অ্যাপের ব্যবহারকারীর অভিজ্ঞতা প্রভাবিত হতে পারে।
আপনি কী সরাতে পারেন
আপনি হোম এপিআই-এর মাধ্যমে নিম্নলিখিত ডিভাইসগুলি প্রোগ্রাম্যাটিকভাবে সরাতে পারেন:
- আপনার অ্যাপের যেসব ডিভাইসের অনুমতি আছে, সেগুলো Matter ।
- Matter ব্রিজ, যদি আপনার অ্যাপটি ব্রিজের মাধ্যমে সংযুক্ত সমস্ত ডিভাইসে অ্যাক্সেস পায়। ব্রিজটি সরিয়ে ফেললে এর সাথে সংযুক্ত সমস্ত Matter ডিভাইস মুছে যাবে।
যা আপনি সরাতে পারবেন না
হোম এপিআই-এর মাধ্যমে নিম্নলিখিত ডিভাইসগুলি প্রোগ্রাম্যাটিকভাবে সরানো যাবে না:
- যেসব ডিভাইসের জন্য আপনার অ্যাপে ব্যবহারকারীর অনুমতি নেই, সেগুলো Matter ।
- একটি Matter ব্রিজের পিছনে সংযুক্ত পৃথক ডিভাইস।
- Cloud-to-cloud লিঙ্কযুক্ত ডিভাইস।
- ডুয়াল-পাথ ডিভাইস (যে ডিভাইসগুলি Matter এবং Cloud-to-cloud উভয়ই বাস্তবায়ন করে)।
ডিভাইস অপসারণের আগে গুরুত্বপূর্ণ বিবেচ্য বিষয়গুলি
যখন আপনার অ্যাপটি একটি ডিভাইস সরিয়ে দেয়, তখন এটি সম্পূর্ণ কাঠামো থেকে সরিয়ে ফেলা হয়, যা সমস্ত ব্যবহারকারী এবং GHA সহ সমস্ত অ্যাপকে প্রভাবিত করে। এটি কোন ধরণের ডিভাইস তার উপর নির্ভর করে, ডিভাইসটি বন্ধ করার অতিরিক্ত পার্শ্ব প্রতিক্রিয়া হতে পারে:
- একাধিক ডিভাইসের ধরণ প্রয়োগকারী ডিভাইস: যদি কোনও ডিভাইসের একাধিক ফাংশন থাকে - উদাহরণস্বরূপ, একটি স্মার্ট লাইট যা একটি হাব হিসাবেও কাজ করে, তবে এটি অপসারণ করলে সংশ্লিষ্ট সমস্ত ডিভাইসও মুছে ফেলা হবে। একাধিক ডিভাইসের কার্যকারিতা প্রভাবিত হবে কিনা তা অ্যাপটি ব্যবহারকারীকে জানাবে।
- ডিভাইসের ইতিহাস: একটি ডিভাইস মুছে ফেলার ফলে ডিভাইসের ইতিহাস মুছে ফেলা হতে পারে।
- শেয়ার করা সারফেস: শেয়ার করা সারফেস থেকে ডিভাইস মুছে ফেলার সময় সতর্ক থাকুন, কারণ এটি অন্যদের জন্য অপ্রত্যাশিত পরিণতি ডেকে আনতে পারে।
- প্রমাণীকরণ: ডিভাইস অপসারণ শুধুমাত্র প্রমাণীকরণকৃত পৃষ্ঠতলের উপর করা উচিত, যেমন মোবাইল ফোন, টিভির মতো অপ্রমাণিত ডিভাইসে নয়। এটি করা Google Home ডেভেলপার নীতি লঙ্ঘন করে।
একটি ডিভাইস সরান
কোনও ডিভাইস অপসারণের যোগ্য কিনা তা পরীক্ষা করা ব্যয়বহুল এবং শুধুমাত্র প্রয়োজনে এটি করা উচিত। কোনও ডিভাইস অপসারণের যোগ্য কিনা তা পরীক্ষা করতে, নিম্নলিখিত কমান্ডটি ব্যবহার করুন:
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 পাবেন, যা নির্দেশ করে যে ডিভাইসটি মাল্টি-সোর্স হওয়ায় এটি ডিকমিশন করা যাবে না।
একটি মাল্টি-সোর্স ডিভাইস অপসারণ করতে, নিম্নলিখিত পদ্ধতিটি ব্যবহার করুন:
- নন-ম্যাটার ডিভাইসে বর্ণিত Cloud-to-cloud অ্যাসোসিয়েশনটি সরান।
- ম্যাটার ডিভাইসগুলিতে বর্ণিত Matter ডিভাইসটি বাতিল করুন।
এই ধাপগুলির ক্রম গুরুত্বপূর্ণ। যদি আপনি Cloud-to-cloud অ্যাসোসিয়েশন অপসারণের আগে Matter ডিভাইসটি ডিকমিশন করার চেষ্টা করেন, তাহলে একটি HomeError দেখাবে।