एंड्रॉइड के लिए होम एपीआई, 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
डिवाइस प्रकारों और उनकी विशेषताओं की सूची के लिए Android पर समर्थित डिवाइस प्रकार देखें.
विशेषताएं
कोटलिन में विशेषताओं के संस्करण होम एपीआई में उपयोग के लिए तैयार किए जाते हैं, और इनमें होम एपीआई के लिए विशिष्ट अतिरिक्त सुविधाएँ शामिल होती हैं (जो Matter या Cloud-to-cloud में नहीं मिलतीं). उदाहरण के लिए, प्रत्येक विशेषता में यह जाँचने के तरीके होते हैं कि कोई विशेषता किसी विशिष्ट विशेषता या कमांड का समर्थन करती है या नहीं. यह निर्धारित करते समय उपयोगी होता है कि क्या उपयोगकर्ता के डिवाइस पर स्थिति को पढ़ा जा सकता है या कुछ क्रियाएं की जा सकती हैं, क्योंकि एक डिवाइस प्रकार के सभी डिवाइसों में सभी समान सुविधाएं होने की उम्मीद नहीं की जाती है.
हर ट्रेट अपने नेमस्पेस में शामिल होती है. इसलिए, इस्तेमाल करने के लिए हर ट्रेट को अलग-अलग इंपोर्ट करना ज़रूरी है.
उदाहरण के लिए, Matter चालू/बंद करने की सुविधा और चालू/बंद करने की सुविधा वाले प्लग-इन यूनिट डिवाइस टाइप का इस्तेमाल करने के लिए, अपने ऐप्लिकेशन में ये पैकेज इंपोर्ट करें:
import com.google.home.matter.standard.OnOff
import com.google.home.matter.standard.OnOffPluginUnitDevice
Google स्मार्ट होम के गैराज डिवाइस टाइप के लिए, Matter और Google की सुविधाओं को शामिल करें:
import com.google.home.google.LockUnlock
import com.google.home.matter.standard.DoorLock
import com.google.home.matter.standard.GoogleGarageDevice
Android Studio में अपने-आप पूरा होने की सुविधा होती है. साथ ही, यह आपके प्रोजेक्ट की सोर्स फ़ाइलों में import लाइनें जोड़ते समय, अक्सर आपके लिए पूरे पैकेज के नाम हैंडल करता है. हालांकि, पैकेज के नाम सभी डिवाइस टाइप और विशेषताओं के लिए एक जैसे नहीं होते. प्रत्येक DeviceType या Trait के लिए सही पैकेज नाम सत्यापित करने के लिए संदर्भ देखें.
ज़्यादातर ट्रेट, ऑटोमेशन के साथ इस्तेमाल की जा सकती हैं. हालांकि, कुछ ट्रेट सिर्फ़ ऑटोमेशन के लिए उपलब्ध हैं. ज़्यादा जानकारी के लिए, Android पर Automation API की सुविधा के बारे में जानकारी लेख पढ़ें.
डिवाइस टाइप कंपोज़िशन
होम API, डेटा मॉडल में विशेषताओं के रूप में अधिकांश Matter ऐप्लिकेशन क्लस्टर का समर्थन करते हैं. डिवाइस कंट्रोल या स्थितियों से जुड़ी नहीं होने वाली और असली उपयोगकर्ताओं के लिए किसी काम की नहीं होने वाली विशेषताओं को Home API के ज़रिए नहीं दिखाया जाता. जैसे, बाइंडिंग और ग्रुप.
Cloud-to-cloud स्मार्ट होम की सुविधाओं से मिली ट्रेट के नाम, आम तौर पर Cloud-to-cloud और Home API के बीच एक जैसे होते हैं. जैसे, OpenClose के उदाहरण में दिखाया गया है. अन्य को Matter विशेषताओं के एक्सटेंशन के रूप में दर्शाया गया है, जिन्हें Matter निर्माता-विशिष्ट एक्सटेंशन का उपयोग करके बनाया गया है. ये ट्रेट, smart home ट्रेट के लिए अंतर को कम करती हैं. इस ट्रेट के फ़ंक्शन, Matter SDK टूल और Google Home के इकोसिस्टम के बीच बांटे जाते हैं. इसका एक विशिष्ट उदाहरण Google* डिवाइस प्रकार हैं जो Cloud-to-cloud से आते हैं लेकिन अभी तक मैटर एनालॉग नहीं हैं.
डिवाइस प्रकार एक या दोनों स्रोतों, Matter या Cloud-to-cloud, से प्राप्त विशेषताओं से बने होते हैं.
उदाहरण के लिए, फैन डिवाइस प्रकार दोनों से बना होता है और इसमें तीन विशेषताएं होती हैं:
IdentifyMatter ट्रेट, MatterIdentifyकी सभी सुविधाएं उपलब्ध कराती है.FanControlMatter विशेषता, MatterFanControlविशेषता की सभी कार्यक्षमताएं प्रदान करती हैExtendedFanControlGoogle trait, Google smart homeFanSpeedtrait की वे सभी सुविधाएं उपलब्ध कराता है जोFanControlMatter trait में शामिल नहीं हैं
इस तरह की ट्रेट कंपोज़िशन, डिवाइस टाइप की पूरी फ़ंक्शनैलिटी के लिए एक फ़्लेक्सिबल मॉडल उपलब्ध कराती है. साथ ही, यह smart home के डेटा मॉडल को ऐब्स्ट्रैक्ट करती है.