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

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

Автоматическое сопоставление структур

Устройства Cloud-to-cloud не гарантируют автоматического связывания с конкретной структурой. В ситуациях, когда автоматическое связывание со структурой невозможно, соответствующие устройства, Cloud-to-cloud будут отображаться в специальном разделе главного экрана GHA , в разделе « Связано с вами» , вне комнат. Дедупликация таких устройств не производится. Устройства не будут автоматически размещаться в структуре, если у пользователя более одной структуры (дома) в GHA . Связывание устройств со структурой может не произойти по другим причинам.

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