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

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

SYNC דרישות

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