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