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

В примере ответа 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 ответы на него соответствуют требованиям, указанным в разделе Требования к синхронизации.