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 से मिले ट्रैट को क्लस्टर नहीं, बल्कि ट्रैट कहा जाता है.

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

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

विशेषताएं

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

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

import GoogleHomeTypes

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

import GoogleHomeTypes

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

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

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

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

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 के ट्रैट से बने होते हैं.

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

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

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