স্থানীয় পরিপূর্ণতা

Local Home SDK রুট স্মার্ট হোম ইন্টেন্টে একটি স্থানীয় পরিপূর্ণতা পাথ যোগ করে Google Assistant-এর সাথে আপনার স্মার্ট হোম ইন্টিগ্রেশন বাড়ায়।

SDK আপনাকে TypeScript বা JavaScript ব্যবহার করে একটি স্থানীয় পরিপূর্ণতা অ্যাপ লিখতে দেয়, যেটিতে আপনার স্মার্ট হোম বিজনেস লজিক রয়েছে। Google Home বা Google Nest ডিভাইসে আপনার অ্যাপ লোড ও চালাতে পারে। আপনার অ্যাপ বিদ্যমান প্রোটোকলের মাধ্যমে ব্যবহারকারীর আদেশগুলি পূরণ করতে লোকাল এরিয়া নেটওয়ার্কে (LAN) Wi-Fi এর মাধ্যমে আপনার বিদ্যমান স্মার্ট ডিভাইসগুলির সাথে সরাসরি যোগাযোগ করে।

SDK-এর ইন্টিগ্রেশন কম লেটেন্সি এবং উচ্চ নির্ভরযোগ্যতা সহ আপনার স্মার্ট হোম অ্যাকশনে পারফরম্যান্সের উন্নতির প্রস্তাব দেয়। সেকেন্ডারি ইউজার ভেরিফিকেশন ব্যবহার করে এমন সব ডিভাইসের ধরন এবং ডিভাইসের বৈশিষ্ট্যের জন্য স্থানীয় পরিপূর্ণতা সমর্থিত।

বিল্ডিং শুরু করুন নমুনা চেষ্টা করুন

এটা কিভাবে কাজ করে তা বুঝুন

আপনার ক্লাউড পরিপূর্ণতা থেকে একটি SYNC প্রতিক্রিয়া পাওয়ার পরে, স্থানীয় হোম প্ল্যাটফর্মটি এমডিএনএস, ইউডিপি ব্রডকাস্ট বা UPnP ব্যবহার করে অ্যাসিস্ট্যান্টের সাথে সংযুক্ত স্মার্ট ডিভাইসগুলি আবিষ্কার করতে ব্যবহারকারীর লোকাল এরিয়া নেটওয়ার্ক স্ক্যান করে।

ডিভাইসটি স্থানীয়ভাবে নিয়ন্ত্রণযোগ্য কিনা তা নির্ধারণ করার জন্য প্ল্যাটফর্মটি একটি IDENTIFY অভিপ্রায় পাঠায়, পূর্বের SYNC প্রতিক্রিয়া দ্বারা ফিরে আসা IDENTIFY প্রতিক্রিয়ার সাথে ডিভাইস আইডি তুলনা করে। যদি সনাক্ত করা ডিভাইসটি একটি হাব বা সেতু হয়, তাহলে প্ল্যাটফর্মটি একটি REACHABLE_DEVICES উদ্দেশ্য পাঠায় এবং হাবটিকে স্থানীয়ভাবে যোগাযোগের জন্য প্রক্সি ডিভাইস হিসাবে বিবেচনা করে৷

যখন এটি একটি স্থানীয় ডিভাইস নিশ্চিত করে একটি প্রতিক্রিয়া পায়, তখন প্ল্যাটফর্ম ব্যবহারকারীর Google Home বা Google Nest ডিভাইসে একটি স্থানীয় পূর্ণতা পাথ স্থাপন করে এবং পরবর্তীতে স্থানীয় পূর্ণতার জন্য ব্যবহারকারীর আদেশগুলিকে রুট করে।

যখন একজন ব্যবহারকারী একটি স্মার্ট হোম অ্যাকশন ট্রিগার করেন যার একটি স্থানীয় পূর্ণতা পাথ রয়েছে, তখন Assistant ক্লাউড পূরণের পরিবর্তে Google Home বা Google Nest ডিভাইসে EXECUTE ইন্টেন্ট বা QUERY ইন্টেন্ট পাঠায়। ডিভাইসটি তারপর অভিপ্রায় প্রক্রিয়া করার জন্য স্থানীয় পূর্ণতা অ্যাপ চালায়।

এই চিত্রটি স্থানীয় পরিপূর্ণতার জন্য কার্যকরী প্রবাহ দেখায়। এক্সিকিউশন পাথ Google অ্যাসিস্ট্যান্ট সহ একটি ফোন থেকে ব্যবহারকারীর অভিপ্রায় ক্যাপচার করে, তারপর ব্যবহারকারীর অভিপ্রায় Google ক্লাউড দ্বারা প্রক্রিয়া করা হয়, তারপর এটি Google Home ডিভাইসে স্থানীয়ভাবে কার্যকর করা হয় এবং কমান্ডটি সরাসরি ডিভাইস হাবে বা সরাসরি ডিভাইসে জারি করা হয় . বিকাশকারী ক্লাউড ক্লাউড ফলব্যাক হিসাবে উপলব্ধ।
চিত্র 1: আপনার স্মার্ট হোম অ্যাকশনের জন্য একটি স্থানীয় পরিপূর্ণতা পথ যোগ করা।

কোন Google Home বা Google Nest ডিভাইস কমান্ডটি ট্রিগার করবে তা বেছে নেওয়ার ক্ষেত্রে লোকাল হোম প্ল্যাটফর্ম অনির্ধারিত। EXECUTE এবং QUERY ইন্টেন্ট যেকোন Google Home বা Google Nest ডিভাইসের মাধ্যমে আসতে পারে যা লক্ষ্য ডিভাইসের মতো একই হোম গ্রাফ কাঠামোতে সংজ্ঞায়িত করা হয়েছে।

স্থানীয় পরিপূর্ণতা অ্যাপ

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

অ্যাপ তৈরিতে সহায়তা করার জন্য, স্থানীয় হোম 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 ডিভাইসে আপনার লোকাল ফিফুলমেন্ট অ্যাপ চালায়। নিম্নলিখিত টেবিলে সমর্থিত ডিভাইস এবং প্রতিটি ডিভাইসে ব্যবহৃত রানটাইম বর্ণনা করা হয়েছে। রানটাইম প্রয়োজনীয়তা সম্পর্কে আরও জানতে, এক্সিকিউশন এনভায়রনমেন্ট দেখুন।

যন্ত্র টাইপ পরিবেশ
গুগল হোম স্পিকার ক্রোম
গুগল হোম মিনি স্পিকার ক্রোম
Google Home Max স্পিকার ক্রোম
নেস্ট মিনি স্পিকার ক্রোম
নেস্ট হাব প্রদর্শন ক্রোম
নেস্ট হাব ম্যাক্স প্রদর্শন ক্রোম
নেস্ট ওয়াইফাই রাউটার Node.js
বিন্দু ক্রোম

মৃত্যুদন্ড কার্যকর করার পরিবেশ

আপনার স্থানীয় পূর্ণতা অ্যাপের জন্য কার্যকরী পরিবেশ আপনার ডিভাইসের উপর নির্ভর করে। স্থানীয় হোম প্ল্যাটফর্ম নিম্নলিখিত রানটাইম পরিবেশ সমর্থন করে:

  • Chrome : আপনার স্থানীয় পূর্ণতা অ্যাপটি ECMAScript সংস্করণ ES2018-এর সমর্থন সহ Chrome M80 বা তার পরবর্তী সংস্করণে চলমান একটি Chrome ব্রাউজার window প্রেক্ষাপটে কার্যকর করা হয়।
  • Node.js : আপনার স্থানীয় পূর্ণতা অ্যাপটি ECMAScript সংস্করণ ES2018 এর সমর্থন সহ Node v10.x LTS বা তার পরে চলমান Node.js প্রক্রিয়ার মধ্যে একটি স্ক্রিপ্ট হিসাবে কার্যকর করা হয়।

সোর্স কোড গঠন

আমরা লোকাল হোম SDK দ্বারা প্রদত্ত বান্ডলার কনফিগারেশন ব্যবহার করে আপনার নির্ভরতাগুলিকে একটি একক জাভাস্ক্রিপ্ট ফাইলে বান্ডিল করার এবং আপনার সোর্স কোডটিকে অবিলম্বে-আমন্ত্রিত ফাংশন এক্সপ্রেশন (IIFE) হিসাবে প্যাকেজ করার পরামর্শ দিই৷

বাস্তবায়নের পথ

আপনার স্মার্ট হোম ইন্টিগ্রেশনের জন্য স্থানীয় হোম SDK ব্যবহার করতে, আপনাকে এই কাজগুলি সম্পাদন করতে হবে:

1 স্ক্যান কনফিগারেশন সেট আপ করুন স্থানীয়ভাবে নিয়ন্ত্রণযোগ্য ডিভাইসগুলি আবিষ্কার করতে সহায়কের জন্য প্রয়োজনীয় প্যারামিটার সহ অ্যাকশন কনসোল কনফিগার করুন।
2 আপনার ক্লাউড পরিপূর্ণতায় SYNC প্রতিক্রিয়া আপডেট করুন আপনার ক্লাউড পরিপূরণে, otherDeviceIds ফিল্ডকে সমর্থন করার জন্য SYNC অনুরোধ হ্যান্ডলারটি পরিবর্তন করুন যা প্ল্যাটফর্ম একটি স্থানীয় পরিপূর্ণতা পাথ স্থাপন করতে ব্যবহার করে। সেই ক্ষেত্রে, স্থানীয়ভাবে নিয়ন্ত্রণ করা যেতে পারে এমন ডিভাইসগুলির আইডি উল্লেখ করুন।
3 স্থানীয় পরিপূর্ণতা অ্যাপটি প্রয়োগ করুন IDENTIFY , EXECUTE , এবং QUERY উদ্দেশ্যগুলি পরিচালনা করতে একটি জাভাস্ক্রিপ্ট অ্যাপ তৈরি করতে স্থানীয় হোম SDK ব্যবহার করুন৷ হাব বা ব্রিজ প্রক্সি ডিভাইসগুলির জন্য, আপনাকে REACHABLE_DEVICES অভিপ্রায়ও পরিচালনা করা উচিত৷
4 আপনার অ্যাপ পরীক্ষা করুন এবং ডিবাগ করুন Google Home Test Suite ব্যবহার করে আপনার ইন্টিগ্রেশন (বা স্ব-প্রত্যয়িত ) পরীক্ষা করুন।

তুমি শুরু করার আগে