আপনার অ্যাপ টেস্ট ও ডিবাগ করা

আমরা সাজেস্ট করি যে আপনি আগে বর্ণিত ধাপগুলি ব্যবহার করে আপনার লোকাল ফুলফিলমেন্ট অ্যাপ তৈরি করুন, তারপর নিম্নলিখিত ধাপগুলি ব্যবহার করে আপনার নিজস্ব হোস্টিং পরিবেশে আপনার স্মার্ট হোম ইন্টিগ্রেশন পরীক্ষা করুন:

  1. আপনার নিজের হোস্টিং এনভায়রনমেন্টে, HTML পৃষ্ঠাটি পরিবেশন করুন যা আপনার লোকাল ফুলফিলমেন্ট অ্যাপ চালায়। নিম্নলিখিত স্নিপেটটি একটি স্ট্যাটিক HTML ফাইলের উদাহরণ দেখায় যা আপনার লোকাল ফুলফিলমেন্ট অ্যাপ চালায়।

    <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-এ, আপনাকে আপনার ওয়েব অ্যাপের URL উল্লেখ করতে হবে, যা HTML প্রদান করে যা স্থানীয় ফুলফিলমেন্টের সময় Google Home বা Google Nest ডিভাইসে লোড হয়।

লোকাল ফুলফিলমেন্টের মাধ্যমে ডিভাইস কন্ট্রোল পরীক্ষা করতে, এই ধাপগুলি অনুসরণ করুন:

Chrome

  1. Google Home Developer Console-এ আপনার ক্লাউড-টু-ক্লাউড ইন্টিগ্রেশনের সেট-আপ ও কনফিগারেশন পৃষ্ঠায়, স্ক্রল করে লোকাল ফুলফিলমেন্ট বিকল্পে যান এবং সেটিং টগল করে চালু করুন।
  2. URL পরীক্ষা করা > Chrome-এর জন্য URL পরীক্ষা করা বিকল্পের অধীনে, ডেভেলপমেন্ট সার্ভার URL উল্লেখ করুন যা আপনার স্থানীয় ফুলফিলমেন্ট অ্যাপ রান করে এমন HTML প্রদান করে।
  3. সেভ করুন বিকল্পে ক্লিক করুন। Google-এর আপনার কনসোল পরিবর্তনগুলি প্রচার করতে ৩০ মিনিট পর্যন্ত সময় লাগতে পারে।
  4. আপনার টেস্ট Google Home বা Google Nest ডিভাইস রিবুট করুন।
  5. আপনার স্মার্ট ডিভাইসকে কমান্ড দিন। যেমন, আপনার ডিভাইসে OnOff ট্রেট প্রয়োগ করা থাকলে, আপনি বলতে পারেন, "Ok Google, আলো জ্বালাও।"

Node.js

  1. Google Home Developer Console-এর সেট-আপ ও কনফিগারেশন পৃষ্ঠায়, স্ক্রল করে লোকাল ফুলফিলমেন্ট বিকল্পে যান এবং সেটিং টগল করে চালু করুন।
  2. URL পরীক্ষা করা হচ্ছে > Node-এর জন্য URL পরীক্ষা করা হচ্ছে বিকল্পের অধীনে, ডেভেলপমেন্ট সার্ভার URL উল্লেখ করুন যা আপনার লোকাল ফুলফিলমেন্ট অ্যাপ রান করে এমন জাভাস্ক্রিপ্ট প্রদান করে।
  3. সেভ করুন বিকল্পে ক্লিক করুন। Google-এর আপনার কনসোল পরিবর্তনগুলি প্রচার করতে ৩০ মিনিট পর্যন্ত সময় লাগতে পারে।
  4. আপনার টেস্ট Google Home বা Google Nest ডিভাইস রিবুট করুন।
  5. আপনার স্মার্ট ডিভাইসকে কমান্ড দিন। যেমন, আপনার ডিভাইসে OnOff ট্রেট প্রয়োগ করা থাকলে, আপনি বলতে পারেন, "Ok Google, আলো জ্বালাও।"

আপনার ডিভাইসে কোন রানটাইম ব্যবহার করা হয় সেই সম্পর্কে আরও জানতে, কাজ করে এমন ডিভাইস দেখুন।

Chrome থেকে ডিবাগ করুন

Chrome DevTools ব্যবহার করে আপনি লোকাল ফুলফিলমেন্ট অ্যাপ ডিবাগ করতে পারবেন। ডিবাগ করার আগে, আপনার এনভায়রনমেন্ট সঠিকভাবে সেট-আপ করা আছে কিনা তা নিশ্চিত করুন:

  • আপনি কনসোলে আপনার ডেভেলপমেন্ট URL এমন একটি URL-এ সেট করেছেন যা 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 ইন্সপেক্টর চালু করুন এটি লিখে: chrome://inspect#devices. আপনি পৃষ্ঠায় ডিভাইসের তালিকা দেখতে পাবেন এবং আপনার HTML ফাইলটি আপনার টেস্ট Google Home বা Google Nest ডিভাইসের নামের অধীনে তালিকাভুক্ত করা উচিত।
  3. Chrome DevTools চালু করতে আপনার HTML-এর নিচে নীল রঙের 'পরীক্ষা করুন' লিঙ্কে ক্লিক করুন। কনসোল ট্যাবে পাল্টে নিন। Local Home প্ল্যাটফর্ম কনসোল লগে আপনার অ্যাপ ভার্সন ও Local Home SDK ভার্সন আউটপুট করে। আপনি লগ দেখতে পেলে, তার অর্থ হল Google আপনার অ্যাপ সফলভাবে লোড করেছে এবং এটির সাথে কানেক্ট করতে পারছে। যদি না হয়, তাহলে আপনার Google Home বা Google Nest ডিভাইস রিবুট করুন।
  4. ছবি ১: chrome://inspect-এ লোকাল ফুলফিলমেন্ট অ্যাপ।

Node.js

  1. আপনার লোকাল ডেভেলপমেন্ট মেশিনে, Google Chrome ব্রাউজার ইনস্টল ও লঞ্চ করুন।
  2. আপনার টেস্ট ডিভাইসের লোকাল IP অ্যাড্রেস নির্ধারণ করুন।
  3. আপনার Chrome ব্রাউজারের অ্যাড্রেস ফিল্ডে, Chrome ইন্সপেক্টর চালু করুন এটি লিখে: chrome://inspect#devices.
  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 ডিভাইস টার্গেট করা হয়েছে তা আপনি নিয়ন্ত্রণ করতে পারবেন না।
  • আপনার ডেভেলপমেন্ট URL থেকে লেটেস্ট কোড সহ আপনার লোকাল ফুলফিলমেন্ট অ্যাপ কন্টেনার আবার লোড করতে Chrome DevTools-এ পৃষ্ঠাটি রিফ্রেশ করুন। এটি লোকাল হোম প্ল্যাটফর্ম রিসেট করে না, যা আপনার লোকাল ফুলফিলমেন্ট অ্যাপে প্ল্যাটফর্ম ইনটেন্ট (যেমন IDENTIFY) আবার ট্রিগার করার জন্য প্রয়োজন হতে পারে। লোকাল হোম প্ল্যাটফর্ম রিসেট করতে, আপনার Google Home বা Google Nest ডিভাইস রিবুট করুন।
  • আপনার জাভাস্ক্রিপ্ট অ্যাপ কোনও সমস্যা ছাড়াই লোড হচ্ছে কিনা তা চেক করুন। এটি করতে, DevTools পৃষ্ঠার কনসোল বিভাগ চেক করুন। কোনও সমস্যা হলে, আপনি এই ধরনের মেসেজ দেখতে পাবেন: 'Uncaught TypeError: Cannot read property 'open' of null.'
  • IDENTIFY উত্তরের verificationId অবশ্যই SYNC উত্তরের otherDeviceIds-এর সাথে মিলতে হবে।
  • EXECUTE হ্যান্ডলারের জন্য, আপনার HTTP, TCP বা UDP কমান্ড আপনার ডিভাইস দ্বারা রিসিভ করা যেতে পারে এবং প্রত্যাশা অনুযায়ী কাজ করে কিনা তা নিশ্চিত করুন।
  • হ্যান্ডলার থেকে Promise রিটার্ন করতে ভুলবেন না।
  • মেমরিতে গ্লোবাল স্টেট বজায় রাখা এড়িয়ে চলুন। অ্যাপ্লিকেশন লাইফসাইকেল দেখুন।
  • আপনার স্থানীয় ফুলফিলমেন্ট অ্যাপের মাধ্যমে থ্রো করা সমস্যা আপনার প্রোজেক্টের সমস্যার লগে দেখা যাবে।

প্রোডাকশনের জন্য প্রস্তুত ও লঞ্চ করা

আপনার স্মার্ট হোম অ্যাকশন লঞ্চ করার জন্য প্রস্তুত হলে, এই ধাপগুলি অনুসরণ করুন:

  1. টার্মিনাল খুলুন। আপনার প্রোজেক্ট ডিরেক্টরিতে, npm run build কমান্ড রান করুন। এই কমান্ড আপনার অ্যাপের জন্য dist ডিরেক্টরির অধীনে নিম্নলিখিত জাভাস্ক্রিপ্ট বান্ডেল তৈরি করে:
    project-directory/
    └── dist
     ├── web
     │    └── bundle.js
     └── node
          └── bundle.js
    
  2. Google Home Developer Console-এর সেট-আপ ও কনফিগারেশন পৃষ্ঠায়, স্ক্রল করে লোকাল ফুলফিলমেন্ট বিকল্পে যান এবং সেটিং টগল করে চালু করুন।
  3. জাভাস্ক্রিপ্ট আপলোড করুন বোতাম ব্যবহার করে, আপনার আগে তৈরি করা বান্ডেল ফাইল আপলোড করুন।
    ছবি ৩: আপনার JavaScript অ্যাপ আপলোড করুন।
    বান্ডেল ফাইলের (Node, Web) দুটি ভার্সনই আপলোড করতে ভুলবেন না যাতে লোকাল ফুলফিলমেন্ট সাপোর্ট করে এমন সব রানটাইম এনভায়রনমেন্টে আপনার অ্যাকশন সঠিকভাবে কাজ করার জন্য কনফিগার করা থাকে।
    1. Node.js টার্গেট করে আপনার জাভাস্ক্রিপ্ট আপলোড করুন: dist/node ডিরেক্টরি থেকে bundle.js ফাইল আপলোড করুন।
    2. Chrome (ব্রাউজার) টার্গেট করে আপনার জাভাস্ক্রিপ্ট আপলোড করুন: dist/web ডিরেক্টরি থেকে bundle.js ফাইল আপলোড করুন।
  4. প্রোডাকশন এনভায়রনমেন্টে আপনার অ্যাকশন প্রত্যাশা অনুযায়ী কাজ করছে কিনা তা যাচাই করতে, অ্যাসিস্ট্যান্ট চালু থাকা ডিভাইসে অ্যাকশনটি পরীক্ষা করুন। আরও জানতে, আপনার স্মার্ট হোম অ্যাকশন টেস্ট ও শেয়ার করুন দেখুন।
  5. আপনার অ্যাকশন কীভাবে কাজ করছে তা নিয়ে আপনি সন্তুষ্ট হলে, আপনার স্মার্ট হোম অ্যাকশন লঞ্চ করুন লিঙ্কে দেওয়া নির্দেশাবলী অনুসরণ করে প্রোডাকশন ডিপ্লয়মেন্টের জন্য এটি Google-এ জমা দিন। এর মধ্যে সেল্ফ-টেস্ট ও সার্টিফিকেশনের অনুরোধ সংক্রান্ত ধাপ সম্পূর্ণ করা অন্তর্ভুক্ত।