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

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

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

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

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

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

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

आसान ऑटोमेशन

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

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

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

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

ऐडवांस ऑटोमेशन

मान लें कि एक ऐसा ऐप्लिकेशन है जो मोशन का पता चलने पर, लाइटों के अपने-आप चालू होने की सुविधा बनाता है.

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

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

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

जेनेरिक ऑटोमेशन

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

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

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

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

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

इस तरह के ऑटोमेशन के लिए, Android के लिए Structure API, Android के लिए Device API, और Discovery API का इस्तेमाल करके, उपयोगकर्ता के घर के बारे में कई तरह का डेटा इकट्ठा करना होगा.

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