Modelo de datos del dispositivo

Los dispositivos en Matter tienen un modelo de datos bien definido (DM), que es un modelado jerárquico de las funciones de un dispositivo. En la parte superior de esta jerarquía hay un Dispositivo.

Dispositivos y extremos

Todos los dispositivos, incluidos los smartphones y los asistentes de la casa, se componen de nodos1. Un nodo es un recurso identificable de manera inequívoca y direccionable en una red que un usuario puede percibir como totalmente funcional. La comunicación de red en Matter se origina y finaliza en un nodo.

Los nodos son una colección de extremos. Cada extremo incluye un conjunto de atributos. Por ejemplo, un extremo puede relacionarse con una funcionalidad de iluminación, mientras que otra se relaciona con la detección de movimiento y otra con las utilidades, como como dispositivo inalámbrico.

Jerarquía de dispositivos, nodos y extremos
Figura 1: Dispositivos, nodos y extremos

Roles de nodo

Un rol de nodo es un conjunto de comportamientos relacionados. Cada nodo puede tener uno o más roles de seguridad. Los roles de nodo incluyen lo siguiente:

  • Comisionado: Es un nodo que realiza Comisión.
  • Controlador: Es un nodo que puede controlar uno o más nodos. Algunos ejemplos incluyen Google Home app (GHA), Google Assistant y Google Nest Hub (2nd gen). Algunos tipos de dispositivos, como la luz de encendido/apagado Switch, pide al controlador en el área de la seguridad en la nube.
  • Controlee: Es un nodo que puede ser controlado por uno o más nodos. La mayoría de los tipos de dispositivos pueden ser Controlee, excepto algunos tipos de dispositivos que tienen el rol de controlador, como Luz de encendido/apagado Cambiar La luz de encendido/apagado El interruptor solo puede ser un controlador. No puede ser un controle.
  • Proveedor inalámbrico: Es un nodo que puede proporcionar actualizaciones de software inalámbricas.
  • Solicitante de OTA: Es un nodo que puede solicitar actualizaciones de software OTA.

Clústeres

Dentro de un extremo, un nodo tiene uno o más clústeres. Estas son otras en la jerarquía de dispositivos, ya que agrupan funcionalidades específicas, como un clúster de encendido/apagado en un tomacorrientes inteligente o un clúster de control de nivel en un interruptor atenuable extremo ligero.

Un nodo también puede tener varios extremos, cada uno de los cuales crea una instancia del mismo funcionalidad. Por ejemplo, una lámpara puede exponer un control independiente de distintas luces o varios tomacorrientes podría exponer el control de los enchufes individuales.

Atributos

En el último nivel, encontraremos los atributos, que son los estados que mantiene el nodo. como el atributo de nivel actual de un clúster de control de nivel. Atributos pueden definirse como tipos de datos diferentes, como uint8, cadenas o arrays.

Jerarquía de nodos, extremos, atributos y comandos
Figura 2: Nodos, extremos, atributos y comandos

Comandos

Además de Atributos, los clústeres también tienen comandos, que son acciones que se puede realizar la evaluación. Son el equivalente en el DM de Matter de llamada de procedimiento remoto. Los comandos son similares a los verbos, como trabar puerta en una Cerradura de puerta en el clúster. Los comandos pueden generar respuestas y resultados. en Matter, esas respuestas también se definen como Comandos, y va en la dirección inversa.

Eventos

Por último, los clústeres también pueden tener Eventos, que pueden considerarse un registro de las transiciones de estado anteriores. Mientras que los atributos representan los estados actuales, son un diario del pasado e incluyen una teoría monótonamente creciente un contador, una marca de tiempo y una prioridad. Permiten capturar transiciones de estado y modelar datos que no se consigue fácilmente con atributos.

Dispositivo de muestra completo
Figura 3: Una muestra de la jerarquía de Matter Modelo de interacción de dispositivos

El extremo 0 está reservado para los clústeres de servicios públicos. Clústeres de utilidades son clústeres específicos que incluyen la funcionalidad de servicio en un endpoint, como como descubrimiento, asignación de direcciones, diagnóstico y actualización de software. Por otro lado, los clústeres de aplicaciones admiten acciones principales, como activar/desactivar o la medición de la temperatura.

Tipos de dispositivo

En conjunto, qué combinaciones de clústeres deben incluirse como un dispositivo el fabricante planea un nuevo Dispositivo?

La especificación Matter requiere que el dispositivo implemente o extender uno o más Device Types. Un tipo de dispositivo es un conjunto de los clústeres obligatorios y opcionales que definen los atributos de nivel superior de un Dispositivo físico, como Luz ajustable, Cerradura o Reproductor de video

Matter no especifica los tipos de dispositivo. documento principal de la especificación, sino por un documento adjunto: el dispositivo Biblioteca. De manera similar, todos los clústeres de la aplicación se definen en la sección Application Biblioteca de clústeres Estos tres documentos están disponibles en la Sitio web de los miembros de Connectivity Standards Alliance (Alliance).

Cada extremo que implementa un tipo de dispositivo debe implementar los clústeres obligatorios que definen ese tipo de dispositivo. Además de los clústeres obligatorios, el El extremo puede implementar clústeres adicionales, incluidos uno o más clústeres del Dispositivo. Clústeres opcionales del tipo, o incluso clústeres que no forman parte del tipo de dispositivo.

Clientes y servidores

Los clústeres pueden ser un clúster de cliente o un clúster de servidor. Mientras que Un servidor es con estado y contiene atributos, eventos y comandos; un cliente es sin estado y su responsabilidad es iniciar interacciones con un un clúster de servidor remoto, para así realizar lo siguiente:

  • lee y escribe en sus atributos remotos.
  • lecturas de sus eventos remotos.
  • invocación de sus comandos remotos.

Si bien la DM es jerárquica dentro de un nodo, la relación entre los nodos es no. Los nodos en Matter no tienen datos verticales relaciones entre controlador y periférico, o líder y seguidor. Por el contrario, el Es horizontal: Cualquier clúster puede ser Servidor o Cliente. Por lo tanto, un nodo puede ser servidor y cliente en relación con diferentes clústeres y funciones.

Por ejemplo, es posible que tengamos dos lámparas de mesa: Nodo A y Nodo B. Ambos nodos implementar un tipo de dispositivo Luz de encendido/apagado. Este tipo de dispositivo incluye un clúster de servidor de encendido/apagado que controla sus respectivas salidas de luz físicas.

Pero, como lo hacen las lámparas de mesa típicas, nuestros dispositivos físicos también incluirán Interruptor de luz de encendido/apagado tipo de dispositivo para sus interruptores locales de encendido/apagado. Este dispositivo El tipo debe implementar un clúster On/Off Client para que pueda controlar el servidor. Clústeres.

Lámparas que implementan la luz de encendido/apagado y el interruptor de luz
Figura 4: Clústeres de cliente y servidor

En esta muestra, el clúster de cliente de encendido/apagado en el nodo A está cambiando los atributos del clúster de servidor de encendido/apagado en los nodos A y Nodo B, mientras que el cliente del nodo B El clúster solo cambia el clúster de servidor en el mismo nodo B.

En la próxima sección, detallaremos cómo interactúan los clústeres de cliente y de servidor: el Modelo de interacción.

Clúster de descriptores

Como su nombre lo indica, el servidor del clúster descriptor proporciona introspección información. Describe el extremo y enumera los siguientes elementos:

  • clústeres de servidores.
  • Clústeres de clientes
  • Tipos de dispositivos.
  • en los extremos adicionales, conocidos como partes.

Cada tipo de dispositivo requiere la implementación de clústeres descriptores. La raíz El tipo de dispositivo se define en el extremo 0. La lectura de su clúster de descriptores le proporcionará al cliente la visibilidad para recorrer el árbol completo de extremos disponibles y realizar las operaciones aplicables.

El comisionado o el dispositivo de control, como un teléfono o un concentrador, pueden usar la información que se encuentra en el clúster de descriptores para modelar el dispositivo (luz, interruptor, bomba, termostato) y las funciones específicas que implementa esa instancia en particular del dispositivo, y mostrarle al usuario la IU correcta.

Clústeres de servidores

El atributo ServerList enumera los servidores del clúster en el extremo.

Clústeres de clientes

El atributo ClientList enumera los clientes del clúster en el extremo.

Lista de tipos de dispositivos

El atributo DeviceTypeList es una lista de los tipos de dispositivos que admite la Endpoint, junto con sus respectivas revisiones. Debe contener al menos uno Tipo de dispositivo.

Lista de piezas

PartsList contiene la lista de extremos que se usan para implementar este tipo de dispositivo.

El PartsList del extremo 0 (nodo raíz) contiene todos los extremos del dispositivo, excepto él mismo (extremo 0).

El PartsList de otros extremos generalmente estará vacío. Por ejemplo, un Temperature Sensor requiere un clúster de servidor de medición de temperatura y nada más.

Otros tipos de dispositivo pueden estar compuestos por una estructura de árbol de más de un dispositivo. Tipo de instancia. Por ejemplo, un tipo de dispositivo reproductor de video puede ser TV, Reproductor de video, bocina y diferentes tipos de dispositivos de aplicaciones de contenido, cada uno en un extremo diferente.


  1. La especificación Matter determina que un dispositivo puede tener varios nodos. Por ejemplo, los smartphones pueden tener varias apps, y cada app puede ser en un nodo diferente. A los efectos de esta introducción, todos los dispositivos contendrán un solo nodo. Se espera que la mayoría de los dispositivos físicos cumplan con esta .