Android पर ऑटोमेशन डिज़ाइन करना

ऑटोमेशन एपीआई का इस्तेमाल शुरू करने से पहले, आपको अपने ऑटोमेशन डिज़ाइन करने चाहिए.

हर ऑटोमेशन के लिए ये पैरामीटर तय करें:

  • वे स्थितियां जिनमें उपयोगकर्ता को ऑटोमेशन का सुझाव दिया जाना चाहिए. उदाहरण के लिए, अगर किसी उपयोगकर्ता ने हाल ही में अपने होम में तीन नई लाइटें जोड़ी हैं, तो हो सकता है कि उसे लाइटों को कंट्रोल करने के लिए, ऑटोमेशन की कोई खास सुविधा पसंद आए.
  • ऑटोमेशन के लिए किस तरह के डिवाइसों की ज़रूरत है. उदाहरण के लिए, अगर उपयोगकर्ता ने हाल ही में अपने घर में तीन नई लाइटें जोड़ी हैं, तो हो सकता है कि उसे लाइटों को कंट्रोल करने के लिए, ऑटोमेशन की सुविधा में दिलचस्पी हो. लाइट डिवाइस के उदाहरणों में OnOffLightDevice, ColorTemperatureLightDevice, DimmableLightDevice या ExtendedColorLightDevice शामिल हैं.
  • ऑटोमेशन के लिए, किन ट्रेट एट्रिब्यूट और कमांड की ज़रूरत है. साथ ही, क्या वे Android पर Automation API के साथ काम करते हैं.
  • वे खूबियां जो ऑटोमेशन को स्टार्टर के तौर पर चालू करें. स्टार्टर के बारे में Android पर ऑटोमेशन के कॉम्पोनेंट में बताया गया है.
  • अतिरिक्त शर्तें, जिनसे यह तय होता है कि ऑटोमेशन को असल में चलना चाहिए या नहीं और कौनसी कार्रवाइयां की जानी चाहिए.
  • ऑटोमेशन के लिए एक्ज़ीक्यूशन फ़्लो. क्या इसे क्रम से या एक साथ चलाना चाहिए? क्या आपको एक से ज़्यादा लॉजिक पाथ की ज़रूरत है?

डिज़ाइन करते समय, ऑटोमेशन के फ़्लो को नोड के हिसाब से डायग्राम में दिखाना मददगार हो सकता है. इसमें हर चरण के लिए ज़रूरी लॉजिक शामिल होना चाहिए.

ऑटोमेशन डिज़ाइन करने के बाद, उसे बनाने के लिए ऑटोमेशन डीएसएल का इस्तेमाल करें. ऑटोमेशन की सुविधा, एक "टेंप्लेट" की तरह काम करती है. इसमें मौजूद स्ट्रक्चर और डिवाइस, प्लेसहोल्डर होते हैं. जब कोई उपयोगकर्ता इस सुविधा को "अपनाता" है, तो ये प्लेसहोल्डर उसके स्ट्रक्चर और डिवाइसों की जानकारी से भर जाते हैं.

होम एपीआई का इस्तेमाल करके, कोई ऐप्लिकेशन अलग-अलग तरह के ऑटोमेशन बना सकता है. इनके बारे में यहां बताया गया है. इन उदाहरणों से जुड़े कोड के अंश देखने के लिए, ऑटोमेशन बनाएं पेज पर जाएं.

सिंपल ऑटोमेशन

मान लें कि आपको एक ऐसा ऐप्लिकेशन बनाना है जो सुबह 8:00 बजे ब्लाइंड्स को ऊपर करने वाला ऑटोमेशन बनाता है. इसके लिए, ऐप्लिकेशन को होम स्ट्रक्चर में मौजूद उन ब्लाइंड (WindowCoveringDevice डिवाइस टाइप वाले डिवाइस) की सूची चाहिए जिनमें ऑटोमेशन की सुविधा काम करती हो. यह सूची, Discovery API से मिल सकती है.

कुछ ऑटोमेशन को किसी तय समय पर चलाना ज़रूरी होता है. ऐसे ऑटोमेशन के लिए, आपको यह पक्का करना होगा कि उपयोगकर्ता ने अपने चुने गए स्ट्रक्चर के लिए, मोहल्ले का पता असाइन किया हो. यह पता, स्ट्रक्चर बनाते समय या Google Home app (GHA) में असाइन किया जा सकता है. ऐसा न करने पर, ऑटोमेशन को उस टाइम ज़ोन की जानकारी नहीं मिलेगी जिसमें उसे चलाया जाना है. Discovery API की मदद से, यह पता लगाया जा सकता है कि स्ट्रक्चर को कोई पता असाइन किया गया है या नहीं.

इसलिए, एक्ज़ीक्यूशन फ़्लो कुछ ऐसा दिखेगा:

  1. Discovery API का इस्तेमाल करके, WindowCoveringDevice डिवाइसों की सूची इकट्ठा करें.
  2. अगर मोहल्ले का पता नहीं भरा गया है, तो उपयोगकर्ता को बताएं कि उसे मोहल्ले का पता देना होगा. उदाहरण के लिए, GHA में. इसके बाद, प्रोसेस को रोक दें.
  3. इसके अलावा, ऑटोमेशन को तय करें:
    1. ऑटोमेशन को सुबह 8:00 बजे चालू करें.
    2. हर ब्लाइंड के लिए, WindowCovering trait का upOrOpen कमांड कॉल करें.

जटिल ऑटोमेशन

मान लें कि कोई ऐप्लिकेशन, एक ऐसा ऑटोमेशन बनाता है जो हलचल का पता चलने पर लाइटों को ब्लिंक करने के लिए ट्रिगर करता है.

इस ऐप्लिकेशन को लागू करने के लिए, सबसे पहले यह पता लगाना होगा कि उपयोगकर्ता के घर में कौनसी लाइटें उपलब्ध हैं. इसके लिए, Discovery API का इस्तेमाल किया जाता है. इस जानकारी की मदद से, आपका ऐप्लिकेशन अब उपलब्ध लाइटें दिखा सकता है. साथ ही, उपयोगकर्ता को यह चुनने की अनुमति दे सकता है कि उसे कौनसी लाइटें ब्लिंक करनी हैं.

एक्ज़ीक्यूशन फ़्लो:

  1. Discovery API का इस्तेमाल करके, स्ट्रक्चर में मौजूद लाइट डिवाइसों की सूची इकट्ठा करें. इसमें ऐसे डिवाइस शामिल होंगे जिनका टाइप OnOffLightDevice, ColorTemperatureLightDevice, DimmableLightDevice या ExtendedColorLightDevice होगा.
  2. ब्लिंक करने वाली लाइटों को चुनने का विकल्प दें. इसके लिए, कस्टम सेटिंग पैनल का इस्तेमाल किया जा सकता है.
  3. ऑटोमेशन तय करें:
    1. जब भी कोई व्यक्ति घर से बाहर जाए या घर में आए, तब ऑटोमेशन शुरू करें. इसके लिए, AreaPresenceState को मॉनिटर करें.
    2. अगर presenceState से पता चलता है कि स्ट्रक्चर में कोई मौजूद है, तो चुनी गई लाइटें ब्लिंक करें.

सामान्य ऑटोमेशन

ज़्यादा बेहतर ऑटोमेशन का उदाहरण देखने के लिए, ऐसा ऑटोमेशन देखें जो उपयोगकर्ता को ओपन-एंडेड ऑटोमेशन बनाने में मदद करता है. यह ऑटोमेशन, उपयोगकर्ता के घर में मौजूद किसी भी या सभी डिवाइसों के आधार पर बनाया जाता है.

ऐसा हो सकता है कि ऑटोमेशन, उपयोगकर्ता को सबसे पहले कोई स्ट्रक्चर चुनने के लिए कहे.

इसके बाद, ऑटोमेशन की सुविधा, स्ट्रक्चर में मौजूद सभी कमरों को आउटलाइन व्यू में दिखा सकती है. इस व्यू को बड़ा किया जा सकता है. किसी कमरे को बड़ा करने पर, उसमें मौजूद डिवाइस दिखते हैं. किसी डिवाइस को और बड़ा करने पर, उस डिवाइस पर काम करने वाले स्टार्टर और निर्देश दिखते हैं.

उपयोगकर्ता अपनी पसंद के मुताबिक डिवाइस, स्टार्टर, और कमांड चुन सकता है. इसके बाद, ऑटोमेशन की सुविधा उपयोगकर्ता को ऑटोमेशन बनाने में मदद करेगी.

जब उपयोगकर्ता के सभी विकल्प और फ़ैसले फ़ाइनल हो जाएंगे, तब ऑटोमेशन की सुविधा, ऑटोमेशन जनरेट करेगी और उसे उपयोगकर्ता के चुने गए स्ट्रक्चर में सेव करेगी.

मोटे तौर पर, इस तरह के ऑटोमेशन के लिए, Android के लिए स्ट्रक्चर एपीआई, Android के लिए डिवाइस एपीआई, और डिस्कवरी एपीआई का इस्तेमाल करके, उपयोगकर्ता के होम के बारे में डेटा के कई सेट इकट्ठा करने होंगे.

टेबल 1: Home APIs और उनसे मिलने वाली जानकारी
एपीआईजानकारी
Structure API
  • कौनसे स्ट्रक्चर उपलब्ध हैं
  • होम में कौन-कौनसे कमरे हैं
Device API
  • चुने गए स्ट्रक्चर में कौनसे डिवाइस हैं
  • वे डिवाइस किस कमरे में मौजूद हैं
Discovery API
  • डिवाइसों पर कौन-कौनसे trait इस्तेमाल किए जा सकते हैं
  • उन ट्रेट के लिए कौनसे स्टार्टर और निर्देश उपलब्ध हैं
  • इन कमांड के पैरामीटर पर क्या पाबंदियां हैं