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