সাধারণ
প্রশ্ন: আমাদের ক্লাউড-টু-ক্লাউড পরিপূর্ণতা পরিকাঠামো কোথায় এবং কোন ভাষায় বাস্তবায়ন করা উচিত?
উত্তর: যতক্ষণ পর্যন্ত এটি আধুনিক SSL (TLS) এবং OAuth 2.0 সমর্থন করে, ততক্ষণ পর্যন্ত আপনি যেকোনো প্ল্যাটফর্মে এবং আপনার পছন্দের যেকোনো ভাষায় আপনার অবকাঠামো বাস্তবায়ন করতে পারেন। নির্ভরযোগ্যতা উন্নত করতে এবং প্রকৃত ব্যবহারকারীর ডিভাইসগুলিতে কার্যকর করার জন্য লেটেন্সি কমাতে, আমরা আপনাকে আপনার অবকাঠামোর যতটা সম্ভব কাছাকাছি স্থাপন করার পরামর্শ দিচ্ছি।
প্রশ্ন: ডিভাইস আইডি কি অনন্য হতে হবে?
উত্তর: আইডিগুলো অনন্য হওয়া উচিত। যদি আপনার পরিষেবা জুড়ে অনন্য আইডি না থাকে, তাহলে অন্তত প্রতি ব্যবহারকারীর স্তরে সেগুলি অনন্য হতে হবে। কল্পনা করুন যে একাধিক বাড়ির ব্যবহারকারী, যেখানে উভয় বাড়িতে একই ব্যবহারকারীর সাথে ইন্টিগ্রেশন রয়েছে। এক বাড়িতে আলো জ্বালানোর জন্য অনুরোধ করলে অন্য বাড়িতে একই আইডি দিয়ে আলো জ্বালানো উচিত নয়।
প্রশ্ন: ডিভাইসের নাম কি অনন্য হতে হবে?
উত্তর: নামগুলি অনন্য হতে হবে না, যদিও সময়ের সাথে সাথে আমরা ব্যবহারকারীর অভিজ্ঞতা উন্নত করার জন্য সেটআপের পরে খারাপ নামকরণ উন্নত করতে লোকেদের উৎসাহিত করতে পারি।
নামকরণের একটি দ্রুত নির্দেশিকা এখানে দেওয়া হল:
- নামগুলো এমন হওয়া উচিত যা মানুষ আসলে বলতে পারে।
- আমরা স্ট্রিংগুলির উপসেটগুলি চিনতে পারি, তাই যদি আপনার 'acme color light' থাকে তবে আমরা 'acme light'-এর উত্তরও দেব।
- আমরা পণ্যের জন্য একটি বর্ণনামূলক নাম এবং এক বা একাধিক ব্যবহারকারী-সংজ্ঞায়িত নাম উভয়কেই উৎসাহিত করি।
- ব্যবহারকারীদের লাইট রুমের নাম দেওয়ার প্রয়োজন নেই, কারণ আমাদের কাছে এর জন্য রুম আছে; প্রতিটি রুমের জন্য তাদের অনন্য নাম থাকা উচিত, তবে সবকিছু নির্দেশ করার জন্য সর্বদা বহুবচন ব্যবহার করতে পারেন (উদাহরণস্বরূপ, অফিস স্কোনসে দুটি বাল্ব হল 'উত্তর আলো' এবং 'পূর্ব আলো', তবে কেবল 'আলো' হিসাবে নির্দেশ করা যেতে পারে)।
প্রশ্ন: ডিভাইসের অবস্থা কতবার আপডেট করা হয়?
A: QUERY অথবা EXECUTE, যে দুটি ব্যবহারকারীর দ্বারা পরিচালিত ক্রিয়াগুলির উপর ক্ষণস্থায়ী অবস্থা পুনরুদ্ধার করা হয়। ব্যবহারকারী যদি জিজ্ঞাসা করে 'আলো কি জ্বলছে?', অথবা আলো উজ্জ্বল করতে চায়, তাহলে বর্তমান অবস্থা বের করার জন্য আমাদের একটি প্রশ্ন করতে হবে।
প্রশ্ন: কোনও ডিভাইসের বর্তমান অবস্থা দেখে কি হোম গ্রাফ সরাসরি আপডেট করা সম্ভব?
উত্তর: হ্যাঁ, Report State API কল ব্যবহার করুন।
অ্যাকাউন্ট লিঙ্কিং এবং OAuth
প্রশ্ন: আমাদের কি অ্যাকাউন্ট লিঙ্কিং করতে হবে?
উত্তর: হ্যাঁ, ব্যবহারকারীর ডিভাইসগুলিকে প্রদানকারীর ক্লাউড পরিষেবার সাথে সংযুক্ত করার জন্য অ্যাকাউন্ট লিঙ্কিং প্রয়োজন।
প্রশ্ন: OAuth-এর জন্য, আমরা প্রতি ১৫.২১৩ ঘন্টা অন্তর অ্যাক্সেস টোকেনের মেয়াদ শেষ করি, এটা কি ঠিক আছে?
উত্তর: হ্যাঁ, কিন্তু দয়া করে মোটামুটি কম সময় ধরে পরীক্ষা করুন, ধরুন ১০-২০ মিনিট। আমাদের OAuth ক্লায়েন্টের প্রয়োজন অনুযায়ী টোকেন রিফ্রেশ করা উচিত, এবং কম সময় ধরে পরীক্ষা করলে প্রমাণ হবে যে এটি কাজ করছে।
ইন্টেন্ট
প্রশ্ন: SYNC কখন হয়?
A: OAuth সম্পন্ন হওয়ার পরপরই এবং একটি অনুরোধ সিঙ্ক কল করার পরে SYNC করা হয়।
প্রশ্ন: SYNC কেন কাজ করছে না?
উত্তর: এটি ব্যর্থ হওয়ার বেশ কয়েকটি সাধারণ কারণ রয়েছে।
আপনি ভুল ধরণের ডিভাইস পাঠাচ্ছেন।
- উদাহরণস্বরূপ, আমরা
action.devices.types.LIGHTআশা করি, কিন্তু আপনিaction.devices.types.Lightপাঠান।
- উদাহরণস্বরূপ, আমরা
আপনি অসমর্থিত ডিভাইসের ধরণগুলি পাঠাচ্ছেন।
- উদাহরণস্বরূপ, আপনি
action.devices.types.FLASHLIGHTপাঠান - এটি এমন কোনও জিনিস নয় যা আমরা সমর্থন করি।
- উদাহরণস্বরূপ, আপনি
আপনি অবৈধ/অসমর্থিত ক্ষেত্রগুলি পাঠাচ্ছেন।
- উদাহরণস্বরূপ, আপনার এমন একটি ক্ষেত্র আছে যা আমাদের স্পেসিফিকেশনে নেই।
আপনার SYNC প্রতিক্রিয়ার সাথে অন্য কিছু ফর্ম্যাটিং সমস্যা আছে।
- তোমার বন্ধনীগুলো পরীক্ষা করো!
আপনার অ্যাকাউন্ট লিঙ্ক করার সমস্যা হচ্ছে।
- অনুগ্রহ করে যাচাই করুন যে আপনি SYNC অনুরোধের Auth হেডারে একটি বৈধ অ্যাক্সেস টোকেন পাচ্ছেন।
আপনি SYNC অনুরোধের উত্তর দিতে অনেক বেশি সময় নিচ্ছেন।
- অনুগ্রহ করে ৫ সেকেন্ডের মধ্যে যাচাই করুন যে আপনি SYNC অনুরোধের উত্তর দিচ্ছেন।
প্রশ্ন: "অমীমাংসিত" উত্তর কি ঠিক আছে?
উত্তর: যদি আপনার ডিভাইসগুলি রিয়েল টাইমে উপলব্ধ থাকে, তাহলে আমরা মুলতুবি থাকার পরিবর্তে সফল/ব্যর্থ প্রতিক্রিয়াকে প্রাধান্য দেব। যদি আপনার মনে হয় যে আপনার একটি 'মুলতুবি' প্রতিক্রিয়া প্রয়োজন, তাহলে অনুগ্রহ করে আমাদের সাথে যোগাযোগ করুন -- আমরা জানি যে কিছু কম-পাওয়ার, নন-রিয়েল-টাইম ডিভাইসের জন্য মুলতুবি প্রতিক্রিয়া এবং অ্যাসিঙ্ক্রোনাস এক্সিকিউশন মডেলের প্রয়োজন হতে পারে।
পরীক্ষা এবং জমা দেওয়া
প্রশ্ন: আমরা কি একটি ডেভেলপমেন্ট ক্লাউড পরিবেশ স্থাপন করতে পারি?
উত্তর: হ্যাঁ, আপনি একটি আনলঞ্চ না করা ক্লাউড পরিবেশ এবং কনফিগারেশন পরীক্ষা করতে পারেন।
প্রশ্ন: গুগল হোম অ্যাপের হোম কন্ট্রোল বিভাগে আমার অ্যাকশন দেখা যাচ্ছে না। কী হচ্ছে?
A: নিশ্চিত করুন যে আপনি এই প্রকল্পের একজন ডেভেলপার।
রিপোর্টের অবস্থা
প্রশ্ন: রিপোর্ট স্টেট বাস্তবায়নের জন্য কি কোন পূর্বশর্ত আছে?
উত্তর: প্রকল্পটিতে স্মার্ট হোম এপিআই ব্যবহার করতে হবে, OAuth2 সমর্থন করতে হবে এবং এমন বৈশিষ্ট্য থাকতে হবে যার অবস্থা(গুলি) রিপোর্ট করতে হবে।
প্রশ্ন: একটি ডিভাইসে আমাদের কতবার অবস্থা রিপোর্ট করতে হবে?
উত্তর: গুগল ট্রানজিশন এবং টার্মিনাল অবস্থা সম্পর্কে আগ্রহী। তবে, যদি অল্প সময়ের মধ্যে অনেকগুলি অবস্থার পরিবর্তন হয় (উদাহরণস্বরূপ, একজন ব্যবহারকারী এক মিনিটে তিনবার ফ্রিজ খোলে এবং বন্ধ করে অথবা একটি ডিমার স্লাইড করে), তাহলে আমাদের কেবল চূড়ান্ত অবস্থা রিপোর্ট করা দরকার।
প্রশ্ন: রিপোর্ট স্টেট কল করার সময় কি সম্পূর্ণ ডিভাইস স্টেট পাঠানোর প্রয়োজন হয়?
উত্তর: আংশিক অবস্থা আপডেট সমর্থিত নয়, তাই Report State কলগুলিতে সর্বদা আপডেট করা একটি নির্দিষ্ট বৈশিষ্ট্যের সমস্ত ডেটা অন্তর্ভুক্ত করা উচিত। যদি দুটি বৈশিষ্ট্য অসঙ্গতি তৈরি করে, তবে সেগুলি একসাথে রিপোর্ট করা উচিত।
প্রশ্ন: গুগল কি আমার ডিভাইসের অবস্থা জানতে (অর্থাৎ, ডিভাইসটি পোল করার জন্য) জিজ্ঞাসা করতে পারে?
উত্তর: এটি একটি ফলব্যাক মেকানিজম যা আমরা সুপারিশ করি না। যদি আমাদের সেই ব্যবহারকারীদের জন্য ঘন ঘন কোনও ডিভাইস পোলিং করতে হয়, তাহলে অতিরিক্ত লোড কত হবে তার গ্যারান্টি আমরা দিতে পারি না। নতুন ভিজ্যুয়াল সারফেস থেকে এই প্রয়োজনীয়তা আসে। অজানা লোড সমস্যার পাশাপাশি, এটি ব্যবহারকারীর অভিজ্ঞতার অবনতি ঘটাবে। আমরা মনে করি যে Report State প্ল্যাটফর্মের জন্য অত্যন্ত গুরুত্বপূর্ণ।
প্রশ্ন: বর্তমানে কোন বৈশিষ্ট্যগুলি রিপোর্ট স্টেটকে সমর্থন করে?
উত্তর: সমস্ত পাবলিক বৈশিষ্ট্য যার সাথে সম্পর্কিত অবস্থা সমর্থিত। ডিভাইসের অনলাইন অবস্থায় যেকোনো পরিবর্তনের কথাও রিপোর্ট করা উচিত।
মনে রাখবেন যে দৃশ্যের কোনও অবস্থা নেই। তবে, এর ফলে ডিভাইসের অবস্থা(গুলি) পরিবর্তন হতে পারে। যদি Google Home Graph কোনও ডিভাইসের পরিবর্তনের অবস্থা থাকে, তাহলে এটি রিপোর্ট করতে হবে।
প্রশ্ন: রিপোর্ট স্টেটের জন্য কি টাইমস্ট্যাম্প পাঠানোর প্রয়োজন?
উত্তর: আমাদের টাইমস্ট্যাম্পের প্রয়োজন নেই; প্রেরিত শেষ অবস্থা পূর্ববর্তী কলগুলিকে ওভাররাইড করবে।
প্রশ্ন: যদি আমি ইতিমধ্যেই কোয়েরি এবং/অথবা এক্সিকিউটে স্টেট পাঠাই, তাহলে কি আমাকে আলাদাভাবে স্টেট রিপোর্ট করতে হবে?
A: Home Graph শুধুমাত্র Report State এর মাধ্যমে পাঠানো অবস্থা সংরক্ষণ করে। EXECUTE এবং QUERY ইন্টেন্টের প্রতিক্রিয়া হিসাবে যে অবস্থা ফেরত পাঠানো হয় তা শুধুমাত্র ব্যবহারকারীর কাছে স্পিচ প্রতিক্রিয়ার জন্য ব্যবহৃত হয় এবং সংরক্ষণ করা হয় না। ফলস্বরূপ, ডিভাইসের নতুন অবস্থা ইতিমধ্যেই EXECUTE বা QUERY ইন্টেন্টের প্রতিক্রিয়া হিসাবে ফেরত দেওয়া হয়ে থাকলেও Report State বলা উচিত।
প্রশ্ন: নির্দিষ্ট সময়সীমার মধ্যে রিপোর্ট স্টেট সম্পূর্ণরূপে বাস্তবায়ন না করার পরিণতি কী হতে পারে?
উত্তর: এর ফলে ব্যবহারকারীর অভিজ্ঞতা হ্রাস পাবে, উদাহরণস্বরূপ Google Home app (GHA) এবং ভিজ্যুয়াল সারফেসে। এর অর্থ হল অনেক QUERY ইন্টেন্ট পোল ফর স্টেটে পাঠানো হবে এবং আমরা গ্যারান্টি দিতে পারি না যে এটি পার্টনার ক্লাউডে অতিরিক্ত লোডের সাথে কী মিলবে।
প্রশ্ন: আমি কীভাবে আমাদের রিপোর্ট স্টেট বাস্তবায়ন পরীক্ষা করতে পারি?
A: হোম গ্রাফ ভিউয়ার ব্যবহার করুন - একটি স্ব-পরিষেবা পরীক্ষার সরঞ্জাম যা আপনাকে Home Graph সংরক্ষিত আপনার বর্তমান ডিভাইসের অবস্থা দেখায়।
প্রশ্ন: আমরা কি রিপোর্ট স্টেটের জন্য একটি র্যান্ডম রিকোয়েস্ট আইডি ব্যবহার করতে পারি?
উত্তর: আমরা পরামর্শ দিচ্ছি যে অংশীদাররা EXECUTE অনুরোধ থেকে প্রাপ্ত একই অনুরোধ আইডি ব্যবহার করুক যদি EXECUTE অনুরোধের কারণে Report State ট্রিগার হয়, অন্যথায় আপনি কেবল একটি র্যান্ডম অনুরোধ আইডি ব্যবহার করতে পারেন।
প্রশ্ন: যদি একজন ব্যবহারকারীর একাধিক ডিভাইস থাকে এবং তাদের মধ্যে একটির অবস্থা পরিবর্তন করা হয়, তাহলে কি আমাদের সকল ডিভাইসের সর্বশেষ অবস্থা রিপোর্ট করতে হবে?
উ: না। আপনাকে কেবল সেই নির্দিষ্ট ডিভাইসের অবস্থা জানাতে হবে।
সেরা অনুশীলন
প্রশ্ন: কোন ধরণের বিলম্ব গ্রহণযোগ্য?
উত্তর: ২০০ মিলিসেকেন্ডের কম সময় আদর্শ, ২-৫ সেকেন্ডের মধ্যে থাকলে ঠিক আছে। যদি আপনার ল্যাটেন্সি ৫ সেকেন্ডের কাছাকাছি থাকে, তাহলে আমাদের সাথে যোগাযোগ করুন।
প্রশ্ন: আমার ভয়েস-অ্যাক্টিভেটেড স্পিকার অফলাইনে থাকাকালীন কীভাবে সঠিকভাবে সাড়া দেবে?
A: অফলাইন ডিভাইসের অফলাইন অবস্থা ফেরত দিন। এই ত্রুটির জন্য আমরা 'এখনই উপলব্ধ নয়' টিটিএস হিসাবে ফেরত দিচ্ছি। আরও তথ্যের জন্য, ত্রুটি এবং ব্যতিক্রম দেখুন।