Os dispositivos no Matter têm um modelo de dados (DM) bem definido, que é uma modelagem hierárquica dos recursos de um dispositivo. No nível mais alto dessa hierarquia, há um dispositivo.
Dispositivos e endpoints
Todos os dispositivos, incluindo smartphones e assistentes para casa, são compostos por nós1. Um nó é um recurso identificável e endereçável exclusivo em uma rede que um usuário pode perceber como funcionalmente completo. A comunicação de rede em Matter tem origem e término em um nó.
Os nós são um conjunto de endpoints. Cada endpoint inclui um conjunto de atributos. Por exemplo, um endpoint pode estar relacionado a uma funcionalidade de iluminação, enquanto outro está relacionado à detecção de movimento e outro lida com utilitários, como a atualização OTA do dispositivo.
Funções do nó
Uma função do nó é um conjunto de comportamentos relacionados. Cada nó pode ter uma ou mais funções. As funções do nó incluem:
- Comissário: um nó que realiza o comissionamento.
- Controlador: um nó que pode controlar um ou mais nós. Os exemplos incluem o Google Home app (GHA), Google Assistant, e o Google Nest Hub (2nd gen). Alguns tipos de dispositivos, como o interruptor de luz, têm a função de controlador.
- Controlado: um nó que pode ser controlado por um ou mais nós. A maioria dos tipos de dispositivos pode ser controlada, exceto alguns tipos que têm a função de controlador, como o interruptor de luz. O interruptor de luz só pode ser um controlador. Ele não pode ser controlado.
- Provedor de OTA: um nó que pode fornecer atualizações de software OTA.
- Solicitante de OTA: um nó que pode solicitar atualizações de software OTA.
Clusters
Em um endpoint , um nó tem um ou mais clusters. Essa é outra etapa na hierarquia de dispositivos, já que eles agrupam funcionalidades específicas, como um cluster on/off em uma tomada inteligente ou um cluster de controle de nível em um endpoint de luz regulável.
Um nó também pode ter vários endpoints, cada um criando uma instância da mesma funcionalidade. Por exemplo, uma luminária pode expor o controle independente de luzes individuais ou uma régua de energia pode expor o controle de tomadas individuais.
Atributos
No último nível, encontramos atributos, que são estados mantidos pelo nó, como o atributo nível atual de um cluster de controle de nível. Os atributos podem ser definidos como diferentes tipos de dados, como uint8, strings ou matrizes.
Comandos
Além dos atributos, os clusters também têm comandos, que são ações que podem ser realizadas. Eles são o equivalente no Matter's DM de uma chamada de procedimento remoto. Os comandos são semelhantes a verbos, como trancar porta em um fechadura cluster. Os comandos podem gerar respostas e resultados. Em Matter, essas respostas também são definidas como comandos, indo na direção inversa.
Eventos
Por fim, os clusters também podem ter eventos, que podem ser considerados um registro de transições de estado anteriores. Enquanto os atributos representam os estados atuais, os eventos são um registro do passado e incluem um contador monotonicamente crescente, um carimbo de data/hora e uma prioridade. Eles permitem capturar transições de estado, bem como a modelagem de dados que não é facilmente alcançada com atributos.
O endpoint 0 é reservado para os clusters de utilitários. Os clusters de utilitários são clusters específicos que incluem a funcionalidade de serviço em um endpoint, como descoberta, endereçamento, diagnóstico e atualização de software. Por outro lado, os clusters de aplicativos oferecem suporte a ações principais, como medição de temperatura ou on/off.
Tipos de dispositivos
No total, quais combinações de cluster devem ser incluídas quando um fabricante de dispositivos planeja um novo dispositivo?
A especificação Matter exige que o dispositivo implemente ou estenda um ou mais tipos de dispositivos. Um tipo de dispositivo é uma coleção de clusters obrigatórios e opcionais que definem os atributos de nível superior de um dispositivo físico, como luz regulável, fechadura ou player de vídeo.
Os tipos de dispositivos não são especificados no Matter documento principal da especificação, mas em um documento complementar: a biblioteca de dispositivos. Da mesma forma, todos os clusters de aplicativos são definidos na biblioteca de clusters de aplicativos. Esses três documentos podem ser encontrados no Connectivity Standards Alliance (Alliance) site dos membros.
Cada endpoint que implementa um tipo de dispositivo precisa implementar os clusters obrigatórios que definem esse tipo de dispositivo. Além dos clusters obrigatórios, o endpoint pode implementar clusters adicionais, incluindo um ou mais clusters opcionais do tipo de dispositivo ou até mesmo clusters que não fazem parte do tipo de dispositivo.
Clientes e servidores
Os clusters podem ser um cluster de cliente ou um cluster de servidor. Enquanto um servidor é com estado e contém atributos, eventos e comandos, um cliente é sem estado e a responsabilidade dele é iniciar interações com um cluster de servidor remoto, realizando:
- lê e grava nos atributos remotos.
- leituras dos eventos remotos.
- invocação dos comandos remotos.
Embora o DM seja hierárquico em um nó, a relação entre os nós não é. Os nós em Matter não têm relações verticais de controlador/periférico ou líder/seguidor. Pelo contrário, a relação é horizontal: qualquer cluster pode ser servidor ou cliente. Assim, um nó pode ser servidor e cliente em relação a diferentes clusters e funcionalidades.
Por exemplo, podemos ter duas luminárias de mesa: nó A e nó B. Os dois nós implementam um tipo de dispositivo On/Off Light. Esse tipo de dispositivo inclui um cluster On/Off Server que controla as saídas de luz físicas.
No entanto, como as luminárias de mesa típicas, nossos dispositivos físicos também incluem um tipo de dispositivo On/Off Light Switch para os interruptores locais. Esse tipo de dispositivo precisa implementar um cluster On/Off Client para que possa controlar os clusters de servidor.
Neste exemplo, o cluster de cliente on/off no nó A está mudando os atributos do cluster de servidor on/off no nó A e no nó B, enquanto o cluster de cliente do nó B só está mudando o cluster de servidor no próprio nó B.
Na próxima seção, vamos detalhar como os clusters de cliente e servidor interagem: o modelo de interação.
Cluster de descritor
Como o nome sugere, o servidor de cluster de descritor fornece informações de introspecção. Ele descreve o endpoint enumerando:
- Clusters de servidor.
- Clusters de cliente.
- Tipos de dispositivos.
- Endpoints adicionais, conhecidos como partes.
Cada tipo de dispositivo exige a implementação de clusters de descritor. O tipo de dispositivo raiz é definido no endpoint 0. A leitura do cluster de descritor oferece ao cliente a visibilidade para percorrer toda a árvore de endpoints disponíveis e realizar as operações aplicáveis.
O comissário ou dispositivo de controle, como um smartphone ou hub, pode usar as informações encontradas no cluster de descritor para modelar o dispositivo (luz, interruptor, bomba, termostato) e recursos específicos implementados por essa instância específica do dispositivo, mostrando a interface correta para o usuário.
Clusters de servidor
O atributo ServerList lista os servidores de cluster no endpoint.
Clusters de cliente
O atributo ClientList lista os clientes de cluster no endpoint.
Lista de tipos de dispositivos
O atributo DeviceTypeList é uma lista de tipos de dispositivos com suporte no endpoint, juntamente com as revisões correspondentes. Ele precisa conter pelo menos um tipo de dispositivo.
Lista de peças
O PartsList contém a lista de endpoints usados para implementar esse tipo de dispositivo.
O PartsList do endpoint 0 (nó raiz) contém todos os endpoints do dispositivo, exceto ele mesmo (endpoint 0).
O PartsList de outros endpoints geralmente está vazio. Por exemplo, um sensor de temperatura exige um cluster de servidor de medição de temperatura e nada mais.
Outros tipos de dispositivos podem ser compostos em uma estrutura de árvore de mais de uma instância de tipo de dispositivo. Por exemplo, um tipo de dispositivo de reprodutor de vídeo pode ser composto por TV, reprodutor de vídeo, alto-falante e diferentes tipos de dispositivos de app de conteúdo, cada um em um endpoint diferente.
-
A especificação Matter determina que um dispositivo pode ter vários nós. Por exemplo, os smartphones podem ter vários apps, cada um sendo um nó diferente. Para fins deste guia, todos os dispositivos vão conter um único nó. Espera-se que a maioria dos dispositivos físicos siga esse padrão. ↩