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

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

  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. यूआरएल की जांच की जा रही है > नोड के लिए यूआरएल की जांच की जा रही है में जाकर, डेवलपमेंट सर्वर का वह यूआरएल डालें जो आपके लोकल फ़ुलफ़िलमेंट ऐप्लिकेशन को चलाने वाली JavaScript को उपलब्ध कराता है.
  3. सेव करें पर क्लिक करें. Google को आपके कंसोल में किए गए बदलावों को लागू करने में 30 मिनट लग सकते हैं.
  4. टेस्टिंग के लिए इस्तेमाल किए जा रहे Google Home या Google Nest डिवाइस को रीबूट करें.
  5. अपने स्मार्ट डिवाइस को कोई निर्देश दें. उदाहरण के लिए, अगर आपके डिवाइस में OnOff ट्रेट लागू है, तो "Ok Google, लाइटें चालू करो" कहा जा सकता है.

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

निर्देश का इस्तेमाल करके, अपने डिवाइस को सामान्य मोड पर रीसेट करना चाहिए

Chrome से डीबग करना

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

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

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

Chrome

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