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

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

Команды
Помимо атрибутов, кластеры также имеют команды (Commands) — действия , которые можно выполнить. В DM Matter они эквивалентны вызову удалённой процедуры. Команды — это глаголы , например, «запереть дверь» (lock door) в кластере « Дверь/Замок» (Door Lock) . Команды могут генерировать ответы и результаты; в Matter такие ответы также определяются как команды, действующие в обратном направлении.
События
Наконец, кластеры могут также содержать события (Events) , которые можно рассматривать как запись прошлых переходов состояний. В то время как атрибуты представляют текущие состояния, события представляют собой журнал прошлого и включают в себя монотонно увеличивающийся счётчик, временную метку и приоритет. Они позволяют фиксировать переходы состояний, а также моделировать данные, что сложно реализовать с помощью атрибутов.

Конечная точка 0 зарезервирована для служебных кластеров . Служебные кластеры — это специальные кластеры, которые включают в себя функции обслуживания конечной точки, такие как обнаружение, адресация, диагностика и обновление программного обеспечения. С другой стороны, прикладные кластеры поддерживают основные функции, такие как включение/выключение или измерение температуры.
Типы устройств
Какие комбинации кластеров следует включить в общее описание, когда производитель устройства планирует выпуск нового устройства?
Спецификация Matter требует, чтобы устройство реализовывало или расширяло один или несколько типов устройств . Тип устройства — это набор обязательных и необязательных кластеров, которые определяют атрибуты верхнего уровня физического устройства, например, регулируемый светильник , дверной замок или видеоплеер .
Типы устройств определены не в основном документе спецификации Matter , а в сопутствующем документе: Библиотеке устройств . Аналогично, все кластеры приложений определены в Библиотеке кластеров приложений . Эти три документа можно найти на веб-сайте участников Connectivity Standards Alliance (Alliance) .
Каждая конечная точка, реализующая тип устройства, должна реализовывать обязательные кластеры, определяющие этот тип устройства. Помимо обязательных кластеров, конечная точка может реализовывать дополнительные кластеры, включая один или несколько дополнительных кластеров данного типа устройства или даже кластеры, не входящие в этот тип устройства.
Клиенты и серверы
Кластеры могут быть либо клиентскими , либо серверными . В то время как сервер сохраняет состояние и хранит атрибуты, события и команды, клиент не сохраняет состояние и отвечает за инициирование взаимодействий с удалённым серверным кластером, выполняя следующие действия:
- считывает и записывает в свои удаленные атрибуты.
- читает о своих отдаленных Событиях.
- вызов его удаленных команд.
Хотя DM внутри узла иерархичен, отношения между узлами таковыми не являются. Узлы в Matter не имеют вертикальных отношений «контроллер/периферия» или «ведущий/ведомый». Напротив, отношения горизонтальные: любой кластер может быть либо сервером , либо клиентом . Таким образом, узел может быть как сервером, так и клиентом в отношении различных кластеров и функций.
Например, у нас есть две настольные лампы: узел A и узел B. Оба узла реализуют тип устройства «Вкл/Выкл» . Этот тип устройства включает в себя кластер серверов «Вкл/Выкл» , который управляет их физическими выходами света.
Но, как и в случае с обычными настольными лампами, наши физические устройства также будут включать тип устройства «Вкл/Выкл» для своих локальных выключателей. Этот тип устройства должен реализовывать клиентский кластер «Вкл/Выкл», чтобы иметь возможность управлять серверными кластерами.

В этом примере включенный/выключенный клиентский кластер на узле A изменяет атрибуты включенного/выключенного серверного кластера на узле A и узле B, в то время как клиентский кластер узла B изменяет только атрибуты серверного кластера на самом узле B.
В следующем разделе мы подробно рассмотрим, как взаимодействуют клиентские и серверные кластеры: модель взаимодействия .
Кластер дескрипторов
Как следует из названия, сервер кластера дескрипторов предоставляет информацию для самоанализа. Он описывает конечную точку, перечисляя:
- Кластеры серверов.
- Клиентские кластеры.
- Типы устройств.
- Дополнительные конечные точки, известные как части.
Для каждого типа устройства требуется реализация кластеров дескрипторов. Корневой тип устройства определён на конечной точке 0. Чтение кластера дескрипторов предоставит клиенту возможность просматривать всё дерево доступных конечных точек и выполнять соответствующие операции.
Устройство-комиссар или контролирующее устройство, такое как телефон или концентратор, может использовать информацию, найденную в кластере дескрипторов, для моделирования устройства (светильника, переключателя, насоса, термостата) и конкретных функций, реализуемых этим конкретным экземпляром устройства, показывая пользователю правильный пользовательский интерфейс.
Кластеры серверов
Атрибут ServerList
перечисляет серверы кластера в конечной точке.
Клиентские кластеры
Атрибут ClientList
перечисляет клиентов кластера в конечной точке.
Список типов устройств
Атрибут DeviceTypeList
представляет собой список типов устройств, поддерживаемых конечной точкой, а также их соответствующих версий. Он должен содержать как минимум один тип устройства.
Список деталей
PartsList
содержит список конечных точек, используемых для реализации этого типа устройства.
Список PartsList
конечной точки 0 (корневой узел) содержит все конечные точки устройства, кроме него самого (конечная точка 0).
PartsList
других конечных точек обычно пуст. Например, для датчика температуры требуется кластер серверов измерения температуры и ничего больше.
Другие типы устройств могут быть объединены в древовидную структуру из нескольких экземпляров типа устройства. Например, тип устройства «Видеоплеер» может включать в себя телевизор, видеоплеер, динамик и различные типы устройств для приложений контента, каждый из которых расположен на отдельной конечной точке.
Спецификация Matter определяет, что устройство может иметь несколько узлов. Например, смартфоны могут иметь несколько приложений, каждое из которых представляет собой отдельный узел. В рамках данного руководства все устройства будут содержать один узел. Ожидается, что большинство физических устройств будут следовать этой схеме. ↩