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

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

  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. अपने TypeScript कोड में बदलाव करें और उसे कंपाइल करें. इसके बाद, यह तरीका दोहराएं.

इस बिल्ड और टेस्ट की प्रोसेस को दोहराकर, अपने बदलावों को तुरंत देखा जा सकता है. साथ ही, अपने कोड में मौजूद समस्याओं को आसानी से पकड़ा और डीबग किया जा सकता है.

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

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

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

Chrome

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

Node.js

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

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

निर्देश का इस्तेमाल करें.

Chrome से डीबग करना

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

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

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

Chrome

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

Node.js

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

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

डीबग करने के बारे में सलाह

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

  • एक ही लोकल नेटवर्क पर, एक से ज़्यादा Google Home या Google Nest डिवाइसों को अपने टेस्ट खाते से लिंक न करें. स्थानीय निर्देशों की मदद से, यह कंट्रोल नहीं किया जा सकेगा कि किस Google Home या Google Nest डिवाइस को टारगेट किया जाए.
  • अपने डेवलपमेंट यूआरएल से नए कोड के साथ, स्थानीय फ़ुलफ़िलमेंट ऐप्लिकेशन कंटेनर को फिर से लोड करने के लिए, Chrome DevTools में पेज को रीफ़्रेश करें. इससे Local Home प्लैटफ़ॉर्म रीसेट नहीं होता. यह प्लैटफ़ॉर्म, आपके स्थानीय फ़ुलफ़िलमेंट ऐप्लिकेशन में प्लैटफ़ॉर्म इंटेंट (जैसे, IDENTIFY) को फिर से ट्रिगर करने के लिए ज़रूरी हो सकता है. Local Home प्लैटफ़ॉर्म को रीसेट करने के लिए, अपने 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 ऐप्लिकेशन अपलोड करें. Local Home SDK टूल कॉन्फ़िगर करें सेक्शन में, JavaScript फ़ाइलें अपलोड करें पर क्लिक करें.
    तीसरा इमेज: अपना JavaScript ऐप्लिकेशन अपलोड करें.
  3. फ़ाइलें अपलोड करें डायलॉग में, वे बंडल फ़ाइलें अपलोड करें जिन्हें आपने पहले जनरेट किया था. बंडल फ़ाइलों के दोनों वर्शन (Node, वेब) अपलोड करना न भूलें, ताकि आपका ऐक्शन उन सभी रनटाइम एनवायरमेंट में सही तरीके से काम करे जिनमें स्थानीय तरीके से ऑर्डर पूरा करने की सुविधा काम करती है.
    1. Node.js को टारगेट करने वाला JavaScript अपलोड करना: dist/node डायरेक्ट्री से bundle.js फ़ाइल अपलोड करें.
    2. Chrome (ब्राउज़र) को टारगेट करने वाला JavaScript अपलोड करें: dist/web डायरेक्ट्री से bundle.js फ़ाइल अपलोड करें.
  4. Assistant की सुविधा वाले डिवाइस पर अपनी कार्रवाई की जांच करें, ताकि यह पुष्टि की जा सके कि वह प्रोडक्शन एनवायरमेंट में उम्मीद के मुताबिक काम करती है या नहीं. ज़्यादा जानने के लिए, अपनी स्मार्ट होम ऐक्शन को टेस्ट करना और शेयर करना लेख पढ़ें.
  5. जब आपको यह पक्का हो जाए कि आपकी कार्रवाई सही तरीके से काम कर रही है, तो अपना स्मार्ट होम ऐक्शन लॉन्च करें में दिए गए निर्देशों का पालन करके, उसे Google को सबमिट करें, ताकि उसे प्रोडक्शन में डिप्लॉय किया जा सके. इसमें खुद की जांच करने और सर्टिफ़िकेशन का अनुरोध करने के चरण पूरे करने शामिल हैं.