১. ভূমিকা
ম্যাটার হলো একটি কানেক্টিভিটি প্রোটোকল যা স্মার্ট ডিভাইস তৈরির ক্ষেত্রে দারুণ সুযোগ নিয়ে আসে। এই কোডল্যাবে, আপনি ম্যাটার এসডিকে (Matter SDK)-এর রিসোর্স ব্যবহার করে আপনার প্রথম ম্যাটার ডিভাইসটি তৈরি করবেন।
ম্যাটার সম্পর্কে জানতে, গুগল হোম ডেভেলপার সেন্টার অথবা কানেক্টিভিটি স্ট্যান্ডার্ডস অ্যালায়েন্সের ওয়েবসাইট দেখুন।
আপনি যা শিখবেন
- ম্যাটার বিল্ড এনভায়রনমেন্ট কীভাবে সেট আপ করবেন
- কীভাবে আপনার কম্পিউটারে চালিত একটি ভার্চুয়াল ম্যাটার ডিভাইস তৈরি করবেন
- গুগল হোম দিয়ে ভার্চুয়াল ম্যাটার ডিভাইসটি কীভাবে চালু ও নিয়ন্ত্রণ করবেন
আপনার যা যা লাগবে
- হাব হলো এমন যেকোনো গুগল নেস্ট ডিভাইস যা ম্যাটার (Matter) সমর্থন করে , যেমন নেস্ট হাব (২য় প্রজন্ম)।
- এক্স১১ উইন্ডোইং সিস্টেম চালিত একটি লিনাক্স মেশিন।
- ডকার।
- গিট।
- লিনাক্স সম্পর্কে প্রাথমিক জ্ঞান।
- উল্লেখ্য যে, এই কোডল্যাবের সমস্ত কমান্ডের জন্য অনুমিত শেল হলো BASH।
২. আপনার পরিবেশ প্রস্তুত করুন
আপনার হার্ডওয়্যার পরীক্ষা করুন
এই ডকার ইনস্টলেশনটি উইন্ডোজ এবং ম্যাকওএস কম্পিউটার সমর্থন করে না। আপনি ম্যাকওএস-এ ম্যানুয়ালি ম্যাটার ইনস্টল এবং বিল্ড করতে পারেন।
এছাড়াও, এই নির্দেশাবলীতে ধরে নেওয়া হয়েছে যে আপনার লিনাক্স মেশিনে X11 উইন্ডোইং সিস্টেম চলছে। যদি আপনার লিনাক্স মেশিনে Wayland চলে, তবে নিশ্চিত করুন যে X.Org- ও ইনস্টল করা আছে।
উন্নয়ন পরিবেশ সেট আপ করুন
- ডকার ইঞ্জিন ইনস্টল করুন (ডকার ডেস্কটপ ব্যবহার করবেন না)।
- Matter SDK ক্লোন করুন এবং আমরা নিচে যে কমিটটি ব্যবহার করছি তা লক্ষ্য করুন।
git clone https://github.com/project-chip/connectedhomeip.git cd connectedhomeip git show commit f2f3d0eb03ba5bea32b22f19982c402a8c1c9063
- SDK-এর পাবলিক CI ইমেজ ব্যবহার করে একটি বিল্ড কন্টেইনার চালান, এবং এই কন্টেইনারের ভেতর থেকে নতুন তৈরি করা ভার্চুয়াল ডিভাইসটি এক্সিকিউট করুন। আমাদের SDK-এর ভার্সনের সাথে মেলে এমন ব্যবহারযোগ্য ইমেজটি এইভাবে খুঁজে বের করুন:
আপনি যদি একই কমিট ব্যবহার করেন, তাহলে আপনিbuildimage=$(grep chip-build .github/workflows/chef.yaml | head -n 1 | awk '{print $2}') echo $buildimageghcr.io/project-chip/chip-build:66দেখতে পাবেন। প্রথমে, xhost পোর্টগুলো ফরওয়ার্ড করুন যাতে আমরা পরে UI অ্যাপ্লিকেশনগুলো ব্যবহার করতে পারি: এরপরে, হোস্ট থেকে ফরোয়ার্ড করা উপযুক্ত রিসোর্স (আমাদের SDK চেকআউট, নেটওয়ার্কিং, এবং ডিসপ্লে/কমিউনিকেশন রিসোর্স) দিয়ে কন্টেইনারটি চালু করুন।xhost local:1000
docker run -it --ipc=host --net=host -e DISPLAY --name matter-container --mount source=$(pwd),target=/workspace,type=bind --workdir="/workspace" $buildimage /bin/bash
চলুন ডকার কমান্ড এবং এতে দেওয়া অপশনগুলো বুঝে নিই:
-
xhost local:1000কমান্ডটি এক্স উইন্ডো সিস্টেমকে লোকাল হোস্টের 1000 পোর্ট থেকে সংযোগ গ্রহণ করার অনুমতি দেয়, যার ফলে একটি গ্রাফিক ইউজার ইন্টারফেস ব্যবহার করা সম্ভব হয়। -
docker run … imageপ্রদত্ত ইমেজটি রান করে এবং প্রয়োজনে ডকার রেজিস্ট্রি থেকে তা পুল করে নেয়। -
--ipc=hostডকারকে আপনার হোস্ট মেশিনের সাথে আন্তঃপ্রক্রিয়া যোগাযোগ নেমস্পেস শেয়ার করার অনুমতি দেয়। -
--net=hostডকারকে কন্টেইনারের ভিতরে হোস্টের নেটওয়ার্ক স্ট্যাক ব্যবহার করার অনুমতি দেয়, যা হোস্ট থেকে কন্টেইনারে mDNS ট্র্যাফিক প্রেরণ করতে এবং হোস্টের X11 ডিসপ্লে শেয়ার করার জন্য প্রয়োজনীয়। -
-e DISPLAY$DISPLAYহোস্টে এক্সপোর্ট করে, যা আপনার সিস্টেমের গ্রাফিক ইন্টারফেসে অ্যাক্সেস প্রদান করে। ম্যাটার ক্লাস্টার সম্পাদনা করার সময় ZAP টুলটি চালানোর জন্য এটি প্রয়োজন। -
-itডকারকে ব্যাকগ্রাউন্ড প্রসেস হিসেবে না চালিয়ে, একটি ইন্টারেক্টিভ টার্মিনাল (tty) সহ রান করে। -
--mountআমাদের পূর্বে চেক আউট করা SDK-টিকে কন্টেইনারের মধ্যে মাউন্ট করে। -
--workdirবিকল্পটি চালুর সময় ওয়ার্কিং ডিরেক্টরিকে আমাদের মাউন্ট করা SDK ডিরেক্টরিতে সেট করে।
ঐচ্ছিকভাবে আপনি একটি দ্বিতীয় টার্মিনাল সেশন ইনস্ট্যান্স চালাতে পারেন:
user@host> docker exec -it matter-container /bin/bash $
Matter Docker কন্টেইনারটি বন্ধ করুন এবং আবার চালু করুন।
যখনই আপনি একটি docker run কমান্ড চালান, তখন নির্দিষ্ট ইমেজসহ একটি নতুন কন্টেইনার তৈরি হয়। এটি করার ফলে, আপনার আগের কন্টেইনার ইনস্ট্যান্সে সংরক্ষিত পুরোনো ডেটা হারিয়ে যায়। কখনও কখনও আপনি এটাই চান, কারণ এটি আপনাকে একটি নতুন ইনস্টলেশন দিয়ে শুরু করার সুযোগ দেয়। কিন্তু এমনও সময় আসে যখন আপনি সেশনগুলোর মাঝে আপনার কাজ এবং পরিবেশের কনফিগারেশন সংরক্ষণ করতে পছন্দ করেন।
এই কারণে, আপনার কন্টেইনার তৈরি করার পর, আপনার কাজ যাতে হারিয়ে না যায় সেজন্য আপনি কন্টেইনারটি বন্ধ করে দিতে পারেন।
user@host> docker stop matter-container
যখন আপনি আবার চালানোর জন্য প্রস্তুত হবেন, তখন কন্টেইনারটি চালু করুন এবং একটি টার্মিনাল উইন্ডো খুলুন:
user@host> docker start matter-container user@host> docker exec -it matter-container /bin/bash
আপনি নিম্নলিখিত উপায়ে আপনার কন্টেইনারে অতিরিক্ত টার্মিনাল সেশন খুলতে পারেন:
user@host> docker exec -it matter-container /bin/bash
অথবা নিম্নলিখিত উপায়ে রুট সেশন শুরু করুন:
user@host> docker exec -u 0 -it matter-container /bin/bash
প্রাথমিক বিষয় সেটআপ
SDK শুরু করুন
ম্যাটার এসডিকে (Matter SDK) চালু করুন। এই প্রক্রিয়াটি সম্পন্ন হতে কয়েক মিনিট সময় লাগবে।
source scripts/bootstrap.sh python3 scripts/checkout_submodules.py --shallow --platform linux
আপনার Matter SDK এখন ইনিশিয়ালাইজ করা হয়েছে। ভবিষ্যতে দ্রুত পরিবেশটি পুনরায় ইনিশিয়ালাইজ করতে, চালান:
sudo docker exec -it matter-container /bin/bash source ./scripts/activate.sh
হোস্ট এবং কন্টেইনারের মধ্যে ফাইল শেয়ার করুন
পূর্বে, আমরা বাইন্ড মাউন্ট ব্যবহার করে কন্টেইনারের ভেতর থেকে আপনার হোস্ট মেশিনের ফাইলগুলো অ্যাক্সেস করেছিলাম। হোস্ট থেকে অ্যাক্সেসের জন্য আপনি কন্টেইনারের ভেতর থেকে মাউন্ট করা ডিরেক্টরিতে ফাইল লিখতেও পারেন।
সাধারণত, আপনার বর্তমান ওয়ার্কিং ডিরেক্টরিকে কন্টেইনারের ভিতরে /workspace এ মাউন্ট করতে, কন্টেইনারটি চালানোর সময় অতিরিক্ত আর্গুমেন্ট --mount source=$(pwd),target=/workspace,type=bind ব্যবহার করুন।
user@host> docker run -it --ipc=host --net=host -e DISPLAY --name matter-container --mount source=$(pwd),target=/workspace,type=bind us-docker.pkg.dev/nest-matter/docker-repo/virtual-device-image:latest
মাউন্ট করা ডিরেক্টরিতে কন্টেইনার ব্যবহারকারীর অনুমতি হোস্ট থেকে পরিচালনা করতে হবে।
কন্টেইনারের ভেতর থেকে কন্টেইনার ব্যবহারকারীর গ্রুপ আইডি সংগ্রহ করুন।
$ id uid=1000(matter) gid=1000(matter) groups=1000(matter)
কন্টেইনার হোস্টে আরেকটি টার্মিনাল সেশন খুলুন এবং ওয়ার্কিং ডিরেক্টরিটিকে কন্টেইনার দ্বারা মাউন্ট করা ডিরেক্টরিতে সেট করুন।
মাউন্ট করা ডিরেক্টরিতে থাকা ফাইলগুলোর গ্রুপ রিকার্সিভলি কন্টেইনার ইউজারের গ্রুপে সেট করুন।
user@host> sudo chgrp -R 1000 .
ডিরেক্টরিতে গ্রুপটিকে আপনার কাঙ্ক্ষিত অনুমতি দিন। এই উদাহরণটি কন্টেইনার ব্যবহারকারীর গ্রুপকে মাউন্ট করা ডিরেক্টরির সমস্ত ফাইলে পড়া, লেখা এবং চালানোর অনুমতি দেয়।
user@host> sudo chmod -R g+rwx .
মনে রাখবেন যে এই কমান্ডগুলো হোস্ট ব্যবহারকারীর তৈরি করা নতুন ফাইলগুলোর অনুমতির উপর কোনো প্রভাব ফেলে না। প্রয়োজন অনুযায়ী হোস্টে তৈরি করা নতুন ফাইলগুলোর অনুমতি আপডেট করতে ভুলবেন না।
কন্টেইনার ব্যবহারকারীর তৈরি করা ফাইলগুলোর অনুমতি উত্তরাধিকারসূত্রে পাওয়ার জন্য, আপনি আপনার হোস্ট ব্যবহারকারীকে কন্টেইনার ব্যবহারকারীর গ্রুপে যুক্ত করতে পারেন।
user@host> currentuser=$(whoami) user@host> sudo usermod -a -G 1000 $currentuser
৩. গুগল হোম ডেভেলপার কনসোল
গুগল হোম ডেভেলপার কনসোল হলো একটি ওয়েব অ্যাপ্লিকেশন, যেখান থেকে আপনি গুগল হোমের সাথে আপনার ম্যাটার ইন্টিগ্রেশনগুলো পরিচালনা করতে পারেন।
কানেক্টিভিটি স্ট্যান্ডার্ডস অ্যালায়েন্স (Alliance) ম্যাটার সার্টিফিকেশন প্রাপ্ত যেকোনো ম্যাটার ডিভাইস গুগল হোম ইকোসিস্টেমে কাজ করে। যেসব ডিভাইস এখনো সার্টিফাইড হয়নি এবং বর্তমানে ডেভলপমেন্টের অধীনে রয়েছে, সেগুলো নির্দিষ্ট কিছু শর্ত সাপেক্ষে গুগল হোম ইকোসিস্টেমে চালু করা যেতে পারে — আরও তথ্যের জন্য পেয়ারিং সীমাবদ্ধতা দেখুন।
একটি ডেভেলপার প্রজেক্ট তৈরি করুন
প্রথমে গুগল হোম ডেভেলপার কনসোলে যান:
- প্রজেক্ট তৈরি করুন -এ ক্লিক করুন।
- একটি অনন্য প্রজেক্টের নাম লিখুন এবং তারপর 'প্রজেক্ট তৈরি করুন' বাটনে ক্লিক করুন।

- + Add integration-এ ক্লিক করুন, যা আপনাকে Matter রিসোর্স স্ক্রিনে নিয়ে যাবে, যেখানে আপনি Matter ডেভেলপমেন্ট ডকুমেন্টেশন দেখতে এবং কিছু টুল সম্পর্কে পড়তে পারবেন।
- যখন আপনি চালিয়ে যেতে প্রস্তুত হবেন, তখন ‘Next: Develop’-এ ক্লিক করুন, যা ‘Matter’ চেকলিস্ট পৃষ্ঠাটি প্রদর্শন করবে।
- পরবর্তী ধাপে যান: সেটআপ
- সেটআপ পেজে আপনার পণ্যের নাম লিখুন।
- 'ডিভাইসের ধরন নির্বাচন করুন'- এ ক্লিক করুন এবং ড্রপ-ডাউন মেনু থেকে ডিভাইসের ধরনটি নির্বাচন করুন (এই ক্ষেত্রে,
Light)। - ভেন্ডর আইডি (VID)-তে, টেস্ট ভিআইডি ( Test VID) নির্বাচন করুন এবং টেস্ট ভিআইডি ড্রপ-ডাউন মেনু থেকে 0xFFF1 নির্বাচন করুন। প্রোডাক্ট আইডি (PID)-তে, 0x8000 লিখুন এবং সেভ অ্যান্ড কন্টিনিউ (Save & continue) -তে ক্লিক করুন, এবং তারপর পরবর্তী পৃষ্ঠায় সেভ (Save)- এ ক্লিক করুন। এই নির্দিষ্ট VID/PID মানগুলি ব্যবহার করুন, কারণ পরবর্তী কোডল্যাব ধাপগুলি এগুলির উপর নির্ভরশীল।

- এখন আপনি আপনার ইন্টিগ্রেশনটি ‘Matter integrations’-এর অধীনে দেখতে পাবেন।
- আপনার হাবটি রিবুট করুন যাতে এটি সর্বশেষ ম্যাটার ইন্টিগ্রেশন প্রজেক্ট কনফিগারেশনটি পায়। যদি আপনাকে পরে VID বা PID পরিবর্তন করতে হয়, তবে পরিবর্তনটি কার্যকর হওয়ার জন্য প্রজেক্টটি সেভ করার পরেও আপনাকে রিবুট করতে হবে। ধাপে ধাপে রিবুট করার নির্দেশাবলীর জন্য ‘Restart Google Nest or Google Wifi devices’ দেখুন।
৪. একটি ডিভাইস তৈরি করুন
Matter-এর সমস্ত উদাহরণ গিটহাব রিপোজিটরির examples ফোল্ডারে পাওয়া যাবে। বেশ কিছু স্যাম্পল উপলব্ধ থাকলেও, এই কোডল্যাবে আমাদের মূল লক্ষ্য হলো Chef ।
শেফ উভয়ই:
- একটি নমুনা অ্যাপ যা একটি টার্মিনাল ইন্টারফেস প্রদান করে এবং এতে
examples/shellঅ্যাপে থাকা বৈশিষ্ট্যগুলোও অন্তর্ভুক্ত রয়েছে। - একটি স্ক্রিপ্ট যা ম্যাটার-সক্ষম ডিভাইস তৈরির জন্য প্রয়োজনীয় কয়েকটি সাধারণ কাজকে অন্তর্ভুক্ত করতে ‘কনভেনশন-ওভার-কনফিগারেশন’ নীতিকে গ্রহণ করে।
Chef উদাহরণ ফোল্ডারে যান এবং আপনার প্রথম Matter বিল্ডটি তৈরি করুন:
$ cd examples/chef $ ./chef.py -zbr -d rootnode_dimmablelight_bCwGYSDpoe -t linux
Chef-এর কয়েকটি অপশন আছে যা chef.py -h চালিয়ে দেখা যায়। আমরা এখানে যে অপশনগুলো ব্যবহার করছি তা হলো:
-
-d: ব্যবহৃত ডিভাইসের ধরন নির্ধারণ করে। এক্ষেত্রে, আমরা অন/অফ এবং লেভেল কন্ট্রোল সহ একটি লাইটিং অ্যাপ তৈরি করছি। -
-z: ডিভাইস টাইপটি বাস্তবায়নকারী সোর্স ফাইল তৈরি করার জন্য ZAP টুলটি চালু করে। অর্থাৎ, আপনার বেছে নেওয়া লাইটিংয়ের ওপর ভিত্তি করে, ZAP স্বয়ংক্রিয়ভাবে এমন কোড তৈরি করবে যা বিল্ডে অন্তর্ভুক্ত করা হবে এবং যা লাইটটিকে (ডেটা মডেল) ও অন্যান্য ডিভাইসের সাথে এর মিথস্ক্রিয়াকে (ইন্টারঅ্যাকশন মডেল) সংজ্ঞায়িত করে। -
-b: নির্মাণ করে। -
-r: [ঐচ্ছিক] ভার্চুয়াল ম্যাটার ডিভাইসে RPC সার্ভার সক্রিয় করে, যাতে অন্যান্য উপাদান (যেমন GUI) ডেটা মডেল অ্যাট্রিবিউট সেট ও পুনরুদ্ধার করার জন্য ডিভাইসটির সাথে যোগাযোগ করতে পারে। -
-t linux: টার্গেট প্ল্যাটফর্ম। সমর্থিত প্ল্যাটফর্মগুলো হলোlinux,nrfconnectএবংesp32। সমস্ত উপলব্ধ কমান্ড এবং সমর্থিত টার্গেট প্ল্যাটফর্মগুলো দেখতে আপনি./chef.py -hচালাতে পারেন। ভার্চুয়াল ম্যাটার ডিভাইসের জন্যlinuxব্যবহৃত হয়।
ডিভাইসটি চালান
Matter TCP/UDP পোর্ট 5540 ব্যবহার করে , তাই আপনার কম্পিউটারে যদি ফায়ারওয়াল চালু থাকে, তবে হয় সেটি বন্ধ করে দিন, অথবা পোর্ট 5540-এ আগত TCP/UDP সংযোগের অনুমতি দিন।
কন্টেইনারের মধ্যে ভার্চুয়াল ডিভাইসটি চালান:
$ ./linux/out/rootnode_dimmablelight_bCwGYSDpoe [1648589956496] [14264:16538181] CHIP: [DL] _Init] ... [1648562026.946882][433632:433632] CHIP:SVR: SetupQRCode: [MT:Y3.13Y2N00KA0648G00] [1648562026.946893][433632:433632] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code: [1648562026.946901][433632:433632] CHIP:SVR: https://project-chip.github.io/connectedhomeip/qrcode.html?data=MT%3AY3.13Y2N00KA0648G00 [1648562026.946915][433632:433632] CHIP:SVR: Manual pairing code: [34970112332]
আপনার ডিভাইসটি চালু রাখুন। এবার আমরা গুগল হোম অ্যাপের দিকে মনোযোগ দেব, যাতে আমরা আপনার ডিভাইসটিকে গুগল হোমে সংযুক্ত করতে পারি।
ডিভাইসটি বন্ধ করুন
ডিভাইসটি বন্ধ করার প্রয়োজন হলে, আপনি CTRL+C চেপে প্রোগ্রামটি বন্ধ করতে পারেন। যদি অ্যাপটি বন্ধ না হয়, তবে আপনাকে CTRL+\ ব্যবহার করতে হতে পারে।
আপনার ভার্চুয়াল ডিভাইসের ক্রেডেনশিয়ালগুলো /tmp/ ডিরেক্টরিতে, chip প্রিফিক্স দিয়ে শুরু হওয়া ফাইলগুলোতে সংরক্ষিত থাকে।
আপনি যদি শুরু থেকে সম্পূর্ণ কমিশনিং প্রক্রিয়াটি পুনরাবৃত্তি করতে চান, তাহলে আপনাকে নিম্নলিখিত কমান্ডটি চালিয়ে সেই ফাইলগুলি মুছে ফেলতে হবে:
$ rm /tmp/chip*
৫. ডিভাইসটি চালু করুন
দ্রষ্টব্য : এই ধাপটি কেবল তখনই সফল হবে, যদি আপনি ইতিমধ্যেই গুগল হোম ডেভেলপার কনসোলে আপনার প্রজেক্টটি সেট আপ করে থাকেন।
নেস্ট হাব
ম্যাটার ফ্যাব্রিকে আপনার ডিভাইসটি চালু করার জন্য একটি হাব প্রয়োজন। এটি হলো একটি গুগল নেস্ট ডিভাইস, যেমন নেস্ট হাব (২য় প্রজন্ম), যা ম্যাটার সমর্থন করে এবং যা থ্রেড-সক্ষম ডিভাইসগুলির জন্য একটি বর্ডার রাউটার এবং স্মার্ট হোম ইন্টেন্ট রাউটিং করার জন্য একটি স্থানীয় ফুলফিলমেন্ট পাথ উভয় হিসাবে কাজ করবে।
কোন কোন হাব ম্যাটার সমর্থন করে তা দেখতে এই তালিকাটি দেখুন।
কমিশনিং প্রক্রিয়া শুরু করার আগে, নিম্নলিখিত বিষয়গুলো নিশ্চিত করার জন্য পরীক্ষা করুন:
- আপনার হাবটি সেই একই গুগল অ্যাকাউন্টের সাথে যুক্ত করা আছে, যা আপনি গুগল হোম কনসোলে সাইন ইন করতে ব্যবহার করেছেন।
- আপনার হাবটি সেই একই ওয়াই-ফাই নেটওয়ার্কে রয়েছে, যেটিতে আপনার ভার্চুয়াল ম্যাটার ডিভাইস চালানোর জন্য ব্যবহৃত কম্পিউটারটি সংযুক্ত আছে।
- আপনার হাবটি সেই একই কাঠামোতে রয়েছে যা আপনি আপনার গুগল হোম অ্যাপে ব্যবহার করছেন। ( গুগল হোম গ্রাফের 'বাড়ি'টি আপনার কাঠামোকে নির্দেশ করে)।
একটি QR কোড পান
কমিশনিং প্রক্রিয়ার জন্য একটি কিউআর কোডের মাধ্যমে ম্যাটার অনবোর্ডিং তথ্য প্রদান করতে হবে। ম্যাটার অ্যাপ্লিকেশনের কনসোল আউটপুটটি পরীক্ষা করুন, যেখানে কমিশনিং-এর জন্য প্রাসঙ্গিক কিউআর কোডটির একটি লিঙ্ক থাকবে।
কমিশন অপারেশনটি সম্পাদন করুন
- গুগল হোম অ্যাপটি খুলুন।
- উপরের বাম কোণায় থাকা + চিহ্নটিতে ট্যাপ করুন।
- ডিভাইস সেট আপ করতে ট্যাপ করুন।
- নতুন ডিভাইস ট্যাপ করুন।
- আপনার বাড়ি নির্বাচন করুন এবং পরবর্তী ধাপে যান।
- Google Home অ্যাপ আপনার ডিভাইসটি স্ক্যান করে। যদি "Matter Device found..." বার্তাটি আসে, তাহলে 'Yes'-এ ট্যাপ করুন। অন্যথায়, 'Set up a different device'-এ ট্যাপ করুন, তারপর ডিভাইসের তালিকা থেকে 'Matter device' নির্বাচন করুন।
- আপনার ডিভাইসের কিউআর কোড অথবা ওয়েবসাইট থেকে তৈরি হওয়া কিউআর কোডটির দিকে আপনার ক্যামেরা তাক করুন।
- Google Home অ্যাপের নির্দেশনা অনুযায়ী পেয়ারিং প্রক্রিয়াটি চালিয়ে যান।
এই ধাপগুলো সম্পন্ন করলে, ম্যাটার ভার্চুয়াল ডিভাইসটি সফলভাবে চালু হয়ে যাবে এবং আপনার গুগল হোম অ্যাপে একটি নতুন আইকন হিসেবে দেখা যাবে।

সমস্যা সমাধান
"কানেক্টিভিটি সমস্যা" বা "গুগলের সাথে যোগাযোগ করা যায়নি" ত্রুটি বার্তার কারণে কমিশনিং ব্যর্থ হয়।
- নিশ্চিত করুন যে আপনি গুগল হোম কনসোলে সঠিক VID/PID সংমিশ্রণ ব্যবহার করে একটি প্রজেক্ট তৈরি করেছেন এবং আপনার অন্য কোনো প্রজেক্টে একই VID/PID সংমিশ্রণ ব্যবহার করা হচ্ছে না।
দীর্ঘ সময় ধরে 'আপনার ডিভাইস স্ক্যান করার' পর কমিশনিং ব্যর্থ হয়।
- আপনার কম্পিউটারের ফায়ারওয়াল বন্ধ আছে এবং আপনি ভার্চুয়াল ডিভাইসটি চালাচ্ছেন তা নিশ্চিত করুন ।
- আপনার কম্পিউটার যাতে শুধুমাত্র ওয়াই-ফাই ব্যবহার করে, তা নিশ্চিত করতে যেকোনো ফিজিক্যাল নেটওয়ার্ক ইন্টারফেস (ইথারনেট) সংযোগ বিচ্ছিন্ন করুন।
৬. ডিভাইসটি নিয়ন্ত্রণ করুন
একবার আপনার ম্যাটার-সক্ষম ডিভাইসটি সফলভাবে চালু হয়ে গেলে এবং গুগল হোম অ্যাপে একটি লাইট বাল্ব হিসেবে দেখা গেলে, আপনি বিভিন্ন পদ্ধতির মাধ্যমে ডিভাইসটির নিয়ন্ত্রণ পরীক্ষা করতে পারেন:
- গুগল অ্যাসিস্ট্যান্ট ব্যবহার করে।
- গুগল হোম অ্যাপ ব্যবহার করে।
গুগল অ্যাসিস্ট্যান্ট
আপনার ফোন বা হাবে থাকা গুগল অ্যাসিস্ট্যান্ট ব্যবহার করে ভয়েস কমান্ডের মাধ্যমে ডিভাইসের অবস্থা পরিবর্তন করুন, যেমন বলুন "হে গুগল, আমার লাইটগুলো চালু বা বন্ধ করো"।
কমান্ডের আরও উদাহরণের জন্য, গুগল হোম অ্যাপে যুক্ত হওয়া ‘ স্মার্ট হোম ডিভাইস নিয়ন্ত্রণ’ অংশের ‘ভয়েস কমান্ডের মাধ্যমে স্মার্ট হোম ডিভাইস নিয়ন্ত্রণ’ বিভাগটি দেখুন।
গুগল হোম অ্যাপ
আপনি গুগল হোম অ্যাপে দেখানো বাল্ব আইকনের পাশে থাকা অন এবং অফ লেবেলগুলোতে ট্যাপ করতে পারেন।
আরও তথ্যের জন্য, Google Home অ্যাপে যোগ করা স্মার্ট হোম ডিভাইসগুলির নিয়ন্ত্রণ বিভাগের ‘Google Home অ্যাপের মাধ্যমে ডিভাইসগুলি নিয়ন্ত্রণ করুন’ অংশটি দেখুন।
৭. অভিনন্দন!
আপনি সফলভাবে আপনার প্রথম ম্যাটার ডিভাইসটি তৈরি করেছেন। চমৎকার!
এই কোডল্যাবে আপনি শিখেছেন কীভাবে:
- একটি ম্যাটার ডেভেলপমেন্ট এনভায়রনমেন্ট ইনস্টল করুন।
- একটি ম্যাটার ভার্চুয়াল ডিভাইস তৈরি ও চালু করুন।
- গুগল হোম থেকে আপনার ভার্চুয়াল ডিভাইসটি চালু করুন এবং নিয়ন্ত্রণ করুন।
পদার্থ সম্পর্কে আরও জানতে, এই তথ্যসূত্রগুলি দেখুন:
- গুগল হোম ডেভেলপার সেন্টারে রয়েছে ম্যাটার প্রাইমার , যেখানে আপনি পদার্থের ধারণার প্রাথমিক বিষয়গুলো শিখবেন।
- কানেক্টিভিটি স্ট্যান্ডার্ডস অ্যালায়েন্স কর্তৃক প্রকাশিত ম্যাটার স্পেসিফিকেশন, ম্যাটার ডিভাইস লাইব্রেরি এবং ম্যাটার অ্যাপ্লিকেশন ক্লাস্টার লাইব্রেরি।
- ম্যাটার গিটহাব রিপোজিটরি ।