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

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

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

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

Chrome

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

Node.js

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

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

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

Chrome से डीबग करना

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

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