1. परिचय
Matter, एक कनेक्टिविटी प्रोटोकॉल है. इससे स्मार्ट डिवाइसों को डेवलप करने के लिए कई बेहतरीन मौके मिलते हैं. इस कोडलैब में, आपको अपना पहला Matter डिवाइस बनाने का तरीका बताया जाएगा. Matter के बारे में जानने के लिए, Google Home Developer Center: Matter या Connectivity Standards Alliance की वेबसाइट पर जाएं.
आपको क्या सीखने को मिलेगा
- किसी फ़िज़िकल डिवाइस को Matter के साथ इंटिग्रेट करने का तरीका.
- Google Home की मदद से, Matter डिवाइस को चालू और कंट्रोल करने का तरीका.
आपको किन चीज़ों की ज़रूरत होगी
- एक हब, जो Matter के साथ काम करने वाला कोई भी Google Nest डिवाइस हो सकता है. जैसे, Nest Hub (दूसरी जनरेशन).
- Espressif Systems का ESP32-DevkitC या ESP32 M5STACK Matter evaluation board.
- Linux पर चलने वाला पीसी.
- Linux की बुनियादी जानकारी.
2. अपना एनवायरमेंट सेट अप करने का तरीका
सीरियल डिवाइस की पहचान करना
डेवलपमेंट एनवायरमेंट सेट अप करने के लिए, सबसे पहले यह पता करें कि आपका डिवाइस किस सीरियल पोर्ट से कनेक्ट है. इस जानकारी की मदद से, डेवलपर बोर्ड को प्रोग्राम किया जा सकेगा और उसके साथ इंटरैक्ट किया जा सकेगा.
- यूएसबी केबल का इस्तेमाल करके, डेवलपर बोर्ड को अपने कंप्यूटर से कनेक्ट करें.
- डेवलपर बोर्ड डिवाइस ढूंढने के लिए,
/devफ़ाइल सिस्टम में जाएं. अपने डेवलपर बोर्ड के डिवाइस प्रीफ़िक्स के बारे में बताकर, खोज के नतीजों को कम किया जा सकता है. Espressif का ESP32,/dev/ttyUSBxका इस्तेमाल करता है:user@host $ ls /dev/ttyUSB* /dev/ttyUSB0
हब सेट अप करना
उसी Google खाते का इस्तेमाल करके अपना हब सेट अप करें जिसका इस्तेमाल आपको इस कोडलैब के लिए करना है.
डेवलपमेंट एनवायरमेंट सेट अप करना
ज़रूरी शर्तें
इन निर्देशों को Debian Linux पर आज़माया गया है. ये Ubuntu के साथ-साथ, Debian पर आधारित ज़्यादातर Linux डिस्ट्रिब्यूशन पर काम करने चाहिए. अगर किसी दूसरे Linux डिस्ट्रिब्यूशन का इस्तेमाल किया जा रहा है, तो हो सकता है कि डिपेंडेंसी सेटअप करने का तरीका यहां दिए गए तरीके से अलग हो.
डिपेंडेंसी इंस्टॉल करना
ज़रूरी Linux पैकेज बाइनरी इंस्टॉल करने के लिए, यह कमांड चलाएं. ऐसा हो सकता है कि ये बाइनरी पहले से इंस्टॉल न हों:
$ sudo apt-get install git gcc g++ pkg-config libssl-dev libdbus-1-dev \ libglib2.0-dev libavahi-client-dev ninja-build python3-venv python3-dev \ python3-pip unzip libgirepository1.0-dev libcairo2-dev libreadline-dev screen
एसडीके टूल सेट अप करना
इस कोडलैब को जारी रखने के लिए, आपको Espressif SDK (Espressif IoT Development Framework या ‘ESP-IDF') की ज़रूरत होगी.
- ESP-IDF को शामिल करने के लिए एक डायरेक्ट्री बनाएं:
$ mkdir ~/esp-idf_tools
- GitHub से ESP-IDF को इस डायरेक्ट्री में क्लोन करें:
$ cd ~/esp-idf_tools $ git clone -b v4.4.3 --recursive https://github.com/espressif/esp-idf.git
- टूलचेन को इंस्टॉल करें:
$ cd ./esp-idf $ ./install.sh $ cd ~/
Matter SDK टूल सेट अप करना
- ओपन सोर्स Matter रिपॉज़िटरी को क्लोन करें:
$ git clone https://github.com/project-chip/connectedhomeip.git $ cd ./connectedhomeip $ git fetch origin v1.0-branch $ git checkout FETCH_HEAD
- रिपॉज़िटरी के सबमॉड्यूल फ़ेच करें:
$ ./scripts/checkout_submodules.py --shallow --platform esp32
- Matter डेवलपमेंट एनवायरमेंट को बूटस्ट्रैप करें:
$ source ./scripts/bootstrap.sh
3. Google Home Developer Console
Google Home Developer Console एक वेब ऐप्लिकेशन है. इसकी मदद से, Google Home के साथ Matter इंटिग्रेशन को मैनेज किया जाता है.
Connectivity Standards Alliance (Alliance) से Matter सर्टिफ़िकेशन पाने वाला कोई भी Matter डिवाइस, Google Home के साथ काम करता है. डेवलप किए जा रहे ऐसे डिवाइस जिन्हें सर्टिफ़िकेट नहीं मिला है उन्हें कुछ शर्तों के साथ Google Home के ईकोसिस्टम में चालू किया जा सकता है. ज़्यादा जानकारी के लिए, डिवाइसों को जोड़ने से जुड़ी पाबंदियां देखें.
डेवलपर प्रोजेक्ट बनाना
शुरू करने के लिए, Google Home Developer Console पर जाएं:
- प्रोजेक्ट बनाएं पर क्लिक करें.
- प्रोजेक्ट का कोई यूनीक नाम डालें. इसके बाद, प्रोजेक्ट बनाएं पर क्लिक करें.

- + इंटिग्रेशन जोड़ें पर क्लिक करें. इससे आपको Matter के संसाधन स्क्रीन पर ले जाया जाएगा. यहां Matter डेवलपमेंट से जुड़े दस्तावेज़ देखे जा सकते हैं. साथ ही, कुछ टूल के बारे में पढ़ा जा सकता है.
- जब आप आगे बढ़ने के लिए तैयार हों, तो अगला: डेवलप करें पर क्लिक करें. इससे Matter चेकलिस्ट पेज दिखता है.
- आगे बढ़ें: सेटअप करें पर क्लिक करें
- सेटअप पेज पर, अपने प्रॉडक्ट का नाम डालें.
- डिवाइस टाइप चुनें पर क्लिक करें. इसके बाद, ड्रॉप-डाउन मेन्यू से डिवाइस टाइप चुनें. इस मामले में,
Lightको चुना गया है. - वेंडर आईडी (वीआईडी) में, Test VID को चुनें. इसके बाद, Test VID ड्रॉप-डाउन मेन्यू से 0xFFF1 को चुनें. प्रॉडक्ट आईडी (पीआईडी) में 0x8000 डालें. इसके बाद, सेव करें और जारी रखें पर क्लिक करें. इसके बाद, अगले पेज पर सेव करें पर क्लिक करें. वीआईडी/पीआईडी की इन वैल्यू का इस्तेमाल करें. बाद में, कोडलैब के चरण इन पर निर्भर करते हैं.

- अब आपको Matter इंटिग्रेशन में अपना इंटिग्रेशन दिखेगा.
- अपने हब को रीबूट करें, ताकि यह पक्का किया जा सके कि उसे Matter इंटिग्रेशन प्रोजेक्ट का सबसे नया कॉन्फ़िगरेशन मिल रहा है. अगर आपको बाद में वीआईडी या पीआईडी बदलना है, तो बदलाव लागू करने के लिए, प्रोजेक्ट को सेव करने के बाद आपको रीबूट भी करना होगा. रीबूट करने के सिलसिलेवार निर्देशों के लिए, Google Nest या Google Wifi डिवाइसों को रीस्टार्ट करना लेख पढ़ें.
4. डिवाइस बनाना
Matter के सभी उदाहरण, Github रिपॉज़िटरी के examples फ़ोल्डर में रखे गए हैं. यहां कई सैंपल उपलब्ध हैं, लेकिन इस कोडलैब में हमारा फ़ोकस lighting-app पर है.
इस उदाहरण में, एक ऐसा डिवाइस दिखाया गया है जो Google Home में चालू/बंद होने वाली लाइट के तौर पर दिखता है. यह चालू और बंद करने के निर्देशों का पालन करता है. इस कोडलैब में, किसी असली इलेक्ट्रिक लाइट को कंट्रोल करने के बारे में नहीं बताया गया है.
बिल्ड को कॉन्फ़िगर करना
- Matter SDK टूल को कॉन्फ़िगर करें और Matter बिल्ड एनवायरमेंट को चालू करें:
$ cd ~/esp-idf_tools/esp-idf $ source export.sh $ cd ~/connectedhomeip $ source ./scripts/activate.sh
- Ccache चालू करें. इससे बिल्ड प्रोसेस को तेज़ करने में मदद मिलती है:
$ export IDF_CCACHE_ENABLE=1
lighting-appESP32 की बिल्ड डायरेक्ट्री पर जाएं और टारगेट आर्किटेक्चर सेट करें:$ cd ./examples/lighting-app/esp32 $ idf.py set-target esp32
- कॉन्फ़िगरेशन यूटिलिटी चलाएं:
$ idf.py menuconfig
Demo -> Device Typeको चुनें औरDevice TypeकोESP32-DevKitCपर सेट करें.- सबसे ऊपर वाले मेन्यू पर वापस जाने के लिए, लेफ़्ट ऐरो वाली कुंजी दबाएं.
Component config --->चुनें.CHIP Device Layer --->चुनें.Device Identification Options --->चुनें.Vendor IDको Alliance की ओर से असाइन किए गए वीआईडी या टेस्ट वीआईडी पर सेट करें.Product IDको उस पीआईडी पर सेट करें जिसे आपने Google Home Developer Console में Matter इंटिग्रेशन के लिए सेट किया है.- सेव करने के लिए, S दबाएं.
- कॉन्फ़िगरेशन को सेव करने के लिए, डिफ़ॉल्ट पाथ को स्वीकार करने के लिए Return दबाएं.
- सेव करने की पुष्टि करने वाले डायलॉग को खारिज करने के लिए, Return दबाएं.
- कॉन्फ़िगरेशन यूटिलिटी से बाहर निकलने के लिए, Q दबाएं.
- कॉन्फ़िगरेशन यूटिलिटी चलाएं:
बिल्ड को चलाना
बिल्ड स्क्रिप्ट को लागू करें:
idf.py build
बिल्ड बिना किसी गड़बड़ी के पूरा होना चाहिए.
डिवाइस को प्रोग्राम करना
- यूएसबी केबल का इस्तेमाल करके, अपने डेवलपर बोर्ड को कंप्यूटर से कनेक्ट करें.
- डिवाइस पर मौजूद पिछले फ़र्मवेयर को मिटाएं. अगर आपके कंप्यूटर से सिर्फ़ एक डेवलपर बोर्ड कनेक्ट है, तो
-p {device}विकल्प को बंद किया जा सकता है. डिवाइस अपने-आप पता चल जाएगा:idf.py -p {device} erase-flash - अपने नए ऐप्लिकेशन को डेवलपर बोर्ड पर कॉपी करने के लिए, यह कमांड चलाएं:
idf.py -p {device} flash
फ़्लैश करने के विकल्पों के बारे में ज़्यादा जानकारी, Espressif esptool.py के दस्तावेज़ वाले पेज पर मिल सकती है.
5. डिवाइस से कनेक्ट करना
- टर्मिनल विंडो खोलें.
- नोट करें कि आप किस डायरेक्ट्री में हैं. इसके बाद, GNU
screenका इस्तेमाल करके, अपने नए Matter डिवाइस से कनेक्ट करें:$ screen -L {device} 115200 - अगर आपको कंसोल खाली दिखता है, तो डिवाइस को बूट करने की प्रोसेस शुरू करने के लिए, RESET बटन दबाएं.
6. डिवाइस को सेट अप करना
ध्यान दें: यह चरण सिर्फ़ तब पूरा होगा, जब आपने Google Home Developer Console में पहले से ही अपना प्रोजेक्ट सेट अप किया हो.
Nest Hub
Matter फ़ैब्रिक पर अपने डिवाइस को चालू करने के लिए, हब की ज़रूरत होती है. यह Google Nest डिवाइस है, जैसे कि Nest Hub (दूसरा जनरेशन). यह Matter के साथ काम करता है. यह Thread की सुविधा वाले डिवाइसों के लिए बॉर्डर राऊटर के तौर पर काम करेगा. साथ ही, स्मार्ट होम इंटेंट को राउट करने के लिए, लोकल फ़ुलफ़िलमेंट पाथ के तौर पर भी काम करेगा.
Matter के साथ काम करने वाले हब की जानकारी के लिए, यह सूची देखें.
डिवाइस को चालू करने की प्रोसेस शुरू करने से पहले, पक्का करें कि:
- आपका हब उसी Google खाते से जुड़ा हो जिसका इस्तेमाल आपने Google Home Console में साइन इन करने के लिए किया था.
- आपका हब उसी वाई-फ़ाई नेटवर्क से कनेक्ट हो जिससे वर्चुअल Matter डिवाइस को चलाने के लिए इस्तेमाल किया जा रहा कंप्यूटर कनेक्ट है.
- आपका हब उसी स्ट्रक्चर में हो जिसका इस्तेमाल Google Home ऐप्लिकेशन पर किया जा रहा है. Google Home Graph में "घर" आपके स्ट्रक्चर को दिखाता है.
डिवाइस को जोड़ना
अपने डिवाइस को जोड़ने के लिए, ESP32 को जोड़ने के निर्देशों का पालन करें.
ध्यान दें: अगर M5STACK का इस्तेमाल किया जा रहा है, तो ध्यान रखें कि फ़्लैश करने के बाद इसकी स्क्रीन खाली रहेगी. इसलिए, आपको कंसोल में दिखने वाले यूआरएल का इस्तेमाल करके क्यूआर कोड देखना होगा. इसके अलावा, मैन्युअल पेयरिंग कोड भी डाला जा सकता है.
क्यूआर कोड का यूआरएल दिखाने वाले कंसोल आउटपुट का उदाहरण:
I (1926) chip[DL]: Done driving station state, nothing else to do...
I (1936) chip[SVR]: SetupQRCode: [MT:X.XXXXXXXXXXXXXXXXX]
I (1936) chip[SVR]: Copy/paste the below URL in a browser to see the QR Code:
I (1946) chip[SVR]: https://project-chip.github.io/connectedhomeip/qrcode.html?data=MT%3XX.KXXXXXXXXXXXXXXXX
I (1956) chip[SVR]: Manual pairing code: [XXXXXXXXXXX]]
समस्या का हल
चालू नहीं किया जा सका
- पक्का करें कि आपने Google Home Console में सही वीआईडी/पीआईडी कॉम्बिनेशन वाला प्रोजेक्ट बनाया हो.
- पक्का करें कि आपने बिल्ड कॉन्फ़िगरेशन में सही VID और PID डाला हो.
- पक्का करें कि आपने बिल्ड कॉन्फ़िगरेशन में सही
Device Typeचुना हो.
समस्या हल करने के अन्य सुझावों के लिए, Matter से जुड़ी समस्या हल करने वाला पेज देखें.
7. डिवाइस को कंट्रोल करना
Matter के साथ काम करने वाले डिवाइस को कमीशन करने के बाद, अगर वह Google Home ऐप्लिकेशन में लाइट बल्ब के तौर पर दिखता है, तो उसे Google Assistant, Google Home ऐप्लिकेशन या VS Code के लिए Google Home Extension में मौजूद Google Assistant सिम्युलेटर का इस्तेमाल करके कंट्रोल किया जा सकता है.
Google Assistant
डिवाइस को चालू या बंद करने के लिए, फ़ोन या हब पर Google Assistant का इस्तेमाल करें. इसके लिए, बोलकर निर्देश दें. जैसे, "Ok Google, मेरी लाइटें चालू/बंद करो".
कमांड के ज़्यादा उदाहरण देखने के लिए, Google Home ऐप्लिकेशन में जोड़े गए स्मार्ट होम डिवाइसों को कंट्रोल करना लेख में, बोलकर दिए जाने वाले निर्देशों से स्मार्ट होम डिवाइसों को कंट्रोल करना सेक्शन देखें.
Google Home ऐप्लिकेशन
Google Home ऐप्लिकेशन पर, बल्ब के आइकॉन के बगल में मौजूद चालू है और बंद है लेबल पर टैप करें.
ज़्यादा जानकारी के लिए, Google Home ऐप्लिकेशन से डिवाइसों को कंट्रोल करना लेख पढ़ें.
Google Assistant सिम्युलेटर
VS Code के लिए Google Home Extension में, Google Assistant सिम्युलेटर का इस्तेमाल करके, चैट जैसे इंटरफ़ेस की मदद से अपने डिवाइस को निर्देश दिए जा सकते हैं.
8. बधाई हो!
आपने अपना पहला Matter डिवाइस बना लिया है और उसे चालू कर दिया है. बहुत बढ़िया!
इस कोडलैब में, आपने ये सीखा:
- ज़रूरी शर्तों के हिसाब से, Matter डेवलपमेंट एनवायरमेंट इंस्टॉल करें.
- Matter की सुविधा वाला डिवाइस बनाना और उसे चलाना.
- Google Home से अपने डिवाइस को कमीशन करें और कंट्रोल करें.
Matter के बारे में ज़्यादा जानने के लिए, यहां जाएं:
- Google Home का Matter Primer, जहां आपको Matter प्रोटोकॉल के अहम कॉन्सेप्ट और सिद्धांतों के बारे में जानकारी मिलेगी.
- Connected Standard Alliance ने Matter Specification, Matter Device Library, और Matter Application Cluster Library को पब्लिश किया है.
- Matter की GitHub रिपॉज़िटरी.