🖥️ Variables en tiempo real
Objetivo Principal: Seguir el valor de las variables de planta según va llegando, enviar consignas a las que admiten escritura y comprobar el estado de la conexión en directo; es una pantalla de trabajo técnico reservada a los perfiles Mantenimiento, Administrador y Admin Global.
Las pestañas Monitor y Control las usan los tres perfiles. La pestaña Comandos, en cambio, solo funciona con Administrador y Admin Global: el catálogo de actuadores que la alimenta es un recurso restringido a esos dos perfiles. Con el perfil Mantenimiento la pestaña se abre, pero el catálogo no carga y en su lugar aparece un aviso de error, sin formulario ni botón "Enviar".
Esta página describe una pantalla que aún no está fotografiada en el manual, así que el despiece no numera los elementos sobre una imagen. Lo que se cuenta aquí está contrastado con la versión 0.4.46 de la aplicación.
🧩 Despiece de Elementos Funcionales
| Nombre del Elemento | Tipo | Destino / Acción | Descripción Funcional |
|---|---|---|---|
| Selector de vista "Variables" / "Realtime" | Navegación por pestañas | Alternar entre el listado y el tiempo real | Encabeza la pantalla. "Variables" devuelve al listado descrito en Variables y "Realtime" abre esta vista. Es el camino señalizado para llegar hasta aquí; el copiloto también puede abrirla si se le pide. |
| Pestañas "Monitor", "Comandos" y "Control" | Navegación por pestañas | Cambiar de panel | Dividen la pantalla en tres trabajos distintos: ver valores, enviar consignas y diagnosticar la conexión. Al cambiar de pestaña la conexión sigue abierta, así que los valores no se pierden ni hay que volver a esperar. |
| Indicador "Adapter: Conectado (SSE)" / "Adapter: Desconectado" | Indicador de estado | — | Primera línea de la pestaña "Monitor". En verde indica que el flujo de datos de la instalación está llegando; en rojo, que no. Con el indicador en rojo, los valores de la tabla son los últimos recibidos, no los actuales. |
| Contador de variables suscritas | Indicador informativo | — | Junto al indicador anterior, en la forma "N variables suscritas". La pantalla se suscribe sola, al abrirse, a todas las variables activas de la cuenta; las inactivas y las descubiertas no entran. |
| Indicador "Ultimo dato" | Indicador informativo | — | Tiempo transcurrido desde el último valor recibido de cualquier variable, expresado en segundos, minutos u horas. Si el contador crece sin parar, el flujo se ha interrumpido aunque el indicador de conexión siga en verde. |
| Aviso de error de conexión | Mensaje de estado | — | Banda roja bajo la barra de estado con el mensaje que devuelve la plataforma cuando el flujo en directo falla. Mientras esté visible, no des por buenos los valores de la tabla. |
| Buscador "Buscar por nombre o ID..." | Campo de búsqueda | Filtrar la tabla | Filtra según se escribe, tanto por el nombre visible de la variable como por su identificador. |
| Filtro "Categoria" | Filtro desplegable | Filtrar la tabla | Ofrece "Todas" y solo las categorías presentes entre las variables cargadas: Ambiental, Ocupación, Climatización, Eléctrico, Temperatura, Presión, Energía, Producción, Alarma, Estado y las demás que tenga la cuenta. |
| Filtro "Estado" | Filtro desplegable | Filtrar la tabla | Opciones "Todos", "OK", "Stale" y "Sin datos", para aislar de un vistazo las variables que no están dando valor. |
| Tabla de valores en directo | Tabla de datos | Consultar los valores | Columnas Variable, Categoria, Unidad, Valor actual, Ultima actualizacion y Estado. Bajo el nombre de cada variable se muestra su identificador. Cada cabecera ordena al pulsarla y vuelve a pulsarse para invertir el orden; una flecha señala la columna activa. El valor se pinta en verde cuando está al día y en gris cuando no ha llegado ninguno. |
| Distintivo de estado por fila | Indicador de estado | — | "OK" cuando la variable ha recibido valor por el flujo en directo, "Sin datos" cuando todavía no ha llegado ninguno y "Stale" cuando el valor recibido viene marcado como caducado. |
| Mensajes de tabla vacía | Mensaje de estado | — | Con la cuenta sin variables activas aparece el aviso "No hay variables activas", que remite a importarlas desde la pestaña Variables. Si el vacío lo causan los filtros, el aviso es "No hay variables que coincidan con los filtros." |
| Aviso de carga y de error de la pantalla | Mensaje de estado | Reintentar | Al abrir se muestra "Cargando variables...". Si la carga falla, aparece "Error cargando variables" con un botón "Reintentar" que recarga la pantalla entera. |
| Indicador "adapter_commands" | Indicador de estado | — | Esquina superior derecha de la pestaña "Comandos", junto al título "Probar comando". En verde ("adapter_commands ON") el envío de consignas está habilitado en la instalación; en gris ("adapter_commands OFF") no lo está. Viene apagado de fábrica: mientras marque OFF no se debe enviar nada desde aquí. |
| Bloque "Prefill variable" | Selector de variable | Abrir el buscador de variables | Botón "Seleccionar variable" —que pasa a "Editar seleccion" cuando ya hay una elegida— y botón "Limpiar", que vacía la selección y los campos del comando. Un distintivo indica "Sin seleccion" o "Seleccion activa" y, al elegir, se muestran el nombre de la variable y su identificador. |
| Ventana "Seleccionar variable para prefill de comando" | Ventana modal | Elegir la variable de destino | Buscador "Buscar por nombre o nombre técnico...", filtros "Todas las categorías" y "Todos los assets", botón "Cargar más" con el recuento de lo mostrado, y los botones "Cancelar" y "Confirmar". Solo lista variables que la instalación declara como actuador o consigna, la misma condición que recoge el bloque "Escritura (Actuador)" de la ficha de la variable; marcar allí la casilla a mano no añade la variable a esta lista. Si no hay ninguna, la pestaña no llega a mostrar el formulario; tampoco lo muestra cuando el catálogo no ha podido cargarse por falta de permisos. |
| Campos "domain_id", "site_id", "asset_id" y "metric" | Campos de texto | Identificar el punto de destino | Señalan a qué punto concreto de la instalación va la orden. Se rellenan solos al confirmar la variable en la ventana anterior; corregirlos a mano es lo que hace que una orden acabe en otro equipo. Solo admiten letras, números, guion, guion bajo y punto, y hasta 128 caracteres; si no, el envío se detiene con un aviso del campo que falla. |
| Campo "value" | Campo de texto | Fijar el valor a escribir | Rotulado "value (number | boolean | string)". Se interpreta solo: "true" y "false" se envían como valor lógico, un número como número y cualquier otra cosa como texto. |
| Campo "ttl_ms" | Campo numérico | Limitar la validez de la orden | Milisegundos durante los que la orden sigue siendo válida. Debe ser un número entero entre 500 y 60000 —el valor de partida es 10000—; fuera de ese rango el envío se detiene con el aviso "ttl_ms debe ser entero entre 500 y 60000." |
| Casilla "strong_confirm" | Casilla de verificación | Exigir confirmación del equipo | Sin marcar, la orden se da por buena cuando el equipo la acepta. Marcada, la orden solo pasa a "Confirmed" cuando el equipo devuelve su estado con el valor ya aplicado. |
| Campo "meta (JSON opcional)" | Campo de texto largo | Añadir datos de contexto | Permite adjuntar información propia a la orden. Debe ser un objeto JSON; si no lo es, el envío se detiene con "meta debe ser un objeto JSON." o "meta JSON inválido." |
| Botón "Enviar" | CTA Principal | Enviar la consigna a la instalación | Escribe sobre la instalación. Mientras se procesa muestra "Enviando...". No se bloquea aunque el indicador "adapter_commands" esté en OFF, así que la comprobación previa es responsabilidad de quien envía. |
| Ficha de seguimiento del comando | Panel informativo | — | Aparece bajo el formulario en cuanto la orden se acepta, con "cmd_id" (identificador de la orden, útil para reportar una incidencia), "stream" (estado de la escucha de eventos) y "stage" (etapa alcanzada). |
| "Maquina de estados" | Indicador de progreso | — | Cinco puntos en orden —Sent, Received, Confirmed, Rejected y Timeout— que se van encendiendo: azul la etapa en curso, verde al confirmar y rojo si la orden se rechaza o expira. |
| Aviso "Warning: device state mismatch" | Mensaje de estado | — | Recuadro de advertencia que avisa de que el valor leído en el equipo no coincide con el que se envió. La orden puede haberse aceptado igualmente: hay que comprobar el equipo. |
| "Log de eventos" | Registro de actividad | — | Lista con hora, etapa y detalle de cada evento de la orden en curso. Antes del primer envío muestra "Sin eventos todavía." |
| Mensaje "Comando finalizado." | Mensaje de estado | — | Cierra el seguimiento cuando la orden llega a Confirmed, Rejected o Timeout. Que aparezca no significa que la orden se haya aplicado: eso lo dice la etapa alcanzada. |
| Secciones de diagnóstico de la conexión | Secciones colapsables | Desplegar cada bloque | Ocupan la parte superior de la pestaña "Control": "Estado de Conexion", "Diagnostico de Datos", "Latencia Read-back", "Suscripciones / Routing", "Logs", "Acciones" y "Configuracion". Reúnen contadores de eventos recibidos, los últimos valores llegados, tiempos de respuesta y la correspondencia entre las señales que entran y las variables de la cuenta. |
| Acciones "Reconectar SSE", "Health Check" y "Copiar Debug Bundle" | Botones de acción | Restablecer, anotar y copiar el diagnóstico | "Reconectar SSE" vuelve a abrir el flujo de datos sin recargar la pantalla; "Health Check" deja constancia de la comprobación en el registro; "Copiar Debug Bundle" copia al portapapeles el diagnóstico completo en formato JSON y lo confirma con "Copiado". |
| Interruptor "Verbose Logging" | Interruptor | Detallar el registro | Activa el registro detallado del flujo en directo. Solo tiene sentido durante una investigación: llena el registro muy deprisa. |
| Panel de diagnóstico del servicio | Navegación por pestañas | Consultar el estado del servicio de datos | Cierra la pestaña "Control" con cuatro pestañas propias: "Estado" (tarjetas "Realtime (Adapter)", "WebSocket" y "Stream de Datos", con el aviso de cuántos segundos lleva sin llegar un dato), "Acciones" ("Refrescar estado", "Dump estado", "Limpiar errores" y "Limpiar logs"), "Logs" (con buscador "Buscar en logs..." y filtro de nivel "Todos los niveles", INFO, WARN o ERROR) y "Configuración". |
💡 Guía de Uso
Esta pantalla se abre desde la sección Variables, pulsando "Realtime" en el selector que hay sobre el título. Solo la ven los perfiles Mantenimiento, Administrador y Admin Global: una cuenta con perfil Usuario no llega a ella ni escribiendo la direcci ón.
Empieza siempre por la pestaña "Monitor". Al entrar, la pantalla se suscribe sola a todas las variables activas de la cuenta, y la barra superior te dice si el trabajo tiene sentido: el indicador debe estar en verde con "Adapter: Conectado (SSE)", el número de variables suscritas debe cuadrar con las que esperas y el indicador "Ultimo dato" debe reiniciarse cada pocos segundos. Con eso claro, acota con el buscador y con los filtros "Categoria" y "Estado", y ordena por la columna que te interese pulsando su cabecera. Una variable en "Sin datos" no significa que su valor sea cero: significa que por esta vía todavía no ha llegado ningún valor.
La pestaña "Comandos" no consulta: escribe. Cada envío sale de la plataforma hacia el equipo real, así que trátala como lo que es, un mando sobre la instalación.
Comprueba tres cosas: que el indicador de la esquina marca "adapter_commands ON", que los campos "asset_id" y "metric" son los que ha rellenado la ventana de selección —y no unos escritos a mano— y que el valor de "value" es el que quieres que tome el equipo. El botón "Enviar" no se bloquea aunque el indicador esté en "OFF". Si tienes cualquier duda sobre el efecto de la consigna en la instalación, no la envíes: consúltalo antes con el responsable de mantenimiento.
El orden de trabajo en "Comandos" es: pulsar "Seleccionar variable", localizarla en la ventana y "Confirmar"; revisar los campos que se han rellenado solos; escribir el valor en "value"; ajustar "ttl_ms" si la orden debe caducar antes; marcar "strong_confirm" si no quieres darla por buena hasta que el equipo devuelva el valor aplicado; y pulsar "Enviar". A partir de ahí, la confirmación no es que desaparezca el mensaje de espera, sino la etapa que alcanza la orden: la secuencia normal es Sent, luego Received y luego Confirmed. Si termina en "Rejected", la instalación ha rechazado la orden; si termina en "Timeout", ha caducado sin respuesta. En ambos casos el "Log de eventos" indica el motivo, y ni una ni otra deben repetirse a ciegas. Si aparece el recuadro "Warning: device state mismatch", el equipo está reportando un valor distinto del enviado: revísalo antes de insistir. Como comprobación final, vuelve a "Monitor" y mira esa misma variable: si la escritura ha llegado, el valor y la hora de "Ultima actualizacion" deben reflejarlo.
Cuando algo no cuadra —valores congelados, variables que nunca salen de "Sin datos", el indicador en rojo— la pestaña "Control" es el sitio donde mirar antes de avisar a nadie. "Reconectar SSE" restablece el flujo sin recargar la pantalla y resuelve la mayoría de los cortes pasajeros. Si el problema persiste, "Copiar Debug Bundle" deja en el portapapeles el diagnóstico completo, y el panel inferior indica cuánto tiempo lleva sin llegar un dato; envía ese diagnóstico al responsable técnico junto con el "cmd_id" si lo que falló fue una consigna. Evita "Limpiar errores" y "Limpiar logs" mientras una incidencia siga abierta: borran justamente la información que hace falta para diagnosticarla.