Android पर डेटा मॉडल

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 पर काम करने वाले डिवाइस के टाइप देखें.

Traits

Home API में इस्तेमाल करने के लिए, Kotlin वर्शन की विशेषताएं जनरेट की जाती हैं. इनमें Home API के लिए खास तौर पर उपलब्ध अतिरिक्त सुविधाएं शामिल होती हैं. ये सुविधाएं, Matter या Cloud-to-cloud में नहीं मिलती हैं. उदाहरण के लिए, हर विशेषता में यह जांचने के तरीके होते हैं कि कोई विशेषता किसी खास एट्रिब्यूट या निर्देश के साथ काम करती है या नहीं. यह जानकारी तब काम आती है, जब यह तय करना हो कि किसी उपयोगकर्ता के डिवाइस पर, स्थिति को पढ़ा जा सकता है या कुछ कार्रवाइयां की जा सकती हैं या नहीं. ऐसा इसलिए, क्योंकि किसी डिवाइस टाइप के सभी डिवाइसों में एक जैसी सुविधाएं होने की उम्मीद नहीं की जाती.

हर trait अपने नेमस्पेस में मौजूद होता है. इस्तेमाल करने के लिए, हर trait को अलग से इंपोर्ट करना ज़रूरी है.

उदाहरण के लिए, Matter On/Off trait और On/Off Plug-in Unit device type का इस्तेमाल करने के लिए, अपने ऐप्लिकेशन में ये पैकेज इंपोर्ट करें:

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 API, डेटा मॉडल में ट्रेट के तौर पर ज़्यादातर Matter ऐप्लिकेशन क्लस्टर के साथ काम करते हैं. लो-लेवल कॉन्फ़िगरेशन क्लस्टर, असली उपयोगकर्ताओं को सीधे तौर पर कोई सुविधा नहीं देते. जैसे, Binding. इन्हें 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 की विशेषताओं से बने होते हैं.

उदाहरण के लिए, पंखे के डिवाइस टाइप में, दोनों एट्रिब्यूट शामिल होते हैं. साथ ही, इसमें तीन विशेषताएं होती हैं:

  • Identify Matter ट्रेट में, Matter Identify की सभी सुविधाएं मिलती हैं.
  • FanControl Matter ट्रेट में, Matter FanControl ट्रेट की सभी सुविधाएँ मिलती हैं
  • ExtendedFanControl Google trait, Google smart home FanSpeed trait की वे सभी सुविधाएं उपलब्ध कराता है जो FanControl Matter trait में शामिल नहीं हैं

इस तरह की विशेषताओं से, डिवाइस टाइप की पूरी सुविधाओं के लिए एक सुविधाजनक मॉडल मिलता है. इससे, smart home डेटा मॉडल को ऐब्स्ट्रैक्ट किया जाता है.

डिवाइस ग्रुप

डिवाइस ग्रुप, किसी एक स्ट्रक्चर में मौजूद डिवाइसों का कलेक्शन होता है. इसे उपयोगकर्ता तय करता है. डिवाइस ग्रुप को DeviceGroup इकाई से दिखाया जाता है. यह HomeDevice से अलग है.

डिवाइस ग्रुप के बारे में ज़्यादा जानकारी के लिए, स्ट्रक्चर एपीआई देखें.