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

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

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

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

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

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

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

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

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

ऐसे ऑटोमेशन के लिए जो किसी तय समय पर चालू होने चाहिए, आपको यह भी पक्का करना होगा कि उपयोगकर्ता ने Google Home ऐप्लिकेशन (GHA) में, अपने चुने हुए स्ट्रक्चर के लिए मोहल्ले का पता डाला हो. 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
  • डिवाइस, किन ट्रेट को इस्तेमाल करने की अनुमति देते हैं
  • उन ट्रेट पर कौनसे स्टार्टर और कमांड उपलब्ध हैं
  • इन कमांड के पैरामीटर पर कौनसी पाबंदियां लागू हैं