डिवाइस डेटा मॉडल

Matter में शामिल डिवाइसों में अच्छी तरह से तय किया गया डेटा मॉडल (DM) होता है, जो डिवाइस की सुविधाओं का हैरारकी के हिसाब से मॉडलिंग करता है. इस हैरारकी में सबसे ऊपर एक डिवाइस मौजूद होता है.

डिवाइस और एंडपॉइंट

सभी डिवाइस, जिनमें स्मार्टफ़ोन और होम असिस्टेंट शामिल हैं. नोड1 का इस्तेमाल किया जाता है. नोड नेटवर्क में मौजूद यूनीक पहचान करने वाला और पता लगाने लायक रिसॉर्स है. इसे इस्तेमाल करने वाला व्यक्ति पूरी तरह से काम कर सकता है. नेटवर्क कम्यूनिकेशन Matter में शुरू होता है और नोड पर खत्म होता है.

नोड, एंडपॉइंट का कलेक्शन होता है. हर एंडपॉइंट में एक फ़ीचर सेट शामिल होता है. उदाहरण के लिए, एक एंडपॉइंट लाइटिंग फ़ंक्शन से जुड़ा हो सकता है, जबकि दूसरा एंडपॉइंट मोशन डिटेक्शन से जुड़ा होता है. इसके अलावा, डिवाइस ओटीए जैसी यूटिलिटी के साथ दूसरी डील करता है.

डिवाइसों, नोड, और एंडपॉइंट की हैरारकी
पहली इमेज: डिवाइस, नोड, और एंडपॉइंट

नोड भूमिकाएं

नोड भूमिका, उससे जुड़े व्यवहार का सेट होती है. हर नोड में एक या उससे ज़्यादा भूमिकाएं हो सकती हैं. नोड भूमिकाओं में शामिल हैं:

  • कमीशन: एक नोड जो कमीशन करता है.
  • नियंत्रक: एक नोड जो एक या ज़्यादा नोड को नियंत्रित कर सकता है. उदाहरण के लिए, Google Home app (GHA), Google Assistant, और Google Nest Hub (2nd gen). कुछ डिवाइस टाइप, जैसे कि चालू/बंद लाइट स्विच में नियंत्रक की भूमिका होती है.
  • Controlee: एक नोड जिसे एक या उससे ज़्यादा नोड से कंट्रोल किया जा सकता है. ज़्यादातर डिवाइस टाइप कंट्रोली हो सकते हैं. हालांकि, कुछ ऐसे डिवाइस टाइप नहीं हैं जिनमें कंट्रोलर की भूमिका है, जैसे कि चालू/बंद लाइट स्विच. चालू/बंद लाइट स्विच सिर्फ़ नियंत्रक हो सकता है. यह कंट्रोली नहीं हो सकता.
  • OTA प्रोवाइडर: एक नोड, जो ओटीए सॉफ़्टवेयर अपडेट दे सकता है.
  • OTA अनुरोध करने वाला: एक नोड जो ओटीए सॉफ़्टवेयर अपडेट का अनुरोध कर सकता है.

क्लस्टर

Endpoint में किसी नोड में एक या उससे ज़्यादा क्लस्टर होते हैं. डिवाइस में हैरारकी में ये एक और चरण हैं. इनमें कुछ खास सुविधाओं का ग्रुप बनाया जाता है, जैसे कि स्मार्ट प्लग पर चालू/बंद क्लस्टर या कम रोशनी वाले लाइट एंडपॉइंट पर लेवल कंट्रोल क्लस्टर.

एक नोड में कई एंडपॉइंट हो सकते हैं, जिनमें से हर एंडपॉइंट एक ही फ़ंक्शन का इंस्टेंस बनाता है. उदाहरण के लिए, एक लाइट लगाने से अलग-अलग लाइटों या पावर स्ट्रिप का अलग से कंट्रोल दिखाई दे सकता है.

एट्रिब्यूट

आखिरी लेवल पर, हमें एट्रिब्यूट मिलेंगे, जो नोड की स्थिति में होते हैं. जैसे, किसी लेवल कंट्रोल क्लस्टर का मौजूदा लेवल एट्रिब्यूट. एट्रिब्यूट को अलग-अलग तरह के डेटा टाइप के तौर पर बताया जा सकता है, जैसे कि uint8, स्ट्रिंग या अरे.

नोड, एंडपॉइंट, एट्रिब्यूट, और निर्देशों की हैरारकी
दूसरी इमेज: नोड, एंडपॉइंट, एट्रिब्यूट, और निर्देश

निर्देश

एट्रिब्यूट के अलावा, क्लस्टर में कमांड भी होते हैं जो की जा सकती हैं. ये कार्रवाइयां हैं. रिमोट प्रोसेस कॉल के लिए Matter के DM में ये वैल्यू एक बराबर होती हैं. निर्देश कार्रवाई की तरह होते हैं, जैसे कि Door Lock क्लस्टर में दरवाज़ा बंद करें. निर्देशों से जवाब और नतीजे जनरेट हो सकते हैं. Matter में, इस तरह के जवाबों को निर्देशों के तौर पर भी बताया जाता है. ये निर्देश उलटी दिशा में जाते हैं.

इवेंट

आखिर में, क्लस्टर में इवेंट भी हो सकते हैं, जिन्हें पिछले स्टेटस ट्रांज़िशन के रिकॉर्ड के तौर पर देखा जा सकता है. एट्रिब्यूट, मौजूदा स्थितियों के बारे में बताते हैं. हालांकि, इवेंट पहले की जानकारी देते हैं. साथ ही, इनमें एक समय अवधि के हिसाब से बढ़ते हुए काउंटर, टाइमस्टैंप, और प्राथमिकता शामिल होती है. इनकी मदद से, स्टेटस के ट्रांज़िशन को कैप्चर किया जा सकता है. साथ ही, ये ऐसी डेटा मॉडलिंग भी कर सकते हैं जो एट्रिब्यूट की मदद से आसानी से हासिल नहीं की जा सकती.

डिवाइस का पूरा नमूना
तीसरी इमेज: Matter डिवाइसों के इंटरैक्शन मॉडल की हैरारकी का सैंपल

Endpoint 0, यूटिलिटी क्लस्टर के लिए रिज़र्व है. यूटिलिटी क्लस्टर ऐसे खास क्लस्टर होते हैं जिनमें एंडपॉइंट पर सर्विसिंग की सुविधा शामिल होती है. जैसे, खोजने, पता करने, गड़बड़ी की जानकारी, और सॉफ़्टवेयर अपडेट. वहीं दूसरी ओर, ऐप्लिकेशन क्लस्टर में, चालू/बंद या तापमान मापने जैसी मुख्य कार्रवाइयां काम करती हैं.

डिवाइस के टाइप

कुल मिलाकर, डिवाइस बनाने वाली कंपनी के तौर पर किन क्लस्टर को नया डिवाइस प्लान किया जाना चाहिए?

Matter स्पेसिफ़िकेशन के मुताबिक, डिवाइस के लिए एक या उससे ज़्यादा डिवाइस टाइप लागू करना या बढ़ाना ज़रूरी है. डिवाइस टाइप, ज़रूरी और वैकल्पिक क्लस्टर का एक कलेक्शन है. ये किसी फ़िज़िकल डिवाइस के टॉप-लेवल एट्रिब्यूट की जानकारी देते हैं, जैसे कि कम रोशनी वाली लाइट, डोर लॉक या वीडियो प्लेयर.

डिवाइस टाइप की जानकारी, Matter के बारे में जानकारी देने वाले मुख्य दस्तावेज़ में नहीं दी गई है, बल्कि उससे जुड़े दस्तावेज़ में बताई गई है: डिवाइस लाइब्रेरी. इसी तरह, सभी ऐप्लिकेशन क्लस्टर, ऐप्लिकेशन क्लस्टर लाइब्रेरी में बताए गए होते हैं. ये तीनों दस्तावेज़ Connectivity Standards Alliance (Alliance) के सदस्यों की वेबसाइट पर देखे जा सकते हैं.

डिवाइस टाइप को लागू करने वाले हर एंडपॉइंट को ज़रूरी क्लस्टर लागू करना होगा. ये क्लस्टर उस डिवाइस टाइप के बारे में बताते हैं. ज़रूरी क्लस्टर के अलावा, एंडपॉइंट दूसरे क्लस्टर लागू कर सकता है. इनमें डिवाइस टाइप के एक या एक से ज़्यादा वैकल्पिक क्लस्टर शामिल हैं. इसके अलावा, ऐसे क्लस्टर भी शामिल किए जा सकते हैं जो डिवाइस टाइप का हिस्सा नहीं हैं.

क्लाइंट और सर्वर

क्लस्टर, क्लाइंट क्लस्टर या सर्वर क्लस्टर हो सकता है. सर्वर स्टेटस होता है और उसमें एट्रिब्यूट, इवेंट, और निर्देश शामिल होते हैं. हालांकि, क्लाइंट स्टेटलेस नहीं होता. किसी रिमोट सर्वर क्लस्टर के साथ इंटरैक्शन शुरू करने की ज़िम्मेदारी इस तरह से होती है:

  • रिमोट एट्रिब्यूट से फिर से पढ़ता है और लिखता है.
  • रीड करता है.
  • अपने रिमोट कमांड को शुरू करने की प्रक्रिया.

जहां एक नोड में DM पदानुक्रम है, वहीं नोड के बीच का संबंध नहीं है. Matter के नोड में वर्टिकल कंट्रोलर/पेरिफ़ेरल या लीडर/फ़ॉलोअर के बीच संबंध नहीं होते हैं. इसके ठीक उलट, रिलेशन हॉरिज़ॉन्टल होता है: कोई भी क्लस्टर, सर्वर या क्लाइंट हो सकता है. इसलिए, अलग-अलग क्लस्टर और फ़ंक्शन के मामले में, नोड सर्वर और क्लाइंट, दोनों हो सकता है.

उदाहरण के लिए, हमारे पास दो टेबल लैंप हो सकते हैं: नोड A और नोड B. दोनों नोड, डिवाइस को चालू/बंद करने की सुविधा देते हैं. इस डिवाइस टाइप में चालू/बंद सर्वर क्लस्टर शामिल है, जो अपनी फ़िज़िकल लाइट के आउटपुट को कंट्रोल करता है.

हालांकि, सामान्य टेबल लैंप की तरह ही, हमारे फ़िज़िकल डिवाइसों में भी चालू/बंद लाइट स्विच वाला डिवाइस टाइप शामिल होगा. ऐसा, उनके लोकल चालू/बंद स्विच के लिए किया जाएगा. इस डिवाइस टाइप को चालू/बंद क्लाइंट क्लस्टर लागू करना ज़रूरी है, ताकि यह सर्वर क्लस्टर को कंट्रोल कर सके.

चालू/बंद लाइट और लाइट स्विच, दोनों को लागू करने वाले लैंप
इमेज 4: क्लाइंट और सर्वर क्लस्टर

इस नमूने में, नोड A पर चालू/बंद क्लाइंट क्लस्टर, नोड A और नोड B पर चालू/बंद सर्वर क्लस्टर के एट्रिब्यूट बदल रहा है, जबकि नोड B का क्लाइंट क्लस्टर सिर्फ़ नोड B पर सर्वर क्लस्टर में बदलाव कर रहा है.

अगले सेक्शन में, हम बताएंगे कि क्लाइंट और सर्वर क्लस्टर कैसे इंटरैक्ट करते हैं: इंटरैक्शन मॉडल.

जानकारी देने वाला क्लस्टर

जैसा कि नाम से ही पता चलता है, डिस्क्रिप्टर क्लस्टर सर्वर जांच करने की जानकारी देता है. यह एंडपॉइंट के बारे में बताता है इसकी जानकारी देता है:

  • सर्वर क्लस्टर.
  • क्लाइंट क्लस्टर.
  • डिवाइस के टाइप.
  • अन्य एंडपॉइंट, जिन्हें 'पुर्ज़' कहा जाता है.

हर डिवाइस टाइप के लिए डिस्क्रिप्टर क्लस्टर लागू करना ज़रूरी होता है. रूट डिवाइस टाइप के बारे में एंडपॉइंट 0 पर बताया गया है. इसके डिस्क्रिप्टर क्लस्टर को पढ़ने से, क्लाइंट को उपलब्ध एंडपॉइंट के पूरे ट्री को पार करने और ज़रूरी कार्रवाइयां करने में मदद मिलेगी.

कमिश्नर या फ़ोन या हब जैसे कंट्रोल करने वाले डिवाइस, डिस्क्रिप्टर क्लस्टर की जानकारी का इस्तेमाल करके, डिवाइस (लाइट, स्विच, पंप, थर्मोस्टैट) को मॉडल कर सकते हैं. साथ ही, डिवाइस के उस इंस्टेंस पर लागू की गई खास सुविधाओं को मॉडल कर सकते हैं और उपयोगकर्ता को सही यूज़र इंटरफ़ेस (यूआई) दिखा सकते हैं.

सर्वर क्लस्टर

ServerList एट्रिब्यूट में, एंडपॉइंट में क्लस्टर सर्वर की सूची होती है.

क्लाइंट क्लस्टर

ClientList एट्रिब्यूट में, एंडपॉइंट में क्लस्टर क्लाइंट की सूची होती है.

डिवाइस के टाइप की सूची

DeviceTypeList एट्रिब्यूट, डिवाइस टाइप की एक सूची है जो एंडपॉइंट पर काम करती है. साथ ही, इससे जुड़े बदलावों के बारे में भी बताया जाता है. उसमें कम से कम एक डिवाइस टाइप होना चाहिए.

पुर्ज़ों की सूची

PartsList में, इस डिवाइस टाइप को लागू करने के लिए इस्तेमाल किए गए एंडपॉइंट की सूची शामिल है.

एंडपॉइंट 0 के PartsList (रूट नोड) में डिवाइस के अलग-अलग सभी एंडपॉइंट होते हैं (Endpoint 0).

अन्य एंडपॉइंट का PartsList खाली रहेगा. उदाहरण के लिए, टेंपरेचर सेंसर, तापमान मापने वाले सर्वर क्लस्टर को ज़रूरी बनाता है. इसके अलावा किसी और चीज़ को नहीं.

अन्य डिवाइस टाइप को एक से ज़्यादा डिवाइस टाइप इंस्टेंस की ट्री स्ट्रक्चर में बनाया जा सकता है. उदाहरण के लिए, वीडियो प्लेयर वाले डिवाइस टाइप में टीवी, वीडियो प्लेयर, स्पीकर, और अलग-अलग तरह के कॉन्टेंट ऐप्लिकेशन डिवाइस टाइप शामिल हो सकते हैं. ये सभी अलग-अलग एंडपॉइंट पर होते हैं.


  1. Matter स्पेसिफ़िकेशन के हिसाब से, किसी डिवाइस में एक से ज़्यादा नोड हो सकते हैं. उदाहरण के लिए, स्मार्टफ़ोन में कई ऐप्लिकेशन हो सकते हैं और हर ऐप्लिकेशन का नोड अलग होता है. इस प्राइमर के लिए, सभी डिवाइस में एक ही नोड होगा. यह उम्मीद की जाती है कि ज़्यादातर फ़िज़िकल डिवाइस इस पैटर्न का पालन करेंगे.