क्लाउड-टू-क्लाउड और 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 की मुख्य स्क्रीन के किसी सेक्शन में दिखेंगे. यह सेक्शन, Linked to you टाइटल के तहत, किसी भी रूम से बाहर दिखेगा. ऐसे डिवाइसों को डुप्लीकेट के तौर पर मार्क नहीं किया जाएगा. अगर उपयोगकर्ता के पास GHA में एक से ज़्यादा स्ट्रक्चर (होम) हैं, तो डिवाइस अपने-आप किसी स्ट्रक्चर में नहीं जोड़े जाएंगे. अन्य वजहों से भी डिवाइसों को स्ट्रक्चर में नहीं जोड़ा जा सकता है.

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