अपने ऐप्लिकेशन की जांच करना और उसे डीबग करना

हमारा सुझाव है कि आप पहले बताए गए तरीके का इस्तेमाल करके, लोकल फ़ुलफ़िलमेंट के लिए ऐप्लिकेशन बनाएं. इसके बाद, अपने होस्टिंग एनवायरमेंट पर अपने स्मार्ट होम इंटिग्रेशन की जांच करने के लिए, यहां दिया गया तरीका अपनाएं:

  1. अपने खुद के होस्टिंग एनवायरमेंट में, वह एचटीएमएल पेज दिखाएं जो आपके लोकल फ़ुलफ़िलमेंट ऐप्लिकेशन को चलाता है. नीचे दिए गए स्निपेट में एक ऐसी स्टैटिक एचटीएमएल फ़ाइल का उदाहरण दिखाया गया है जो लोकल फ़ुलफ़िलमेंट ऐप्लिकेशन चलाती है.

    <html>
      <head>
        <!-- Local Home SDK -->
        <script src="//www.gstatic.com/eureka/smarthome/smarthome_sdk.js"></script>
        <!-- Local app under development -->
        <script src="local_execution.js"></script>
      </head>
    
    </html>
    
    
  2. डिवाइस कंट्रोल की जांच करें.

  3. Chrome से डीबग करें. ब्रेकपॉइंट और लॉग का इस्तेमाल करके, अपने इंटिग्रेशन से जुड़ी समस्याएं हल करें.

  4. अपने टाइपस्क्रिप्ट कोड में बदलाव करें और उसे कंपाइल करें. इसके बाद, यह तरीका दोहराएं.

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

डिवाइस कंट्रोल की जांच करें

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

यह जांच करने के लिए कि डिवाइस कंट्रोल, स्थानीय नियमों के मुताबिक है या नहीं, यह तरीका अपनाएं:

Chrome

  1. Actions कंसोल में अपना स्मार्ट होम प्रोजेक्ट खोलें.
  2. बाईं ओर मौजूद नेविगेशन में, कार्रवाइयां पर क्लिक करें.
  3. लोकल होम SDK टूल कॉन्फ़िगर करें (ज़रूरी नहीं) > Chrome के लिए अपना टेस्टिंग यूआरएल डालें में जाकर, डेवलपमेंट सर्वर का वह यूआरएल बताएं जो आपके लोकल फ़ुलफ़िलमेंट ऐप्लिकेशन को चलाने वाला एचटीएमएल दिखाता है.
  4. सेव करें पर क्लिक करें. आपके कंसोल के बदलावों को लागू करने में Google को 30 मिनट लग सकते हैं.
  5. अपने टेस्ट Google Home या Google Nest डिवाइस को फिर से चालू करें.
  6. अपने स्मार्ट डिवाइस को निर्देश दे सकते हैं. उदाहरण के लिए, अगर आपका डिवाइस OnOff सुविधा को लागू करता है, तो आप कह सकते हैं, "Ok Google, लाइटें चालू करो."

Node.js

  1. Actions कंसोल में अपना स्मार्ट होम प्रोजेक्ट खोलें.
  2. बाईं ओर मौजूद नेविगेशन में, कार्रवाइयां पर क्लिक करें.
  3. लोकल होम SDK टूल कॉन्फ़िगर करें (ज़रूरी नहीं) > नोड के लिए टेस्ट यूआरएल डालें में जाकर, डेवलपमेंट सर्वर का वह यूआरएल डालें जो आपके लोकल फ़ुलफ़िलमेंट ऐप्लिकेशन को चलाने वाले JavaScript को दिखाता है.
  4. सेव करें पर क्लिक करें. आपके कंसोल के बदलावों को लागू करने में Google को 30 मिनट लग सकते हैं.
  5. अपने टेस्ट Google Home या Google Nest डिवाइस को फिर से चालू करें.
  6. अपने स्मार्ट डिवाइस को निर्देश दे सकते हैं. उदाहरण के लिए, अगर आपका डिवाइस OnOff सुविधा को लागू करता है, तो आप कह सकते हैं, "Ok Google, लाइटें चालू करो."

आपका डिवाइस किस रनटाइम का इस्तेमाल करता है, इस बारे में ज़्यादा जानकारी के लिए ऐसे डिवाइस जिन पर ऐप्लिकेशन काम करता है देखें.

Chrome से डीबग करना

आप Chrome DevTools का इस्तेमाल करके, स्थानीय तौर पर ग्राहक को आइटम भेजने वाले ऐप्लिकेशन को डीबग कर सकते हैं. डीबग करने से पहले, पक्का करें कि आपका एनवायरमेंट सही तरीके से सेट अप किया गया है:

  • आपने कंसोल में अपने डेवलपमेंट यूआरएल को ऐसे यूआरएल पर सेट किया है जिसे Google Home या Google Nest डिवाइस से ऐक्सेस किया जा सकता है (लोकल एरिया नेटवर्क पर या इंटरनेट के ज़रिए),
  • आपकी मशीन उसी लोकल एरिया नेटवर्क से कनेक्ट है जिससे Google Home या Google Nest डिवाइस को टेस्ट किया जा रहा है.
  • आपका नेटवर्क, डिवाइसों के बीच पैकेट ब्लॉक नहीं करता है.
  • आपने एक ही Google खाते से, Actions कंसोल और Google Home या Google Nest डिवाइस पर लॉग इन किया है.
  • आपने क्लाउड फ़ुलफ़िलमेंट में सिंक के जवाब को अपडेट कर दिया है. इसे otherDeviceIds फ़ील्ड में कम से कम एक मान्य वैल्यू देनी चाहिए.
  • आपने Actions कंसोल में स्कैन किए जाने वाले कॉन्फ़िगरेशन की सही जानकारी डाली है.

स्थानीय फ़ुलफ़िलमेंट ऐप्लिकेशन को Chrome DevTools डीबगर से जोड़ने के लिए, यह तरीका अपनाएं:

Chrome

  1. अपनी लोकल डेवलपमेंट मशीन में, Google Chrome ब्राउज़र इंस्टॉल करें और लॉन्च करें.
  2. अपने Chrome ब्राउज़र के पता फ़ील्ड में, chrome://inspect#devices टाइप करके Chrome इंस्पेक्टर लॉन्च करें. आपको पेज पर डिवाइसों की एक सूची दिखेगी. साथ ही, आपकी एचटीएमएल फ़ाइल, टेस्ट Google Home या Google Nest डिवाइस के नाम के नीचे दिखेगी.
  3. Chrome DevTools को लॉन्च करने के लिए, अपने एचटीएमएल के नीचे मौजूद नीले रंग के जांच करें लिंक पर क्लिक करें. कंसोल टैब पर स्विच करें. लोकल होम प्लैटफ़ॉर्म, कंसोल लॉग में आपके ऐप्लिकेशन का वर्शन और Local Home SDK वर्शन दिखाता है. अगर आपको लॉग दिखता है, तो इसका मतलब है कि Google ने आपका ऐप्लिकेशन लोड कर लिया है और वह उससे कनेक्ट हो गया है. अगर नहीं, तो अपना Google Home या Google Nest डिवाइस फिर से चालू करें.
  4. इमेज 1: chrome://inspect में स्थानीय फ़ुलफ़िलमेंट ऐप्लिकेशन.

Node.js

  1. अपनी लोकल डेवलपमेंट मशीन में, Google Chrome ब्राउज़र इंस्टॉल करें और लॉन्च करें.
  2. अपने टेस्ट डिवाइस का लोकल आईपी पता पता करें.
  3. अपने Chrome ब्राउज़र के पता फ़ील्ड में, chrome://inspect#devices टाइप करके Chrome इंस्पेक्टर लॉन्च करें.
  4. टारगेट डिस्कवरी सेटिंग खोलने के लिए, कॉन्फ़िगर करें... चुनें.
  5. दूसरी इमेज: chrome://inspect में, टारगेट डिस्कवरी सेटिंग.
  6. सूची में DEVICE_IP_ADDRESS:9222 डालें और हो गया पर क्लिक करें.
  7. Chrome DevTools को लॉन्च करने के लिए, अपनी स्क्रिप्ट में मौजूद नीले रंग के जांच करें लिंक पर क्लिक करें. कंसोल टैब पर स्विच करें. लोकल होम प्लैटफ़ॉर्म, कंसोल लॉग में आपके ऐप्लिकेशन का वर्शन और Local Home SDK वर्शन दिखाता है. अगर आपको लॉग दिखता है, तो इसका मतलब है कि Google ने आपका ऐप्लिकेशन लोड कर लिया है और वह उससे कनेक्ट हो गया है. अगर नहीं, तो अपना Google Home या Google Nest डिवाइस फिर से चालू करें.

आपका डिवाइस किस रनटाइम का इस्तेमाल करता है, इस बारे में ज़्यादा जानकारी के लिए ऐसे डिवाइस जिन पर ऐप्लिकेशन काम करता है देखें.

डीबग करने से जुड़ी सलाह

डीबग करते समय इन बातों का ध्यान रखें:

  • एक ही लोकल नेटवर्क पर, अपने टेस्ट खाते से कई Google Home या Google Nest डिवाइस लिंक न करें. आपके पास यह कंट्रोल करने का विकल्प नहीं होगा कि कौनसे Google Home या Google Nest डिवाइस को, स्थानीय तौर पर ऑर्डर पूरा करने के लिए निर्देशों का इस्तेमाल करके टारगेट किया जाएगा.
  • अपने डेवलपमेंट यूआरएल से नए कोड के साथ स्थानीय फ़ुलफ़िलमेंट ऐप्लिकेशन कंटेनर को फिर से लोड करने के लिए, Chrome DevTools में पेज को रीफ़्रेश करें. इससे लोकल Home प्लैटफ़ॉर्म रीसेट नहीं होता. लोकल होम प्लैटफ़ॉर्म को रीसेट नहीं किया जाता. यह प्लैटफ़ॉर्म इंटेंट (जैसे, IDENTIFY) को आपके लोकल फ़ुलफ़िलमेंट ऐप्लिकेशन में फिर से ट्रिगर करने के लिए ज़रूरी हो सकता है. लोकल होम प्लैटफ़ॉर्म को रीसेट करने के लिए, अपने Google Home या Google Nest डिवाइस को फिर से चालू करें.
  • पक्का करें कि आपका JavaScript ऐप्लिकेशन बिना किसी गड़बड़ी के लोड हो रहा हो. ऐसा करने के लिए, DevTools पेज का कंसोल सेक्शन देखें. अगर कोई समस्या आती है, तो आपको इस तरह का मैसेज दिखेगा: Uncaught TypeError: Cannot read property ‘open’ of null.
  • IDENTIFY जवाब का verificationId, SYNC जवाब के otherDeviceIds में से किसी एक से मेल खाना चाहिए.
  • EXECUTE हैंडलर के लिए, पक्का करें कि आपके एचटीटीपी, टीसीपी या यूडीपी निर्देश आपके डिवाइस को मिल सकते हों और ये उम्मीद के मुताबिक काम कर रहे हों.
  • पक्का करें कि हैंडलर से Promise दिखाए गए हों.
  • मेमोरी में ग्लोबल स्थिति को बनाए रखने से बचें. ऐप्लिकेशन का लाइफ़साइकल देखें.
  • आपके लोकल फ़ुलफ़िलमेंट ऐप्लिकेशन से मिली गड़बड़ियां, आपके प्रोजेक्ट के गड़बड़ी लॉग में दिखेंगी.

तैयार करें और प्रोडक्शन के लिए लॉन्च करें

जब आप अपना स्मार्ट होम ऐक्शन लॉन्च करने के लिए तैयार हों, तब यह तरीका अपनाएं:

  1. टर्मिनल खोलें. अपनी प्रोजेक्ट डायरेक्ट्री में, npm run build कमांड चलाएं. यह निर्देश, dist डायरेक्ट्री में आपके ऐप्लिकेशन के लिए ये JavaScript बंडल जनरेट करता है:
    project-directory/
    └── dist
     ├── web
     │    └── bundle.js
     └── node
          └── bundle.js
    
  2. कंसोल में, डेवलप करें > कार्रवाइयां पर क्लिक करके अपना JavaScript ऐप्लिकेशन अपलोड करें. लोकल होम SDK टूल कॉन्फ़िगर करें सेक्शन में, JavaScript फ़ाइलें अपलोड करें पर क्लिक करें.
    इमेज 3: अपना JavaScript ऐप्लिकेशन अपलोड करें.
  3. फ़ाइलें अपलोड करें डायलॉग में, पहले से जनरेट की गई बंडल फ़ाइलें अपलोड करें. पक्का करें कि बंडल फ़ाइलों (नोड, वेब) के दोनों वर्शन अपलोड किए गए हों. इससे आपकी सेट की गई कार्रवाई को ऐसे सभी रनटाइम एनवायरमेंट पर सही से कॉन्फ़िगर किया गया होगा जो लोकल फ़ुलफ़िलमेंट के साथ काम करते हैं.
    1. अपनी JavaScript टारगेटिंग Node.js को अपलोड करें: dist/node डायरेक्ट्री से bundle.js फ़ाइल अपलोड करें.
    2. Chrome (ब्राउज़र) को टारगेट करने वाली अपनी JavaScript अपलोड करें: dist/web डायरेक्ट्री से bundle.js फ़ाइल अपलोड करें.
  4. Assistant की सुविधा वाले डिवाइस पर अपनी सेट की गई कार्रवाई की जाँच करें, ताकि इस बात की पुष्टि की जा सके कि वह प्रोडक्शन एनवायरमेंट में उम्मीद के मुताबिक काम करती है या नहीं. ज़्यादा जानने के लिए, अपने स्मार्ट होम ऐक्शन की जांच करना और उसे शेयर करना लेख पढ़ें.
  5. जब आप अपनी सेट की गई कार्रवाई से संतुष्ट हो जाएं, तो उसे Google को प्रोडक्शन के लिए डिप्लॉयमेंट के लिए सबमिट करें. इसके लिए, अपना स्मार्ट होम ऐक्शन लॉन्च करें में दिए गए निर्देशों का पालन करें. इसमें, खुद से जांच करने और सर्टिफ़िकेशन के अनुरोध से जुड़े चरणों को पूरा करना भी शामिल है.