iOS पर डेटा मॉडल

iOS के लिए Home API, Google Home के पूरे ईकोसिस्टम में मौजूद सभी डिवाइसों को एक ही डेटा मॉडल में दिखाता है. यह डेटा मॉडल, Google Nest या तीसरे पक्ष की कंपनियों के सभी डिवाइसों के साथ काम करता है. इससे कोई फ़र्क़ नहीं पड़ता कि डिवाइस में स्मार्ट होम टेक्नोलॉजी (जैसे, Matter या Cloud-to-cloud) कौनसी है. साथ ही, यह smart home और मोबाइल ऐप्लिकेशन डेवलपर, दोनों के लिए एक सामान्य एपीआई उपलब्ध कराता है, ताकि वे लोगों के लिए बेहतर अनुभव तैयार कर सकें.

Device types

Home API में दिखाए गए डिवाइस टाइप, Matter और Cloud-to-cloud डेटा मॉडल का यूनिफ़ाइड वर्शन हैं. कुछ डिवाइसों की जानकारी सीधे Matter से मिलती है, कुछ Matter के डिवाइस टाइप का एक्सटेंशन होती है, और कुछ Cloud-to-cloud से मिलती है.

डिवाइस टाइप में ऐसी ट्रेट होती हैं जिनका इस्तेमाल डिवाइसों को कंट्रोल और मैनेज करने के लिए किया जाता है. डिवाइस टाइप की तरह, एट्रिब्यूट भी Matter क्लस्टर और Cloud-to-cloud एट्रिब्यूट से लिए जाते हैं. इन्हें एक सामान्य फ़ॉर्मैट में दिखाया जाता है, जो Matter क्लस्टर के फ़ॉर्मैट जैसा होता है. Home APIs में, Matter-derived traits को traits कहा जाता है, न कि clusters.

इसलिए, Home API में डिवाइस टाइप और ट्रेट को Matter-फ़र्स्ट के तौर पर डिज़ाइन किया गया है. Cloud-to-cloud डिवाइस टाइप या विशेषता को Cloud-to-cloud ऐनलॉग के मुकाबले ज़्यादा प्राथमिकता दी जाती है.Matter

डिवाइस टाइप और उनकी विशेषताओं की सूची देखने के लिए, iOS पर काम करने वाले डिवाइस टाइप देखें.

विशेषताएं

होम एपीआई में इस्तेमाल करने के लिए, लक्षणों के Swift वर्शन जनरेट किए जाते हैं. इनमें होम एपीआई के लिए खास तौर पर बनाई गई अतिरिक्त सुविधाएं होती हैं. ये सुविधाएं, Matter या Cloud-to-cloud में नहीं मिलती हैं. उदाहरण के लिए, हर लक्षण में यह जांच करने के तरीके होते हैं कि कोई लक्षण किसी एट्रिब्यूट या कमांड के साथ काम करता है या नहीं. इससे यह तय करने में मदद मिलती है कि किसी उपयोगकर्ता के डिवाइस पर, स्थिति को पढ़ा जा सकता है या कुछ कार्रवाइयां की जा सकती हैं या नहीं. ऐसा इसलिए, क्योंकि एक ही तरह के डिवाइसों में सभी सुविधाएं एक जैसी नहीं होती हैं.

ट्रेड और डिवाइस टाइप इंपोर्ट करने के लिए, अपने ऐप्लिकेशन में GoogleHomeTypes मॉड्यूल इंपोर्ट करें:

import GoogleHomeTypes

इसके अलावा, कोड को छोटा करने और नेमस्पेस को दोहराने से बचने के लिए, ट्रेट और डिवाइस टाइप के नामों के लिए typealias का इस्तेमाल किया जा सकता है:

import GoogleHomeTypes

typealias OpenCloseTrait = Google.OpenCloseTrait
typealias OnOffTrait = Matter.OnOffTrait
typealias FanDevice = Matter.FanDeviceType

ज़्यादातर ट्रेट, ऑटोमेशन के साथ इस्तेमाल की जा सकती हैं. हालांकि, कुछ ट्रेट सिर्फ़ ऑटोमेशन के लिए उपलब्ध हैं. ज़्यादा जानकारी के लिए, Android पर Automation API की सुविधा के बारे में जानकारी लेख पढ़ें.

डिवाइस टाइप कंपोज़िशन

Home API, डेटा मॉडल में ज़्यादातर Matter ऐप्लिकेशन क्लस्टर को एट्रिब्यूट के तौर पर इस्तेमाल करते हैं. डिवाइस कंट्रोल या स्थितियों से जुड़ी नहीं होने वाली और असली उपयोगकर्ताओं के लिए किसी काम की नहीं होने वाली विशेषताओं को Home API के ज़रिए नहीं दिखाया जाता. जैसे, बाइंडिंग और ग्रुप.

Cloud-to-cloud स्मार्ट होम की सुविधाओं से मिली ट्रेट के नाम, आम तौर पर Cloud-to-cloud और Home API के बीच एक जैसे होते हैं. जैसे, OpenCloseTrait के उदाहरण में दिखाया गया है. अन्य एट्रिब्यूट को Matter एट्रिब्यूट के एक्सटेंशन के तौर पर दिखाया जाता है. इन्हें Matter मैन्युफ़ैक्चरर के हिसाब से बनाए गए एक्सटेंशन का इस्तेमाल करके बनाया जाता है. ये ट्रेट, smart home ट्रेट के लिए अंतर को कम करती हैं. इस ट्रेट के फ़ंक्शन, Matter SDK और Google Home के इकोसिस्टम के बीच बांटे जाते हैं. इसका एक उदाहरण Google* डिवाइस टाइप हैं. ये Cloud-to-cloud से आते हैं, लेकिन इनमें अब तक Matter के ऐनलॉग नहीं हैं.

डिवाइस टाइप में, एक या दोनों सोर्स Matter या Cloud-to-cloud से मिले traits शामिल होते हैं.

उदाहरण के लिए, FanDeviceType में ये दोनों शामिल हैं और इसमें तीन विशेषताएं हैं:

  • IdentifyTrait Matter ट्रेट, Matter IdentifyTrait की सभी सुविधाएं उपलब्ध कराती है.
  • FanControlTrait Matter ट्रेट, Matter FanControlTrait की सभी सुविधाएं उपलब्ध कराती है.
  • ExtendedFanControlTrait Google की विशेषता, Google smart home FanSpeedTrait की वे सभी सुविधाएं उपलब्ध कराती है जो FanControlTrait Matter की विशेषता में शामिल नहीं हैं.

इस तरह की ट्रेट कंपोज़िशन, डिवाइस टाइप की पूरी सुविधा के लिए एक फ़्लेक्सिबल मॉडल उपलब्ध कराती है. साथ ही, यह smart home डेटा मॉडल को ऐब्स्ट्रैक्ट करती है.