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 API में, Matter-से ली गई विशेषताओं को विशेषताएं कहा जाता है, न कि क्लस्टर.
इसलिए, Home API में डिवाइस टाइप और विशेषताओं को Matter-फ़र्स्ट के तौर पर डिज़ाइन किया गया है. A 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
ज़्यादातर विशेषताओं का इस्तेमाल, ऑटोमेशन के साथ किया जा सकता है. वहीं, कुछ विशेषताएं सिर्फ़ ऑटोमेशन के लिए उपलब्ध होती हैं. ज़्यादा जानकारी के लिए, Android पर ऑटोमेशन एपीआई की विशेषता से जुड़ी सहायता देखें.
डिवाइस टाइप कंपोज़िशन
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.
उदाहरण के लिए, the
FanDeviceType
दोनों से मिलकर बना है और इसमें तीन विशेषताएं हैं:
IdentifyTraitMatter विशेषता, MatterIdentifyTraitकी सभी सुविधाएं उपलब्ध कराती है.FanControlTraitMatter विशेषता, MatterFanControlTraitकी सभी सुविधाएं उपलब्ध कराती है.ExtendedFanControlTraitGoogle की विशेषता, Google के smart homeFanSpeedTraitकी सभी सुविधाएं उपलब्ध कराती है. ये सुविधाएं,FanControlTraitMatter विशेषता में शामिल नहीं होतीं.
इस तरह के विशेषता कंपोज़िशन से, डिवाइस टाइप की पूरी सुविधा के लिए एक फ़्लेक्सिबल मॉडल मिलता है. इससे, अंडरलाइंग smart home डेटा मॉडल को अलग किया जा सकता है.