स्मार्ट होम ऐक्शन बनाने का तरीका सीखने के लिए, Google Home डेवलपर सेंटर में आपका स्वागत है. ध्यान दें: आप Actions कंसोल में कार्रवाइयां बनाना जारी रखेंगे.

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

संग्रह की मदद से व्यवस्थित रहें अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.

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

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

Node.js

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

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

का इस्तेमाल करके अपने डिवाइस को सामान्य कार्रवाई पर रीसेट करें.

Chrome से डीबग करना

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

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

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

Chrome

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

Node.js

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

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

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

डीबग करते समय ध्यान रखने वाली कुछ और चीज़ें भी हैं:

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