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

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

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

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

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

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

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

आसान ऑटोमेशन

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

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

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

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

जटिल ऑटोमेशन

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

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

प्रोग्राम को लागू करने की प्रोसेस:

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

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

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

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

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

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

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

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

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