Local Home SDK রুট স্মার্ট হোম ইন্টেন্টে একটি স্থানীয় পরিপূর্ণতা পাথ যোগ করে Google Assistant-এর সাথে আপনার স্মার্ট হোম ইন্টিগ্রেশন বাড়ায়।
স্থানীয় হোম SDK দুটি ক্ষমতা প্রদান করে: লোকাল এক্সিকিউশন এবং লোকাল কোয়েরি।
- লোকাল এক্সিকিউশন ক্লাউড এপিআই কল করার পরিবর্তে স্থানীয় পূর্ণতা পাথের উপর
EXEC
ইন্টেন্ট পাঠিয়ে কমান্ডগুলি পূরণ করার ক্ষমতা প্রদান করে। উদাহরণস্বরূপ, 'আলো চালু করুন' অনুরোধটি স্থানীয় সম্পাদন দ্বারা পরিচালিত হতে পারে। - স্থানীয় ক্যোয়ারী স্থানীয় পূর্ণতা পাথের উপর
QUERY
ইন্টেন্ট পাঠিয়ে ডিভাইসের অবস্থা সম্পর্কিত প্রশ্নগুলি পরিচালনা করার ক্ষমতা প্রদান করে৷ উদাহরণস্বরূপ, স্থানীয় ক্যোয়ারী 'আমার আলো কি জ্বলছে?' একটি ক্লাউড API কল না করেই।
SDK আপনাকে TypeScript বা JavaScript ব্যবহার করে একটি স্থানীয় পরিপূর্ণতা অ্যাপ লিখতে দেয়, যেটিতে আপনার স্মার্ট হোম বিজনেস লজিক রয়েছে। Google Home বা Google Nest ডিভাইসে আপনার অ্যাপ লোড ও চালাতে পারে। আপনার অ্যাপ বিদ্যমান প্রোটোকলের মাধ্যমে ব্যবহারকারীর আদেশগুলি পূরণ করতে লোকাল এরিয়া নেটওয়ার্কে (LAN) Wi-Fi এর মাধ্যমে আপনার বিদ্যমান স্মার্ট ডিভাইসগুলির সাথে সরাসরি যোগাযোগ করে।
SDK-এর ইন্টিগ্রেশন কম লেটেন্সি এবং উচ্চ নির্ভরযোগ্যতা সহ আপনার Cloud-to-cloud ইন্টিগ্রেশনে কর্মক্ষমতা উন্নতির প্রস্তাব দেয়। সেকেন্ডারি ইউজার ভেরিফিকেশন ব্যবহার করে এমন সব ডিভাইসের ধরন এবং ডিভাইসের বৈশিষ্ট্যের জন্য স্থানীয় পরিপূর্ণতা সমর্থিত।
বিল্ডিং শুরু করুন নমুনা চেষ্টা করুন
এটা কিভাবে কাজ করে তা বুঝুন
আপনার ক্লাউড পরিপূর্ণতা থেকে একটি SYNC
প্রতিক্রিয়া পাওয়ার পরে, স্থানীয় হোম প্ল্যাটফর্মটি এমডিএনএস, ইউডিপি ব্রডকাস্ট বা UPnP ব্যবহার করে অ্যাসিস্ট্যান্টের সাথে সংযুক্ত স্মার্ট ডিভাইসগুলি আবিষ্কার করতে ব্যবহারকারীর লোকাল এরিয়া নেটওয়ার্ক স্ক্যান করে।
ডিভাইসটি স্থানীয়ভাবে নিয়ন্ত্রণযোগ্য কিনা তা নির্ধারণ করার জন্য প্ল্যাটফর্মটি একটি IDENTIFY
অভিপ্রায় পাঠায়, পূর্বের SYNC
প্রতিক্রিয়া দ্বারা ফিরে আসা IDENTIFY
প্রতিক্রিয়ার সাথে ডিভাইস আইডি তুলনা করে। যদি সনাক্ত করা ডিভাইসটি একটি হাব বা সেতু হয়, তাহলে প্ল্যাটফর্মটি একটি REACHABLE_DEVICES
উদ্দেশ্য পাঠায় এবং হাবটিকে স্থানীয়ভাবে যোগাযোগের জন্য প্রক্সি ডিভাইস হিসাবে বিবেচনা করে৷
যখন এটি একটি স্থানীয় ডিভাইস নিশ্চিত করে একটি প্রতিক্রিয়া পায়, তখন প্ল্যাটফর্ম ব্যবহারকারীর Google Home বা Google Nest ডিভাইসে একটি স্থানীয় পূর্ণতা পাথ স্থাপন করে এবং পরবর্তীতে স্থানীয় পূর্ণতার জন্য ব্যবহারকারীর আদেশগুলিকে রুট করে।
যখন কোনও ব্যবহারকারী Cloud-to-cloud ইন্টিগ্রেশন ট্রিগার করেন যার একটি স্থানীয় পূর্ণতা পাথ রয়েছে, তখন সহায়ক ক্লাউড পূরণের পরিবর্তে Google Home বা Google Nest ডিভাইসে EXECUTE
অভিপ্রায় বা QUERY
অভিপ্রায় পাঠায়। ডিভাইসটি তারপর অভিপ্রায় প্রক্রিয়া করার জন্য স্থানীয় পূর্ণতা অ্যাপ চালায়।
কোন Google Home বা Google Nest ডিভাইস কমান্ডটি ট্রিগার করবে তা বেছে নেওয়ার ক্ষেত্রে লোকাল হোম প্ল্যাটফর্ম অনির্ধারিত। EXECUTE
এবং QUERY
ইন্টেন্ট যেকোন Google Home বা Google Nest ডিভাইসের মাধ্যমে আসতে পারে যা লক্ষ্য ডিভাইসের মতো একই হোম গ্রাফ কাঠামোতে সংজ্ঞায়িত করা হয়েছে।
স্থানীয় পরিপূর্ণতা অ্যাপ
লোকাল হোম প্ল্যাটফর্মের প্রেরিত ইন্টেন্টগুলি প্রক্রিয়া করার এবং লোকাল এরিয়া নেটওয়ার্কের মাধ্যমে আপনার স্মার্ট ডিভাইস অ্যাক্সেস করার জন্য স্থানীয় পরিপূর্ণতা অ্যাপটিতে ব্যবসায়িক যুক্তি রয়েছে। আপনার হার্ডওয়্যারের কোনো পরিবর্তন স্থানীয় পরিপূর্ণতাকে একীভূত করবে বলে আশা করা হচ্ছে না। অ্যাপটি HTTP, TCP, বা UDP সহ অ্যাপ্লিকেশন-লেয়ার প্রোটোকলের মাধ্যমে স্মার্ট ডিভাইসে কন্ট্রোল কমান্ড পাঠিয়ে Cloud-to-cloud ইন্টিগ্রেশন অনুরোধগুলি পূরণ করে। স্থানীয় পরিপূর্ণতা পথ ব্যর্থ হলে, আপনার ক্লাউড পরিপূর্ণতা একটি ফলব্যাক নির্বাহ পথ হিসাবে ব্যবহৃত হয়।
অ্যাপ তৈরিতে সহায়তা করার জন্য, স্থানীয় হোম SDK এই দুটি প্রধান শ্রেণী প্রদান করে:
-
DeviceManager
: টিসিপি, ইউডিপি সকেট বা HTTP অনুরোধগুলি ব্যবহার করে স্মার্ট ডিভাইসগুলির সাথে যোগাযোগের পদ্ধতি সরবরাহ করে। -
App
: স্থানীয়ভাবে-নিয়ন্ত্রণযোগ্য ডিভাইস (IDENTIFY
,REACHABLE_DEVICES
) আবিষ্কার করার পরে Google যে ইন্টেন্ট পাঠায় তার জন্য হ্যান্ডলার সংযুক্ত করার পদ্ধতি প্রদান করে। এই ক্লাসটি ব্যবহারকারীর আদেশগুলিও পূরণ করে (EXECUTE
) এবং বর্তমান ডিভাইসের অবস্থা (QUERY
) ব্যবহারকারীর প্রশ্নের উত্তর দেয়৷
বিকাশের সময়, আপনি আপনার নিজস্ব হোস্টিং সার্ভার বা স্থানীয় উন্নয়ন মেশিনে লোড করে অ্যাপটি তৈরি এবং পরীক্ষা করতে পারেন। উৎপাদনে, Google ব্যবহারকারীর Google Home বা Google Nest ডিভাইসে একটি নিরাপদ JavaScript স্যান্ডবক্স পরিবেশে আপনার অ্যাপ হোস্ট করে।
Report State API বর্তমানে স্থানীয় পরিপূর্ণতার জন্য সমর্থিত নয়। Google এই অনুরোধগুলি প্রক্রিয়া করার জন্য আপনার ক্লাউড পূরণের উপর নির্ভর করে।
অ্যাপ্লিকেশন জীবনচক্র
যখন লোকাল হোম প্ল্যাটফর্ম প্রোজেক্ট স্ক্যান কনফিগারেশনের সাথে মিলে যাওয়া নতুন স্থানীয় ডিভাইসগুলি আবিষ্কার করে বা পূর্বে চিহ্নিত ডিভাইসের সাথে সম্পর্কিত ডেলিভারির জন্য মুলতুবি থাকা ইন্টেন্ট থাকে তখন আপনার স্থানীয় পরিপূর্ণতা অ্যাপটি চাহিদা অনুযায়ী লোড হয়।
Google Home বা Google Nest ডিভাইসে মেমরির সীমাবদ্ধতা রয়েছে এবং সিস্টেমে মেমরির চাপের কারণে যেকোনও সময় আপনার লোকাল ফিলিফমেন্ট অ্যাপ বন্ধ হয়ে যেতে পারে। এটি ঘটতে পারে যদি আপনার অ্যাপটি অত্যধিক মেমরি ব্যবহার করতে শুরু করে, অথবা যদি সিস্টেমটিকে অন্য অ্যাপের জন্য জায়গা তৈরি করতে হয়। লোকাল হোম প্ল্যাটফর্ম আপনার অ্যাপটিকে শুধুমাত্র তখনই রিস্টার্ট করে যখন ডেলিভার করার নতুন উদ্দেশ্য থাকে এবং অ্যাপটি চালানোর জন্য যথেষ্ট মেমরি রিসোর্স থাকে।
লোকাল হোম প্ল্যাটফর্ম একটি নিষ্ক্রিয় টাইমআউটের পরে আপনার অ্যাপটি আনলোড করে যখন ব্যবহারকারী তাদের অ্যাকাউন্টটি আনলিঙ্ক করে বা ব্যবহারকারীর agentUserId
সাথে যুক্ত স্থানীয় পরিপূর্ণতা সমর্থন করে এমন ডিভাইস আর নেই।
সমর্থিত ডিভাইস
Local Home প্ল্যাটফর্ম সমর্থিত Google Home বা Google Nest ডিভাইসে আপনার লোকাল ফিফুলমেন্ট অ্যাপ চালায়। নিম্নলিখিত টেবিলে সমর্থিত ডিভাইস এবং প্রতিটি ডিভাইসে ব্যবহৃত রানটাইম বর্ণনা করা হয়েছে। রানটাইম প্রয়োজনীয়তা সম্পর্কে আরও জানতে, এক্সিকিউশন এনভায়রনমেন্ট দেখুন।
ডিভাইস | টাইপ | পরিবেশ |
---|---|---|
গুগল হোম | স্পিকার | ক্রোম |
গুগল হোম মিনি | স্পিকার | ক্রোম |
গুগল হোম ম্যাক্স | স্পিকার | ক্রোম |
নেস্ট মিনি | স্পিকার | ক্রোম |
নেস্ট হাব | প্রদর্শন | ক্রোম |
নেস্ট হাব ম্যাক্স | প্রদর্শন | ক্রোম |
নেস্ট ওয়াইফাই | রাউটার | Node.js |
বিন্দু | ক্রোম |
মৃত্যুদন্ড কার্যকর করার পরিবেশ
আপনার স্থানীয় পূর্ণতা অ্যাপের জন্য কার্যকরী পরিবেশ আপনার ডিভাইসের উপর নির্ভর করে। স্থানীয় হোম প্ল্যাটফর্ম নিম্নলিখিত রানটাইম পরিবেশ সমর্থন করে:
- Chrome : আপনার স্থানীয় পূর্ণতা অ্যাপটি ECMAScript সংস্করণ ES2018-এর সমর্থন সহ Chrome M80 বা তার পরবর্তী সংস্করণে চলমান একটি Chrome ব্রাউজার
window
প্রেক্ষাপটে কার্যকর করা হয়। - Node.js : আপনার স্থানীয় পূর্ণতা অ্যাপটি ECMAScript সংস্করণ ES2018 এর সমর্থন সহ Node v10.x LTS বা তার পরে চলমান Node.js প্রক্রিয়ার মধ্যে একটি স্ক্রিপ্ট হিসাবে কার্যকর করা হয়।
সোর্স কোড গঠন
আমরা লোকাল হোম SDK দ্বারা প্রদত্ত বান্ডলার কনফিগারেশন ব্যবহার করে আপনার নির্ভরতাগুলিকে একটি একক জাভাস্ক্রিপ্ট ফাইলে বান্ডিল করার এবং আপনার সোর্স কোডটিকে অবিলম্বে-আমন্ত্রিত ফাংশন এক্সপ্রেশন (IIFE) হিসাবে প্যাকেজ করার পরামর্শ দিই৷
বাস্তবায়নের পথ
আপনার স্মার্ট হোম ইন্টিগ্রেশনের জন্য স্থানীয় হোম SDK ব্যবহার করতে, আপনাকে এই কাজগুলি সম্পাদন করতে হবে:
1 | স্ক্যান কনফিগারেশন সেট আপ করুন | স্থানীয়ভাবে নিয়ন্ত্রণযোগ্য ডিভাইসগুলি আবিষ্কার করতে সহায়কের জন্য প্রয়োজনীয় প্যারামিটার সহ Google Home Developer Console কনফিগার করুন। |
2 | আপনার ক্লাউড পরিপূর্ণতায় SYNC প্রতিক্রিয়া আপডেট করুন | আপনার ক্লাউড পরিপূরণে, otherDeviceIds ফিল্ডকে সমর্থন করার জন্য SYNC অনুরোধ হ্যান্ডলারটি পরিবর্তন করুন যা প্ল্যাটফর্ম একটি স্থানীয় পরিপূর্ণতা পাথ স্থাপন করতে ব্যবহার করে। সেই ক্ষেত্রে, স্থানীয়ভাবে নিয়ন্ত্রণ করা যেতে পারে এমন ডিভাইসগুলির আইডি উল্লেখ করুন। |
3 | স্থানীয় পরিপূর্ণতা অ্যাপটি প্রয়োগ করুন | IDENTIFY , EXECUTE , এবং QUERY উদ্দেশ্যগুলি পরিচালনা করতে একটি জাভাস্ক্রিপ্ট অ্যাপ তৈরি করতে স্থানীয় হোম SDK ব্যবহার করুন৷ হাব বা ব্রিজ প্রক্সি ডিভাইসগুলির জন্য, আপনাকে REACHABLE_DEVICES অভিপ্রায়ও পরিচালনা করা উচিত৷ |
4 | আপনার অ্যাপ পরীক্ষা করুন এবং ডিবাগ করুন | Google Home Test Suite ব্যবহার করে আপনার ইন্টিগ্রেশন (বা স্ব-প্রত্যয়িত ) পরীক্ষা করুন। |
আপনি শুরু করার আগে
- একটি Cloud-to-cloud ইন্টিগ্রেশন তৈরি করার মূল বিষয়গুলির সাথে নিজেকে পরিচিত করুন।
- Google Home Developer Console এ, নিশ্চিত করুন যে আপনার একটি বিদ্যমান স্মার্ট হোম প্রজেক্ট আছে এবং সেই অ্যাকাউন্ট লিঙ্কিং কনফিগার করা আছে ।
- আপনি Developer Console এবং আপনার টেস্ট ডিভাইসে অ্যাসিস্ট্যান্ট-এ একই Google অ্যাকাউন্ট দিয়ে লগ ইন করেছেন তা নিশ্চিত করুন।
- আপনার অ্যাপটি লিখতে আপনার একটি Node.js পরিবেশের প্রয়োজন হবে৷ Node.js এবং npm ইনস্টল করার জন্য, নোড সংস্করণ ম্যানেজার সুপারিশ করা হয়।
- স্থানীয় হোম SDK-এর সর্বশেষ সংস্করণের সাথে কাজ করতে, আপনাকে আপনার পরীক্ষামূলক ডিভাইসগুলি কাস্ট প্রিভিউ প্রোগ্রামে নথিভুক্ত করতে হবে।