Дедупликация устройств 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 для устройства Matter. Кроме того, ответы SYNC должны содержать roomHint:

  1. matterUniqueId – атрибут UniqueId в формате строки из кластера Basic Information (Основная информация).
  2. matterOriginalVendorId – атрибут VendorId в формате шестнадцатеричной строки из кластера Basic Information.
  3. matterOriginalProductId – атрибут ProductId в формате шестнадцатеричной строки из кластера Basic Information.
  4. roomHint – комната, в которой находится устройство.

Документацию по намерениям, например 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, облако партнера должно немедленно отправить в Google запрос REQUEST SYNC, чтобы как можно быстрее обновить эти поля и избежать поздней дедупликации.

Эти строки не должны меняться после того, как они были предоставлены для определенного устройства. Уникальный идентификатор должен меняться только при сбросе настроек, после которого устройство будет распознаваться всеми интеграциями как новое.

Автоматическое связывание структуры

Устройства Cloud-to-cloud не обязательно будут автоматически связаны с определенным домом. Если автоматическое связывание невозможно, устройства Cloud-to-cloud появятся в разделе В вашем аккаунте на главном экране приложения GHA. Они не будут привязаны ни к одной комнате. Такие устройства не будут дедуплицированы. Устройства не будут автоматически добавляться в структуру, если у пользователя в GHA несколько структур (домов). Устройства могут не структурироваться по другим причинам.

Если пользователь вручную переместит устройство Cloud-to-cloud, которое не удалось автоматически связать со структурой, в структуру, дедупликация может произойти при следующем запросе SYNC, если ответы SYNC соответствуют требованиям, указанным в разделе Требования к SYNC.