किसी डिवाइस को हटाना

किसी डिवाइस को हटाने का मतलब है कि उसे स्ट्रक्चर से हटाना. कोई उपयोगकर्ता, 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 APIs प्लैटफ़ॉर्म उपयोगकर्ता को 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 (पहली जनरेशन), Nest Cam Outdoor (पहली जनरेशन), Nest Cam IQ, और Nest Doorbell (वायर वाली, पहली जनरेशन).
  • तीसरे पक्ष के 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 इंटिग्रेशन को मिटाया जा सकता है. इसके लिए, लॉन्च किए गए क्लाउड-टू-क्लाउड इंटिग्रेशन को मिटाना लेख पढ़ें.

अगर किसी ऐसे डिवाइस पर decommissionDevice() को कॉल किया जाता है जिस पर Matter काम नहीं करता, तो 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!")
}