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

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

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

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

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

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