Android के लिए Google Home API, एक यूनिफ़ाइड एपीआई उपलब्ध कराते हैं. इससे डेवलपर, उपयोगकर्ता के घर में मौजूद इकाइयों की स्थिति के साथ इंटरैक्ट कर पाते हैं. ये इकाइयां, किसी उपयोगकर्ता के स्ट्रक्चर और कमरों से जुड़े डिवाइसों और डिवाइस के अलावा अन्य जानकारी के बारे में बता सकती हैं.
Home API, इन इकाइयों को तय करते हैं जिनके साथ उपयोगकर्ता इंटरैक्ट कर सकता है:
- स्ट्रक्चर, एक ऐसे होम को कहते हैं जिसमें कमरे और डिवाइस शामिल होते हैं.
- कमरे, स्ट्रक्चर का हिस्सा होते हैं और इनमें डिवाइस शामिल होते हैं.
- डिवाइस में एट्रिब्यूट वाली ट्रेट लागू होती हैं, वे टाइप के मुताबिक काम करते हैं, इवेंट जनरेट करते हैं, और निर्देशों का जवाब देते हैं.
- ऑटोमेशन, स्ट्रक्चर का हिस्सा होते हैं. ये होम के मेटाडेटा और डिवाइसों का इस्तेमाल करके, होम में टास्क अपने-आप पूरे करते हैं.
पहली इमेज में, इस आर्किटेक्चर के बारे में बताया गया है:
Home API के साथ काम करने वाले डिवाइसों में, Matter की सुविधा हो सकती है. यह स्मार्ट होम के लिए एक ओपन स्टैंडर्ड है. इसके अलावा, ये Google Home के Cloud-to-cloud डिवाइस भी हो सकते हैं. ऐसा हो सकता है कि कुछ डिवाइसों में, दोनों तरह की सुविधाओं को शामिल किया गया हो. ज़्यादा जानकारी के लिए, Android पर काम करने वाले डिवाइस टाइप देखें.
Matter में, डिवाइस की सुविधाओं को क्लस्टर के हिसाब से ग्रुप किया जाता है. इन्हें Home API में Matter स्टैंडर्ड ट्रेट के तौर पर दिखाया जाता है. Home API, Matter के स्टैंडर्ड सेट के साथ काम करते हैं. इस बारे में, Matter के मौजूदा स्पेसिफ़िकेशन में बताया गया है.
Google Home के इकोसिस्टम में, डिवाइस के फ़ंक्शन को स्मार्ट होम की विशेषताओं के हिसाब से ग्रुप किया जाता है. इन्हें Home API में, Google की स्मार्ट होम की विशेषताओं के तौर पर दिखाया जाता है. Home API, स्मार्ट होम की उन सभी सुविधाओं के साथ काम करते हैं जिनके बारे में Cloud-to-cloud प्रोग्राम में बताया गया है.
अन्य विशेषताएं भी उपलब्ध हैं. जैसे, मैन्युफ़ैक्चरर के हिसाब से क्लस्टर और प्लैटफ़ॉर्म की विशेषताएं. ज़्यादा जानने के लिए, Android पर डेटा मॉडल देखें.
नेटवर्क
Google Home का नेटवर्क, स्मार्ट होम से जुड़े अनुभव को बेहतर बनाने, मैनेज करने, सुरक्षित रखने, और इंटिग्रेट करने के लिए एक आसान प्लैटफ़ॉर्म उपलब्ध कराता है. दूसरे डायग्राम में दिखाया गया है कि सभी कॉम्पोनेंट एक साथ कैसे काम करते हैं.
इस इकोसिस्टम में Google Automation Engine शामिल है. यह ऑटोमेशन को सेव करता है और उन्हें चलाता है. इससे घर में टास्क और डिवाइस की सेटिंग को ऑटोमेट किया जा सकता है.
Home APIs, स्ट्रक्चर में मौजूद डिवाइसों को ऐक्सेस करने की अनुमति देने के लिए OAuth 2.0 का इस्तेमाल करता है. OAuth की मदद से, कोई उपयोगकर्ता अपने लॉगिन क्रेडेंशियल शेयर किए बिना किसी ऐप्लिकेशन या सेवा को अनुमति दे सकता है.
Google Home Developer Console का इस्तेमाल, Home APIs प्रोजेक्ट के सभी चरणों को मैनेज करने के लिए किया जाता है. जैसे, ब्रैंड की पुष्टि करना, डेवलप करना, टेस्ट करना, सर्टिफ़ाई करना, और आखिर में लॉन्च करना. इससे डेवलपमेंट की प्रोसेस आसान हो जाती है. साथ ही, Google Home के नेटवर्क के ज़रिए मज़बूत टूल और डिस्ट्रिब्यूशन की सुविधा मिलती है.
भाषा
Android के लिए Home API, Kotlin में लिखे गए हैं. ये Kotlin के लिए एक इंटरफ़ेस उपलब्ध कराते हैं. यह इंटरफ़ेस, Flow का इस्तेमाल करके, स्थिति और सदस्यता को मैनेज करता है. इससे, सदस्यता के लिए उपलब्ध स्टैंडर्ड एपीआई के मुकाबले कई फ़ायदे मिलते हैं.
अगर आपको को-रूटीन, फ़्लो, और Jetpack Compose के बारे में पहले से जानकारी नहीं है, तो हमारा सुझाव है कि आप Kotlin के दस्तावेज़ पढ़ें:
- Kotlin की मदद से Android ऐप्लिकेशन बनाना
- Android के लिए Kotlin सीखें
- Android पर Kotlin कोरूटीन. ये कोडलैब आपके काम के हो सकते हैं:
- Android पर Kotlin फ़्लो और खास तौर पर, StateFlow.
- खास तौर पर,
collectAsStateWithLifecycle()फ़ंक्शन के लिए स्टेट और Jetpack Compose. यह फ़ंक्शन, फ़्लो की सदस्यता लेने और सदस्यता छोड़ने की प्रोसेस को अपने-आप मैनेज करता है. यह इस बात पर निर्भर करता है कि यूज़र इंटरफ़ेस (यूआई) में दिख रही स्थिति, फ़ोरग्राउंड में है या नहीं. - अगर Automation API का इस्तेमाल किया जा रहा है, तो Kotlin के टाइप-सेफ़ बिल्डर के बारे में पढ़ना फ़ायदेमंद होता है. इससे यह समझने में मदद मिलती है कि Automation DSL कैसे काम करता है.
इकाई के आइडेंटिफ़ायर
Home APIs में मौजूद हर इकाई का एक आईडी होता है, जो उसके मुख्य आइडेंटिफ़ायर को दिखाता है. यह आईडी, यूनीक और स्टेबल आइडेंटिफ़ायर होता है. यह इकाई के जीवनकाल में कभी नहीं बदलता. इस आईडी का इस्तेमाल, ऑब्जेक्ट को कैश मेमोरी में सेव करने या समानता की जांच करने के लिए किया जा सकता है. ऐसा इसलिए, क्योंकि किसी इकाई का मेटाडेटा बदल सकता है.
HasId इंटरफ़ेस देखें. इससे आपको यह पता चलेगा कि किन इकाइयों का आईडी होता है.
शब्दावली मैपिंग
Home API में मौजूद इकाइयां, Matter और Cloud-to-cloud कॉन्सेप्ट से इस तरह मैप होती हैं:
| Home APIs | Matter | Cloud-to-cloud |
|---|---|---|
| ट्रेट | क्लस्टर | ट्रेट |
| एट्रिब्यूट | एट्रिब्यूट | एट्रिब्यूट, स्थिति |
| निर्देश | निर्देश | निर्देश |
| इवेंट | इवेंट | फ़ॉलो अप जवाब, सूचना |