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

כשממירים מכשיר שמשתמש כרגע ב-(Cloud-to-cloud) ל-Matter, צריך לוודא שהמכשיר משתמש באותו מזהה ב-Matter שבו הוא משתמש כשמחובר באמצעות ממשקי ה-API שאינם Matter. כך המכשיר יופיע רק פעם אחת ב-Google Home Graph של המשתמש. אפשר לבטל כפילויות של מכשירים מסוג Cloud-to-cloud רק כשהם משויכים למבנה מסוים (בית) ב-Google Home app (GHA).

דרישות לגבי SYNC

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