Android के लिए 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 ऐनलॉग से ज़्यादा प्राथमिकता दी जाती है.
डिवाइस टाइप और उनकी विशेषताओं की सूची देखने के लिए, Android पर काम करने वाले डिवाइस टाइप लेख पढ़ें.
विशेषताएं
होम एपीआई में इस्तेमाल करने के लिए, ट्रेट के Kotlin वर्शन जनरेट किए जाते हैं. इनमें होम एपीआई से जुड़ी अतिरिक्त सुविधाएं होती हैं. ये सुविधाएं, 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 की सुविधा के साथ काम करने वाले डिवाइसों की सूची देखें.
डिवाइस टाइप कंपोज़िशन
Home API, डेटा मॉडल में ज़्यादातर Matter ऐप्लिकेशन क्लस्टर को एट्रिब्यूट के तौर पर इस्तेमाल करते हैं. लो-लेवल कॉन्फ़िगरेशन क्लस्टर, होम एपीआई के ज़रिए उपलब्ध नहीं कराए जाते. ये क्लस्टर, सीधे तौर पर उपयोगकर्ताओं के काम के नहीं होते. जैसे, Binding.
Cloud-to-cloud स्मार्ट होम की सुविधाओं से मिली ट्रेट के नाम, आम तौर पर Cloud-to-cloud और Home API के बीच एक जैसे होते हैं. जैसे, OpenClose के उदाहरण में दिखाया गया है. अन्य एट्रिब्यूट को Matterट्रेडमार्क के एक्सटेंशन के तौर पर दिखाया जाता है. इन्हें Matterमैन्युफ़ैक्चरर के हिसाब से बनाए गए एक्सटेंशन का इस्तेमाल करके बनाया जाता है. ये ट्रेट, smart home ट्रेट के लिए अंतर को कम करती हैं. इस ट्रेट के फ़ंक्शन, Matter एसडीके और Google Home के इकोसिस्टम के बीच बांटे जाते हैं. इसका एक उदाहरण Google* डिवाइस टाइप हैं. ये Cloud-to-cloud से आते हैं, लेकिन इनमें अब तक Matter के ऐनलॉग नहीं हैं.
डिवाइस टाइप में, एक या दोनों सोर्स Matter या Cloud-to-cloud से मिले एट्रिब्यूट शामिल होते हैं.
उदाहरण के लिए, पंखे के डिवाइस का टाइप, इन दोनों से मिलकर बना है. इसमें तीन सुविधाएं शामिल हैं:
IdentifyMatter ट्रेट, MatterIdentifyकी सभी सुविधाएं उपलब्ध कराती है.FanControlMatter ट्रेट में, MatterFanControlट्रेट की सभी सुविधाएं मिलती हैंExtendedFanControlGoogle trait, Google smart homeFanSpeedtrait की वे सभी सुविधाएं उपलब्ध कराता है जोFanControlMatter trait में शामिल नहीं हैं
इस तरह की ट्रेट कंपोज़िशन, डिवाइस टाइप की पूरी सुविधा के लिए एक फ़्लेक्सिबल मॉडल उपलब्ध कराती है. साथ ही, यह smart home डेटा मॉडल को ऐब्स्ट्रैक्ट करती है.
डिवाइस ग्रुप
डिवाइस ग्रुप, एक ही स्ट्रक्चर में मौजूद डिवाइसों का ऐसा कलेक्शन होता है जिसे उपयोगकर्ता तय करता है. डिवाइस ग्रुप को DeviceGroup इकाई के तौर पर दिखाया जाता है. यह HomeDevice से अलग होती है.
डिवाइस ग्रुप के बारे में ज़्यादा जानने के लिए, स्ट्रक्चर एपीआई देखें.