ডিভাইস সরানোর অর্থ হল স্ট্রাকচার থেকে সেটি ডি-কমিশন করা। ব্যবহারকারী Google Home app (GHA) ব্যবহার করে এটি করতে পারেন এবং কোনও অ্যাপ প্রোগ্রামমেটিক উপায়ে স্মার্ট হোম ডিভাইস বন্ধ করে দিতে পারে। কোন ডিভাইস সরানো যাবে সেই ব্যাপারে কিছু সীমাবদ্ধতা আছে। এছাড়াও, ডিভাইস সরিয়ে দিলে আপনার অ্যাপের স্ট্রাকচার ও ব্যবহারকারীর অভিজ্ঞতার উপর প্রভাব পড়তে পারে।
আপনি কী কী সরাতে পারবেন
আপনি Home API-এর মাধ্যমে নিম্নলিখিত ডিভাইসগুলি প্রোগ্রাম্যাটিক উপায়ে সরাতে পারবেন:
- Matter ডিভাইস, যেগুলির জন্য আপনার অ্যাপের কাছে অনুমতি আছে।
- Matter ব্রিজ, যদি আপনার অ্যাপের কাছে ব্রিজের মাধ্যমে কানেক্ট করা সব ডিভাইসের অ্যাক্সেস থাকে। ব্রিজ সরিয়ে দিলে, এর সাথে কানেক্ট করা সব Matter ডিভাইসও সরে যায়।
- Matter-এর উপযুক্ত Google Nest ক্যামেরা ও ডোরবেল এবং মানানসই পার্টনার ক্যামেরা সহ কাজ করে এমন ক্যামেরা ও ডোরবেল ডিভাইস। কোন কোন মডেলে কাজ করে ও কোন কোন মডেলে কাজ করে না সেই ব্যাপারে বিস্তারিত জানতে, ক্যামেরা ও ডোরবেল দেখুন।
আপনি কী কী সরাতে পারবেন না
Home API-এর মাধ্যমে নিম্নলিখিত ডিভাইসগুলি প্রোগ্রাম্যাটিক উপায়ে সরানো যাবে না:
- Matter ডিভাইস যার জন্য আপনার অ্যাপে ব্যবহারকারীর অনুমতি নেই।
- Matter ব্রিজের পিছনে কানেক্ট করা আলাদা আলাদা ডিভাইস।
- Cloud-to-cloudটি লিঙ্ক করা ডিভাইস।
- ক্যামেরা ছাড়া ডুয়াল-পাথ ডিভাইস (যেসব ডিভাইস Matter ও Cloud-to-cloud, দুটিই প্রয়োগ করে, এর মধ্যে সাপোর্ট করা ক্যামেরা ও ডোরবেল পড়ে না)।
- ইন-বিল্ট ক্যামেরা ও লেগ্যাসি ক্যামেরা সহ কাজ করে না এমন ক্যামেরা ও ডোরবেল ডিভাইস যেগুলি Matter (দেখুন ক্যামেরা ও ডোরবেল) কাজ করে না।
ডিভাইস সরানোর আগে গুরুত্বপূর্ণ বিষয়গুলি বিবেচনা করে দেখুন
আপনার অ্যাপ কোনও ডিভাইস সরিয়ে দিলে, সেটি সম্পূর্ণ স্ট্রাকচার থেকে সরিয়ে দেওয়া হয়, এর ফলে GHA সহ সব ব্যবহারকারী ও সব অ্যাপ প্রভাবিত হয়। এটি কী ধরনের ডিভাইস তার উপর নির্ভর করে, ডিভাইস বন্ধ করে দেওয়ার ফলে অতিরিক্ত পার্শ্ব প্রতিক্রিয়া হতে পারে:
- কোনও ডিভাইস একাধিক ফাংশন প্রদান করলে, যেমন, স্মার্ট লাইট যা হাব হিসেবেও কাজ করে, সেটি সরিয়ে দিলে তার সাথে যুক্ত সব ডিভাইসও সরে যায়। একাধিক ডিভাইস ফাংশন প্রভাবিত হলে অ্যাপটি ব্যবহারকারীকে তা জানাবে।
- ক্যামেরা বা ডোরবেল সরিয়ে দিলে, ২৪/৭ ভিডিও ইতিহাস, ইভেন্ট ভিডিও ইতিহাস, রেকর্ড করা ক্লিপ এবং পরিচিত মুখ লাইব্রেরি ডেটা স্থায়ীভাবে মুছে যায়। এই ডেটা পুরো হোম স্ট্রাকচারে থাকা সেই ক্যামেরার সাথে যুক্ত থাকে।
- ক্যামেরা বন্ধ করে দিলেও, চালু থাকা সাবস্ক্রিপশন বাতিল হয় না, যেমন Google Home Premium বা পার্টনার মনিটরিং পরিষেবা। ব্যবহারকারী বাতিল না করা পর্যন্ত সাবস্ক্রিপশন চলবে।
- কোনও ক্যামেরা বা ডোরবেল বন্ধ করার সময়, Home API প্ল্যাটফর্ম ব্যবহারকারীকে Google-ম্যানেজ করা কনফার্মেশন স্ক্রিন দেখায় এবং ব্যাখ্যা করে যে ভিডিও ইতিহাস স্থায়ীভাবে মুছে দেওয়া হবে। ডিভাইস সরিয়ে দেওয়ার আগে ব্যবহারকারীকে অবশ্যই এই প্রম্পট কনফার্ম করতে হবে।
- শেয়ার করা সারফেস থেকে ডিভাইস মুছে দেওয়ার সময় সতর্ক থাকুন, কারণ এর ফলে অন্যদের জন্য অনাকাঙ্ক্ষিত পরিণতি হতে পারে।
- ডিভাইস সরানোর কাজটি শুধুমাত্র যাচাই করা সারফেস, যেমন মোবাইল ফোনে করতে হবে। টিভি-র মতো যাচাই না করা ডিভাইসে এটি করা যাবে না। এটি করলে Google Home ডেভেলপার নীতি লঙ্ঘন করা হয়।
ডিভাইস সরিয়ে দেওয়া
সরানোর জন্য কোনও ডিভাইস উপযুক্ত কিনা তা চেক করা ব্যয়বহুল এবং শুধুমাত্র প্রয়োজন হলেই এটি করা উচিত। কোনও ডিভাইস সরিয়ে দেওয়ার উপযুক্ত কিনা তা চেক করতে, নিম্নলিখিত কমান্ড ব্যবহার করুন:
val eligibility = device.checkDecommissionEligibility() if (eligibility is DecommissionEligibility.Ineligible) { println("The device cannot be decommissioned.") } else if (eligibility is DecommissionEligibility.EligibleWithSideEffects) { println("The device can be decommissioned but there will be side effects on other devices.") } else if (eligibility is DecommissionEligibility.Eligible) { println("The device can be decommissioned.") }
Matter ডিভাইস
Matter ডিভাইস কোনও Matter ব্রিজের পেছনে না থাকলে, আপনি প্রোগ্রাম্যাটিক উপায়ে সেটি সরিয়ে দিতে পারবেন।
Matter ডিভাইস সরাতে, সেটিতে
decommissionDevice()
কল করুন:
val decommissionedDeviceIds = device.decommissionDevice()
কলটি কোনও সমস্যা না দেখালে, এটি সফল হয়েছে।
ডিভাইসের আইডি
decommissionDevice()
থেকে পাওয়া আইডিগুলির মধ্যে আছে কিনা তা চেক করে দেখতে পারেন:
if (decommissionedDeviceIds.contains(deviceId)) { println("Decommission successful!") } else { println("Decommission failed!") }
ক্যামেরা ও কলিং বেল
আপনি প্রোগ্রাম্যাটিক উপায়ে কাজ করে এমন ক্যামেরা ও ডোরবেল সরাতে পারবেন, এর জন্য
decommissionDevice()
ব্যবহার করুন।
যেসব মডেলে কাজ করে:
- Google Nest Cam (indoor, wired)
- Google Nest Cam (outdoor or indoor, battery)
- Google Nest Cam with floodlight
- Google Nest Doorbell (battery)
- Google Nest Doorbell (wired)
- মানানসই পার্টনার ক্যামেরা ও ডোরবেল (যেমন Walmart onn.)
নিম্নলিখিত ক্যামেরা ও ডোরবেল ডিভাইসকে প্রোগ্রামিংয়ের মাধ্যমে বন্ধ করা যাবে না:
- বিল্ট-ইন ক্যামেরা সহ স্মার্ট ডিসপ্লে, যেমন Google Nest Hub Max।
- পুরনো Nest ক্যামেরা ও ডোরবেল যেগুলি Matter কাজ করে না এবং শুধুমাত্র ক্লাউড পরিষেবার মাধ্যমে কানেক্ট হয়, যেমন Nest Cam Indoor (1st gen), Nest Cam Outdoor (1st gen), Nest Cam IQ এবং Nest Doorbell (wired, 1st gen)।
- থার্ড-পার্টি Cloud-to-cloud লিঙ্ক করা ক্যামেরা ও ডোরবেল।
আপনার অ্যাপ কোনও ক্যামেরা বা ডোরবেল বন্ধ করার প্রসেস শুরু করলে, প্ল্যাটফর্ম ব্যবহারকারীকে Google-ম্যানেজ করা কনফার্মেশন স্ক্রিন দেখায়। এই স্ক্রিন ব্যবহারকারীকে জানায় যে ক্যামেরা সরিয়ে দিলে, সেটির সাথে যুক্ত সম্পূর্ণ স্ট্রাকচার জুড়ে থাকা ২৪/৭ ভিডিও ইতিহাস, ইভেন্ট ইতিহাস, ক্লিপ ও পরিচিত মুখ লাইব্রেরি ডেটা স্থায়ীভাবে মুছে যায়।
ব্যবহারকারী কনফার্মেশন স্ক্রিন বাতিল বা খারিজ করলে,decommissionDevice() HomeException দেখায়।
ক্যামেরা বন্ধ করে দিলেও অ্যাক্টিভ ক্যামেরা সাবস্ক্রিপশন (যেমন Google Home Premium) বাতিল হয় না। ব্যবহারকারীকে সাবস্ক্রিপশন প্রদানকারীর মাধ্যমে আলাদাভাবে সাবস্ক্রিপশন বাতিল করতে হবে।
kotlin
try {
val decommissionedDeviceIds = device.decommissionDevice()
if (decommissionedDeviceIds.contains(device.id)) {
// Camera was successfully decommissioned
}
} catch (e: HomeException) {
// Handle cancellation or decommission error
}
Matter নয় এমন ডিভাইস
Matter নয় এমন ডিভাইস (কাজ করে এমন ক্যামেরা ও ডোরবেল ছাড়া) প্রোগ্রাম্যাটিক উপায়ে সরানো যায় না। অন্যান্য নন-Matter ডিভাইস সরাতে, আপনি সিঙ্ক করার অনুরোধ করতে পারেন (দেখুন সিঙ্ক করার অনুরোধ করুন) অথবা Cloud-to-cloud ইন্টিগ্রেশন মুছে দিতে পারেন (দেখুন লঞ্চ করা ক্লাউড-টু-ক্লাউড ইন্টিগ্রেশন মুছে দিন)।
আপনি কাজ করে না এমন
Matter ডিভাইসে decommissionDevice()
কল করলে, একটি
HomeException
থ্রো করা হয়।
আপনি কোনও নন-Matter ডিভাইস সরিয়ে দেওয়ার পরে, এটি সফলভাবে সরানো হয়েছে কিনা তা যাচাই করতে ডিভাইসটি আছে কিনা চেক করুন:
var removedDevice: HomeDevice? = null runBlockingCustom { try { removedDevice = homeManager.devices().get(deviceId) } catch (exception: Exception) { println("removal successful!") } } if (removedDevice != null) { println("removal failed!") }