একটি ম্যাটার ভার্চুয়াল ডিভাইস তৈরি করুন

1. ভূমিকা

ম্যাটার হল একটি সংযোগ প্রোটোকল যা স্মার্ট ডিভাইসগুলির বিকাশের জন্য উত্তেজনাপূর্ণ সুযোগ নিয়ে আসে। এই কোডল্যাবে, আপনি ম্যাটার এসডিকে থেকে রিসোর্স ব্যবহার করে আপনার প্রথম ম্যাটার ডিভাইস তৈরি করবেন।

ম্যাটার সম্পর্কে জানতে, Google Home ডেভেলপার সেন্টার বা কানেক্টিভিটি স্ট্যান্ডার্ডস অ্যালায়েন্স ওয়েবসাইটে যান।

আপনি কি শিখবেন

  • কিভাবে একটি ম্যাটার বিল্ড পরিবেশ সেট আপ করবেন
  • কীভাবে একটি ভার্চুয়াল ম্যাটার ডিভাইস তৈরি করবেন যা আপনার কম্পিউটারে চলে
  • গুগল হোমের সাথে ভার্চুয়াল ম্যাটার ডিভাইসটি কীভাবে কমিশন এবং নিয়ন্ত্রণ করবেন

আপনি কি প্রয়োজন হবে

  • একটি হাব, যেটি যেকোনো Google নেস্ট ডিভাইস যা ম্যাটারকে সমর্থন করে , যেমন নেস্ট হাব (২য় প্রজন্ম)।
  • X11 উইন্ডো সিস্টেম চালিত একটি লিনাক্স মেশিন।
  • ডকার।
  • গিট।
  • লিনাক্স সম্পর্কে প্রাথমিক জ্ঞান।
    • মনে রাখবেন যে এই কোডল্যাবের সমস্ত কমান্ডের জন্য অনুমান করা শেল হল BASH।

2. আপনার পরিবেশ সেট আপ করুন

আপনার হার্ডওয়্যার পরীক্ষা করুন

Windows এবং macOS কম্পিউটার এই ডকার ইনস্টলেশন দ্বারা সমর্থিত নয়। আপনি ম্যাকওএস-এ ম্যাটার ম্যানুয়ালি ইনস্টল এবং তৈরি করতে পারেন।

এছাড়াও, এই নির্দেশাবলী অনুমান করে যে আপনার লিনাক্স মেশিন X11 উইন্ডো সিস্টেম চালাচ্ছে। আপনার লিনাক্স মেশিন ওয়েল্যান্ড চালালে, নিশ্চিত করুন যে X.Org ও ইনস্টল করা আছে।

উন্নয়ন পরিবেশ সেট আপ করুন

  1. ডকার ইঞ্জিন ইনস্টল করুন (ডকার ডেস্কটপ ব্যবহার করবেন না)।
  2. ম্যাটার এসডিকে ক্লোন করুন, আমরা নিম্নলিখিতটিতে যে প্রতিশ্রুতিটি ব্যবহার করছি তা নোট করুন।
    git clone https://github.com/project-chip/connectedhomeip.git
    cd connectedhomeip
    git show
    commit f2f3d0eb03ba5bea32b22f19982c402a8c1c9063
    
  3. SDK-এর সর্বজনীন CI চিত্রগুলি ব্যবহার করে একটি বিল্ড কন্টেইনার চালান এবং এই কন্টেইনারের মধ্যে থেকে নতুন নির্মিত ভার্চুয়াল ডিভাইসটি চালান৷ আমাদের SDK সংস্করণের সাথে মেলে এইভাবে ব্যবহার করতে চিত্রটি সনাক্ত করুন:
    buildimage=$(grep chip-build .github/workflows/chef.yaml | head -n 1 | awk '{print $2}')
    echo $buildimage
    
    আপনি যদি একই প্রতিশ্রুতি ব্যবহার করেন, তাহলে আপনার দেখতে হবে ghcr.io/project-chip/chip-build:66 প্রথমে, xhost পোর্টগুলিকে ফরওয়ার্ড করুন যাতে আমরা পরে UI অ্যাপ্লিকেশনগুলি ব্যবহার করতে পারি:
    xhost local:1000
    
    এর পরে, হোস্ট থেকে ফরওয়ার্ড করা উপযুক্ত সংস্থানগুলির সাথে কন্টেইনারটি শুরু করুন (আমাদের SDK চেকআউট, নেটওয়ার্কিং এবং প্রদর্শন/কম সংস্থান)।
    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 X উইন্ডো সিস্টেমকে পোর্ট 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
$

থামুন এবং ম্যাটার ডকার কন্টেইনার শুরু করুন

যখনই আপনি একটি 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 আরম্ভ করুন

ম্যাটার SDK শুরু করুন। এই অপারেশনটি সম্পূর্ণ হতে কয়েক মিনিট সময় লাগবে।

source scripts/bootstrap.sh
python3 scripts/checkout_submodules.py --shallow --platform linux

আপনার ব্যাপার 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

3. গুগল হোম ডেভেলপার কনসোল

Google Home Developer Console হল ওয়েব অ্যাপ্লিকেশন যেখানে আপনি Google Home-এর সাথে আপনার ম্যাটার ইন্টিগ্রেশন পরিচালনা করেন।

কানেক্টিভিটি স্ট্যান্ডার্ড অ্যালায়েন্স (অ্যালায়েন্স) ম্যাটার সার্টিফিকেশন পাস করা যেকোনও ম্যাটার ডিভাইস Google Home ইকোসিস্টেমে কাজ করে। ডেভেলপমেন্টের অধীনে থাকা ডিভাইসগুলি যেগুলিকে প্রত্যয়িত করা হয়নি সেগুলি নির্দিষ্ট শর্তে Google Home ইকোসিস্টেমে চালু করা যেতে পারে - আরও তথ্যের জন্য পেয়ারিং সীমাবদ্ধতা দেখুন।

একটি বিকাশকারী প্রকল্প তৈরি করুন

গুগল হোম ডেভেলপার কনসোলে গিয়ে শুরু করুন:

  1. প্রকল্প তৈরি করুন ক্লিক করুন।
  2. একটি অনন্য প্রকল্পের নাম লিখুন এবং তারপরে প্রকল্প তৈরি করুন ক্লিক করুন।নতুন প্রকল্প ডায়ালগ তৈরি করুন
  3. ক্লিক করুন + সংহতকরণ যোগ করুন , যা আপনাকে ম্যাটার রিসোর্স স্ক্রিনে নিয়ে যায়, যেখানে আপনি ম্যাটার ডেভেলপমেন্ট ডকুমেন্টেশন দেখতে পারেন এবং কিছু টুলস সম্পর্কে পড়তে পারেন।
  4. আপনি যখন চালিয়ে যাওয়ার জন্য প্রস্তুত হন, তখন পরবর্তী ক্লিক করুন: বিকাশ করুন , যা ম্যাটার চেকলিস্ট পৃষ্ঠাটি প্রদর্শন করে।
  5. Next ক্লিক করুন: সেটআপ
  6. সেটআপ পৃষ্ঠায়, আপনার পণ্যের নাম লিখুন।
  7. ডিভাইসের ধরন নির্বাচন করুন ক্লিক করুন এবং ড্রপ-ডাউন মেনু থেকে ডিভাইসের প্রকার নির্বাচন করুন (এই ক্ষেত্রে, Light )।
  8. ভেন্ডর আইডিতে (ভিআইডি), টেস্ট ভিআইডি নির্বাচন করুন এবং টেস্ট ভিআইডি ড্রপ-ডাউন মেনু থেকে 0xFFF1 নির্বাচন করুন। প্রোডাক্ট আইডিতে (পিআইডি), 0x8000 লিখুন এবং সংরক্ষণ করুন এবং চালিয়ে যান ক্লিক করুন এবং তারপরে নিম্নলিখিত পৃষ্ঠায় সংরক্ষণ করুন ক্লিক করুন। এই সঠিক VID/PID মানগুলি ব্যবহার করুন, পরবর্তী কোডল্যাব পদক্ষেপগুলি তাদের উপর নির্ভর করে।
    একটি প্রকল্প স্থাপন
  9. এখন আপনি ম্যাটার ইন্টিগ্রেশনের অধীনে আপনার ইন্টিগ্রেশন দেখতে পাবেন।
  10. আপনার হাব রিবুট করুন যাতে এটি সাম্প্রতিকতম ম্যাটার ইন্টিগ্রেশন প্রজেক্ট কনফিগারেশন পায়। যদি আপনাকে পরে ভিআইডি বা পিআইডি পরিবর্তন করতে হয়, তবে পরিবর্তনটি কার্যকর হওয়ার জন্য আপনাকে প্রকল্পটি সংরক্ষণ করার পরে পুনরায় বুট করতে হবে। ধাপে ধাপে রিবুট নির্দেশাবলীর জন্য Google Nest বা Google Wifi ডিভাইস রিস্টার্ট করুন দেখুন।

4. একটি ডিভাইস তৈরি করুন

ম্যাটারের সমস্ত উদাহরণ Github সংগ্রহস্থলের examples ফোল্ডারে পাওয়া যায়। বেশ কয়েকটি নমুনা উপলব্ধ রয়েছে, তবে এই কোডল্যাবে আমাদের ফোকাস শেফের উপর।

শেফ উভয়ই:

  • একটি নমুনা অ্যাপ যা একটি টার্মিনাল ইন্টারফেস প্রদান করে, মোড়ানো বৈশিষ্ট্যগুলি examples/shell অ্যাপে পাওয়া যায়।
  • একটি স্ক্রিপ্ট যা একটি ম্যাটার-সক্ষম ডিভাইস বিকাশের জন্য প্রয়োজনীয় বেশ কয়েকটি সাধারণ কাজগুলিকে এনক্যাপসুলেট করার জন্য কনভেনশন-ওভার-কনফিগারেশনের নীতিকে গ্রহণ করে৷

শেফ উদাহরণ ফোল্ডারে নেভিগেট করুন এবং আপনার প্রথম ম্যাটার তৈরি করুন:

$ cd examples/chef
$ ./chef.py -zbr -d rootnode_dimmablelight_bCwGYSDpoe -t linux

শেফের কয়েকটি বিকল্প রয়েছে যা chef.py -h চালিয়ে দেখা যেতে পারে। আমরা এখানে যে বিকল্পগুলি ব্যবহার করছি তা হল:

  • -d : ব্যবহার করা ডিভাইসের ধরন সংজ্ঞায়িত করে। এই ক্ষেত্রে, আমরা অন/অফ এবং লেভেল কন্ট্রোল সহ একটি লাইটিং অ্যাপ তৈরি করছি।
  • -z : ডিভাইসের ধরন বাস্তবায়ন করে এমন সোর্স ফাইল তৈরি করতে ZAP টুল ব্যবহার করে। অর্থাৎ, আপনার বাছাই করা আলোর উপর ভিত্তি করে, ZAP স্বয়ংক্রিয়ভাবে বিল্ডে অন্তর্ভূক্ত হওয়ার জন্য কোড তৈরি করবে যা আলো (ডেটা মডেল) এবং এটি অন্যান্য ডিভাইসের সাথে কীভাবে ইন্টারঅ্যাকশন করে (ইন্টার্যাকশন মডেল) সংজ্ঞায়িত করে।
  • -b : তৈরি করে।
  • -r : [ঐচ্ছিক] ভার্চুয়াল ম্যাটার ডিভাইসে RPC সার্ভারকে সক্ষম করে যাতে অন্যান্য উপাদান (যেমন GUI) ডেটা মডেল অ্যাট্রিবিউট সেট করতে এবং পুনরুদ্ধার করতে ডিভাইসের সাথে যোগাযোগ করতে পারে।
  • -t linux : লক্ষ্য প্ল্যাটফর্ম। সমর্থন প্ল্যাটফর্মগুলি হল linux , nrfconnect এবং esp32 । সমস্ত উপলব্ধ কমান্ড এবং সমর্থিত লক্ষ্য প্ল্যাটফর্মগুলি দেখতে আপনি ./chef.py -h চালাতে পারেন। linux ভার্চুয়াল ম্যাটার ডিভাইসের জন্য ব্যবহৃত হয়।

ডিভাইসটি চালান

ম্যাটার টিসিপি/ইউডিপি পোর্ট 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]

আপনার ডিভাইস চলমান ছেড়ে দিন। এখন আমরা Google Home অ্যাপে আমাদের মনোযোগ দেব যাতে আমরা আপনার ডিভাইসটিকে Google Home-এ চালু করতে পারি।

ডিভাইস বন্ধ করুন

আপনার যদি ডিভাইসটি বন্ধ করার প্রয়োজন হয়, আপনি CTRL+C দিয়ে প্রোগ্রামটি ছেড়ে দিতে পারেন। অ্যাপটি প্রস্থান না করলে, আপনাকে CTRL+\ ব্যবহার করতে হতে পারে।

আপনার ভার্চুয়াল ডিভাইসের জন্য শংসাপত্রগুলি /tmp/ ডিরেক্টরিতে, chip উপসর্গ দিয়ে শুরু হওয়া ফাইলগুলিতে সংরক্ষণ করা হয়।

আপনি যদি শুরু থেকে পুরো কমিশনিং প্রক্রিয়াটি পুনরাবৃত্তি করতে চান তবে আপনাকে নিম্নলিখিত কমান্ডটি চালিয়ে সেই ফাইলগুলি মুছতে হবে:

$ rm /tmp/chip*

5. ডিভাইস কমিশন

দ্রষ্টব্য : এই পদক্ষেপটি তখনই সফল হবে যদি আপনি ইতিমধ্যেই Google Home Developer Console-এ আপনার প্রোজেক্ট সেট আপ করে থাকেন।

নেস্ট হাব

ম্যাটার ফ্যাব্রিকে আপনার ডিভাইস চালু করার জন্য একটি হাবের প্রয়োজন। এটি একটি Google নেস্ট ডিভাইস, যেমন নেস্ট হাব (২য় প্রজন্ম), যা ম্যাটারকে সমর্থন করে এবং যেটি থ্রেড-সক্ষম ডিভাইসগুলির জন্য বর্ডার রাউটার এবং স্মার্ট হোম ইন্টেন্ট রাউটিং করার জন্য একটি স্থানীয় পরিপূর্ণ পথ হিসাবে কাজ করবে।

কোন হাব ম্যাটারকে সমর্থন করে তা দেখতে এই তালিকাটি পড়ুন।

কমিশনিং প্রক্রিয়া শুরু করার আগে, নিশ্চিত হয়ে নিন যে:

  • আপনার হাব একই Google অ্যাকাউন্টের সাথে যুক্ত করা হয়েছে যেটি আপনি Google Home Console-এ সাইন ইন করতে ব্যবহার করেছিলেন।
  • আপনার ভার্চুয়াল ম্যাটার ডিভাইস চালানোর জন্য আপনি যে কম্পিউটারটি ব্যবহার করছেন আপনার হাব একই Wi-Fi নেটওয়ার্কে রয়েছে৷
  • আপনার হাব একই কাঠামোতে রয়েছে যা আপনি আপনার Google Home অ্যাপে ব্যবহার করছেন। ( গুগল হোম গ্রাফের "হাউস" আপনার কাঠামোর প্রতিনিধিত্ব করে)।

একটি QR কোড পান

কমিশনিং প্রক্রিয়ার জন্য একটি QR কোডের মাধ্যমে সরবরাহ করা ম্যাটার অনবোর্ডিং তথ্য প্রয়োজন। ম্যাটার অ্যাপ্লিকেশনের কনসোল আউটপুট পরীক্ষা করুন যাতে কমিশনিং এর সাথে প্রাসঙ্গিক QR কোডের জন্য একটি লিঙ্ক থাকবে।

কমিশন অপারেশন সঞ্চালন

  1. Google Home অ্যাপ খুলুন।
  2. উপরের-বাম কোণে + আলতো চাপুন।
  3. ডিভাইস সেট আপ করুন আলতো চাপুন।
  4. নতুন ডিভাইসে আলতো চাপুন।
  5. আপনার বাড়ি নির্বাচন করুন এবং পরবর্তী আলতো চাপুন।
  6. Google Home অ্যাপ আপনার ডিভাইসের জন্য স্ক্যান করে। "ম্যাটার ডিভাইস পাওয়া গেছে..." বার্তা দিয়ে অনুরোধ করা হলে, 'হ্যাঁ' এ আলতো চাপুন। অন্যথায়, একটি ভিন্ন ডিভাইস সেট আপ করুন আলতো চাপুন, তারপর ডিভাইসের তালিকা থেকে ম্যাটার ডিভাইস নির্বাচন করুন।
  7. আপনার ক্যামেরাকে আপনার ডিভাইসের QR কোড বা ওয়েবসাইট-জেনারেট করা QR কোডের দিকে নির্দেশ করুন।
  8. Google Home অ্যাপ ফ্লোতে নির্দেশিত পেয়ারিং প্রক্রিয়াটি চালিয়ে যান।

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

Google Home অ্যাপে পেয়ার করা বাল্ব

সমস্যা সমাধান

"কানেক্টিভিটি সমস্যা" বা "Google এর সাথে যোগাযোগ করা যায়নি" ত্রুটি বার্তার সাথে কমিশনিং ব্যর্থ হয়৷

  • নিশ্চিত করুন যে আপনি Google Home Console-এ সঠিক VID/PID সংমিশ্রণ সহ একটি প্রকল্প তৈরি করেছেন এবং একই VID/PID সংমিশ্রণ ব্যবহার করে আপনার কাছে অন্য কোনো প্রকল্প নেই।

দীর্ঘ সময়ের জন্য "আপনার ডিভাইস স্ক্যান করার" পরে কমিশনিং ব্যর্থ হয়৷

6. ডিভাইস নিয়ন্ত্রণ

একবার আপনার ম্যাটার-সক্ষম ডিভাইসটি সফলভাবে চালু হয়ে গেলে এবং Google Home অ্যাপে লাইট বাল্ব হিসেবে প্রদর্শিত হলে, আপনি বিভিন্ন পদ্ধতিতে ডিভাইসটির নিয়ন্ত্রণ পরীক্ষা করতে পারেন:

  • গুগল সহকারী ব্যবহার করছেন।
  • Google Home অ্যাপ ব্যবহার করছেন।

গুগল সহকারী

ভয়েস কমান্ড থেকে ডিভাইসের অবস্থা টগল করতে আপনার ফোন বা হাবে Google অ্যাসিস্ট্যান্ট ব্যবহার করুন, যেমন "Hey Google, আমার লাইট টগল করুন"।

কমান্ডের আরও উদাহরণের জন্য Google Home অ্যাপে যোগ করা কন্ট্রোল স্মার্ট হোম ডিভাইসের ভয়েস কমান্ড সহ কন্ট্রোল স্মার্ট হোম ডিভাইস দেখুন।

গুগল হোম অ্যাপ

আপনি Google Home অ্যাপে দেখানো বাল্ব আইকনের পাশের অন এবং অফ লেবেলে ট্যাপ করতে পারেন।

আরও তথ্যের জন্য Google Home অ্যাপে যোগ করা কন্ট্রোল স্মার্ট হোম ডিভাইসের Google Home অ্যাপের বিভাগ সহ কন্ট্রোল ডিভাইস দেখুন।

7. অভিনন্দন!

আপনি সফলভাবে আপনার প্রথম ম্যাটার ডিভাইস তৈরি করেছেন। অসাধারন!

এই কোডল্যাবে আপনি শিখেছেন কিভাবে:

  • একটি বিষয় উন্নয়ন পরিবেশ ইনস্টল করুন.
  • একটি ম্যাটার ভার্চুয়াল ডিভাইস তৈরি করুন এবং চালান।
  • Google Home থেকে আপনার ভার্চুয়াল ডিভাইস কমিশন ও নিয়ন্ত্রণ করুন।

ম্যাটার সম্পর্কে আরও জানতে, এই রেফারেন্সগুলি অন্বেষণ করুন:

,

1. ভূমিকা

ম্যাটার হল একটি সংযোগ প্রোটোকল যা স্মার্ট ডিভাইসগুলির বিকাশের জন্য উত্তেজনাপূর্ণ সুযোগ নিয়ে আসে। এই কোডল্যাবে, আপনি ম্যাটার এসডিকে থেকে রিসোর্স ব্যবহার করে আপনার প্রথম ম্যাটার ডিভাইস তৈরি করবেন।

ম্যাটার সম্পর্কে জানতে, Google Home ডেভেলপার সেন্টার বা কানেক্টিভিটি স্ট্যান্ডার্ডস অ্যালায়েন্স ওয়েবসাইটে যান।

আপনি কি শিখবেন

  • কিভাবে একটি ম্যাটার বিল্ড পরিবেশ সেট আপ করবেন
  • কীভাবে একটি ভার্চুয়াল ম্যাটার ডিভাইস তৈরি করবেন যা আপনার কম্পিউটারে চলে
  • গুগল হোমের সাথে ভার্চুয়াল ম্যাটার ডিভাইসটি কীভাবে কমিশন এবং নিয়ন্ত্রণ করবেন

আপনি কি প্রয়োজন হবে

  • একটি হাব, যেটি যেকোনো Google নেস্ট ডিভাইস যা ম্যাটারকে সমর্থন করে , যেমন নেস্ট হাব (২য় প্রজন্ম)।
  • X11 উইন্ডো সিস্টেম চালিত একটি লিনাক্স মেশিন।
  • ডকার।
  • গিট।
  • লিনাক্স সম্পর্কে প্রাথমিক জ্ঞান।
    • মনে রাখবেন যে এই কোডল্যাবের সমস্ত কমান্ডের জন্য অনুমান করা শেল হল BASH।

2. আপনার পরিবেশ সেট আপ করুন

আপনার হার্ডওয়্যার পরীক্ষা করুন

Windows এবং macOS কম্পিউটার এই ডকার ইনস্টলেশন দ্বারা সমর্থিত নয়। আপনি ম্যাকওএস-এ ম্যাটার ম্যানুয়ালি ইনস্টল এবং তৈরি করতে পারেন।

এছাড়াও, এই নির্দেশাবলী অনুমান করে যে আপনার লিনাক্স মেশিন X11 উইন্ডো সিস্টেম চালাচ্ছে। আপনার লিনাক্স মেশিন ওয়েল্যান্ড চালালে, নিশ্চিত করুন যে X.Org ও ইনস্টল করা আছে।

উন্নয়ন পরিবেশ সেট আপ করুন

  1. ডকার ইঞ্জিন ইনস্টল করুন (ডকার ডেস্কটপ ব্যবহার করবেন না)।
  2. ম্যাটার এসডিকে ক্লোন করুন, আমরা নিম্নলিখিতটিতে যে প্রতিশ্রুতিটি ব্যবহার করছি তা নোট করুন।
    git clone https://github.com/project-chip/connectedhomeip.git
    cd connectedhomeip
    git show
    commit f2f3d0eb03ba5bea32b22f19982c402a8c1c9063
    
  3. SDK-এর সর্বজনীন CI চিত্রগুলি ব্যবহার করে একটি বিল্ড কন্টেইনার চালান এবং এই কন্টেইনারের মধ্যে থেকে নতুন নির্মিত ভার্চুয়াল ডিভাইসটি চালান৷ আমাদের SDK সংস্করণের সাথে মেলে এইভাবে ব্যবহার করতে চিত্রটি সনাক্ত করুন:
    buildimage=$(grep chip-build .github/workflows/chef.yaml | head -n 1 | awk '{print $2}')
    echo $buildimage
    
    আপনি যদি একই প্রতিশ্রুতি ব্যবহার করেন, তাহলে আপনার দেখতে হবে ghcr.io/project-chip/chip-build:66 প্রথমে, xhost পোর্টগুলিকে ফরওয়ার্ড করুন যাতে আমরা পরে UI অ্যাপ্লিকেশনগুলি ব্যবহার করতে পারি:
    xhost local:1000
    
    এর পরে, হোস্ট থেকে ফরওয়ার্ড করা উপযুক্ত সংস্থানগুলির সাথে কন্টেইনারটি শুরু করুন (আমাদের SDK চেকআউট, নেটওয়ার্কিং এবং প্রদর্শন/কম সংস্থান)।
    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 X উইন্ডো সিস্টেমকে পোর্ট 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
$

থামুন এবং ম্যাটার ডকার কন্টেইনার শুরু করুন

যখনই আপনি একটি 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 আরম্ভ করুন

ম্যাটার SDK শুরু করুন। এই অপারেশনটি সম্পূর্ণ হতে কয়েক মিনিট সময় লাগবে।

source scripts/bootstrap.sh
python3 scripts/checkout_submodules.py --shallow --platform linux

আপনার ব্যাপার 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

3. গুগল হোম ডেভেলপার কনসোল

Google Home Developer Console হল ওয়েব অ্যাপ্লিকেশন যেখানে আপনি Google Home-এর সাথে আপনার ম্যাটার ইন্টিগ্রেশন পরিচালনা করেন।

কানেক্টিভিটি স্ট্যান্ডার্ড অ্যালায়েন্স (অ্যালায়েন্স) ম্যাটার সার্টিফিকেশন পাস করা যেকোনও ম্যাটার ডিভাইস Google Home ইকোসিস্টেমে কাজ করে। ডেভেলপমেন্টের অধীনে থাকা ডিভাইসগুলি যেগুলিকে প্রত্যয়িত করা হয়নি সেগুলি নির্দিষ্ট শর্তে Google Home ইকোসিস্টেমে চালু করা যেতে পারে - আরও তথ্যের জন্য পেয়ারিং সীমাবদ্ধতা দেখুন।

একটি বিকাশকারী প্রকল্প তৈরি করুন

গুগল হোম ডেভেলপার কনসোলে গিয়ে শুরু করুন:

  1. প্রকল্প তৈরি করুন ক্লিক করুন।
  2. একটি অনন্য প্রকল্পের নাম লিখুন এবং তারপরে প্রকল্প তৈরি করুন ক্লিক করুন।নতুন প্রকল্প ডায়ালগ তৈরি করুন
  3. ক্লিক করুন + সংহতকরণ যোগ করুন , যা আপনাকে ম্যাটার রিসোর্স স্ক্রিনে নিয়ে যায়, যেখানে আপনি ম্যাটার ডেভেলপমেন্ট ডকুমেন্টেশন দেখতে পারেন এবং কিছু টুলস সম্পর্কে পড়তে পারেন।
  4. আপনি যখন চালিয়ে যাওয়ার জন্য প্রস্তুত হন, তখন পরবর্তী ক্লিক করুন: বিকাশ করুন , যা ম্যাটার চেকলিস্ট পৃষ্ঠাটি প্রদর্শন করে।
  5. Next ক্লিক করুন: সেটআপ
  6. সেটআপ পৃষ্ঠায়, আপনার পণ্যের নাম লিখুন।
  7. ডিভাইসের ধরন নির্বাচন করুন ক্লিক করুন এবং ড্রপ-ডাউন মেনু থেকে ডিভাইসের প্রকার নির্বাচন করুন (এই ক্ষেত্রে, Light )।
  8. ভেন্ডর আইডিতে (ভিআইডি), টেস্ট ভিআইডি নির্বাচন করুন এবং টেস্ট ভিআইডি ড্রপ-ডাউন মেনু থেকে 0xFFF1 নির্বাচন করুন। প্রোডাক্ট আইডিতে (পিআইডি), 0x8000 লিখুন এবং সংরক্ষণ করুন এবং চালিয়ে যান ক্লিক করুন এবং তারপরে নিম্নলিখিত পৃষ্ঠায় সংরক্ষণ করুন ক্লিক করুন। এই সঠিক VID/PID মানগুলি ব্যবহার করুন, পরবর্তী কোডল্যাব পদক্ষেপগুলি তাদের উপর নির্ভর করে।
    একটি প্রকল্প স্থাপন
  9. এখন আপনি ম্যাটার ইন্টিগ্রেশনের অধীনে আপনার ইন্টিগ্রেশন দেখতে পাবেন।
  10. আপনার হাব রিবুট করুন যাতে এটি সাম্প্রতিকতম ম্যাটার ইন্টিগ্রেশন প্রজেক্ট কনফিগারেশন পায়। যদি আপনাকে পরে ভিআইডি বা পিআইডি পরিবর্তন করতে হয়, তবে পরিবর্তনটি কার্যকর হওয়ার জন্য আপনাকে প্রকল্পটি সংরক্ষণ করার পরে পুনরায় বুট করতে হবে। ধাপে ধাপে রিবুট নির্দেশাবলীর জন্য Google Nest বা Google Wifi ডিভাইস রিস্টার্ট করুন দেখুন।

4. একটি ডিভাইস তৈরি করুন

ম্যাটারের সমস্ত উদাহরণ Github সংগ্রহস্থলের examples ফোল্ডারে পাওয়া যায়। বেশ কয়েকটি নমুনা উপলব্ধ রয়েছে, তবে এই কোডল্যাবে আমাদের ফোকাস শেফের উপর।

শেফ উভয়ই:

  • একটি নমুনা অ্যাপ যা একটি টার্মিনাল ইন্টারফেস প্রদান করে, মোড়ানো বৈশিষ্ট্যগুলি examples/shell অ্যাপে পাওয়া যায়।
  • একটি স্ক্রিপ্ট যা একটি ম্যাটার-সক্ষম ডিভাইস বিকাশের জন্য প্রয়োজনীয় বেশ কয়েকটি সাধারণ কাজগুলিকে এনক্যাপসুলেট করার জন্য কনভেনশন-ওভার-কনফিগারেশনের নীতিকে গ্রহণ করে৷

শেফ উদাহরণ ফোল্ডারে নেভিগেট করুন এবং আপনার প্রথম ম্যাটার তৈরি করুন:

$ cd examples/chef
$ ./chef.py -zbr -d rootnode_dimmablelight_bCwGYSDpoe -t linux

শেফের কয়েকটি বিকল্প রয়েছে যা chef.py -h চালিয়ে দেখা যেতে পারে। আমরা এখানে যে বিকল্পগুলি ব্যবহার করছি তা হল:

  • -d : ব্যবহার করা ডিভাইসের ধরন সংজ্ঞায়িত করে। এই ক্ষেত্রে, আমরা অন/অফ এবং লেভেল কন্ট্রোল সহ একটি লাইটিং অ্যাপ তৈরি করছি।
  • -z : ডিভাইসের ধরন বাস্তবায়ন করে এমন সোর্স ফাইল তৈরি করতে ZAP টুল ব্যবহার করে। অর্থাৎ, আপনার বাছাই করা আলোর উপর ভিত্তি করে, ZAP স্বয়ংক্রিয়ভাবে বিল্ডে অন্তর্ভূক্ত হওয়ার জন্য কোড তৈরি করবে যা আলো (ডেটা মডেল) এবং এটি অন্যান্য ডিভাইসের সাথে কীভাবে ইন্টারঅ্যাকশন করে (ইন্টার্যাকশন মডেল) সংজ্ঞায়িত করে।
  • -b : তৈরি করে।
  • -r : [ঐচ্ছিক] ভার্চুয়াল ম্যাটার ডিভাইসে RPC সার্ভারকে সক্ষম করে যাতে অন্যান্য উপাদান (যেমন GUI) ডেটা মডেল অ্যাট্রিবিউট সেট করতে এবং পুনরুদ্ধার করতে ডিভাইসের সাথে যোগাযোগ করতে পারে।
  • -t linux : লক্ষ্য প্ল্যাটফর্ম। সমর্থন প্ল্যাটফর্মগুলি হল linux , nrfconnect এবং esp32 । সমস্ত উপলব্ধ কমান্ড এবং সমর্থিত লক্ষ্য প্ল্যাটফর্মগুলি দেখতে আপনি ./chef.py -h চালাতে পারেন। linux ভার্চুয়াল ম্যাটার ডিভাইসের জন্য ব্যবহৃত হয়।

ডিভাইসটি চালান

ম্যাটার টিসিপি/ইউডিপি পোর্ট 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]

আপনার ডিভাইস চলমান ছেড়ে দিন। এখন আমরা Google Home অ্যাপে আমাদের মনোযোগ দেব যাতে আমরা আপনার ডিভাইসটিকে Google Home-এ চালু করতে পারি।

ডিভাইস বন্ধ করুন

আপনার যদি ডিভাইসটি বন্ধ করার প্রয়োজন হয়, আপনি CTRL+C দিয়ে প্রোগ্রামটি ছেড়ে দিতে পারেন। অ্যাপটি প্রস্থান না করলে, আপনাকে CTRL+\ ব্যবহার করতে হতে পারে।

আপনার ভার্চুয়াল ডিভাইসের জন্য শংসাপত্রগুলি /tmp/ ডিরেক্টরিতে, chip উপসর্গ দিয়ে শুরু হওয়া ফাইলগুলিতে সংরক্ষণ করা হয়।

আপনি যদি শুরু থেকে পুরো কমিশনিং প্রক্রিয়াটি পুনরাবৃত্তি করতে চান তবে আপনাকে নিম্নলিখিত কমান্ডটি চালিয়ে সেই ফাইলগুলি মুছতে হবে:

$ rm /tmp/chip*

5. ডিভাইস কমিশন

দ্রষ্টব্য : এই পদক্ষেপটি তখনই সফল হবে যদি আপনি ইতিমধ্যেই Google Home Developer Console-এ আপনার প্রোজেক্ট সেট আপ করে থাকেন।

নেস্ট হাব

ম্যাটার ফ্যাব্রিকে আপনার ডিভাইস চালু করার জন্য একটি হাবের প্রয়োজন। এটি একটি Google নেস্ট ডিভাইস, যেমন নেস্ট হাব (২য় প্রজন্ম), যা ম্যাটারকে সমর্থন করে এবং যেটি থ্রেড-সক্ষম ডিভাইসগুলির জন্য বর্ডার রাউটার এবং স্মার্ট হোম ইন্টেন্ট রাউটিং করার জন্য একটি স্থানীয় পরিপূর্ণ পথ হিসাবে কাজ করবে।

কোন হাব ম্যাটারকে সমর্থন করে তা দেখতে এই তালিকাটি পড়ুন।

কমিশনিং প্রক্রিয়া শুরু করার আগে, নিশ্চিত হয়ে নিন যে:

  • আপনার হাব একই Google অ্যাকাউন্টের সাথে যুক্ত করা হয়েছে যেটি আপনি Google Home Console-এ সাইন ইন করতে ব্যবহার করেছিলেন।
  • আপনার ভার্চুয়াল ম্যাটার ডিভাইস চালানোর জন্য আপনি যে কম্পিউটারটি ব্যবহার করছেন আপনার হাব একই Wi-Fi নেটওয়ার্কে রয়েছে৷
  • আপনার হাব একই কাঠামোতে রয়েছে যা আপনি আপনার Google Home অ্যাপে ব্যবহার করছেন। ( গুগল হোম গ্রাফের "হাউস" আপনার কাঠামোর প্রতিনিধিত্ব করে)।

একটি QR কোড পান

কমিশনিং প্রক্রিয়ার জন্য একটি QR কোডের মাধ্যমে সরবরাহ করা ম্যাটার অনবোর্ডিং তথ্য প্রয়োজন। ম্যাটার অ্যাপ্লিকেশনের কনসোল আউটপুট পরীক্ষা করুন যাতে কমিশনিং এর সাথে প্রাসঙ্গিক QR কোডের জন্য একটি লিঙ্ক থাকবে।

কমিশন অপারেশন সঞ্চালন

  1. Google Home অ্যাপ খুলুন।
  2. উপরের-বাম কোণে + আলতো চাপুন।
  3. ডিভাইস সেট আপ করুন আলতো চাপুন।
  4. নতুন ডিভাইসে আলতো চাপুন।
  5. আপনার বাড়ি নির্বাচন করুন এবং পরবর্তী আলতো চাপুন।
  6. Google Home অ্যাপ আপনার ডিভাইসের জন্য স্ক্যান করে। "ম্যাটার ডিভাইস পাওয়া গেছে..." বার্তা দিয়ে অনুরোধ করা হলে, 'হ্যাঁ' এ আলতো চাপুন। অন্যথায়, একটি ভিন্ন ডিভাইস সেট আপ করুন আলতো চাপুন, তারপর ডিভাইসের তালিকা থেকে ম্যাটার ডিভাইস নির্বাচন করুন।
  7. আপনার ক্যামেরাকে আপনার ডিভাইসের QR কোড বা ওয়েবসাইট-জেনারেট করা QR কোডের দিকে নির্দেশ করুন।
  8. Google Home অ্যাপ ফ্লোতে নির্দেশিত পেয়ারিং প্রক্রিয়াটি চালিয়ে যান।

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

Google Home অ্যাপে পেয়ার করা বাল্ব

সমস্যা সমাধান

"কানেক্টিভিটি সমস্যা" বা "Google এর সাথে যোগাযোগ করা যায়নি" ত্রুটি বার্তার সাথে কমিশনিং ব্যর্থ হয়৷

  • নিশ্চিত করুন যে আপনি Google Home Console-এ সঠিক VID/PID সংমিশ্রণ সহ একটি প্রকল্প তৈরি করেছেন এবং একই VID/PID সংমিশ্রণ ব্যবহার করে আপনার কাছে অন্য কোনো প্রকল্প নেই।

দীর্ঘ সময়ের জন্য "আপনার ডিভাইস স্ক্যান করার" পরে কমিশনিং ব্যর্থ হয়

6. ডিভাইস নিয়ন্ত্রণ

একবার আপনার ম্যাটার-সক্ষম ডিভাইসটি সফলভাবে চালু হয়ে গেলে এবং Google Home অ্যাপে লাইট বাল্ব হিসেবে প্রদর্শিত হলে, আপনি বিভিন্ন পদ্ধতিতে ডিভাইসটির নিয়ন্ত্রণ পরীক্ষা করতে পারেন:

  • গুগল সহকারী ব্যবহার করছেন।
  • Google Home অ্যাপ ব্যবহার করছেন।

গুগল সহকারী

ভয়েস কমান্ড থেকে ডিভাইসের অবস্থা টগল করতে আপনার ফোন বা হাবে Google অ্যাসিস্ট্যান্ট ব্যবহার করুন, যেমন "Hey Google, আমার লাইট টগল করুন"।

কমান্ডের আরও উদাহরণের জন্য Google Home অ্যাপে যোগ করা কন্ট্রোল স্মার্ট হোম ডিভাইসের ভয়েস কমান্ড সহ কন্ট্রোল স্মার্ট হোম ডিভাইস দেখুন।

গুগল হোম অ্যাপ

আপনি Google Home অ্যাপে দেখানো বাল্ব আইকনের পাশের অন এবং অফ লেবেলে ট্যাপ করতে পারেন।

আরও তথ্যের জন্য Google Home অ্যাপে যোগ করা কন্ট্রোল স্মার্ট হোম ডিভাইসের Google Home অ্যাপের বিভাগ সহ কন্ট্রোল ডিভাইস দেখুন।

7. অভিনন্দন!

আপনি সফলভাবে আপনার প্রথম ম্যাটার ডিভাইস তৈরি করেছেন৷ অসাধারন!

এই কোডল্যাবে আপনি শিখেছেন কিভাবে:

  • একটি বিষয় উন্নয়ন পরিবেশ ইনস্টল করুন.
  • একটি ম্যাটার ভার্চুয়াল ডিভাইস তৈরি করুন এবং চালান।
  • Google Home থেকে আপনার ভার্চুয়াল ডিভাইস কমিশন ও নিয়ন্ত্রণ করুন।

ম্যাটার সম্পর্কে আরও জানতে, এই রেফারেন্সগুলি অন্বেষণ করুন: