Sample app
Home API ব্যবহার করার সময় কোনও সমস্যা হলে, আরও ডিবাগিংয়ের জন্য আপনি লগ সংগ্রহ করতে পারবেন। মোবাইল ডিভাইস থেকে লগ সংগ্রহ করার জন্য Xcode প্রয়োজন। Google-এর থেকে সাহায্যের প্রয়োজন হলে, iOS ডিভাইস ও হাব, দু'টি থেকেই লগ সংগ্রহ করুন এবং প্রাসঙ্গিক তথ্য ও এর সাথে যুক্ত লগ সহ ইস্যু ট্র্যাকারে একটি টিকিট খুলুন।
iOS লগ সংগ্রহ করা
Xcode-এর সাথে যুক্ত সব ধাপের জন্য আপনার মোবাইল ডিভাইসকে অবশ্যই লোকাল মেশিনের সাথে কানেক্ট করতে হবে।
Xcode কনসোলের মধ্যে সরাসরি অ্যাপ লগ ও SDK লগ দেখানো ও সংগ্রহ করা হয়। আপনার মোবাইল ডিভাইস লোকাল মেশিনের সাথে কানেক্ট করা থাকলে এবং আপনি Xcode-এর মাধ্যমে অ্যাপ্লিকেশন চালালে, কনসোল অটোমেটিক অ্যাপ্লিকেশন লেয়ার ও ইন্টিগ্রেটেড Home SDK, দু'টি থেকেই স্ট্যান্ডার্ড আউটপুট (stdout) ও স্ট্যান্ডার্ড এরর (stderr) লগ ক্যাপচার ও স্ট্রিম করে। এর ফলে ডেভেলপমেন্ট ও ডিবাগিং চলাকালীন রিয়েল-টাইম ইনিশিয়ালাইজেশন প্রসেস, API ইন্টার্যাকশন ও SDK ইভেন্ট মনিটর করার একটি সহজ উপায় পাওয়া যায়।
Xcode থেকে এক্সটেনশন লগ সংগ্রহ করা
Home API ব্যবহার করার সময় কোনও সমস্যা হলে, আপনি আরও ডিবাগিংয়ের জন্য লগ সংগ্রহ করতে পারবেন।
Xcode-এ, উপরের মেনু বারে ডিবাগ বিকল্পে যান এবং PID বা নাম দিয়ে প্রসেসে অ্যাটাচ করুন বিকল্পে ক্লিক করুন।

PID বা প্রসেসের নাম বিকল্পের মধ্যে, MatterExtension বেছে নিন এবং অ্যাটাচ করুন বিকল্পে ক্লিক করুন।

আপনি উপরে ডানদিকে ক্লিক করলে iPhone-এ MatterAddDeviceExtension-এর সাথে অ্যাটাচ করার জন্য অপেক্ষা করা হচ্ছে দেখতে পাবেন।

ট্যাবে ক্লিক করে MatterAddExtension বিকল্প বেছে নিন।

কনসোল এক্সটেনশন লগ করবে।
Sherlog: ক্রস-স্ট্যাক ইভেন্ট ট্রেসিং
Sherlog হল একটি রিয়েল-টাইম ট্রেসিং পরিষেবা যা Google-এর পরিকাঠামো এবং পার্টনার ক্লাউড পরিষেবার মধ্যে ইন্টার্যাকশনের এন্ড-টু-এন্ড ভিউ প্রদান করে।
পূর্বশর্ত: ট্রেসিংয়ের জন্য শেয়ার করা, Google-এর কোঅর্ডিনেট করা অ্যাকাউন্ট (যেমন, GReg-এ রেজিস্টার করা বা ডেমো অ্যাকাউন্ট) ব্যবহার করতে হবে।
মূল উদ্দেশ্য: প্রোডাকশন কোডে পরিবর্তন করার প্রয়োজন ছাড়াই কার্যকরী ত্রুটি ও ক্লাউড-টু-ক্লাউড (C2C) ইন্টিগ্রেশন সংক্রান্ত সমস্যা (যেমন, অ্যাকাউন্ট লিঙ্ক করা না গেলে বা ডিভাইসের ভুল স্ট্যাটাস) ডিবাগ করা।
ক্ষমতা: SYNC, EXECUTE, QUERY এবং অ্যাকাউন্ট লিঙ্ক করার ইনটেন্টের জন্য সম্পূর্ণ RPC কল গ্রাফ, অনুরোধ/উত্তর পেলোড এবং মেটাডেটা প্রদান করে।
Fuchsia হাব ডিভাইসের লগ
আপনি এই পদ্ধতি ব্যবহার করে নিম্নলিখিত Fuchsia হাব থেকে লগ সংগ্রহ করতে পারবেন: * Google Nest Hub (সেকেন্ড জেনারেশন) * Google Nest Hub Max
স্থানীয় লগ রিট্রিভ করার জন্য কোনও হাব চালু করতে:
- আপনার ডিভাইসের সিরিয়াল নম্বর এবং মডেল সহ একটি ইমেল আপনার Google টেকনিক্যাল অ্যাকাউন্ট ম্যানেজার (TAM)-কে পাঠান। ডিভাইসের নিচে ছোট অক্ষরে সেগুলি দেখতে পাবেন।
- হোয়াইটলিস্টে যোগ করার পরে, আপনাকে এইসব ধাপ অনুসরণ করে ফিচারটি চালু করতে হবে:
- হাব থেকে:
- স্ক্রিনের উপরের দিক থেকে নিচের দিকে সোয়াইপ করুন
- 'সেটিংস' আইকনে ট্যাপ করুন
- Fuchsia ভার্সন খুঁজে দেখুন: Nest Hub (2nd gen)-এ, ডিভাইসের তথ্য > টেকনিক্যাল তথ্য > Fuchsia ভার্সন বিকল্পে যান
- "Fuchsia ভার্সন" বিকল্পে ৭ বার ট্যাপ করুন। এর ফলে ডেভেলপার বিকল্প চালু হয়ে যাবে
- টপ-লেভেল মেনুতে ফিরে যান
- "ডেভেলপার বিকল্প" বিকল্পে ট্যাপ করুন
- "পার্টনার লগিং" বিকল্পে ট্যাপ করুন
- ফিচারটি ২৪ ঘণ্টার জন্য চালু করা হবে। এর পরে, ধাপ ৫ থেকে লগিং ফিচার আবার চালু করুন।
- হাব থেকে:
- আপনার হাবের IP অ্যাড্রেস পান:
- হাব থেকে, সেটিতে স্ক্রিন থাকলে:
- স্ক্রিনের উপরের দিক থেকে নিচের দিকে সোয়াইপ করুন
- 'সেটিংস' আইকনে ট্যাপ করুন
- ডিভাইসের IP অ্যাড্রেস খুঁজে দেখুন: Nest Hub (2nd gen)-এ, ডিভাইসের তথ্য > টেকনিক্যাল তথ্য > IP অ্যাড্রেস বিকল্পে যান
- আপনার ফোনে Google Home অ্যাপ (GHA) থেকে:
- ডিভাইসের বিবরণ পৃষ্ঠা দেখতে ডিভাইসে ট্যাপ করুন
- সেটিংস পৃষ্ঠা খুলতে সেটিংস আইকনে ট্যাপ করুন
- ডিভাইসের IP অ্যাড্রেস খুঁজে দেখুন: ডিভাইসের তথ্য > প্রযুক্তিগত তথ্য > IP অ্যাড্রেস বিকল্পে যান
- হাব থেকে, সেটিতে স্ক্রিন থাকলে:
- হাব থেকে লগ রিট্রিভ করতে, একই ওয়াই-ফাই নেটওয়ার্কে থাকা কম্পিউটার থেকে হাবকে GET HTTP অনুরোধ পাঠাতে হবে।
- এন্ডপয়েন্টের পোর্ট ও পাথ মনে রাখুন:
curl -k -X GET https://ip-address:8443/setup/get_logs --output output-file - কানেকশনটি শুধুমাত্র এক মিনিটের জন্য খোলা রাখা যেতে পারে, তবে বাফার থেকে পাওয়া ডেটাতে
সাধারণত ২০-৩০ মিনিটের পুরনো ইভেন্ট থাকে।
- আদর্শভাবে, কোনও পরীক্ষা পদ্ধতি সম্পূর্ণ করার সাথে সাথেই এই পদ্ধতি ব্যবহার করে লগ এক্সট্র্যাক্ট করা হয়, যাতে বাফারে পরীক্ষা সম্পর্কিত কন্টেন্ট থাকে (Android সমস্যার রিপোর্টের মতো)।
- এন্ডপয়েন্টের পোর্ট ও পাথ মনে রাখুন:
অটোমেশন
এজ ডিটেকশন
Google Home ইকোসিস্টেমে অটোমেশন এজ ডিটেকশন ফিচার করে, যা এমন যুক্তি যা যাচাই করে যে কোনও স্টার্টার তখনই অ্যাক্টিভেট হয় যখন কোনও প্রকৃত স্টেট পরিবর্তন হয়, স্টেট আপডেট হিসেবে নয় যা ডিভাইসের আগের স্টেটকে শুধুমাত্র পুনরাবৃত্তি করে।
যেমন, কোনও আলো জ্বালানো যদি স্টার্টার হয়, তাহলে এজ ডিটেকশন যাচাই করে যে স্টার্টার তখনই অ্যাক্টিভেট হয় যদি সেই লাইট ডিভাইসটি বন্ধ থেকে চালু হয়, চালু থেকে চালু (কোনও পরিবর্তন নেই) হলে নয়।
অটোমেশন প্রত্যাশা অনুযায়ী কাজ করে না
এজ ডিটেকশন বিবেচনা করার পরে, কোনও অটোমেশন প্রত্যাশিত আচরণ না করলে:
প্রতিটি ডিভাইস চেক করে দেখুন যে সেগুলি আপনার অটোমেশন থেকে আলাদাভাবে সঠিকভাবে কাজ করছে কিনা।
আপনার অটোমেশনের জন্য অটোমেশন গ্রাফ দেখুন এবং আপনার অটোমেশন DSL-এর সাথে তুলনা করে দেখুন যে আপনার পক্ষে কোনও সম্ভাব্য ভুল অনুমান আছে কিনা।
আপনার অটোমেশন চালানোর সময় Google Home অ্যাপে ডিভাইসের অবস্থা লক্ষ্য করুন।
অটোমেশন দ্বারা রেফারেন্স করা সব ডিভাইস সেখানে আছে কিনা তা চেক করে দেখুন যেখানে আপনি সেগুলি থাকার কথা ভাবছেন। কোনও অটোমেশন যে ডিভাইসের উপর নির্ভর করে সেটি মুছে দিলে অপ্রত্যাশিত ফলাফল হতে পারে। অটোমেশনের উপর ডিভাইস মুছে দেওয়ার প্রভাব দেখুন।
অটোমেশন যখন চালানো উচিত নয় তখন চালানো হয়
অটোমেশন যদি এমন সময় চলে যখন সেটি চলার কথা নয়, তাহলে স্টার্টার সংক্রান্ত শর্তাবলী পরীক্ষা করে দেখুন। স্টেটে পরিবর্তন একবারই ক্যাপচার করা হয়েছে এবং অটোমেশন একবারই ট্রিগার হয়েছে তা নিশ্চিত করতে অতিরিক্ত লজিক যোগ করার প্রয়োজন হতে পারে।
অটোমেশন কম্পাইল হয় না
ভাল করে দেখে নিন যে আপনার অ্যাপে বিভিন্ন নোড ধরনের সাথে সম্পর্কিত প্রতিটি ক্লাস এবং আপনি যে ট্রেট উল্লেখ করছেন, সেগুলি সহ সমস্ত প্রয়োজনীয় ইমপোর্ট আছে কিনা।
অটোমেশন তৈরি করার সময় যাচাইকরণ প্রসেস সম্পূর্ণ করা যায়নি
অটোমেশন তৈরি করার সময় যাচাইকরণে উত্তীর্ণ না হলে, একটি সতর্কতা বা সমস্যার মেসেজ
সমস্যাটি সম্পর্কে তথ্য প্রদান করে। আরও তথ্যের জন্য, ValidationIssueType রেফারেন্স দেখুন।
OAuth
আপনার আগে থেকে কোনও OAuth ক্লায়েন্ট থাকলে
প্রকাশিত অ্যাপের জন্য আপনার আগে থেকেই যাচাই করা OAuth ক্লায়েন্ট থাকলে, আপনি Home API পরীক্ষা করার জন্য আগে থেকে থাকা OAuth ক্লায়েন্ট ব্যবহার করতে পারবেন।
Google Home Developer Console Home API পরীক্ষা ও ব্যবহার করার জন্য রেজিস্ট্রেশন করার প্রয়োজন নেই। তবে, অন্য ইন্টিগ্রেশন থেকে আপনার কাছে যাচাই করা Developer Console OAuth ক্লায়েন্ট থাকলেও, আপনার অ্যাপ প্রকাশ করার জন্য আপনাকে এখনও অনুমোদিত রেজিস্ট্রেশন করতে হবে।
নিম্নলিখিত বিষয়গুলি বিবেচনা করা হয়:
আগে থেকেই রয়েছে এমন OAuth ক্লায়েন্ট ব্যবহার করার সময় ১০০ জন ব্যবহারকারীর সীমা থাকে। টেস্ট ব্যবহারকারী যোগ করা সংক্রান্ত তথ্যের জন্য,OAuth ক্লায়েন্ট আইডি জেনারেট করুন দেখুন। OAuth যাচাইকরণ ছাড়াও, আপনার অ্যাপ্লিকেশনে অনুমতি দিতে পারেন এমন ১০০ জন ব্যবহারকারীর সীমা Home API-এর মাধ্যমে আরোপ করা হয়। Developer Console রেজিস্ট্রেশন সম্পূর্ণ হলে এই বিধিনিষেধ তুলে নেওয়া হয়।
Developer Console রেজিস্ট্রেশন অনুমোদনের জন্য পাঠাতে হবে যখন আপনি Home API-এর মাধ্যমে আপনার অ্যাপ আপডেট করার প্রস্তুতি হিসেবে OAuth-এর মাধ্যমে ডিভাইস-টাইপ গ্র্যান্ট সীমাবদ্ধ করার জন্য প্রস্তুত হবেন।
Google Cloud যেসব অ্যাপের OAuth যাচাইকরণ এখনও বাকি আছে, সেগুলির যাচাইকরণ সম্পূর্ণ না হওয়া পর্যন্ত ব্যবহারকারীরা OAuth ফ্লো সম্পূর্ণ করতে পারবেন না। অনুমতি দেওয়ার চেষ্টা করলে নিম্নলিখিত সমস্যাটি হবে:
Access blocked: <Project Name> has not completed the Google verification process.