Дедупликация устройств 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 можно найти в руководстве Cloud-to-Cloud Primer .

Пример ответа 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 соответствуют требованиям, указанным в требованиях SYNC .