Matter
Referencia del driver Matter: la puesta en marcha por Bluetooth dentro del Fabric local, el flujo de Emparejar dispositivo, la identidad del nodo y los tags de clúster.
El driver Matter lee equipos Matter sobre Thread: sensores inteligentes, contactos, lámparas y equipos similares certificados para el estándar Matter. Ganter Lab actúa como un controlador Matter con su propio Fabric local: pone en marcha cada dispositivo una vez por Bluetooth Low Energy en esta computadora, le entrega las credenciales de su red Thread existente y, de ahí en adelante, habla con él por esa red a través de su Thread Border Router.
Eso invierte el orden habitual de la puesta en marcha. Un dispositivo Matter no arranca de un host y un puerto: arranca de una ceremonia de emparejamiento, y después se guarda únicamente la identidad estable del nodo puesto en marcha.
Lo que hace falta antes de emparejar:
- Un adaptador Bluetooth Low Energy en esta computadora, encendido, y con Windows permitiéndole a Ganter Lab usarlo.
- Una red Thread existente con un Border Router, y su conjunto de datos operativo activo completo. Ganter Lab une dispositivos a su red; no puede inventarle credenciales.
- El código de configuración del dispositivo, impreso en el dispositivo o en su empaque, y el dispositivo en modo de emparejamiento.
El flujo de Emparejar dispositivo
En el driver Matter, la barra de herramientas ofrece Emparejar dispositivo donde los demás drivers ofrecen Agregar dispositivo. Abre un formulario con tres campos:
| Campo | Qué es | Formato | Valor inicial |
|---|---|---|---|
| Nombre del dispositivo | El nombre editable que llevará el dispositivo en Connector. | Texto libre | Dispositivo Matter |
| Código de configuración Matter | El código de emparejamiento manual oficial, o la carga QR completa. Se captura oculto, con un control para revelarlo. | Un código manual de 11 o 21 dígitos (los guiones y los espacios se ignoran; el dígito verificador se comprueba), o la carga QR completa que empieza por MT:. Una carga QR que no anuncie la puesta en marcha por Bluetooth se rechaza, igual que las contraseñas reservadas o fuera de rango. |
vacío |
| Conjunto de datos operativo Thread | El conjunto de datos activo completo de su red Thread, del administrador de la red o del Border Router. Se captura oculto, con un control para revelarlo. | Texto hexadecimal (se toleran los espacios y un prefijo hex:), de 254 bytes como máximo una vez descodificado. Tiene que ser el conjunto de datos completo: Active Timestamp, Channel, Channel Mask, Extended PAN ID, Mesh-Local Prefix, Network Key, Network Name, PAN ID, PSKc y Security Policy tienen que estar todos presentes, y un conjunto de datos parcial o mal formado se rechaza nombrando el elemento que falta. |
vacío |
Emparejar dispositivo se queda desactivado hasta que los tres campos estén llenos. Mientras corre el emparejamiento, el formulario reporta su etapa: Validar (verificando el código y el conjunto de datos), Buscar (buscando el dispositivo por Bluetooth), Emparejar (autenticando con el código de configuración), Unirse a Thread (enviando la configuración de la red y esperando a que el dispositivo aparezca en la red Thread) y Guardar (registrando el nodo puesto en marcha en el Fabric local).
Cancelar está disponible mientras el dispositivo físico todavía no se ha modificado; una vez que la puesta en marcha alteró el dispositivo, el botón dice que Ganter Lab está terminando de forma segura y el flujo completa el registro en lugar de abandonar un nodo puesto en marcha a medias. Corre un emparejamiento a la vez; un segundo intento mientras hay uno en marcha se rechaza.
Los secretos nunca se guardan. El código de configuración y el conjunto de datos Thread existen solo en el formulario mientras está abierto; se borran cuando el emparejamiento termina, falla o se cancela, y nada de ellos se escribe en la configuración. Lo que se guarda es únicamente la identidad del nodo.
Si el emparejamiento falla, el mensaje dice la causa: un código o un conjunto de datos no válidos, Bluetooth ausente o apagado, Windows negando el acceso a Bluetooth, ningún dispositivo coincidente, el dispositivo rechazando el código de configuración, o el dispositivo poniéndose en marcha pero sin aparecer nunca en la red Thread. Un código de configuración equivocado se nombra como tal, así que la respuesta es volver a leer el código impreso y regresar el dispositivo al modo de emparejamiento.
Siempre que una falla llegue después de que el equipo ya se puso en marcha, el mensaje lo dice y muestra el ID de nodo: el nodo se queda en el Fabric y se puede agregar más tarde con Descubrir en cuanto alcance la red. En ese caso no reinicie el dispositivo; solo un mensaje que diga que no se guardó nada significa que el equipo se quedó sin tocar.
La identidad del nodo
Un dispositivo emparejado queda atado al ID de nodo estable de 64 bits del equipo, mostrado de solo lectura en su tarjeta Conexión como 16 dígitos hexadecimales, junto al estado del dispositivo. El nombre visible editable es suyo para cambiarlo; el ID de nodo no. Un dispositivo cuya identidad guardada ya no se puede leer muestra Necesita volver a emparejarse en su lugar.
Como la identidad es el ID de nodo, los dispositivos Matter guardan un estado de conexión independiente: desactivar, eliminar o perder un nodo no deja a otro fuera de servicio, y eliminar un dispositivo solo libera el uso que hacía de la sesión segura, no quita el equipo del Fabric local.
El descubrimiento
Descubrir en el driver Matter lista los nodos ya puestos en marcha dentro del Fabric local de esta aplicación, así que un nodo cuyo dispositivo se eliminó (o cuyo emparejamiento terminó sin dispositivo) se puede agregar de vuelta sin una ceremonia nueva. Un ID de nodo que ya está configurado se marca como tal y Abrir lleva al dispositivo existente. Los candidatos del descubrimiento llevan la identidad del nodo y ningún secreto de configuración. El flujo general del descubrimiento se describe en la página del Connector.
Los tags
Un tag de Matter no tiene campo de dirección de texto libre. El nombre del tag es el
nombre del clúster que se lee. El nombre tiene que coincidir con el nombre del clúster tal
como lo escribe la especificación de Matter, con espacios y puntuación incluidos y sin
distinguir mayúsculas: On/Off, Level Control, Temperature Measurement. Como el nombre
es la dirección, no puede llevar dos puntos; el panel los rechaza y lo dice. Un nombre que
ningún clúster lleva se lee como un error que nombra el clúster desconocido. El valor se
convierte al tipo de dato declarado del tag; un valor que el tipo declarado no puede
representar también se lee como un error, y no como un número sustituto.
Dos campos numéricos dicen dónde leer ese clúster en el dispositivo. Un dispositivo expone un endpoint por cada salida controlable, numerado desde 1, así que una lámpara de dos canales o una barra de contactos se lee con un endpoint por tag; el endpoint 0 es el nodo mismo. El atributo es qué valor del clúster se lee, y 0 es el valor propio del clúster, que es lo que quiere casi cualquier tag.
| Campo | Qué hace | Valores | Valor inicial |
|---|---|---|---|
| Nombre del tag | Nombra el tag y elige el clúster Matter que se lee del nodo. Sin dos puntos. | El nombre del clúster tal cual se escribe, por ejemplo On/Off |
Tag 1 |
| Salida (endpoint) | Qué salida del dispositivo lee este tag. | 0 en adelante; 1 es la primera salida controlable | 1 |
| Atributo | Qué atributo del clúster lee este tag. | 0 en adelante; 0 es el valor propio del clúster | 0 |
| Tipo de dato | El tipo OPC UA con el que se expone el valor. | Boolean, Int32, UInt32, Float, Double, String | Float |
| Intervalo de sondeo | Cada cuánto se lee el atributo, por tag, con el valor predeterminado del dispositivo (1000 ms) cuando el tag no declara ninguno. | milisegundos | el del dispositivo |
Los tags de Matter son de solo lectura: el campo de acceso no ofrece ninguna opción escribible y el runtime rechaza las escrituras de atributo. Modificar un dispositivo Matter (encenderlo, por ejemplo) es un comando Matter, y las escrituras de tag no modelan eso.