Modelo de dados do dispositivo

Os dispositivos em Matter têm um modelo de dados bem definido (DM), que é uma modelagem hierárquica dos recursos de um Dispositivo. Na parte 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 que um usuário pode perceber como funcionalmente inteira. A comunicação de rede em Matter se origina e termina em um nó.

Os nós são uma coleção de endpoints. Cada Endpoint inclui um conjunto de recursos. Por exemplo, um endpoint pode estar relacionado a uma funcionalidade de iluminação, enquanto o outro está relacionado à detecção de movimentos, e o outro trata de utilitários, como como "OTA de dispositivo".

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

Papéis do nó

Um papel de nó é um conjunto de comportamentos relacionados. Cada nó pode ter um ou mais papéis de segurança na nuvem. Os papéis de nó incluem:

  • Comissionador: um nó que executa Comissionamento.
  • Controlador: um nó que pode controlar um ou mais nós. Por exemplo, Google Home app (GHA), Google Assistant e Google Nest Hub (2nd gen). Algumas específicos de dispositivos, como Luz liga/desliga Interruptor, peça para o controle de rede.
  • Controlee: um nó que pode ser controlado por um ou mais Nós. A maioria dos tipos de dispositivos pode ser um Controlee, exceto alguns tipos de dispositivos que têm a função de controlador, como a luz de ativação/desativação Chave. A luz acender/apagar O interruptor pode ser um controlador. Ele 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. Esses são outros etapa na hierarquia de Dispositivos, já que agrupam funcionalidades específicas, como uma cluster de ativação/desativação em um plugue inteligente ou de um cluster de controle de nível em um regulável light.

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, estão os Attributes, que são estados mantidos pelo nó. como o atributo nível atual de um cluster de controle de nível. Atributos podem ser definidas 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 o equivalente nas mensagens diretas do Matter uma chamada de procedimento remoto. Os comandos são semelhantes a verbos, como lock door em um Cluster da Door Lock. Os comandos podem gerar respostas e resultados. no 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 como um registro de transições de estados passados. Os atributos representam os estados atuais, eventos são um diário do passado e incluem um aumento contador, um carimbo de data/hora e uma prioridade. Elas permitem capturar transições de estado e modelar dados ou não prontamente com atributos.

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

O Endpoint 0 é reservado para os Clusters de utilitários. Clusters de utilitários são clusters específicos que incluem funcionalidades de serviço em um endpoint, como descoberta, endereçamento, diagnósticos e atualização de software. Por outro lado, os clusters de aplicativo dão suporte a ações principais, como ativar/desativar ou medição de temperatura.

Tipos de dispositivos

Quais combinações de clusters precisam ser incluídas como um dispositivo fabricante planeja um novo dispositivo?

A especificação Matter exige que o dispositivo implemente ou estender 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 dimmable, Fechadura da porta ou Player de vídeo.

Os tipos de dispositivos não são especificados pelo Matter. do documento principal da especificação, mas em um documento de acompanhamento: Device biblioteca. Da mesma forma, todos os clusters de aplicativo são definidos na seção Biblioteca de Cluster. 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, os O endpoint pode implementar Clusters adicionais, incluindo um ou mais clusters do Dispositivo Clusters opcionais do tipo 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 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:

  • reads e writes nos atributos remotos.
  • leituras de seus Eventos remotos.
  • invocação de comandos remotos.

Enquanto o DM é hierárquica dentro de um nó, a relação entre os nós é não. Os nós em Matter não têm vertical relações entre 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 clusters diferentes. e funcionalidades.

Por exemplo, podemos ter dois luminárias de mesa: Nó A e Nó B. Ambos os nós implementam um tipo de dispositivo Luz de ligar/desligar. Este tipo de dispositivo inclui um botão Ativado/Desativado Servidor que controla as respectivas saídas de luz física.

Mas, como as lâmpadas de mesa comuns, nossos dispositivos físicos também incluem um Chave de ativação/desativação: tipo de dispositivo dos interruptores locais de ativação/desativação. Este dispositivo O tipo deve implementar um cluster de cliente ativado/desativado para que possa controlar o servidor os clusters.

Lâmpadas implementando o interruptor de luz e de ativação/desativação
Figura 4: clusters de cliente e servidor

Neste exemplo, o cluster de cliente ativado/desativado no nó A está alterando os atributos do cluster de servidor ativado/desativado nos nós A e B, enquanto o cliente do nó B O cluster só está alterando o cluster de servidor no próprio Nó B.

Na próxima seção, vamos detalhar como os clusters de cliente e servidor interagem: a Modelo de interação.

Cluster do descritor

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

  • Clusters de servidor.
  • Clusters de cliente.
  • Tipos de dispositivos.
  • Endpoints adicionais, conhecidos como peças.

Cada tipo de dispositivo exige a implementação de clusters de descritor. A raiz O tipo de dispositivo é definido no endpoint 0. A leitura do cluster de descritor dar ao cliente visibilidade para atravessar toda a árvore de e execute 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 de cluster no endpoint.

Clusters de clientes

O atributo ClientList lista os clientes de 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. Deve conter pelo menos um Tipo de dispositivo.

Lista de peças

O PartsList contém a lista de endpoints usados para implementar esse dispositivo. Tipo.

O PartsList do Endpoint 0 (nó raiz) contém todos os endpoints do dispositivo separado de si 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 tenham vários nós. Por exemplo, os smartphones podem ter vários apps, cada um sendo um node diferente. Para esta introdução, todos os dispositivos conterão um único nó. É esperado que a maioria dos dispositivos físicos siga esse padrão