किसी डिवाइस को हटाने का मतलब है कि उसे स्ट्रक्चर से हटाना. कोई उपयोगकर्ता 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 के अलावा किसी दूसरे डिवाइस पर 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, दोनों एपीआई का इस्तेमाल करते हैं. अगर ऐसे डिवाइस के लिए, इस्तेमाल बंद करने की ज़रूरी शर्तें देखी जाती हैं, तो आपको DecommissionIneligibleReason.multiSourceDevice
दिखेगा. इसका मतलब है कि डिवाइस में कई सोर्स से डेटा आता है. इसलिए, इसका इस्तेमाल बंद नहीं किया जा सकता.
एक से ज़्यादा सोर्स वाले डिवाइस को हटाने के लिए, यह तरीका अपनाएं:
- Matter के साथ काम न करने वाले डिवाइस में बताए गए तरीके से, Cloud-to-cloud का असोसिएशन हटाएं.
- Matter डिवाइस को बंद करें. इसके लिए, Matter डिवाइस में दिया गया तरीका अपनाएं.
इन चरणों का क्रम ज़रूरी है. अगर Matter डिवाइस को बंद करने से पहले Cloud-to-cloud असोसिएशन को हटाया नहीं जाता है, तो HomeError
दिखेगा.