Android के लिए Home APIs, Google Home इकोसिस्टम में मौजूद सभी डिवाइसों को एक ही डेटा मॉडल में दिखाता है. यह डेटा मॉडल, सभी तरह के डिवाइसों (Google Nest या तीसरे पक्ष के मैन्युफ़ैक्चरर के डिवाइस) को कवर करता है. भले ही, स्मार्ट होम की टेक्नोलॉजी (जैसे, Matter या Cloud-to-cloud) कोई भी हो. साथ ही, यह smart home और मोबाइल ऐप्लिकेशन डेवलपर, दोनों के लिए उपयोगकर्ता अनुभव बनाने के लिए एक सामान्य एपीआई प्लैटफ़ॉर्म उपलब्ध कराता है.
Device types
Home APIs में दिखाए गए डिवाइस टाइप, Matter और Cloud-to-cloud डेटा मॉडल का एकीकरण हैं. कुछ डिवाइस टाइप सीधे Matter से लिए गए हैं, कुछ Matter डिवाइस टाइप के एक्सटेंशन हैं, और कुछ Cloud-to-cloud से लिए गए हैं.
डिवाइस टाइप में ऐसी विशेषताएं होती हैं जिनका इस्तेमाल डिवाइसों को कंट्रोल और मैनेज करने के लिए किया जाता है. डिवाइस टाइप की तरह, विशेषताएं भी Matter क्लस्टर और Cloud-to-cloud की विशेषताओं से ली जाती हैं. इन्हें एक ऐसे सामान्य फ़ॉर्मैट में दिखाया जाता है जो Matter क्लस्टर के फ़ॉर्मैट जैसा होता है. Home APIs में, Matter-से ली गई विशेषताओं को विशेषताएं कहा जाता है, न कि क्लस्टर.
इसलिए, Home APIs में डिवाइस टाइप और विशेषताओं को Matter-first के तौर पर डिज़ाइन किया गया है. A Matter डिवाइस टाइप या विशेषता को Cloud-to-cloud के एनालॉग से ज़्यादा प्राथमिकता दी जाती है.
डिवाइस टाइप और उनकी विशेषताओं की सूची देखने के लिए, Android पर काम करने वाले डिवाइस टाइप देखें.
विशेषताएं
Home APIs में इस्तेमाल के लिए, विशेषताओं के Kotlin वर्शन जनरेट किए जाते हैं. इनमें Home APIs से जुड़ी अतिरिक्त सुविधाएं शामिल होती हैं. ये सुविधाएं, 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 पर ऑटोमेशन एपीआई की विशेषता से जुड़ी सहायता देखें.
डिवाइस टाइप की संरचना
Home APIs, डेटा मॉडल में ज़्यादातर Matter ऐप्लिकेशन क्लस्टर को विशेषताओं के तौर पर इस्तेमाल करने की सुविधा देते हैं. ऐसी विशेषताएं जो डिवाइस कंट्रोल या स्थितियों से जुड़ी नहीं होती हैं और असली उपयोगकर्ताओं के लिए कोई सुविधा नहीं देती हैं, उन्हें Home APIs के ज़रिए नहीं दिखाया जाता. जैसे, बाइंडिंग और ग्रुप.
Cloud-to-cloud स्मार्ट होम की विशेषताओं से ली गई विशेषताओं के नाम, आम तौर पर Cloud-to-cloud और Home APIs के बीच एक जैसे होते हैं. जैसे, OpenClose. अन्य विशेषताओं को
Matter की विशेषताओं के एक्सटेंशन के तौर पर दिखाया जाता है. इन्हें Matter
मैन्युफ़ैक्चरर के हिसाब से खास एक्सटेंशन का इस्तेमाल करके बनाया जाता है. ये विशेषताएं, किसी ऐसी
smart home विशेषता के लिए अंतर को कम करती हैं जिसकी सुविधा,
Matter SDK और Google Home इकोसिस्टम के बीच बंटी होती है. इसका एक खास
उदाहरण, Google* डिवाइस टाइप हैं. ये
Cloud-to-cloud से आते हैं, लेकिन फ़िलहाल इनके Matter एनालॉग उपलब्ध नहीं हैं.
डिवाइस टाइप, दोनों में से किसी एक या दोनों सोर्स की विशेषताओं से बने होते हैं, Matter या Cloud-to-cloud.
उदाहरण के लिए, पंखे का डिवाइस टाइप, दोनों से मिलकर बना है और इसमें तीन विशेषताएं हैं:
IdentifyMatter विशेषता, MatterIdentifyसे जुड़ी सभी सुविधाएं देती है.FanControlMatter विशेषता, MatterFanControlविशेषता से जुड़ी सभी सुविधाएं देती है- Google की
ExtendedFanControlविशेषता, Google smart homeFanSpeedविशेषता से जुड़ी सभी सुविधाएं देती है. ये सुविधाएं,FanControlMatter विशेषता में शामिल नहीं होती हैं
विशेषताओं की इस तरह की संरचना, डिवाइस टाइप की पूरी सुविधा के लिए एक फ़्लेक्सिबल मॉडल उपलब्ध कराती है. साथ ही, यह अंडरलाइंग smart home डेटा मॉडल को अलग करती है.