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