ביטול כפילויות של מכשירים בענן ובענן Matter

כשממירים מכשיר שמשתמש כרגע ב-(Cloud-to-cloud) ל-Matter, צריך לוודא שהמכשיר משתמש באותו מזהה ב-Matter שבו הוא משתמש כשהוא מחובר באמצעות ממשקי ה-API שאינם 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 בחומר העזר של Cloud-to-Cloud.

בתשובה 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, הענן של השותף צריך לשלוח REQUEST SYNC ל-Google באופן מיידי כדי לעדכן את השדות האלה בהקדם האפשרי כדי למנוע כפילויות מאוחרות.

המחרוזות האלו אף פעם לא אמורות להשתנות לאחר שהן סופקו עבור מכשיר נתון. המזהה הייחודי צריך להשתנות רק כשמאפסים להגדרות המקוריות, כך שהמכשיר יופיע בכל השילובים כמכשיר חדש לגמרי.

שיוך אוטומטי של מבנה

לא מובטח שמכשירי Cloud-to-cloud ישויכו באופן אוטומטי למבנה מסוים. במצבים שבהם אי אפשר לשייך את המבנה האוטומטי, מכשירי Cloud-to-cloud הרלוונטיים יופיעו בקטע ייעודי במסך הראשי של GHA, בקטע מקושר אליך, מחוץ לכל חדר. הכפילויות של מכשירים כאלה לא יבוטלו. המכשירים לא ימוקמו באופן אוטומטי במבנה אם למשתמש יש יותר ממבנה אחד (בית) ב-GHA. יכול להיות שמבנה המכשירים לא תקין מסיבות אחרות.

אם משתמש מעביר באופן ידני מכשיר Cloud-to-cloud שהשיוך האוטומטי שלו למבנה נכשל, יכול להיות שביטול הכפילויות יתבצע ב-SYNC הבא כל עוד התשובות SYNC עומדות בדרישות שמפורטות בדרישות הסנכרון.