Matter
Referencia del driver Matter: las redes Wi-Fi y Thread a las que se unen los dispositivos, la puesta en marcha por Bluetooth dentro del Fabric local, el flujo de Emparejar dispositivo, la identidad del nodo, los tags que vienen del dispositivo y lo que hace escribir cada uno.
El driver Matter lee equipos Matter: sensores inteligentes, contactos, lámparas y equipos similares certificados para el estándar Matter, ya sea que se unan a la red por Wi-Fi o por Thread. Es un solo driver para los dos. La red es solo el camino de entrada: una vez que el dispositivo está en ella, Ganter Lab lo lee de la misma manera, por la red local.
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 una red registrada en la tarjeta Redes del driver y, de ahí en adelante, habla con él por la red local: a través de su router en un dispositivo Wi-Fi, a través de su Thread Border Router en un dispositivo Thread.
Usted nunca le dice a Ganter Lab si un dispositivo es Wi-Fi o Thread: el propio dispositivo lo dice. Una vez abierta la sesión por Bluetooth, Ganter Lab lee del dispositivo a qué tipo de red se une, antes de escribirle cualquier cosa, y se detiene con un mensaje propio cuando la red elegida es del otro tipo.
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.
- La red a la que se va a unir el dispositivo, registrada en la tarjeta Redes: para un dispositivo Wi-Fi, el nombre del Wi-Fi y su contraseña; para un dispositivo Thread, 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.
Redes
El panel del driver Matter lleva una tarjeta titulada Redes: las redes Wi-Fi y Thread a las que se unen los dispositivos, una por fila. Una red se registra una vez, antes del primer dispositivo, y sirve a todos los dispositivos que se emparejan en ella, así que emparejar una segunda lámpara en el mismo Wi-Fi ya no pide nada. La tarjeta solo se dibuja para un rol que puede configurar el Connector, porque guarda los secretos de las redes y no sirve más que para emparejar.
La cabecera de la tarjeta lleva sus comandos, en este orden:
| Comando | Qué hace | Qué no hace |
|---|---|---|
| Agregar red Wi-Fi | Agrega una red Wi-Fi y la selecciona. Cuando esta computadora está conectada a un Wi-Fi cuyo nombre todavía no está registrado, la red nueva toma ese nombre; si no, empieza sin nombre, para que usted lo escriba. Windows solo entrega el nombre, y solo cuando deja que las aplicaciones conozcan la ubicación de esta computadora (Windows 11 pide ese permiso); la contraseña siempre la escribe usted. | No lee la contraseña de Windows ni comprueba que la red exista. |
| Agregar red Thread | Agrega una red Thread y la selecciona, con un nombre provisional (numerado cuando ya está ocupado) hasta que usted le dé el suyo, y en espera de su conjunto de datos. | No habla con el Border Router: Ganter Lab solo usa el conjunto de datos de la red que creó el Border Router. |
| Quitar red | Quita la red seleccionada, después de una confirmación que la nombra y dice que los dispositivos ya emparejados no se ven afectados. Sin red seleccionada, sigue dibujado y atenuado, y su información emergente lo dice. | No toca los dispositivos ya emparejados en esa red: siguen funcionando y conservan su nombre en su campo Red. |
La tabla muestra, de cada red, su Nombre, su Tipo de red (Red Wi-Fi o Red Thread) y su Estado: Lista para emparejar, o lo que todavía le falta a la red. Una red cuyo nombre todavía no se escribe aparece como Red sin nombre.
Los campos de la red seleccionada se editan ahí mismo, debajo de la tabla, y se guardan solos. Un valor que las reglas de abajo rechazan no se escribe, y el campo dice por qué.
| Tipo | Campo | Qué es | Formato |
|---|---|---|---|
| Wi-Fi | Nombre de la Wi-Fi | El nombre (SSID) que se entrega al dispositivo, tal cual lo transmite el router: las mayúsculas cuentan. Cada nombre de Wi-Fi se registra una vez. | De 1 a 32 bytes de texto (UTF-8). |
| Wi-Fi | Contraseña | La contraseña del Wi-Fi que se entrega al dispositivo. | Vacía para una red abierta; si no, de 8 a 63 caracteres ASCII imprimibles (una frase de contraseña WPA), o exactamente 64 dígitos hexadecimales (la clave en bruto). |
| Thread | Nombre | Su nombre para la red, para reconocerla al emparejar y en cada dispositivo. Cada nombre de red Thread se registra una vez. | Texto libre. |
| Thread | Conjunto de datos operativo Thread | El conjunto de datos activo completo de su red Thread, del administrador de la red o de su Border Router. Home Assistant lo muestra; Alexa y Apple no. | 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. |
Dos cosas deciden si un dispositivo Wi-Fi se puede emparejar, y la tarjeta dice las dos junto a los campos:
- La mayoría de los dispositivos solo se unen a redes de 2.4 GHz. Un router que transmite un mismo nombre en 2.4 GHz y en 5 GHz les sirve; una red que solo existe en 5 GHz, no.
- Esta computadora y los dispositivos tienen que estar en la misma red local. Una red de invitados, o el aislamiento de clientes activado en el router, impide que la computadora encuentre los dispositivos una vez que se unieron.
Una red solo sirve para emparejar mientras su secreto cumple esas reglas: una red Wi-Fi con nombre y contraseña válidos (vacía incluida), una red Thread con un conjunto de datos válido.
Editar una red cambia lo que entrega el siguiente emparejamiento, nunca lo que un dispositivo ya recibió. Un dispositivo que tiene que cambiarse a otra red, o cuyo router recibió una contraseña nueva, se restablece y se empareja de nuevo.
El flujo de Emparejar dispositivo
En el driver Matter, la barra de herramientas ofrece Emparejar dispositivo donde los demás drivers ofrecen Agregar dispositivo, y también la entrada Matter del menú Nuevo… de la columna. Mientras ninguna red sirva para emparejar, sigue dibujado y atenuado, con la información emergente "Agregue primero la red a la que se va a unir el dispositivo." Si no, abre un formulario:
| 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 |
| Red | La red registrada a la que se va a unir el dispositivo. Con una sola red que sirva, el formulario dice en una línea cuál es y de qué tipo, sin nada que elegir; con más, es una lista para elegir. | Una de las redes que sirven en la tarjeta Redes | la única, cuando hay una sola |
| Carpeta de destino | Solo cuando el Nuevo dispositivo de una carpeta abrió el formulario: la carpeta en la que se archiva el dispositivo emparejado. Abierto con Emparejar dispositivo, no hay esa línea y el dispositivo queda en el nivel propio del driver. | Solo lectura | la carpeta que abrió el formulario |
Una carpeta del driver Matter ofrece Nuevo dispositivo (en su tabla Dispositivos, en su menú del clic derecho y en Nuevo… > Matter > <Carpeta>). Abre este mismo formulario, atenuado del mismo modo mientras ninguna red sirva, y el dispositivo emparejado se archiva en esa carpeta.
Emparejar dispositivo en el formulario se queda desactivado hasta que el nombre y el código de configuración estén llenos y alguna red sirva. Mientras corre el emparejamiento, el formulario reporta su etapa: Validar (verificando el código y el secreto de la red), Buscar (buscando el dispositivo por Bluetooth), Emparejar (autenticando con el código de configuración y leyendo a qué tipo de red se une el dispositivo), Unirse a la red (enviando la red al dispositivo y después preguntando por él en la red local hasta que responda; la línea de estado dice si esa red es Wi-Fi o Thread) y Guardar (abriendo la sesión segura con el dispositivo en la red local, terminando su puesta en marcha y registrando el nodo 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.
El dispositivo nuevo registra el nombre de la red a la que se unió, que se muestra en su campo Red. Emparejar el siguiente dispositivo en la misma red solo pide su nombre y su código de configuración.
Cuando el emparejamiento falla
Si el emparejamiento falla, el mensaje dice la causa y qué hacer:
| Causa | Qué significa | El equipo | Qué hacer |
|---|---|---|---|
| Código de configuración no válido | El código no es un código manual oficial de 11 o 21 dígitos, ni una carga QR MT: completa. |
Sin tocar | Volver a leer el código impreso. |
| Conjunto de datos Thread no válido | El conjunto de datos de la red Thread elegida no está completo y bien formado. | Sin tocar | Volver a copiar el conjunto de datos activo completo en esa red, en la tarjeta Redes. |
| Nombre o contraseña de Wi-Fi no válidos | El nombre o la contraseña de la red Wi-Fi elegida no cumplen las reglas de la tarjeta Redes. | Sin tocar | Corregirlos en la tarjeta. |
| Bluetooth ausente, apagado o negado | Esta computadora no tiene un adaptador Bluetooth Low Energy utilizable, el Bluetooth está apagado, o Windows le negó el acceso a Ganter Lab. | Sin tocar | Encender el Bluetooth, o permitir en Windows que Ganter Lab lo use, y volver a intentar. |
| Ningún dispositivo coincidente | Ningún dispositivo en modo de emparejamiento respondió para este código de configuración. | Sin tocar | Poner el dispositivo en modo de emparejamiento, mantenerlo cerca de esta computadora y volver a intentar. |
| Código de configuración rechazado | El dispositivo rechazó el código. | Sin tocar | Volver a leer el código impreso y regresar el dispositivo al modo de emparejamiento. |
| El dispositivo se une por Wi-Fi | La red elegida es Thread. | Sin tocar: se leyó, y no se le escribió nada | Registrar la red Wi-Fi a la que se va a unir el dispositivo y emparejarlo de nuevo, eligiéndola. |
| El dispositivo se une por Thread | La red elegida es Wi-Fi. | Sin tocar: se leyó, y no se le escribió nada | Registrar la red Thread y emparejarlo de nuevo, eligiéndola. |
| El dispositivo es cableado (Ethernet) | El emparejamiento por Bluetooth no sirve para un dispositivo cableado. | Sin tocar: se leyó, y no se le escribió nada | Ganter Lab no puede emparejar este dispositivo. |
| El dispositivo no dice su red | El dispositivo no informa ni Wi-Fi, ni Thread, ni Ethernet. | Sin tocar: se leyó, y no se le escribió nada | Ganter Lab no puede emparejar este dispositivo. |
| Red Wi-Fi no encontrada | El dispositivo respondió que no encontró ningún Wi-Fi con ese nombre: un error al escribirlo o en las mayúsculas, una red solo en 5 GHz, o un dispositivo fuera de alcance. | No conserva nada: descarta lo que recibió y vuelve al modo de emparejamiento. Sin ID de nodo. | Corregir el nombre en la tarjeta Redes, comprobar que el router lo transmite en 2.4 GHz y emparejar de nuevo. |
| Contraseña de Wi-Fi rechazada | El dispositivo respondió que el Wi-Fi rechazó la contraseña. | No conserva nada: descarta lo que recibió y vuelve al modo de emparejamiento. Sin ID de nodo. | Corregir la contraseña en la tarjeta Redes y emparejar de nuevo. |
| El dispositivo no pudo unirse a la red | El dispositivo respondió que no pudo unirse a la red, por un motivo distinto de los dos anteriores (en Thread, cualquier rechazo, incluida una red que no encontró). | No conserva nada: descarta lo que recibió y vuelve al modo de emparejamiento. Sin ID de nodo. | Revisar la red en la tarjeta Redes (en Thread, volver a copiar el conjunto de datos activo vigente y comprobar que el Border Router esté encendido) y emparejar de nuevo. |
| El dispositivo no apareció en la red | El dispositivo no dio ninguna respuesta sobre la red, o nunca apareció después en la red local. Algunos dispositivos dejan el Bluetooth para unirse a la red y no pueden responder para nada. | Puesto en marcha: el mensaje muestra el ID de nodo | En Wi-Fi, comprobar que esta computadora y el dispositivo estén en la misma red local, sin red de invitados ni aislamiento de clientes entre ellos; en Thread, que el Border Router esté encendido y se pueda alcanzar. Después, recuperar el nodo con Descubrir. |
| La sesión segura no se abrió | El dispositivo se unió a la red y se encontró allí, pero la sesión segura con él, o la finalización del emparejamiento por esa sesión, falló. El diario técnico indica el paso y lo que respondió el dispositivo. | Puesto en marcha: el mensaje muestra el ID de nodo | Recuperar el nodo con Descubrir. Si Descubrir lo encuentra sin valores con el dispositivo encendido, volver a poner el dispositivo en modo de emparejamiento y emparejarlo de nuevo. |
| Otro emparejamiento en marcha | Corre un emparejamiento a la vez. | Sin tocar | Esperar a que termine y volver a intentar. |
| No se pudo guardar el Fabric local | Ganter Lab no pudo guardar el Fabric de forma segura. | Sin tocar cuando pasa antes de que empiece el emparejamiento; puesto en marcha, con el ID de nodo, cuando pasa después | Resolver el problema de almacenamiento antes de restablecer cualquier cosa. |
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.
Un dispositivo que responde que no pudo unirse a la red es la excepción: no guarda nada que valga la pena conservar. Ganter Lab termina el emparejamiento en el dispositivo, que descarta lo que recibió y vuelve de inmediato al modo de emparejamiento, y quita su nodo del Fabric; por eso el mensaje no trae ID de nodo y Descubrir nunca lista un nodo que no puede responder. Corrija la red y empareje de nuevo. Solo un dispositivo que no dio ninguna respuesta conserva su nodo, porque si se unió solo se sabe cuando aparece en la red local.
Qué se guarda
| Qué | Dónde se guarda | Cómo |
|---|---|---|
| El nombre y el tipo de una red | La configuración de la estación | Tal como se escribieron. |
| La contraseña del Wi-Fi y el conjunto de datos operativo Thread | La configuración de la estación | Protegidos para el usuario de Windows que los capturó, igual que las contraseñas de los dispositivos: en otra cuenta de Windows se leen vacíos y hay que capturarlos de nuevo. Una copia de seguridad los deja atrás; la exportación para otra computadora los lleva, sellados con su propia contraseña. |
| El código de configuración | En ningún lado | Existe solo en el formulario mientras corre el emparejamiento, y se borra cuando el emparejamiento termina, falla o se cancela. |
| La red a la que se unió un dispositivo | La configuración del dispositivo | Su nombre, que se muestra en el campo Red del dispositivo. |
| La identidad del dispositivo | La configuración del dispositivo y el Fabric local | El ID de nodo. |
La contraseña del Wi-Fi y el conjunto de datos nunca aparecen en la bitácora, en la dirección de un dispositivo ni en su Thing Description. Las redes y el emparejamiento no se ofrecen a los agentes por el servidor MCP: emparejar necesita a alguien junto al dispositivo, y las redes guardan secretos.
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.
El panel del dispositivo también muestra un campo Red de solo lectura: el nombre de la red a la que se unió el dispositivo cuando se emparejó. Un dispositivo emparejado por una versión que no lo registraba dice que no se registró nada. El campo es un registro, no un ajuste: editar o quitar esa red en la tarjeta Redes no cambia nada en el dispositivo.
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 en el Fabric local de esta aplicación y lee, de cada uno, los valores que publica. Para leerlos abre una sesión segura con cada nodo, así que un nodo que está fuera de la red sigue en la lista, sin valores, una vez que su sesión no se pudo abrir. Los candidatos del descubrimiento llevan la identidad del nodo y ningún secreto de configuración. El recorrido general del descubrimiento se describe en Descubrimiento.
| El nodo | Su tarjeta | Sus verbos |
|---|---|---|
| No tiene dispositivo aquí: su dispositivo se eliminó, o su emparejamiento terminó sin uno | Los valores que publica, cada uno marcado | Agregar dispositivo crea el dispositivo con los valores marcados como sus tags, sin una ceremonia nueva. |
| Es un dispositivo configurado, con valores que aún no tienen tag | Marcado como ya configurado, con cuántos valores publica que todavía no son tags, y esos valores marcados | Agregar tags agrega los valores marcados a ese dispositivo; Abrir lo abre. |
| Es un dispositivo configurado con un tag para cada valor | "Ya configurado, con un tag para cada valor que publica el dispositivo." | Abrir lo abre. |
| Es un dispositivo configurado que no reportó ningún valor | "Ya configurado. El dispositivo no reportó ningún valor: vuelva a ejecutar Descubrir cuando esté en línea." | Abrir lo abre. |
Los valores de un dispositivo configurado se comparan con sus tags por salida, clúster y atributo, nunca por nombre: un tag que usted renombró sigue contando, y un valor nunca se agrega dos veces.
La propia página del dispositivo ofrece lo mismo sin salir de ella: Descubrir tags, en el encabezado de su tarjeta de tags, lee solo ese nodo y lista, marcados, los valores para los que todavía no tiene tag, con Agregar tags (vea Descubrir los tags de un dispositivo).
Los tags
Los tags de un dispositivo Matter vienen del propio dispositivo: nadie escribe un clúster ni un número de atributo para ellos. Un emparejamiento que sale bien lleva directamente a ellos. El registro de acciones dice "Se emparejó el dispositivo Matter 'Luz de la cocina'.", la página se abre en el driver Matter, con el dispositivo nuevo resaltado en su tabla Dispositivos, y un escaneo de ese único dispositivo se lanza enseguida. El dispositivo que creó el emparejamiento aparece en Dispositivos descubiertos con los valores que publica, todos marcados, y el escaneo termina con "Marque los valores de 'Luz de la cocina' que se van a crear como tags y después presione Agregar tags." Desmarque lo que no quiera y presione Agregar tags; el registro de acciones dice entonces "Se agregaron 5 tags a 'Luz de la cocina'." Un dispositivo que todavía no ha respondido no reporta nada: "'Luz de la cocina' todavía no reportó ningún valor. Vuelva a ejecutar Descubrir cuando esté en línea." La misma tarjeta vuelve en cada Descubrir posterior, con los valores para los que el dispositivo todavía no tiene tag.
Agregar tags solo se dibuja para un rol con Configurar Connector. Queda atenuado, con su motivo como información emergente, mientras corre un escaneo o un emparejamiento, mientras la estación rechaza cambios y mientras no hay nada marcado ("Marque al menos un valor para agregar."). Un valor cuya salida, clúster y atributo el dispositivo ya lee nunca se vuelve a agregar; cuando todos los valores marcados ya están, no se guarda nada: "'Luz de la cocina' ya tiene un tag para cada valor marcado, así que no se agregó nada." Un nombre que ya lleva otro tag del dispositivo recibe un número detrás, como en Brillo (2).
El escaneo lee lo que el dispositivo publica, tal como lo organiza la especificación Matter:
| Qué | Dónde lo dice el dispositivo |
|---|---|
| Sus salidas (endpoints) | El clúster Descriptor (0x001D) en el endpoint 0, atributo PartsList |
| Los clústeres de cada salida | El Descriptor de esa salida, atributo ServerList |
| Los valores de cada clúster | Su atributo AttributeList (0xFFFB) |
| Los comandos que admite cada clúster | Su atributo AcceptedCommandList (0xFFF9) |
| Las funciones opcionales que implementa cada clúster | Su atributo FeatureMap (0xFFFC) |
| La lectura actual de cada valor | El propio valor, leído una vez |
Lo que ofrece el escaneo, y con qué nombre:
| Un valor | Se ofrece como |
|---|---|
| Uno que el driver conoce (la sección siguiente) | Su nombre claro en el idioma de la estación y el tipo que le da la especificación; se puede escribir solo cuando el dispositivo admite la forma en que la especificación lo cambia, si no, de solo lectura |
| Uno que el driver conoce, de una función que el clúster no implementa: tono y saturación sin la función Hue and Saturation, temperatura de color sin la función Color Temperature | No se ofrece |
| Uno que el driver no conoce | De solo lectura, con su nombre en la especificación Matter (Level Control OnLevel), o con el clúster y el número de atributo cuando el driver no conoce el atributo (On/Off attribute 0x131B0001); su tipo es el de la lectura que devolvió el dispositivo |
| El mismo valor en más de una salida | Su nombre dice qué salida, como en Brillo (salida 2) |
| Un atributo global (0xFFF8 a 0xFFFD), o un valor del propio nodo (endpoint 0) | No se ofrece |
| Una lista o una estructura, un valor de un tipo que el driver no maneja, un valor del que el dispositivo no devolvió lectura | Se deja fuera y se cuenta en la línea que cierra el escaneo |
Un tag que se ofrece como escribible llega con el acceso Lectura y escritura; todos los demás llegan con Solo lectura.
Los valores que el driver conoce
El driver lleva una tabla, tomada de la especificación Matter, de los valores que conoce por su nombre y de cómo cambia cada uno. Un valor cambia de una de tres formas: con un comando que envía el driver y que el dispositivo debe listar entre los comandos que admite; con una escritura del propio atributo, donde la especificación lo hace escribible y el dispositivo lo lista; o de ninguna forma, para un valor que el dispositivo solo reporta.
| Valor | Clúster y atributo | Tipo | Qué hace en el dispositivo escribirlo | Rango que define la especificación |
|---|---|---|---|---|
| Encendido | On/Off (0x0006), OnOff (0x0000) |
Boolean | true envía el comando On (0x01), false envía Off (0x00); escribible solo cuando el dispositivo admite los dos |
true o false |
| Brillo | Level Control (0x0008), CurrentLevel (0x0000) |
UInt32 | Envía MoveToLevelWithOnOff (0x04) con el nivel, un tiempo de transición de 0 y sin opciones forzadas: la salida se enciende con el nivel y se apaga en el mínimo |
0 a 254 |
| Tono | Color Control (0x0300), CurrentHue (0x0000) |
UInt32 | Envía MoveToHue (0x00) por el camino más corto, con un tiempo de transición de 0; solo con la función Hue and Saturation |
0 a 254 |
| Saturación | Color Control (0x0300), CurrentSaturation (0x0001) |
UInt32 | Envía MoveToSaturation (0x03) con un tiempo de transición de 0; solo con la función Hue and Saturation |
0 a 254 |
| Temperatura de color | Color Control (0x0300), ColorTemperatureMireds (0x0007) |
UInt32 | Envía MoveToColorTemperature (0x0A) con un tiempo de transición de 0; solo con la función Color Temperature. El dispositivo mantiene el valor dentro de sus propios límites |
0 a 65279, en mireds |
| Posición de la persiana | Window Covering (0x0102), CurrentPositionLiftPercent100ths (0x000E) |
UInt32 | Envía GoToLiftPercentage (0x05) |
0 (abierta) a 10000 (cerrada), en centésimas de porcentaje |
| Temperatura ambiente | Thermostat (0x0201), LocalTemperature (0x0000) |
Float, en °C | Nada: solo lectura | -27315 a 32767, en centésimas de grado Celsius; se lee de -273,15 a 327,67 °C |
| Consigna de enfriamiento | Thermostat (0x0201), OccupiedCoolingSetpoint (0x0011) |
Float, en °C | Escribe el atributo. El dispositivo rechaza una consigna fuera de sus propios límites | -27315 a 32767, en centésimas de grado Celsius; se lee de -273,15 a 327,67 °C |
| Consigna de calefacción | Thermostat (0x0201), OccupiedHeatingSetpoint (0x0012) |
Float, en °C | Escribe el atributo. El dispositivo rechaza una consigna fuera de sus propios límites | -27315 a 32767, en centésimas de grado Celsius; se lee de -273,15 a 327,67 °C |
| Modo del ventilador | Fan Control (0x0202), FanMode (0x0000) |
UInt32 | Escribe el atributo | 0 apagado, 1 bajo, 2 medio, 3 alto, 4 encendido, 5 automático, 6 inteligente |
| Ajuste de velocidad del ventilador | Fan Control (0x0202), PercentSetting (0x0002) |
UInt32 | Escribe el atributo | 0 a 100 por ciento |
| Velocidad del ventilador | Fan Control (0x0202), PercentCurrent (0x0003) |
UInt32 | Nada: solo lectura | 0 a 100 por ciento |
| Temperatura | Temperature Measurement (0x0402), MeasuredValue (0x0000) |
Float, en °C | Nada: solo lectura | -27315 a 32767, en centésimas de grado Celsius; se lee de -273,15 a 327,67 °C |
| Humedad | Relative Humidity Measurement (0x0405), MeasuredValue (0x0000) |
Float, en % | Nada: solo lectura | 0 a 10000, en centésimas de porcentaje; se lee de 0 a 100 % |
| Iluminancia | Illuminance Measurement (0x0400), MeasuredValue (0x0000) |
UInt32 | Nada: solo lectura | 0 a 65534, que es 10000 × log10(lux) + 1 |
| Presión | Pressure Measurement (0x0403), MeasuredValue (0x0000) |
Float, en kPa | Nada: solo lectura | -32767 a 32767, en décimas de kilopascal; se lee de -3276,7 a 3276,7 kPa |
| Ocupación | Occupancy Sensing (0x0406), Occupancy (0x0000) |
Boolean | Nada: solo lectura | true cuando hay alguien |
| Estado | Boolean State (0x0045), StateValue (0x0000) |
Boolean | Nada: solo lectura | true o false |
La especificación envía las temperaturas, la humedad y la presión en unidades fijas: centésimas de grado Celsius, centésimas de por ciento y décimas de kilopascal. El descubrimiento ofrece esos valores ya en °C, % y kPa: el tag llega con el factor en su etapa Escala (0,01 para una temperatura y una humedad, 0,1 para una presión) y con la unidad, así que un dispositivo que envía 2150 se lee 21,5 °C. Una escritura deshace esa etapa antes de que el valor salga, así que una consigna escrita como 21,5 llega al dispositivo como 2150. La iluminancia es logarítmica (10000 × log10(lux) + 1), así que ningún factor la convierte: se lee el número que envía el dispositivo. Todos los demás valores también se leen como los envía el dispositivo.
Las cerraduras, el color por coordenadas X e Y, las escenas, los grupos y el comando Toggle no
están en la tabla. Un dispositivo Matter tampoco tiene comandos propios: todo cambio es una
escritura en uno de sus tags.
Escribir un valor
Un tag Matter con acceso Lectura y escritura cambia el dispositivo cuando se escribe: desde su tarjeta Valor en vivo, un control del dashboard, la Logic o un agente. La escritura entra en la cola del dispositivo como la de cualquier driver, por turno con las lecturas del dispositivo, y su respuesta es la del propio dispositivo. El driver elige el comando Matter o la escritura del atributo a partir de la tabla; nadie elige un comando. Solo el SUCCESS del dispositivo cuenta como escrito. Todo lo demás se rechaza, con un motivo:
| Qué pasa | Dónde se decide | El motivo que se da |
|---|---|---|
| El punto no es un valor de la tabla del driver | Antes de enviar nada | El driver no sabe cómo cambia el dispositivo ese valor, así que el tag solo lo lee. |
| El punto es un valor que la tabla marca como de solo lectura | Antes de enviar nada | El dispositivo reporta ese valor y nada de fuera lo fija. |
| El valor escrito no es true ni false (en un valor Boolean), o no es un número entero | Antes de enviar nada | Lo que admite el valor, y lo que se escribió. |
| El valor está fuera del rango que define la especificación | Antes de enviar nada | El rango, como lo da la tabla de arriba. |
| El tag no nombra ningún clúster | Antes de enviar nada | Que un valor Matter se encuentra por su salida, su clúster y su atributo. |
| El dispositivo responde con cualquier estado que no sea SUCCESS | El dispositivo | El estado tal como lo dio el dispositivo: su nombre en la especificación y su número, por ejemplo CONSTRAINT_ERROR, 0x87 (el valor está fuera de lo que el dispositivo admite) o UNSUPPORTED_COMMAND, 0x81 (el dispositivo no admite el comando que cambia ese valor). Un estado que agrega el clúster va después (FAILURE, 0x01, cluster 0x02), y un estado que la especificación no nombra se lee solo con su número. |
| El dispositivo no responde a tiempo | El dispositivo | Sin respuesta. |
Una escritura rechazada nunca se reporta como escrita, ni como un equipo fuera de alcance. En la
página del tag, la línea de estado se lee "Escritura rechazada por el equipo: CONSTRAINT_ERROR,
0x87." cuando el dispositivo la rechazó, con el motivo en lugar del estado para un rechazo resuelto
antes de enviar nada, y "Escritura no confirmada: el equipo no respondió a tiempo." cuando no llegó
respuesta; "Error de escritura: no se pudo alcanzar el equipo." queda para un dispositivo que no
está conectado. El motivo también viaja con la escritura: la línea del diario de esa escritura lo
nombra, con lo que significa el estado, y el tag_write de un agente lo devuelve.
Un tag hecho a mano
Para el raro valor que el dispositivo no publica de una forma que el escaneo ofrezca, Agregar tag en un dispositivo Matter crea un tag para rellenar a mano. Su tarjeta Fuente muestra tres
campos en una fila, y la vista previa de la dirección debajo los monta como
<endpoint>/<cluster>/<attribute>, en decimal (1/8/0 es el brillo de la primera salida). Mientras
no se elige un clúster el tag no se guarda, y el panel dice: "Elija el clúster que lee este tag. Sin
él, nunca se pide nada al dispositivo."
| Campo | Qué hace | Valores | Predeterminado |
|---|---|---|---|
| Salida (endpoint) | Qué salida del dispositivo lee el tag. | 0 a 65535; 1 es la primera salida controlable, 0 el propio nodo | 1 |
| Clúster Matter | Qué clúster de esa salida lee el tag. | Los clústeres del catálogo Matter por su nombre en la especificación con su número, como en Level Control (0x0008); un clúster que el catálogo no nombra, encontrado por un escaneo, aparece primero por su número |
ninguno |
| Atributo | Qué atributo del clúster lee el tag. | 0 o más; 0 es el valor propio del clúster | 0 |
El nombre del tag es libre: nombra el tag y no selecciona nada en el dispositivo. El tipo de dato se elige entre Boolean, Int32, UInt32, Float, Double y String; una lectura que el tipo declarado no puede representar se lee como error y no como un número de relleno. El valor llega como lo envía el dispositivo: una temperatura, una humedad o una presión hecha a mano se lee en centésimas o décimas hasta que usted le dé en su etapa Escala el factor y la unidad de la tabla de arriba.
El campo de acceso ofrece escritura solo donde la tabla del driver cambia el valor, y si no, ofrece Solo lectura y dice debajo por qué:
| El punto | El campo de acceso ofrece | Lo que dice |
|---|---|---|
| Un valor de la tabla que cambia un comando o una escritura del atributo | Solo lectura, Solo escritura y Lectura y escritura | Nada |
| Todavía sin clúster elegido | Solo lectura | "Solo lectura hasta que el tag nombre un valor del dispositivo: elija su clúster." |
| Un valor que la tabla no conoce | Solo lectura | "Solo lectura: el driver no sabe cómo cambia el dispositivo este valor." |
| Un valor que la tabla marca como de solo lectura | Solo lectura | "Solo lectura: el dispositivo reporta este valor y nada desde fuera lo establece." |
Cuando una edición de la salida, del clúster o del atributo apunta el tag a un valor que el driver no puede escribir, su acceso vuelve a Solo lectura. Un tag que ofreció el descubrimiento conserva el acceso que el descubrimiento le dio, porque solo el descubrimiento le pregunta al dispositivo qué comandos admite: un valor que el dispositivo no listó sigue en Solo lectura, y el campo sigue ofreciendo escritura.
Tags guardados por versiones anteriores
Una versión anterior nombraba el clúster de un tag Matter solo con el nombre del tag, con una
dirección <endpoint>/<attribute>. Cuando esta versión arranca por primera vez, cada tag de un
dispositivo Matter cuyo nombre es un clúster del catálogo Matter (la parte que sigue a los últimos
dos puntos, sin los espacios de alrededor, sin distinguir mayúsculas) recibe ese clúster, así que
sigue leyendo exactamente el valor que leía. Su nombre queda como estaba, y la vista previa de su
dirección pasa a mostrar <endpoint>/<cluster>/<attribute>. Un tag cuyo nombre no coincidía con
ningún clúster nunca leyó nada: se queda sin clúster, sus lecturas se rechazan con un motivo que lo
dice, y su página pide el clúster. Un tag convertido conserva el acceso que tenía, Solo lectura, el
único que ofrecían esas versiones; para escribirlo, elija Lectura y escritura, que sirve para los
valores de la tabla de arriba.