ביטול כפילויות של מכשירים בענן ובענן 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 עומדות בדרישות שמפורטות בקטע דרישות הסנכרון.