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

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

SYNC דרישות

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