Saltar a contenido

Monitor en vivo

¿Qué es?

El Monitor en vivo es un panel de vigilancia en tiempo real del estado de todos los dispositivos de los empleados. Muestra quién está en línea, el nivel de batería, la versión de la aplicación, la ubicación aproximada y cuándo fue el último reporte. Los datos se actualizan automáticamente mediante conexión SSE (Server-Sent Events) y con respaldo de sondeo cada 15 segundos.


Vista principal

Filtros en cascada

En la parte superior hay cuatro selectores encadenados que permiten acotar los dispositivos visibles:

  • ZonaClienteProyectoPuesto

Cada selector se habilita al elegir el anterior, y los valores se guardan automáticamente en el navegador (localStorage). Al cambiar de zona, los filtros de cliente, proyecto y puesto se reinician.

Si la zona seleccionada no tiene turnos asignados, aparece un aviso amarillo: "Esta zona no tiene turnos asignados. Se muestran todos los dispositivos de la empresa."

Barra de estadísticas

Cuatro contadores resumen en la parte superior:

  • Dispositivos — Total de dispositivos en la zona seleccionada.
  • En línea — Cantidad de dispositivos activos.
  • Bat. baja — Dispositivos con batería por debajo del 20%.
  • Cargando — Dispositivos conectados a cargador en ese momento.

Alternancia de vista

Dos botones en la parte superior derecha:

  • Lista — Cuadrícula de tarjetas por dispositivo (vista por defecto).
  • Mapa — Mapa de Google Maps con marcadores de empleados y puestos.

Vista de lista — Filtros

  • Buscar empleado — Campo de texto libre que filtra tarjetas por nombre.
  • Ordenar — Selector con opciones:
  • Último reporte — Por la marcación más reciente (por defecto).
  • Batería menor — De menor a mayor porcentaje.
  • Batería mayor — De mayor a menor porcentaje.
  • Nombre A-Z — Orden alfabético.
  • Estado — Selector:
  • Ninguno — Sin filtro.
  • En línea — Solo dispositivos activos.
  • Fuera de línea — Solo dispositivos inactivos.
  • Batería — Selector:
  • Ninguno — Sin filtro.
  • Baja <20% — Solo dispositivos críticos.
  • Media 20-50% — Batería moderada.
  • Buena >50% — Batería suficiente.
  • Plataforma — Selector: Android / iOS.

Vista de lista — Tarjetas de dispositivo

Cada empleado tiene una tarjeta con los siguientes datos:

Encabezado

  • Indicador de estado — Punto circular: verde (en línea) o gris (fuera de línea).
  • Avatar — Foto de perfil del empleado o círculo con iniciales.
  • Nombre del empleado — En negrita.
  • Plataforma — Ícono de Android o iOS.

Batería

Barra de progreso con el porcentaje de batería y colores semánticos:

  • Verde — 50% o más.
  • Ámbar — Entre 20% y 49%.
  • Rojo — Menos del 20%.
  • Azul — El dispositivo está cargando (independientemente del porcentaje).

Información del dispositivo

  • Fabricante y modelo — Ej. "Samsung Galaxy A32".
  • Versión de la app — Ej. "v2.0.8".

Ubicación

  • Ciudad o dirección aproximada (geocodificación inversa), o coordenadas lat/lon si no hay nombre disponible.
  • Tiempo transcurrido desde la última actualización de ubicación (ej. "hace 5 min").

Último reporte

  • Timestamp del último dato recibido del dispositivo.

Botones de acción

  • Datos — Envía una notificación push al dispositivo para que reporte sus datos actuales. Tiene un tiempo de enfriamiento de 30 segundos antes de poder usarse de nuevo en la misma tarjeta.
  • Msg — Abre el modal de envío de mensaje push al empleado.

Se abre con el botón Msg o desde acciones masivas. Campos:

  • Título — Encabezado de la notificación push (obligatorio).
  • Mensaje — Cuerpo de la notificación (obligatorio).

Envía a /notifications/send-bulk. Si hay múltiples empleados seleccionados, llega a todos.


Vista de mapa

La vista de mapa muestra:

  • Marcadores de empleados — Círculos con foto o iniciales:
  • Verde — Empleado en línea.
  • Gris — Empleado fuera de línea.
  • Puestos de trabajo — Círculos de colores con el nombre del puesto como etiqueta.
  • Etiquetas de zona — Nombre de la zona sobre el mapa.
  • Agrupación de marcadores — Cuando hay muchos dispositivos en la misma área se agrupan; al hacer zoom se separan.
  • Indicador "Live" — Parpadea brevemente cada vez que llegan nuevos datos por SSE.

Capa de emergencias

Cuando uno o más empleados activan una alerta de emergencia desde la aplicación, el monitor entra en modo de emergencia:

  • El indicador "Live" en la parte superior derecha cambia a fondo rojo y muestra la palabra "Emergencia".
  • En la vista de mapa aparecen marcadores de emergencia en rojo con una animación de pulso (efecto radar) sobre la última posición conocida del empleado.
  • Al hacer clic en un marcador de emergencia se muestra el nombre del empleado y la etiqueta "Emergencia activa".
  • Si se accede al monitor desde el banner global de emergencias del portal, la vista cambia automáticamente al mapa y se enfoca en la ubicación del empleado afectado.

Los datos de emergencia se actualizan cada 12 segundos automáticamente y también se reciben en tiempo real vía SSE cuando se genera una nueva alerta.


Conexión en tiempo real

El monitor usa SSE (Server-Sent Events):

  • Se conecta al endpoint /portal/v1/monitor/events con autenticación.
  • Si la conexión se interrumpe, reintenta automáticamente después de 5 segundos.
  • Como respaldo, sondea el servidor cada 15 segundos aunque la conexión SSE esté activa.
  • Cada actualización recibida refresca la tarjeta del empleado correspondiente sin recargar toda la lista.

Acciones masivas

Al seleccionar múltiples tarjetas aparece una barra flotante en la parte inferior:

  • Contador — "N usuario(s) seleccionados".
  • Notificar (tab) — Campos Título + Mensaje + Quién envía (opcional) → botón Enviar. Confirma con el número de dispositivos notificados: "Enviado a N dispositivo(s)".

Permisos

Acción Permiso requerido
Ver monitor monitor: view
Solicitar datos monitor: view
Enviar notificación monitor: send

Páginas relacionadas

  • Asistencia — Historial de marcaciones de cada empleado.
  • Minutas (Bitácora) — Registro de novedades, visitantes, vehículos y entrega de turno creados por los empleados en sus puestos.
  • Empleados — Directorio con los datos del personal.
  • Turnos y horarios — Ver los turnos asignados para entender la presencia esperada.
  • Zonas — Las zonas configuradas determinan qué dispositivos aparecen.

Preguntas frecuentes

¿Por qué un empleado aparece como "fuera de línea" si está trabajando? Puede tener la aplicación cerrada, sin conexión a internet, o no haber reportado en el intervalo esperado. El botón Datos solicita un reporte inmediato.

¿Qué pasa cuando hago clic en "Datos"? Se envía una notificación push al dispositivo del empleado para que la app reporte su estado actual (batería, ubicación, etc.). El botón queda deshabilitado por 30 segundos después de cada solicitud.

¿Cada cuánto se actualiza la información? Con SSE activo, los datos llegan en tiempo real (segundos). Si SSE falla, el sistema sondea cada 15 segundos.

¿Por qué veo el aviso de "zona sin turnos"? La zona seleccionada no tiene programaciones configuradas. En ese caso el monitor muestra todos los dispositivos de la empresa.

¿El mapa muestra la ubicación exacta del empleado? Sí, muestra las últimas coordenadas GPS reportadas. La antigüedad se indica en cada tarjeta.

¿Puedo filtrar para ver solo dispositivos con batería crítica? Sí, usa el filtro Batería → Baja <20% para identificar dispositivos que necesitan carga urgente.

¿Qué debo hacer cuando aparece el indicador "Emergencia" en rojo? El monitor cambió de modo porque un empleado activó una alerta SOS. Cambia a la vista de mapa para ver la ubicación del empleado con el marcador de pulso rojo. Haz clic en él para ver el nombre. Desde el banner global de emergencias del portal también puedes llegar directamente al mapa con el foco en ese empleado.

¿Por qué no veo los dispositivos de cierta zona o proyecto? Revisa los filtros en cascada (Zona → Cliente → Proyecto → Puesto) en la parte superior. Un filtro activo restringe la lista. Usa el botón de reiniciar filtros para volver a ver todos los dispositivos.