Modelo de dados do dispositivo

Os dispositivos em Matter têm um modelo de dados (DM) bem definido, que é uma modelagem hierárquica dos recursos de um dispositivo. No nível superior dessa hierarquia, há um dispositivo.

Dispositivos e endpoints

Todos os dispositivos, incluindo smartphones e assistentes para casa, são compostos por nós1. Um é um recurso exclusivo, identificável e endereçável em uma rede que um usuário pode perceber como funcionalmente inteiro. A comunicação de rede em Matter se origina e termina em um nó.

Os nós são um conjunto de endpoints. Cada endpoint inclui um conjunto de recursos. Por exemplo, um endpoint pode se relacionar a uma funcionalidade de iluminação, enquanto outro se relaciona à detecção de movimento e outro lida com utilitários, como o OTA do dispositivo.

Hierarquia de dispositivos, nós e endpoints
Figura 1: dispositivos, nós e endpoints

Funções do nó

Uma função de nó é um conjunto de comportamentos relacionados. Cada nó pode ter uma ou mais funções. As funções de nó incluem:

  • Comissário: um nó que realiza comissionamento.
  • Controlador: um nó que pode controlar um ou mais nós. Os exemplos incluem Google Home app (GHA), Google Assistant e Google Nest Hub (2nd gen). Alguns tipos de dispositivos, como o interruptor de luz ativado/desativado, têm o papel de controlador.
  • Controlado: um nó que pode ser controlado por um ou mais nós. A maioria dos tipos de dispositivo pode ser um Controlee, exceto alguns que têm a função de Controlador, como o interruptor de luz liga/desliga. O interruptor de luz liga/desliga pode ser um controlador. Não pode ser um Controlee.
  • Provedor de OTA: um nó que pode fornecer atualizações de software OTA.
  • Solicitante OTA: um nó que pode solicitar atualizações do software OTA.

Clusters

Em um endpoint, um nó tem um ou mais clusters. Elas são outra etapa na hierarquia de dispositivos, porque agrupam funcionalidades específicas, como um cluster ligado/desligado em um plugue inteligente ou um cluster de controle de nível em um Endpoint de luz dimerizável.

Um nó também pode ter vários endpoints, cada um criando uma instância da mesma funcionalidade. Por exemplo, um dispositivo de iluminação pode expor o controle independente de lâmpadas individuais, ou uma régua de tomadas 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.

Hierarquia de nós, endpoints, atributos e comandos
Figura 2: nós, endpoints, atributos e comandos

Comandos

Além dos atributos, os clusters também têm comandos, que são ações que podem ser realizadas. Eles são equivalentes a uma chamada de procedimento remoto no DM de Matter. Os comandos são semelhantes a verbos, como trancar porta em um cluster de trava de porta. Os comandos podem gerar respostas e resultados. Em Matter, essas respostas também são definidas como comandos, indo na direção oposta.

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 atual, os eventos são um registro do passado e incluem um contador em aumento uniforme, 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.

Dispositivo de amostra completo
Figura 3: um exemplo da hierarquia do Matter Modelo de interação de dispositivos

O Endpoint 0 é reservado para os clusters de utilitários. Os clusters de utilitários são clusters específicos que contêm a funcionalidade de manutençã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 ligar/desligar ou medição de temperatura.

Tipos de dispositivo

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 dispositivo. 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, Tranca de porta ou Leitor de vídeo.

Os tipos de dispositivo não são especificados pelo documento principal da especificação Matter, mas por 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 site dos membros do Connectivity Standards Alliance (Alliance).

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 outros clusters, 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 é stateful e contém atributos, eventos e comandos, um cliente é stateless e sua responsabilidade é iniciar Interações com um cluster de servidor remoto, realizando o seguinte:

  • e grava nos atributos remotos.
  • leituras dos eventos remotos.
  • Invocação dos comandos remotos.

Embora o DM seja hierárquico dentro de 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 e cliente do servidor em relação a diferentes clusters e funcionalidades.

Por exemplo, podemos ter duas luminárias de mesa: Nó A e Nó B. Ambos os nós implementam um tipo de dispositivo Luz de ligar/desligar. Esse tipo de dispositivo inclui um cluster de servidor de ativação/desativação que controla as respectivas saídas de luz física.

No entanto, como as lâmpadas de mesa típicas, nossos dispositivos físicos também incluem um interruptor de luz (em inglês) para os interruptores locais. Esse tipo de dispositivo precisa implementar um cluster de cliente ligado/desligado para controlar os clusters do servidor.

Lâmpadas que implementam a luz de ligar/desligar e o interruptor de luz
Figura 4: clusters de cliente e de servidor

Neste exemplo, o cluster de cliente ligado/desligado no nó A está mudando os atributos do cluster de servidor ligado/desligado no nó A e no 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 descritores

Como o nome indica, o servidor de cluster de descritores fornece informações de introspecção. Ele descreve o endpoint enumerando:

  • Clusters de servidores.
  • Clusters de clientes.
  • Tipos de dispositivo.
  • Outros endpoints, conhecidos como partes.

Todos os tipos de dispositivo exigem a implementação de clusters de descritores. O tipo de dispositivo raiz é definido no endpoint 0. A leitura do cluster de descritor vai proporcionar ao cliente a visibilidade para percorrer a árvore completa de Endpoints disponíveis e realizar as operações aplicáveis.

O dispositivo de controle ou de comissão, como um smartphone ou hub, pode usar as informações encontradas no cluster de descritores para modelar o dispositivo (luz, interruptor, bomba, termostato) e recursos específicos implementados por essa instância específica, mostrando a interface correta para o usuário.

Clusters de servidores

O atributo ServerList lista os servidores do cluster no endpoint.

Clusters de cliente

O atributo ClientList lista os clientes do cluster no endpoint.

Lista de tipos de dispositivos

O atributo DeviceTypeList é uma lista de tipos de dispositivos aceitos pelo endpoint, com as respectivas revisões. 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 fica vazio. Por exemplo, um Sensor de temperatura exige um cluster de servidor de medição de temperatura e nada mais.

Outros tipos de dispositivo podem ser compostos em uma estrutura em árvore de mais de uma instância de tipo de dispositivo. Por exemplo, um tipo de dispositivo de player de vídeo pode ser composto por TV, player de vídeo, alto-falante e diferentes tipos de dispositivo de app de conteúdo, cada um em um endpoint diferente.


  1. 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.