Берегись! Скоро будут запущены новые программы Developer Preview. Подайте заявку здесь и станьте одним из первых, кто опробует новые инструменты и оставит отзыв.

Дедупликация устройств Cloud-to-Cloud и Matter

При преобразовании устройства, которое в настоящее время использует ( Cloud-to-cloud ) в Matter , вы должны убедиться, что устройство использует тот же идентификатор на Matter , что и при подключении с использованием API-интерфейсов, отличных от Matter . Это гарантирует, что устройство будет отображаться только один раз на Google Home Graph пользователя. Устройства Cloud-to-cloud могут быть дедуплицированы только в том случае, если они связаны с определенной структурой (домом) в Google Home app (GHA) .

Требования SYNC

Чтобы избежать появления дубликатов на Home Graph , партнерское облако должно отправить Google три новых строковых поля для каждого устройства в ответе SYNC . Эти поля должны соответствовать атрибутам, определенным в Кластере базовой информации для устройства 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 соответствуют требованиям, указанным в требованиях SYNC .