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

किसी डिवाइस को हटाने का मतलब है कि उसे स्ट्रक्चर से हटाना. कोई उपयोगकर्ता Google Home app (GHA) का इस्तेमाल करके ऐसा कर सकता है. साथ ही, कोई ऐप्लिकेशन प्रोग्राम के हिसाब से स्मार्ट होम डिवाइस को बंद कर सकता है. कुछ डिवाइसों को ही हटाया जा सकता है. इसके अलावा, किसी डिवाइस को हटाने से आपके ऐप्लिकेशन के स्ट्रक्चर और उपयोगकर्ता अनुभव पर असर पड़ सकता है.

क्या-क्या हटाया जा सकता है

Home API की मदद से, इन डिवाइसों को प्रोग्राम के हिसाब से हटाया जा सकता है:

  • Matter डिवाइसों के लिए, आपके ऐप्लिकेशन के पास अनुमतियां हैं.
  • Matter ब्रिज के ज़रिए कनेक्ट किए गए सभी डिवाइसों को कंट्रोल कर सकता है. हालांकि, इसके लिए ज़रूरी है कि आपके ऐप्लिकेशन के पास ब्रिज से कनेक्ट किए गए सभी डिवाइसों का ऐक्सेस हो. ब्रिज को हटाने से, उससे कनेक्ट किए गए सभी Matter डिवाइस हट जाते हैं.

क्या-क्या नहीं हटाया जा सकता

Home API के ज़रिए, इन डिवाइसों को प्रोग्राम के हिसाब से नहीं हटाया जा सकता:

  • Matter ऐसे डिवाइस जिनके लिए आपके ऐप्लिकेशन के पास उपयोगकर्ता की अनुमतियां नहीं हैं.
  • Matter ब्रिज से कनेक्ट किए गए अलग-अलग डिवाइस.
  • Cloud-to-cloud लिंक किए गए डिवाइस.
  • डुअल-पाथ डिवाइस (ऐसे डिवाइस जिनमें Matter और Cloud-to-cloud, दोनों लागू होते हैं).

किसी डिवाइस को हटाने से पहले ध्यान रखने वाली ज़रूरी बातें

जब आपका ऐप्लिकेशन किसी डिवाइस को हटाता है, तो उसे पूरे स्ट्रक्चर से हटा दिया जाता है. इससे सभी उपयोगकर्ताओं और सभी ऐप्लिकेशन पर असर पड़ता है. इनमें GHA भी शामिल है. डिवाइस के टाइप के हिसाब से, डिवाइस को बंद करने के कुछ और साइड इफ़ेक्ट हो सकते हैं:

  • एक से ज़्यादा तरह के डिवाइसों को कंट्रोल करने वाले डिवाइस: अगर किसी डिवाइस में एक से ज़्यादा फ़ंक्शन हैं, तो उसे हटाने पर उससे कनेक्ट किए गए सभी डिवाइस भी हट जाएंगे. उदाहरण के लिए, स्मार्ट लाइट जो हब के तौर पर भी काम करती है. अगर एक से ज़्यादा डिवाइस फ़ंक्शन पर असर पड़ेगा, तो ऐप्लिकेशन को उपयोगकर्ता को इसकी सूचना देनी चाहिए.
  • डिवाइस का इतिहास: किसी डिवाइस को मिटाने से, उस डिवाइस का इतिहास मिट सकता है.
  • शेयर किए गए प्लैटफ़ॉर्म: शेयर किए गए प्लैटफ़ॉर्म पर डिवाइसों को मिटाते समय सावधान रहें, क्योंकि इससे अन्य लोगों को अनचाहे नतीजे मिल सकते हैं.
  • पुष्टि करना: डिवाइस को सिर्फ़ उन प्लैटफ़ॉर्म से हटाया जाना चाहिए जहां पुष्टि की गई हो. जैसे, मोबाइल फ़ोन. पुष्टि न किए गए डिवाइसों, जैसे कि टीवी से डिवाइस को नहीं हटाया जाना चाहिए. ऐसा करने से, Google Home के डेवलपर के लिए बनी नीतियों का उल्लंघन होता है.

डिवाइस हटाना

किसी डिवाइस को हटाने की ज़रूरी शर्तें पूरी करने की जांच करना महंगा होता है. इसलिए, यह जांच सिर्फ़ तब की जानी चाहिए, जब ज़रूरी हो. यह देखने के लिए कि किसी डिवाइस को हटाया जा सकता है या नहीं, इस निर्देश का इस्तेमाल करें:

swift let eligibility = try await device.decommissionEligibility

Matter वाले डिवाइस

अगर डिवाइस, 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 के अलावा अन्य डिवाइसों को प्रोग्राम के हिसाब से नहीं हटाया जा सकता. Matter से कनेक्ट नहीं किए गए डिवाइस को हटाने के लिए, सिंक करने का अनुरोध करें (सिंक करने का अनुरोध करें देखें) या Cloud-to-cloud इंटिग्रेशन को मिटाएं (लॉन्च किए गए क्लाउड-टू-क्लाउड इंटिग्रेशन को मिटाना देखें).

अगर Matter को किसी ऐसे डिवाइस पर कॉल किया जाता है जो Matter नहीं है, तो HomeError थ्रो किया जाता है.decommission()

Matter के बिना काम करने वाले डिवाइस को हटाने के बाद, यह देखने के लिए कि डिवाइस को हटाया गया है या नहीं, डिवाइस की मौजूदगी की जांच करें:

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