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