লোকাল হোম SDK স্মার্ট হোমের উদ্দেশ্য পূরণের জন্য একটি স্থানীয় পরিপূর্ণতা পথ যোগ করে গুগল অ্যাসিস্ট্যান্টের সাথে আপনার স্মার্ট হোম ইন্টিগ্রেশনকে উন্নত করে।
লোকাল হোম এসডিকে দুটি ক্ষমতা প্রদান করে: লোকাল এক্সিকিউশন এবং লোকাল কোয়েরি।
- লোকাল এক্সিকিউশন ক্লাউড এপিআই কল করার পরিবর্তে লোকাল ফুলফিলমেন্ট পাথের মাধ্যমে
EXECইন্টেন্ট পাঠিয়ে কমান্ড পূরণ করার ক্ষমতা প্রদান করে। উদাহরণস্বরূপ, 'আলো জ্বালাও' অনুরোধটি লোকাল এক্সিকিউশন দ্বারা পরিচালিত হতে পারে। - লোকাল কোয়েরি, লোকাল ফুলফিলমেন্ট পাথের মাধ্যমে
QUERYইন্টেন্ট পাঠিয়ে ডিভাইসের অবস্থা সম্পর্কিত প্রশ্নগুলি পরিচালনা করার ক্ষমতা প্রদান করে। উদাহরণস্বরূপ, লোকাল কোয়েরি ক্লাউড API কল না করেই 'আমার আলো কি চালু আছে?' প্রশ্নটি পূরণ করবে।
SDK আপনাকে টাইপস্ক্রিপ্ট বা জাভাস্ক্রিপ্ট ব্যবহার করে একটি স্থানীয় পরিপূর্ণতা অ্যাপ লিখতে দেয়, যাতে আপনার স্মার্ট হোম ব্যবসার যুক্তি থাকে। গুগল হোম বা গুগল নেস্ট ডিভাইসগুলি আপনার অ্যাপটি ডিভাইসে লোড এবং চালাতে পারে। আপনার অ্যাপটি স্থানীয় এরিয়া নেটওয়ার্ক (LAN) এর Wi-Fi এর মাধ্যমে আপনার বিদ্যমান স্মার্ট ডিভাইসগুলির সাথে সরাসরি যোগাযোগ করে, বিদ্যমান প্রোটোকলের মাধ্যমে ব্যবহারকারীর আদেশগুলি পূরণ করে।
SDK-এর ইন্টিগ্রেশন আপনার Cloud-to-cloud ইন্টিগ্রেশনে কর্মক্ষমতা উন্নতি প্রদান করে, যার মধ্যে রয়েছে কম ল্যাটেন্সি এবং উচ্চতর নির্ভরযোগ্যতা। স্থানীয় পরিপূর্ণতা সমস্ত ডিভাইসের ধরণ এবং ডিভাইস বৈশিষ্ট্যের জন্য সমর্থিত, সেকেন্ডারি ব্যবহারকারী যাচাইকরণ ব্যবহার করে এমন ডিভাইস ব্যতীত।
তৈরি শুরু করুন নমুনাটি চেষ্টা করুন
এটি কীভাবে কাজ করে তা বুঝুন
আপনার ক্লাউড পরিপূর্ণতা থেকে একটি SYNC প্রতিক্রিয়া পাওয়ার পর, লোকাল হোম প্ল্যাটফর্মটি সহকারীর সাথে সংযুক্ত স্মার্ট ডিভাইসগুলি আবিষ্কার করতে mDNS, UDP ব্রডকাস্ট, অথবা UPnP ব্যবহার করে ব্যবহারকারীর লোকাল এরিয়া নেটওয়ার্ক স্ক্যান করে।
ডিভাইসটি স্থানীয়ভাবে নিয়ন্ত্রণযোগ্য কিনা তা নির্ধারণের জন্য প্ল্যাটফর্মটি একটি IDENTIFY ইন্টেন্ট পাঠায়, IDENTIFY রেসপন্সে থাকা ডিভাইস আইডির সাথে পূর্ববর্তী SYNC রেসপন্সের মাধ্যমে প্রদত্ত ডিভাইসের তুলনা করে। যদি সনাক্ত করা ডিভাইসটি একটি হাব বা ব্রিজ হয়, তাহলে প্ল্যাটফর্মটি একটি REACHABLE_DEVICES ইন্টেন্ট পাঠায় এবং স্থানীয়ভাবে যোগাযোগের জন্য হাবটিকে প্রক্সি ডিভাইস হিসেবে বিবেচনা করে।
যখন এটি একটি স্থানীয় ডিভাইস নিশ্চিত করে একটি প্রতিক্রিয়া পায়, তখন প্ল্যাটফর্মটি ব্যবহারকারীর গুগল হোম বা গুগল নেস্ট ডিভাইসে একটি স্থানীয় পরিপূর্ণতা পথ স্থাপন করে এবং পরবর্তীতে স্থানীয় পরিপূর্ণতার জন্য ব্যবহারকারীর কমান্ডগুলিকে রুট করে।
যখন কোনও ব্যবহারকারী Cloud-to-cloud ইন্টিগ্রেশন ট্রিগার করে যার একটি স্থানীয় পূর্ণতা পথ থাকে, তখন Assistant ক্লাউড পূর্ণতা পরিবর্তে Google Home বা Google Nest ডিভাইসে EXECUTE ইন্টেন্ট বা QUERY ইন্টেন্ট পাঠায়। এরপর ডিভাইসটি উদ্দেশ্য প্রক্রিয়া করার জন্য স্থানীয় পূর্ণতা অ্যাপটি চালায়।

লোকাল হোম প্ল্যাটফর্মটি কোন গুগল হোম বা গুগল নেস্ট ডিভাইসে কমান্ডটি ট্রিগার করবে তা নির্ধারণে অ-নির্ধারক। EXECUTE এবং QUERY ইন্টেন্টগুলি লক্ষ্য ডিভাইসের মতো একই হোম গ্রাফ কাঠামোতে সংজ্ঞায়িত যেকোনো গুগল হোম বা গুগল নেস্ট ডিভাইসের মাধ্যমে আসতে পারে।
স্থানীয় পরিপূর্ণতা অ্যাপ
লোকাল ফুলফিলমেন্ট অ্যাপটিতে লোকাল হোম প্ল্যাটফর্মের পাঠানো ইন্টেন্টগুলি প্রক্রিয়া করার এবং লোকাল এরিয়া নেটওয়ার্কের মাধ্যমে আপনার স্মার্ট ডিভাইস অ্যাক্সেস করার জন্য ব্যবসায়িক যুক্তি রয়েছে। লোকাল ফুলফিলমেন্ট ইন্টিগ্রেট করার জন্য আপনার হার্ডওয়্যারের কোনও পরিবর্তন আশা করা যায় না। অ্যাপটি HTTP, TCP, অথবা UDP সহ অ্যাপ্লিকেশন-স্তর প্রোটোকলের মাধ্যমে স্মার্ট ডিভাইসে নিয়ন্ত্রণ কমান্ড পাঠিয়ে Cloud-to-cloud ইন্টিগ্রেশন অনুরোধগুলি পূরণ করে। যদি লোকাল ফুলফিলমেন্ট পাথ ব্যর্থ হয়, তাহলে আপনার ক্লাউড ফুলফিলমেন্ট একটি ফলব্যাক এক্সিকিউশন পাথ হিসাবে ব্যবহৃত হয়।
অ্যাপ তৈরিতে সহায়তা করার জন্য, লোকাল হোম SDK এই দুটি প্রধান ক্লাস প্রদান করে:
-
DeviceManager: TCP, UDP সকেট, অথবা HTTP অনুরোধ ব্যবহার করে স্মার্ট ডিভাইসের সাথে যোগাযোগের পদ্ধতি প্রদান করে। -
App: স্থানীয়ভাবে নিয়ন্ত্রণযোগ্য ডিভাইসগুলি আবিষ্কার করার পরে Google যে ইন্টেন্টগুলি পাঠায় তার জন্য হ্যান্ডলার সংযুক্ত করার পদ্ধতি প্রদান করে (IDENTIFY,REACHABLE_DEVICES)। এই ক্লাসটি ব্যবহারকারীর কমান্ডগুলি (EXECUTE) পূরণ করে এবং বর্তমান ডিভাইসের অবস্থা (QUERY) সম্পর্কে ব্যবহারকারীর প্রশ্নের উত্তর দেয়।
ডেভেলপমেন্টের সময়, আপনি আপনার নিজস্ব হোস্টিং সার্ভার বা স্থানীয় ডেভেলপমেন্ট মেশিনে লোড করে অ্যাপটি তৈরি এবং পরীক্ষা করতে পারেন। প্রোডাকশনের সময়, Google ব্যবহারকারীর Google Home বা Google Nest ডিভাইসে একটি নিরাপদ JavaScript স্যান্ডবক্স পরিবেশে আপনার অ্যাপটি হোস্ট করে।
স্থানীয় পূরণের জন্য বর্তমানে রিপোর্ট স্টেট API সমর্থিত নয়। এই অনুরোধগুলি প্রক্রিয়া করার জন্য Google আপনার ক্লাউড পূরণের উপর নির্ভর করে।
অ্যাপ্লিকেশন জীবনচক্র
যখন লোকাল হোম প্ল্যাটফর্ম প্রজেক্ট স্ক্যান কনফিগারেশনের সাথে মিলে যাওয়া নতুন লোকাল ডিভাইস আবিষ্কার করে, অথবা পূর্বে চিহ্নিত ডিভাইসের সাথে সম্পর্কিত ডেলিভারির জন্য মুলতুবি থাকা উদ্দেশ্য থাকে, তখন আপনার লোকাল ফুলফিলমেন্ট অ্যাপটি চাহিদা অনুযায়ী লোড করা হয়।
গুগল হোম বা গুগল নেস্ট ডিভাইসগুলি মেমোরি সীমাবদ্ধ এবং সিস্টেমে মেমোরি চাপের কারণে আপনার লোকাল ফুলফিলমেন্ট অ্যাপটি যেকোনো সময় বন্ধ হয়ে যেতে পারে। যদি আপনার অ্যাপটি খুব বেশি মেমোরি ব্যবহার করতে শুরু করে, অথবা সিস্টেমকে অন্য অ্যাপের জন্য জায়গা খালি করার প্রয়োজন হয় তবে এটি ঘটতে পারে। লোকাল হোম প্ল্যাটফর্মটি কেবল তখনই আপনার অ্যাপটি পুনরায় চালু করে যখন নতুন ডেলিভারি করার ইচ্ছা থাকে এবং অ্যাপটি চালানোর জন্য পর্যাপ্ত মেমোরি রিসোর্স থাকে।
যখন ব্যবহারকারী তাদের অ্যাকাউন্ট আনলিঙ্ক করে দেয় অথবা ব্যবহারকারীর agentUserId সাথে যুক্ত স্থানীয় পূরণ সমর্থন করে এমন ডিভাইস আর থাকে না, তখন লোকাল হোম প্ল্যাটফর্মটি একটি নিষ্ক্রিয় টাইমআউটের পরে আপনার অ্যাপটি আনলোড করে।
সমর্থিত ডিভাইস
লোকাল হোম প্ল্যাটফর্ম আপনার লোকাল ফুলফিলমেন্ট অ্যাপটি সমর্থিত গুগল হোম বা গুগল নেস্ট ডিভাইসে কার্যকর করে। নিম্নলিখিত টেবিলে সমর্থিত ডিভাইস এবং প্রতিটি ডিভাইসে ব্যবহৃত রানটাইম বর্ণনা করা হয়েছে। রানটাইমের প্রয়োজনীয়তা সম্পর্কে আরও জানতে, এক্সিকিউশন এনভায়রনমেন্ট দেখুন।
| যন্ত্র | আদর্শ | পরিবেশ |
|---|---|---|
| গুগল হোম | বক্তা | ক্রোম |
| গুগল হোম মিনি | বক্তা | ক্রোম |
| গুগল হোম ম্যাক্স | বক্তা | ক্রোম |
| নেস্ট মিনি | বক্তা | ক্রোম |
| নেস্ট হাব | প্রদর্শন | ক্রোম |
| নেস্ট হাব ম্যাক্স | প্রদর্শন | ক্রোম |
| নেস্ট ওয়াইফাই | রাউটার | নোড.জেএস |
| বিন্দু | ক্রোম |
কার্যকর করার পরিবেশ
আপনার লোকাল ফুলফিলমেন্ট অ্যাপের এক্সিকিউশন এনভায়রনমেন্ট আপনার ডিভাইসের উপর নির্ভর করে। লোকাল হোম প্ল্যাটফর্ম নিম্নলিখিত রানটাইম এনভায়রনমেন্টগুলিকে সমর্থন করে:
- Chrome : আপনার স্থানীয় পরিপূর্ণতা অ্যাপটি ECMAScript সংস্করণ ES2018 সমর্থন সহ Chrome M80 বা তার পরবর্তী সংস্করণে চলমান Chrome ব্রাউজার
windowপ্রেক্ষাপটে কার্যকর করা হয়। - Node.js : আপনার স্থানীয় পূর্ণতা অ্যাপটি Node.js প্রক্রিয়ার মধ্যে একটি স্ক্রিপ্ট হিসাবে কার্যকর করা হয় যা Node v10.x LTS বা তার পরবর্তী সংস্করণে ECMAScript সংস্করণ ES2018 সমর্থন করে।
সোর্স কোড কাঠামো
আমরা আপনার নির্ভরতাগুলিকে Local Home SDK দ্বারা প্রদত্ত বান্ডলার কনফিগারেশন ব্যবহার করে একটি একক JavaScript ফাইলে বান্ডেল করার এবং আপনার সোর্স কোডটিকে Immediately-invoked Function Expression (IIFE) হিসাবে প্যাকেজ করার পরামর্শ দিচ্ছি।
বাস্তবায়নের পথ
আপনার স্মার্ট হোম ইন্টিগ্রেশনের জন্য লোকাল হোম SDK ব্যবহার করতে, আপনাকে এই কাজগুলি সম্পাদন করতে হবে:
| ১ | স্ক্যান কনফিগারেশন সেট আপ করুন | স্থানীয়ভাবে নিয়ন্ত্রণযোগ্য ডিভাইসগুলি আবিষ্কার করার জন্য সহকারীর জন্য প্রয়োজনীয় প্যারামিটারগুলি সহ Google Home Developer Console কনফিগার করুন। |
| ২ | আপনার ক্লাউড পূরণে SYNC প্রতিক্রিয়া আপডেট করুন | আপনার ক্লাউড পূর্ণতায়, SYNC অনুরোধ হ্যান্ডলারটি পরিবর্তন করুন যাতে প্ল্যাটফর্মটি স্থানীয় পূর্ণতা পথ স্থাপনের জন্য যে otherDeviceIds ফিল্ড ব্যবহার করে তা সমর্থন করে। সেই ফিল্ডে, স্থানীয়ভাবে নিয়ন্ত্রিত হতে পারে এমন ডিভাইসের আইডি উল্লেখ করুন। |
| ৩ | স্থানীয় পরিপূর্ণতা অ্যাপটি বাস্তবায়ন করুন | IDENTIFY , EXECUTE , এবং QUERY ইন্টেন্ট পরিচালনা করার জন্য একটি জাভাস্ক্রিপ্ট অ্যাপ তৈরি করতে Local Home SDK ব্যবহার করুন। হাব বা ব্রিজ প্রক্সি ডিভাইসের জন্য, আপনার REACHABLE_DEVICES ইন্টেন্টও পরিচালনা করা উচিত। |
| ৪ | আপনার অ্যাপটি পরীক্ষা এবং ডিবাগ করুন | গুগল হোম টেস্ট স্যুট ব্যবহার করে আপনার ইন্টিগ্রেশন পরীক্ষা করুন (অথবা স্ব-প্রত্যয়িত করুন )। |
শুরু করার আগে
- Cloud-to-cloud ইন্টিগ্রেশন তৈরির মূল বিষয়গুলির সাথে নিজেকে পরিচিত করুন।
- Google Home Developer Console , নিশ্চিত করুন যে আপনার একটি বিদ্যমান স্মার্ট হোম প্রকল্প আছে এবং সেই অ্যাকাউন্ট লিঙ্কিং কনফিগার করা আছে ।
- নিশ্চিত করুন যে আপনি আপনার পরীক্ষামূলক ডিভাইসে Developer Console এবং অ্যাসিস্ট্যান্টে একই Google অ্যাকাউন্ট দিয়ে লগ ইন করেছেন।
- আপনার অ্যাপটি লেখার জন্য আপনার একটি Node.js পরিবেশের প্রয়োজন হবে। Node.js এবং npm ইনস্টল করার জন্য, Node Version Manager সুপারিশ করা হয়।
- লোকাল হোম SDK-এর সর্বশেষ সংস্করণের সাথে কাজ করার জন্য, আপনাকে আপনার পরীক্ষামূলক ডিভাইসগুলিকে কাস্ট প্রিভিউ প্রোগ্রামে নথিভুক্ত করতে হবে।