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

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

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

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

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

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

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

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

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

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

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

  1. Discovery API का इस्तेमाल करके, WindowCoveringDevice डिवाइसों की सूची इकट्ठा करें.
  2. अगर मोहल्ले का पता नहीं डाला गया है, तो उपयोगकर्ता को सूचना दें कि उसे मोहल्ले का पता डालना होगा. उदाहरण के लिए, GHA में. साथ ही, एक्ज़ीक्यूशन रोक दें.
  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
  • डिवाइसों के साथ कौनसे ट्रेट काम करते हैं
  • उन ट्रेट पर कौनसे स्टार्टर और कमांड उपलब्ध हैं
  • इन कमांड के पैरामीटर पर कौनसी पाबंदियां लागू हैं