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

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

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

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

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

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

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

आसान ऑटोमेशन

मान लें कि आपको एक ऐसा ऐप्लिकेशन लिखना है जो सुबह 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
  • डिवाइसों के साथ काम करने वाली कौनसी ट्रेट उपलब्ध हैं
  • उन ट्रेट के लिए कौनसे स्टार्टर और निर्देश उपलब्ध हैं
  • इन कमांड के पैरामीटर पर कौनसी पाबंदियां लागू होती हैं