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

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

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

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

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

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

Роли узла

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

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

Кластеры

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

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

Атрибуты

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

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

Команды

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

События

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

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

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

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

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

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

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

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

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

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

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

Хотя DM является иерархическим внутри узла, отношения между узлами таковыми не являются. Узлы в Matter не имеют вертикальных отношений «контролер/периферия» или «лидер/последователь». Напротив, отношения горизонтальны: любой кластер может быть либо сервером , либо клиентом . Таким образом, Узел может быть как Сервером, так и Клиентом в отношении различных Кластеров и функций.

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

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

Лампы, реализующие как включение/выключение света, так и выключатель света.
Рисунок 4. Кластеры клиентов и серверов.

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

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

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

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

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

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

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

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

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

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

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

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

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

Список запчастей

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

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

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

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


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