সমস্যা সমাধান

নমুনা অ্যাপ

হোম এপিআই ব্যবহার করার সময় কোনো সমস্যার সম্মুখীন হলে, আপনি আরও ডিবাগিংয়ের জন্য লগ সংগ্রহ করতে পারেন। মোবাইল ডিভাইস থেকে লগ সংগ্রহ করার জন্য এক্সকোড (Xcode) প্রয়োজন। আপনার যদি গুগলের সাহায্যের প্রয়োজন হয়, তবে আইওএস (iOS) ডিভাইস এবং হাব উভয় থেকেই লগ সংগ্রহ করুন এবং এর সাথে সম্পর্কিত প্রাসঙ্গিক তথ্য ও লগসহ ইস্যু ট্র্যাকারে একটি টিকিট খুলুন।

iOS লগ সংগ্রহ করুন

Xcode-সম্পর্কিত সমস্ত ধাপের জন্য আপনার মোবাইল ডিভাইসটি অবশ্যই আপনার লোকাল মেশিনের সাথে সংযুক্ত থাকতে হবে।

অ্যাপ লগ এবং এসডিকে লগ সরাসরি এক্সকোড কনসোলের মধ্যেই দেখা যায় এবং সংগ্রহ করা যায়। যখন আপনার মোবাইল ডিভাইসটি আপনার লোকাল মেশিনের সাথে সংযুক্ত থাকে এবং আপনি এক্সকোডের মাধ্যমে অ্যাপ্লিকেশনটি চালান, তখন কনসোলটি স্বয়ংক্রিয়ভাবে অ্যাপ্লিকেশন লেয়ার এবং ইন্টিগ্রেটেড হোম এসডিকে উভয় থেকেই স্ট্যান্ডার্ড আউটপুট (stdout) এবং স্ট্যান্ডার্ড এরর (stderr) লগ ক্যাপচার ও স্ট্রিম করে। এটি ডেভেলপমেন্ট এবং ডিবাগিংয়ের সময় রিয়েল-টাইম ইনিশিয়ালাইজেশন প্রক্রিয়া, এপিআই ইন্টারঅ্যাকশন এবং এসডিকে ইভেন্টগুলো মনিটর করার একটি সহজ উপায় প্রদান করে।

Xcode থেকে এক্সটেনশন লগ সংগ্রহ করা

হোম এপিআই ব্যবহার করার সময় কোনো সমস্যা হলে, পরবর্তী ডিবাগিংয়ের জন্য আপনি লগ সংগ্রহ করতে পারেন।

  1. Xcode-এ, উপরের মেনু বারে থাকা Debug- এ যান এবং Attach to Process by PID or Name-এ ক্লিক করুন।

    নমুনা অ্যাপ ডিবাগিং

  2. PID বা Process Name-এর অধীনে, MatterExtension নির্বাচন করুন এবং Attach-এ ক্লিক করুন।

    নমুনা অ্যাপ এক্সটেনশন সংযুক্ত করুন

  3. আপনি উপরের ডানদিকে ক্লিক করলে আইফোনে 'MatterAddDeviceExtension'-এর সাথে সংযুক্ত হওয়ার জন্য অপেক্ষা করা হচ্ছে (Waiting to attach to MatterAddDeviceExtension) দেখতে পাবেন।

    নমুনা অ্যাপের অপেক্ষারত অবস্থা

  4. ট্যাবে ক্লিক করুন এবং MatterAddExtension নির্বাচন করুন।

    নমুনা অ্যাপে ম্যাটার এক্সটেনশন যোগ করা হচ্ছে

  5. কনসোলটি এক্সটেনশন লগটি প্রদর্শন করবে।

শেরলগ: ক্রস-স্ট্যাক ইভেন্ট ট্রেসিং

শেরলগ হলো একটি রিয়েল-টাইম ট্রেসিং পরিষেবা যা গুগলের পরিকাঠামো এবং অংশীদার ক্লাউড পরিষেবাগুলোর মধ্যকার মিথস্ক্রিয়ার একটি সামগ্রিক চিত্র প্রদান করে।

পূর্বশর্ত : ট্রেসিং করার জন্য একটি শেয়ার করা, গুগল-সমন্বিত অ্যাকাউন্ট (যেমন, একটি GReg-নিবন্ধিত বা ডেমো অ্যাকাউন্ট) ব্যবহার করা আবশ্যক।

মূল উদ্দেশ্য : প্রোডাকশন কোডে কোনো পরিবর্তন না করেই কার্যকারিতা সংক্রান্ত ত্রুটি এবং ক্লাউড-টু-ক্লাউড (C2C) ইন্টিগ্রেশন সংক্রান্ত সমস্যা (যেমন, অ্যাকাউন্ট লিঙ্ক করতে ব্যর্থতা বা ডিভাইসের ভুল অবস্থা) ডিবাগ করা।

কার্যকারিতা : SYNC, EXECUTE, QUERY, এবং Account Linking ইন্টেন্টগুলোর জন্য সম্পূর্ণ RPC কল গ্রাফ, রিকোয়েস্ট/রেসপন্স পেলোড, এবং মেটাডেটা প্রদান করে।

ফুচিয়া হাব ডিভাইস লগ

এই পদ্ধতি ব্যবহার করে আপনি নিম্নলিখিত ফুশিয়া হাবগুলো থেকে লগ সংগ্রহ করতে পারেন: * গুগল নেস্ট হাব (২য় প্রজন্ম) * গুগল নেস্ট হাব ম্যাক্স

স্থানীয় লগ পুনরুদ্ধারের জন্য একটি হাব সক্রিয় করতে:

  1. আপনার ডিভাইসগুলোর সিরিয়াল নম্বর এবং মডেল উল্লেখ করে আপনার গুগল টেকনিক্যাল অ্যাকাউন্ট ম্যানেজার (TAM)-কে একটি ইমেল পাঠান। এই তথ্যগুলো ডিভাইসের নিচে ছোট অক্ষরে লেখা থাকে।
  2. একবার অনুমোদিত হলে, আপনাকে এই ধাপগুলো অনুসরণ করে ফিচারটি সক্রিয় করতে হবে:
    • কেন্দ্র থেকে:
      1. স্ক্রিনের উপর থেকে নিচে সোয়াইপ করুন
      2. সেটিংস ট্যাপ করুন
      3. ফুশিয়া ভার্সন খুঁজুন: নেস্ট হাব (২য় জেনারেশন)-এ, ডিভাইস ইনফরমেশন > টেকনিক্যাল ইনফরমেশন > ফুশিয়া ভার্সন- এ যান।
      4. ‘Fuchsia Version’-এ ৭ বার ট্যাপ করুন। এতে ডেভেলপার অপশন চালু হবে।
      5. শীর্ষ-স্তরের মেনুতে ফিরে যান
      6. "ডেভেলপার অপশন"-এ ট্যাপ করুন
      7. "পার্টনার লগিং"-এ ট্যাপ করুন
    • ফিচারটি ২৪ ঘণ্টার জন্য সক্রিয় থাকবে। এরপর, ধাপ ৫ থেকে লগিং ফিচারটি পুনরায় সক্রিয় করুন।
  3. আপনার হাবের আইপি অ্যাড্রেসটি সংগ্রহ করুন:
    • হাব থেকে, যদি এতে একটি স্ক্রিন থাকে:
      1. স্ক্রিনের উপর থেকে নিচে সোয়াইপ করুন
      2. সেটিংস ট্যাপ করুন
      3. ডিভাইসের আইপি অ্যাড্রেস খুঁজুন: নেস্ট হাব (২য় জেনারেশন)-এ, ডিভাইস ইনফরমেশন > টেকনিক্যাল ইনফরমেশন > আইপি অ্যাড্রেস- এ যান।
    • আপনার ফোনের গুগল হোম অ্যাপ (GHA) থেকে:
    • ডিভাইসের বিস্তারিত পৃষ্ঠাটি খুলতে ডিভাইসটিতে ট্যাপ করুন।
    • সেটিংস পৃষ্ঠাটি খুলতে সেটিংস ট্যাপ করুন।
    • ডিভাইসের আইপি অ্যাড্রেস খুঁজুন: ডিভাইস ইনফরমেশন > টেকনিক্যাল ইনফরমেশন > আইপি অ্যাড্রেস-এ যান।
  4. হাব থেকে লগ পুনরুদ্ধার করতে, আপনাকে একই ওয়াই-ফাই নেটওয়ার্কে থাকা একটি কম্পিউটার থেকে হাবটিতে একটি GET HTTP অনুরোধ পাঠাতে হবে।
    • এন্ডপয়েন্টের পোর্ট এবং পাথটি নোট করুন:
      curl -k -X GET https://ip-address:8443/setup/get_logs --output output-file
      
    • সংযোগটি মাত্র এক মিনিটের জন্য খোলা রাখা যায়, কিন্তু বাফার থেকে পুনরুদ্ধার করা ডেটাতে সাধারণত ২০-৩০ মিনিটের পূর্ববর্তী ঘটনা থাকে।
      • আদর্শগতভাবে, একটি পরীক্ষা পদ্ধতি সম্পন্ন হওয়ার ঠিক পরেই এই পদ্ধতি ব্যবহার করে লগগুলি নিষ্কাশন করা হয়, যাতে বাফারটিতে পরীক্ষার সাথে প্রাসঙ্গিক বিষয়বস্তু রয়েছে তা নিশ্চিত করা যায় (অ্যান্ড্রয়েড বাগ রিপোর্টের মতো)।

অটোমেশন

প্রান্ত সনাক্তকরণ

গুগল হোম ইকোসিস্টেমের অটোমেশনগুলোতে এজ ডিটেকশন নামক একটি ফিচার রয়েছে, যা এমন একটি লজিক যা যাচাই করে যে, একটি স্টার্টার কেবল তখনই সক্রিয় হবে যখন ডিভাইসের অবস্থায় প্রকৃত কোনো পরিবর্তন ঘটবে; স্টেট আপডেটের ফলে এটি কেবল তার পূর্ববর্তী অবস্থারই পুনরাবৃত্তি করে না।

উদাহরণস্বরূপ, যদি একটি বাতি জ্বালানো একটি স্টার্টার হয়, তাহলে এজ ডিটেকশন যাচাই করে যে স্টার্টারটি কেবল তখনই সক্রিয় হয় যখন সেই লাইট ডিভাইসটি বন্ধ থেকে চালু হয়, চালু থেকে চালু (কোনো পরিবর্তন না হওয়া) অবস্থার বিপরীতে।

অটোমেশন প্রত্যাশা অনুযায়ী কাজ করছে না।

এজ ডিটেকশন বিবেচনা করার পরেও, যদি কোনো অটোমেশন প্রত্যাশিতভাবে কাজ না করে:

  1. আপনার অটোমেশন থেকে স্বাধীনভাবে প্রতিটি ডিভাইস সঠিকভাবে কাজ করছে কিনা তা পরীক্ষা করে দেখুন।

  2. আপনার অটোমেশনের গ্রাফটি দেখুন এবং সেটিকে আপনার অটোমেশন ডিএসএল-এর সাথে তুলনা করে আপনার নিজের কোনো সম্ভাব্য ভুল ধারণা আছে কিনা তা খুঁজে বের করুন।

  3. আপনার অটোমেশন চলাকালীন গুগল হোম অ্যাপে ডিভাইসের অবস্থা পর্যবেক্ষণ করুন।

  4. অটোমেশন দ্বারা উল্লেখিত সমস্ত ডিভাইস আপনার প্রত্যাশিত কাঠামোতে উপস্থিত আছে কিনা তা নিশ্চিত করতে পরীক্ষা করুন। অটোমেশন নির্ভর করে এমন কোনো ডিভাইস মুছে ফেললে অপ্রত্যাশিত পরিণতি হতে পারে। অটোমেশনের উপর ডিভাইস মুছে ফেলার প্রভাব দেখুন।

যখন অটোমেশন চলার কথা নয়, তখনও চলে।

আপনার অটোমেশনটি যদি অকারণে চালু হয়ে যায়, তাহলে স্টার্টার ক্রাইটেরিয়াগুলো পরীক্ষা করে দেখুন। এটা নিশ্চিত করার জন্য অতিরিক্ত লজিক যোগ করার প্রয়োজন হতে পারে যে, অবস্থার পরিবর্তন যেন শুধুমাত্র একবারই রেকর্ড করা হয় এবং অটোমেশনটিও শুধুমাত্র একবারই চালু হয়।

অটোমেশন কম্পাইল হয় না

নিশ্চিত করুন যে আপনার অ্যাপে সমস্ত প্রয়োজনীয় ইম্পোর্ট রয়েছে, যার মধ্যে বিভিন্ন নোড টাইপের সাথে সম্পর্কিত প্রতিটি ক্লাস এবং আপনার রেফারেন্স করা ট্রেইটগুলোও অন্তর্ভুক্ত।

অটোমেশন তৈরির বৈধতা যাচাইয়ে ব্যর্থ হয়েছে।

অটোমেশন তৈরি ভ্যালিডেশন পাস না করলে, একটি সতর্কীকরণ বা ত্রুটি বার্তা সমস্যাটি সম্পর্কে তথ্য প্রদান করে। আরও তথ্যের জন্য, ValidationIssueType রেফারেন্সটি দেখুন।

ওঅথ

আপনার যদি একটি বিদ্যমান OAuth ক্লায়েন্ট থাকে

আপনার প্রকাশিত অ্যাপের জন্য যদি আগে থেকেই একটি যাচাইকৃত OAuth ক্লায়েন্ট থাকে, তাহলে আপনি হোম এপিআইগুলো পরীক্ষা করার জন্য আপনার বিদ্যমান OAuth ক্লায়েন্টটি ব্যবহার করতে পারেন।

হোম এপিআই (Home API) পরীক্ষা ও ব্যবহার করার জন্য Google Home Developer Console রেজিস্ট্রেশনের প্রয়োজন নেই। তবে, আপনার অ্যাপটি প্রকাশ করার জন্য একটি অনুমোদিত Developer Console রেজিস্ট্রেশন প্রয়োজন হবে, এমনকি যদি আপনার কাছে অন্য কোনো ইন্টিগ্রেশন থেকে একটি যাচাইকৃত OAuth ক্লায়েন্ট থাকেও।

নিম্নলিখিত বিষয়গুলো প্রযোজ্য:

  • বিদ্যমান OAuth ক্লায়েন্ট ব্যবহার করার ক্ষেত্রে ব্যবহারকারীর সংখ্যা ১০০ জনে সীমাবদ্ধ। পরীক্ষামূলক ব্যবহারকারী যোগ করার বিষয়ে তথ্যের জন্য, দেখুনOAuth ক্লায়েন্ট আইডি তৈরি করুন ।OAuth যাচাইকরণ নির্বিশেষে, হোম এপিআই দ্বারা আরোপিত একটি সীমা রয়েছে যে ১০০ জন ব্যবহারকারী আপনার অ্যাপ্লিকেশনকে অনুমতি প্রদান করতে পারবেন। Developer Console নিবন্ধন সম্পন্ন হলে এই সীমাবদ্ধতা তুলে নেওয়া হয়।

  • Developer Console নিবন্ধন আপনার অ্যাপে হোম এপিআই (Home API) আপডেট করার প্রস্তুতি হিসেবে, যখন আপনি OAuth-এর মাধ্যমে ডিভাইস-টাইপ গ্রান্ট (device-type grants) সীমাবদ্ধ করতে প্রস্তুত হবেন, তখন এটি অনুমোদনের জন্য পাঠানো উচিত।

যেসব Google Cloud অ্যাপের OAuth ভেরিফিকেশন এখনও বাকি আছে, ভেরিফিকেশন সম্পন্ন না হওয়া পর্যন্ত ব্যবহারকারীরা OAuth ফ্লোটি সম্পূর্ণ করতে পারবেন না। অনুমতি দেওয়ার প্রচেষ্টা নিম্নলিখিত ত্রুটির সাথে ব্যর্থ হবে:

Access blocked: <Project Name> has not completed the Google verification process.