क्लाउड-टू-क्लाउड और Matter से जुड़े डिवाइस की डुप्लीकेट कॉपी हटाने की तकनीक

फ़िलहाल (Cloud-to-cloud) का इस्तेमाल कर रहे किसी डिवाइस को Matter में बदलने के लिए, यह पक्का करना ज़रूरी है कि Matter पर डिवाइस का वही आईडी इस्तेमाल किया जाए जो Matter के अलावा अन्य एपीआई का इस्तेमाल करके कनेक्ट होने पर इस्तेमाल किया जाता है. ऐसा करने से, डिवाइस उपयोगकर्ता के Google Home Graph पर सिर्फ़ एक बार दिखेगा. Cloud-to-cloud डिवाइसों को सिर्फ़ तब डुप्लीकेट होने से बचाया जा सकता है, जब उन्हें Google Home app (GHA) में किसी खास स्ट्रक्चर (होम) से जोड़ा जाता है.

SYNC के लिए ज़रूरी शर्तें

Home Graph पर डुप्लीकेट डिवाइस दिखने से बचाने के लिए, पार्टनर के क्लाउड को Google को SYNC के जवाब में, हर डिवाइस के लिए तीन नए स्ट्रिंग फ़ील्ड भेजने होंगे. ये फ़ील्ड, Matter डिवाइस के लिए बुनियादी जानकारी के क्लस्टर में तय किए गए एट्रिब्यूट से मेल खाने चाहिए. इसके अलावा, SYNC के जवाबों में roomHint शामिल होना चाहिए:

  1. matterUniqueId — बुनियादी जानकारी के क्लस्टर से, स्ट्रिंग फ़ॉर्मैट में UniqueId एट्रिब्यूट.
  2. matterOriginalVendorId — बुनियादी जानकारी के क्लस्टर से, हेक्साडेसिमल स्ट्रिंग फ़ॉर्मैट में VendorId एट्रिब्यूट.
  3. matterOriginalProductId — बुनियादी जानकारी के क्लस्टर से, हेक्साडेसिमल स्ट्रिंग फ़ॉर्मैट में ProductId एट्रिब्यूट.
  4. roomHint - वह कमरा जिसमें यह डिवाइस मौजूद है.

SYNC जैसे इंटेंट के बारे में दस्तावेज़, क्लाउड-टू-क्लाउड प्राइमर में मिल सकता है.

यहां SYNC के जवाब का एक उदाहरण दिया गया है. इसमें तीन नए फ़ील्ड के साथ-साथ roomHint का इस्तेमाल दिखाया गया है:

SYNC का जवाब
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "payload": {
    "agentUserId": "1836.15267389",
    "devices": [
      {
        "id": "456",
        "type": "action.devices.types.LIGHT",
        "traits": [
          "action.devices.traits.OnOff",
          "action.devices.traits.Brightness",
          "action.devices.traits.ColorSetting",
        ],
        "willReportState": true,
        "roomHint": "office",
        "deviceInfo": { ... },
        "matterUniqueId": "00112233aabbccddeeff",
        "matterOriginalVendorId": "0xfff1",
        "matterOriginalProductId": "0x1234",
        "otherDeviceIds": [
          {
            "deviceId": "local-device-id",
          }
        ]
      }
    ]
  }
}

जब किसी ऐसे डिवाइस को Matter डिवाइस में बदला जाता है जो पहले पार्टनर के क्लाउड का इस्तेमाल करके, उपयोगकर्ता के होम नेटवर्क पर काम कर रहा था, तो पार्टनर के क्लाउड को तुरंत Google को REQUEST SYNC भेजना होगा. इससे इन फ़ील्ड को जल्द से जल्द अपडेट किया जा सकेगा और डुप्लीकेट होने से बचाया जा सकेगा.

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

स्ट्रक्चर से अपने-आप जुड़ने की सुविधा

इस बात की कोई गारंटी नहीं है कि Cloud-to-cloud डिवाइस, किसी खास स्ट्रक्चर से अपने-आप जुड़ जाएंगे. अगर स्ट्रक्चर से अपने-आप जुड़ने की सुविधा काम नहीं करती है, तो काम के Cloud-to-cloud डिवाइस, GHA की मुख्य स्क्रीन के किसी सेक्शन में दिखेंगे. यह सेक्शन, किसी भी रूम के बाहर, आपसे लिंक किए गए डिवाइस नाम से दिखेगा. ऐसे डिवाइसों को डुप्लीकेट होने से नहीं बचाया जा सकेगा. अगर उपयोगकर्ता के पास GHA में एक से ज़्यादा स्ट्रक्चर (होम) हैं, तो डिवाइस अपने-आप किसी स्ट्रक्चर में नहीं जुड़ेंगे. अन्य वजहों से भी डिवाइस, स्ट्रक्चर से नहीं जुड़ सकते हैं.

अगर कोई उपयोगकर्ता, Cloud-to-cloud डिवाइस को मैन्युअल तरीके से किसी स्ट्रक्चर में जोड़ता है, तो अगले SYNC में उसे डुप्लीकेट होने से बचाया जा सकता है. हालांकि, इसके लिए ज़रूरी है कि SYNC के जवाब, SYNC requirements के लिए ज़रूरी शर्तों के मुताबिक हों.