Модель данных устройства

Устройства в Matter имеют четко определенную модель данных ( DM ), которая представляет собой иерархическое моделирование характеристик Устройства. На верхнем уровне этой иерархии находится Устройство .

Устройства и конечные точки

Все Устройства, включая смартфоны и домашних помощников, состоят из Узлов 1. Узел — это уникальный идентифицируемый и адресуемый ресурс в сети, который пользователь может воспринимать как функционально целое. Сетевое общение в Matter начинается и заканчивается в Узле.

Узлы представляют собой набор конечных точек . Каждая конечная точка включает набор функций. Например, конечная точка может относиться к функциональности освещения , другая — к обнаружению движения , а третья — к утилитам , таким как Device OTA.

Иерархия устройств, узлов и конечных точек
Рисунок 1: Устройства, узлы и конечные точки

Роли узлов

Роль узла — это набор связанных поведений. Каждый узел может иметь одну или несколько ролей. Роли узла включают:

  • Комиссар : Узел, который выполняет ввод в эксплуатацию .
  • Контроллер : Узел, который может управлять одним или несколькими узлами. Примерами являются Google Home app (GHA) , Google Assistant и Google Nest Hub (2nd gen) . Некоторые типы устройств, такие как выключатель света On/Off , имеют роль контроллера.
  • Controlee : Узел, который может управляться одним или несколькими узлами. Большинство типов устройств могут быть Controlee, за исключением некоторых типов устройств, которые имеют роль Controller, например, On/Off Light Switch . On/Off Light Switch может быть только Controller. Он не может быть Controlee.
  • Поставщик OTA : узел, который может предоставлять обновления программного обеспечения OTA.
  • Запросчик OTA : узел, который может запрашивать обновления программного обеспечения OTA.

Кластеры

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

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

Атрибуты

На последнем уровне мы найдем Атрибуты , которые являются состояниями, удерживаемыми узлом, такими как атрибут текущего уровня кластера управления уровнем . Атрибуты могут быть определены как различные типы данных, такие как uint8, строки или массивы.

Иерархия узлов, конечных точек, атрибутов и команд
Рисунок 2: Узлы, конечные точки, атрибуты и команды

Команды

Помимо атрибутов, кластеры также имеют команды , которые являются действиями , которые могут быть выполнены. Они являются эквивалентом в DM Matter удаленного вызова процедуры. Команды похожи на глаголы , например, запереть дверь в кластере Door Lock . Команды могут генерировать ответы и результаты; в Matter такие ответы также определяются как команды, идущие в обратном направлении.

События

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

Полный образец устройства
Рисунок 3: Пример иерархии модели взаимодействия устройств Matter

Конечная точка 0 зарезервирована для кластеров Utility . Кластеры Utility — это особые кластеры, которые включают в себя функциональность обслуживания на конечной точке, такую ​​как обнаружение, адресация, диагностика и обновление программного обеспечения. С другой стороны, кластеры приложений поддерживают основные действия, такие как включение/выключение или измерение температуры.

Типы устройств

Какие комбинации кластеров следует включить в общее описание, когда производитель планирует новое устройство?

Спецификация Matter требует, чтобы устройство реализовывало или расширяло один или несколько типов устройств . Тип устройства — это набор обязательных и необязательных кластеров, которые определяют атрибуты верхнего уровня физического устройства, например, регулируемый свет , дверной замок или видеоплеер .

Типы устройств не определены основным документом спецификации Matter , а указаны в сопроводительном документе: Библиотеке устройств . Аналогично, все кластеры приложений определены в Библиотеке кластеров приложений . Эти три документа можно найти на веб-сайте участников Connectivity Standards Alliance (Alliance) .

Каждая конечная точка, реализующая тип устройства, должна реализовать обязательные кластеры, которые определяют этот тип устройства. В дополнение к обязательным кластерам конечная точка может реализовать дополнительные кластеры, включая один или несколько дополнительных кластеров типа устройства или даже кластеры, которые не являются частью типа устройства.

Клиенты и серверы

Кластеры могут быть либо клиентским кластером , либо серверным кластером . В то время как сервер сохраняет состояние и хранит атрибуты, события и команды, клиент не сохраняет состояние и его обязанность — инициировать взаимодействия с удаленным серверным кластером, выполняя таким образом:

  • считывает и записывает в свои удаленные атрибуты.
  • читает о своих далеких Событиях.
  • вызов его удаленных команд.

В то время как DM является иерархическим внутри Node, отношения между Node таковыми не являются. Узлы в Matter не имеют вертикальных отношений контроллер/периферия или лидер/последователь. Напротив, отношения горизонтальные: любой Cluster может быть либо Server , либо Client . Таким образом, Node может быть как Server, так и Client в отношении различных Clusters и функциональностей.

Например, у нас может быть две настольные лампы: узел A и узел B. Оба узла реализуют тип устройства On/Off Light . Этот тип устройства включает в себя кластер серверов On/Off , который управляет их соответствующими физическими выходами света.

Но, как и типичные настольные лампы, наши физические устройства также будут включать тип устройства On/Off Light Switch для своих локальных переключателей on/off. Этот тип устройства должен реализовать On/Off Client Cluster, чтобы он мог управлять Server Clusters.

Светильники, реализующие как включение/выключение света, так и выключатель света
Рисунок 4: Клиентские и серверные кластеры

В этом примере кластер клиентов On/Off на узле A изменяет атрибуты кластера серверов On/Off на узле A и узле B, в то время как кластер клиентов узла B изменяет только кластер серверов на самом узле B.

В следующем разделе мы подробно рассмотрим, как взаимодействуют клиентские и серверные кластеры: модель взаимодействия .

Кластер дескрипторов

Как следует из названия, Descriptor Cluster Server предоставляет информацию интроспекции. Он описывает конечную точку, перечисляя ее:

  • Кластеры серверов.
  • Клиентские кластеры.
  • Типы устройств.
  • Дополнительные конечные точки, известные как части.

Каждый тип устройства требует реализации кластеров дескрипторов. Тип корневого устройства определяется на конечной точке 0. Чтение его кластера дескрипторов предоставит клиенту видимость для обхода полного дерева доступных конечных точек и выполнения соответствующих операций.

Устройство-комиссар или контролирующее устройство, такое как телефон или концентратор, может использовать информацию, найденную в кластере дескрипторов, для моделирования устройства (светильника, переключателя, насоса, термостата) и конкретных функций, реализуемых данным конкретным экземпляром устройства, показывая пользователю правильный пользовательский интерфейс.

Кластеры серверов

Атрибут ServerList перечисляет серверы кластера в конечной точке.

Клиентские кластеры

Атрибут ClientList перечисляет клиентов кластера в конечной точке.

Список типов устройств

Атрибут DeviceTypeList — это список типов устройств, поддерживаемых конечной точкой, вместе с соответствующими ревизиями. Он должен содержать по крайней мере один тип устройства.

Список деталей

PartsList содержит список конечных точек, используемых для реализации этого типа устройства.

PartsList конечной точки 0 (корневой узел) содержит все конечные точки устройства, кроме него самого (конечной точки 0).

PartsList других конечных точек обычно будет пустым. Например, датчик температуры требует кластера серверов измерения температуры и ничего больше.

Другие типы устройств могут быть составлены в древовидной структуре из более чем одного экземпляра типа устройства. Например, тип устройства видеоплеера может быть составлен из телевизора, видеоплеера, динамика и различных типов устройств приложений контента, каждый из которых находится на отдельной конечной точке.


  1. Спецификация Matter определяет, что Устройство может иметь несколько Узлов. Например, смартфоны могут иметь несколько приложений, каждое из которых является отдельным Узлом. Для целей этого руководства все Устройства будут содержать один Узел. Ожидается, что большинство физических устройств будут следовать этому шаблону.