TrackeraX v4.6.0
Notas de release y changelog completo de la versión TrackeraX 4.6.0 (minor) — 2026-09-20.
Nuevas Características
- El video del evento se descarga solo — Cada alerta tiene ahora la casilla «Descargar el video del evento». Al saltar esa alerta en un equipo con cámara, la plataforma le pide sola a la cámara el video de esos segundos, el equipo lo sube por su cuenta FTP y el archivo queda colgado del evento con un enlace «Ver evidencia» en la lista de eventos. Antes había que pedir la grabación a mano y buscarla después en la galería. Viene apagada por defecto porque descargar video consume el plan de datos del vehículo.
- Nueva tarea en cuatro pasos con el mapa dentro — Crear una tarea deja de ser un formulario largo y pasa a ser un asistente: datos de la tarea, recogida, entrega y un resumen final. El mapa va incrustado en cada paso, así que el punto se elige pinchando o escribiendo la dirección, sin abrir otra ventana encima. El resumen dibuja además la ruta entre recogida y entrega con su distancia y su duración estimadas.
- Conjuntos de tareas y listado completo — Las tareas que se repiten se pueden guardar como conjunto y reutilizarlas al crear una nueva. Además hay una pestaña Todas las tareas con los filtros en rejilla, y el estado y la prioridad se ven como etiqueta de color.
- Tareas pasa al menú principal — Tareas deja de estar escondida dentro de Herramientas y aparece en el menú principal, debajo de Chat, en los seis diseños. Se puede ocultar desde Visibilidad de menús como cualquier otra entrada.
- Chat: crear, limpiar y borrar conversaciones — La lista lateral muestra solo los equipos que ya tienen conversación, y un botón + abre el listado completo para empezar una nueva. Desde el engranaje se puede limpiar la conversación o eliminarla, y cada mensaje se puede borrar por separado.
- EcoDrive: línea de tiempo del día y detalle del viaje — Ver detalles añade un indicador tipo velocímetro para el puntaje, tarjetas por tipo de evento con su duración acumulada y una línea de tiempo por día, de 00:00 a 24:00, que separa en verde el tiempo en movimiento, en naranja el ralentí y en gris el detenido. Al abrir un viaje concreto se ve su recorrido en el mapa, con su propia línea de tiempo y su resumen.
- El centro del mapa se elige pinchando — En Configuración del servidor, la latitud y la longitud del centro del mapa ya no hay que escribirlas a mano: debajo hay un mapa donde se pincha o se arrastra el marcador, y el zoom con el que quede fija el nivel de zoom por defecto.
- Vista previa del popup dentro del propio formulario — Antes, previsualizar una ventana emergente guardaba una notificación real al administrador y había que abrir el mapa en otra pestaña para verla. Ahora se ve dentro del mismo formulario, en su posición real y con el banner incluido.
- Histórico de recorridos de ruta — Cada vez que un vehículo asignado a una ruta la recorre, el paso queda registrado: inicio, fin, duración, conductor y la mayor distancia a la que se separó del corredor. Una ruta hecha tres veces en un día muestra ahora los tres recorridos y quién condujo cada uno. Se abre desde el menú de la ruta en el panel lateral y desde la tabla de rutas.
- Asignación masiva de rutas — Ahora se pueden emparejar rutas y vehículos en bloque desde una sola pantalla: se eligen varias rutas, varios dispositivos y si se quiere añadir, reemplazar o quitar. En la misma pantalla está el listado de todas las asignaciones actuales, filtrable por ruta o por dispositivo, con quién la hizo y cuándo, y un botón para deshacer cualquiera de ellas. Las rutas de un dispositivo también se ven desde su propia ficha.
- Distancia y duración planificadas por ruta — Una ruta lleva ahora descripción, su longitud —calculada sola a partir del trazado— y una duración estimada que puedes fijar tú, rellenada a partir de la longitud si la dejas vacía. El histórico compara cada recorrido real contra ese plan y marca los que se pasan.
- Las rutas solo se exigen en su turno — Una asignación puede llevar horario: hora de inicio, hora de fin y días de la semana. Fuera de esa ventana la ruta no se exige —ni alertas de desvío ni recorridos registrados—, así que una ruta de reparto de mañana ya no genera avisos toda la noche. Si el turno termina con el vehículo todavía sobre la ruta, el recorrido se cierra en vez de quedarse abierto.
- Informe de planificado contra real — Un informe nuevo compara lo que la ruta debía ser con lo que pasó de verdad: número de recorridos, distancia y duración planificadas, media y total reales, cuánto se desvió la duración, el mayor alejamiento del corredor, qué parte de los reportes se quedó dentro y quién condujo.
- Importar asignaciones de rutas desde un CSV — Emparejar una flota con sus rutas ya no hay que hacerlo a mano: un archivo de dos columnas (ruta, dispositivo) lo hace de una vez. Cualquiera de las dos puede ir por nombre o por id, y el dispositivo también por IMEI. Las líneas que no cuadran se omiten y se avisan en vez de cortar la importación.
- Las rutas se dibujan y editan en el mapa nuevo — Dibujar una ruta ya no depende del motor de mapa antiguo. En el nuevo se puede trazar, arrastrar cualquier punto, añadir uno tirando del centro de un tramo y quitar otro con el botón derecho. Funciona también con el dedo, y el color se actualiza según lo eliges.
- Las rutas se pueden importar desde GPX — Además de KML, una ruta puede venir ahora de un archivo GPX — lo que graba un GPS o lo que exportan Strava y Garmin. Se leen tanto los recorridos grabados como las rutas planificadas, y un recorrido partido en varios tramos entra como una sola ruta, no como varias.
- Las asignaciones de ruta pueden caducar solas — Una asignación puede llevar ahora fecha de inicio y de fin, además de su horario semanal. Una ruta de temporada que va hasta fin de mes deja de aplicarse sola, sin que nadie tenga que acordarse de desasignarla. Los dos días cuentan, y las fechas van por tu propio calendario.
- Eliminar la cuenta desde la app — El usuario pide la baja desde la app: la cuenta queda suspendida y la solicitud aparece en Administración › Registros › Eliminación de cuenta, donde el administrador confirma el borrado definitivo o la reactiva. La cuenta principal no se puede dar de baja.
- Mapa de la app móvil más ligero — Nuevo método get_devices_map y formato map en get_devices_latest: el mapa recibe solo lo que necesita el marcador (unas cuatro veces menos datos) y el detalle con sensores, servicios y conductor se pide al abrir la ficha del equipo. La app lo usa solo si el servidor lo tiene; con servidores anteriores sigue funcionando como hasta ahora.
- El mapa nuevo alcanza al clásico — Capas de Google y Bing, tráfico, aviones, historial con flechas, compartir ubicación y seguimiento, edición de geocercas, rutas y puntos de interés, y relieve en 3D con un botón. Si el navegador no lo soporta, se abre el mapa clásico.
- Informe nuevo: velocidad máxima por vehículo — Una fila por vehículo con la velocidad más alta que alcanzó en el rango que elijas, a qué hora fue, quién conducía y en qué dirección, con enlace directo al mapa. La lista sale ordenada de mayor a menor, así que el vehículo que más corrió queda arriba. No hace falta poner un límite: mide la punta, haya infracción o no, que es lo que lo diferencia de los informes de exceso de velocidad. Un vehículo que no reportó nada aparece igual, marcado como sin datos, salvo que marques la opción de omitir resultados vacíos.
- Informe nuevo: historial de conductores — Cada cambio de conductor de un vehículo ya se guardaba, pero no había forma de verlo. El informe nuevo lo muestra: a qué hora cambió, quién dejó el vehículo, quién lo cogió y por qué motivo — tarjeta leída, asignado a mano, motor apagado o tarjeta no reconocida. Sirve para saber quién conducía en un momento concreto sin tener que cruzar informes.
- Hablar por la cámara desde el navegador — El reproductor en vivo tiene ahora un botón de pulsar para hablar: la voz sale del navegador y suena en la cámara del vehículo. Hasta ahora solo se escuchaba lo que pasaba dentro, sin poder responder.
- Consulta de salud de cada equipo — Una sola consulta responde si el equipo está conectado, cuánto hace que no manda datos, si lo que manda se entiende y si tiene señal de GPS. Dice en segundos si el problema es el equipo, la SIM o la instalación.
- Reproducir una grabación, no solo descargarla — La ventana de grabaciones ahora reproduce el clip en el navegador: botón de reproducción en cada fila, pausa, reanudar, avance rápido y fotograma a fotograma, y una línea de tiempo de 24 horas en la que cada grabación es un bloque en el que se puede pulsar para verla. Antes la única opción era pedir el archivo y esperarlo. La ventana permite además elegir, antes de buscar, de qué almacenamiento debe leer la cámara, principal o de respaldo, y la calidad del stream.
- Las descargas en segundo plano tienen su propio panel — Pedirle a la cámara el archivo de una grabación ya no significa perderle la pista. Cada petición pasa a un panel que indica si está en cola, terminada o fallida, con botón de reintentar, y se actualiza sola mientras se sigue trabajando.
- API de telemetría: equipos que llegan desde otra plataforma — Un equipo puede existir ahora en la plataforma sin conectarse nunca a un puerto GPS: un sistema externo envía sus posiciones por HTTPS y terminan en el mismo sitio que las demás, con los mismos eventos, alertas, geocercas, informes y mapa en vivo. El administrador y el distribuidor gestionan cada integración desde el panel: crear, rotar y revocar su token, elegir por qué equipos puede reportar, leer el registro de peticiones con el motivo de cada rechazo y ver los contadores diarios. Viene apagado de fábrica y tiene su propia documentación pública.
- Las alertas de cada cliente, desde el panel — Registros tiene ahora una página con todas las alertas que un cliente ha configurado, con su tipo y los equipos que cubren, y permite borrar la que ya no se quiere. Editarlas se sigue haciendo desde la sesión del propio cliente, para no mezclar nunca sus equipos y geocercas con los de otro.
- El gateway de SMS de cada cliente, desde el panel — El gateway de SMS que un cliente tiene configurado para sus propias alertas se puede revisar y editar desde el panel, sin entrar como él.
- Registros push por cliente — Una página nueva lista las sesiones móviles registradas para notificaciones push y permite revocar una, que es lo que hace falta cuando se pierde un teléfono o un cliente avisa de que le llegan las notificaciones repetidas.
- Video dentro de un popup o del banner superior — Un popup o el banner superior pueden incrustar ahora un reproductor de YouTube, Vimeo o Google Maps. Todo lo demás se sigue quitando, así que el mensaje no puede usarse para cargar contenido de fuera.
Mejoras
- El equipo deja de transmitir video cuando nadie lo está viendo — Al cerrar la pestaña del navegador el equipo seguía subiendo video y gastando el plan de datos del vehículo, porque cerrar el navegador no le avisa de nada. Ahora, si un canal pasa un minuto sin nadie mirándolo, el servidor le manda parar. El tiempo de espera es configurable y se puede desactivar.
- Los informes salen agrupados en el selector — La lista de tipos de informe era una sola lista plana de casi cien entradas. Ahora sale repartida en once encabezados por tema: informacion general, recorridos, geocercas y PDI, velocidad, EcoDrive, combustible, motor, rutas, conductores, estado de los equipos y administracion. Los nombres de los informes no cambian, solo se agrupan.
- Nombres de informes claros en vez de genéricos — Treinta informes tenían nombres que no decían qué mostraban («Reporte personalizado Automon», «Informe de eventos», «Informe de geofencing», «Detalles del viaje», «Reporte de velocidad») o estaban mal traducidos («Subvelocidades», «Horas del motor Diariamente Gráfico», «Cambio de Turno» donde debía decir «Turno»). Ahora cada informe se llama por lo que realmente enseña, y ningún nombre se repite entre los 97 informes de la lista.
- Pestañas en columna en los formularios largos — Las ventanas con muchas pestañas (dispositivo, usuario, configuración, alertas, enviar comando) las muestran ahora en una columna a la izquierda, con el icono encima del texto. Se ven todas de un vistazo, sin cortarse ni saltar de línea.
- Los títulos dicen qué se está agregando o editando — Sesenta ventanas decían solo Agregar nuevo o Editar, sin indicar de qué. Ahora dicen Editar usuario, Agregar tipo de gasto, Editar grupo de geocercas y así con el resto.
- Se respetan los formatos de fecha y hora configurados — El formato de fecha y el de hora definidos en la configuración del servidor ya se aplican en el selector de fecha y hora y en el resumen de tareas. Antes se mostraba siempre el formato interno.
- Las ventanas emergentes se ven en móvil y en los seis diseños — El banner superior faltaba en los diseños de quiosco y panel de mapa, y en móvil no se veía. Ahora aparece en los seis, con botón de cerrar que se recuerda durante la sesión, y el popup hace scroll cuando el contenido no cabe en la pantalla.
- Los mensajes de difusión dicen por qué fallaron — El listado muestra ahora la columna de fallidos con el motivo de los primeros errores. Además cada lote resuelve una sola vez la disponibilidad de correo y los tokens del móvil, en vez de hacerlo usuario por usuario.
- Configuración del servidor reorganizada — Los ajustes se agrupan en tarjetas y la lista de mapas se puede plegar, así que la página deja de ser una columna interminable.
- Distancia recorrida del panel: más rápida y con tema — El bloque ya no fuerza fondo blanco en tema oscuro, arranca en Hoy y permite elegir Hoy, Semana o Mes. El cálculo se hace en la base de datos en vez de en memoria, así que carga mucho más rápido.
- Mostrar solo las plantillas de comandos propias — Nueva opción en el dispositivo para que, junto a solo plantillas GPRS, el equipo liste únicamente las plantillas creadas por el propio usuario y deje fuera las globales del administrador. El filtro se aplica también al enviar, no solo al listar.
- Paginación del selector de dispositivos — En los selectores de dispositivos las páginas salían una debajo de otra. Vuelven a mostrarse en una sola fila.
- Tarjetas de ruta en el panel lateral — Las rutas ya no son una línea con el nombre. Cada una muestra su color, cuántos dispositivos tiene asignados, su longitud y su último recorrido, con el conductor y una marca de «en curso» cuando el vehículo la está haciendo en ese momento.
- Columna «Dispositivos» en la tabla de rutas — El listado de rutas indica cuántos dispositivos tiene asignados cada una, y el número lleva directamente al histórico de recorridos de esa ruta.
- El historial de asignaciones ya se ve — Quién asignó un vehículo a una ruta y cuándo ya se guardaba, pero no se mostraba en ninguna parte. Ahora aparece en la tabla de asignaciones y en la pestaña Rutas del dispositivo.
- Listado de rutas más rápido — La longitud de la ruta se guarda en vez de recalcularse en cada fila cada vez que se abre el panel lateral.
- El listado de asignaciones indica cuáles tienen horario — La tabla de asignaciones marca las que están limitadas a una ventana horaria, así se ve de un vistazo qué rutas se exigen a cualquier hora.
- Un solo ancho de corredor, no dos — Cuánto puede alejarse un vehículo de su ruta se fija ahora por asignación y lo usan tanto la alerta de desvío como el histórico de recorridos. Antes la alerta usaba un valor configurable y el histórico uno fijo, así que un vehículo podía estar fuera de ruta para uno y dentro para el otro.
- Aviso cuando los horarios de ruta se pisan — Asignar un vehículo a una ruta cuyo horario choca con otra de sus rutas ahora lo avisa, nombrando los vehículos. No bloquea: solapar puede ser intencionado.
- Los horarios de ruta usan la rejilla semanal — Las horas de una asignación se fijan con la misma rejilla semanal de las alertas, así que una ruta puede tener turno de mañana y de tarde el mismo día.
- Las alertas con confirmación ya no hacen cola detrás de otras tareas — Combustible, cambio brusco de sensor, equipo desconectado e inicio de movimiento se confirman en un proceso propio. Antes compartían cola con las importaciones y la conversión de vídeo, que pueden tardar hasta una hora, y la confirmación podía perderse.
- Alerta de cambio brusco de sensor: sensor por nombre y eventos no confirmados marcados — El sensor específico se elige por nombre y el desplegable muestra en cuántos equipos existe, así se ve antes de guardar cuántos quedan fuera. Si el equipo deja de reportar antes de confirmar, el evento se marca como «no confirmado». El tipo por defecto es el sensor más común de la flota.
- La API dice qué equipos tienen cámara — get_devices y get_devices_latest incluyen has_camera y camera_channels, y la documentación de la API describe los métodos de lista de grabaciones, descarga y modos de vídeo en vivo con sus parámetros reales.
- Vídeo en vivo: autorización por equipo, lista para activar — El panel puede emitir un permiso de dos minutos ligado al equipo y al canal, y el servicio de vídeo lo exige antes de abrir la señal. Viene apagado y se activa cuando el servicio de vídeo actualizado esté desplegado.
- El servicio GPS arranca aunque el servidor de licencias no responda — Un nodo recién instalado que todavía no tiene la licencia en caché sigue recibiendo posiciones durante 72 horas mientras el servidor de licencias vuelve. Antes las descartaba hasta conseguir respuesta.
- Entrar con teléfono acepta el número con o sin prefijo — El acceso por teléfono prueba también el número normalizado, así que da igual cómo se escribiera al registrarse. La API devuelve además el prefijo del país y ya no lo duplica al guardar.
- Centro de Ayuda actualizado — Cubre las rutas (asignación, desvío, recorridos e importación KML), las tareas en cuatro pasos, el chat, EcoDrive, las ventanas emergentes, las pestañas laterales y la clave obligatoria de CARTO.
- Consulta de eventos: filtro de tipos en una línea — Las tarjetas de tipo de evento, que ocupaban media pantalla, pasan a chips con búsqueda, «Mostrar todo» y el activo al frente. Se ven bien en tema oscuro.
- Ventanas emergentes: editor de texto y duración con contador — El contenido se escribe con negrita, listas y enlaces; la duración puede ser ilimitada o de N segundos con cuenta atrás y cierre manual. El aviso flota por encima del mapa y respeta el tema.
- Subida de iconos: varios a la vez y tema oscuro — Al crear un dispositivo o un sensor se pueden soltar varios iconos de golpe, y la zona de subida ya no queda blanca en tema oscuro.
- Logo y apariencia con las mismas secciones que Configuración — Marca y tema, Página de acceso y Textos y apps. La promoción de la tarjeta pública se muestra ahí con su explicación, no en Configuración del servidor.
- Diseño Basic: Ayuda como icono — En la cabecera del diseño Basic, Ayuda se muestra solo como icono y del mismo color que los de al lado.
- Copia de seguridad por FTP: modo pasivo, SSL y tiempo de espera — Las tres opciones ya se guardaban pero no aparecían en el panel de copias de seguridad. Ahora se pueden configurar.
- Rutas se abre como módulo completo desde el menú — El menú Rutas del mapa abre ahora una ventana con la lista, las asignaciones, los recorridos, la importación y la exportación, como los demás módulos. El formulario de asignaciones se organiza en pestañas (principal, configuración, horario y asignadas), con la misma rejilla de horario que las alertas. Crear y editar una ruta se sigue haciendo sobre el mapa, y al terminar se vuelve al módulo; el botón de capa Rutas conserva la lista lateral para encender y apagar rutas.
- Ayudas emergentes uniformes en todo el sistema — Todos los botones, enlaces e iconos que tienen un texto de ayuda lo muestran ahora con la misma ayuda emergente del tema al pasar el ratón, en lugar del recuadro gris del navegador. Los campos de formulario y las celdas de tabla siguen como estaban.
- Chat: queda claro con qué equipos se puede chatear — El botón + del chat explica ahora que solo aparecen los equipos que reportan con la app rastreadora. Además, los mensajes muestran la hora en tu formato, la app recibe el aviso en tu idioma y en la lista solo se refresca lo que cambió.
- Los equipos Teltonika muestran sus atributos sin tener que asignarles el modelo — El servidor de rastreo interpreta los datos de un Teltonika segun el modelo del equipo: sin modelo, valores como el nivel de bateria, el combustible, el ICCID o las entradas analogicas salian como numeros sin nombre. Asignarlo equipo por equipo no era viable en una flota grande, asi que ahora la plataforma asume un modelo de la serie FMB para todo Teltonika que no tenga uno puesto, y lo publica sola. El modelo que se asigne a un equipo concreto sigue mandando sobre ese valor, asi que las flotas mixtas no cambian. Ademas, el listado de modelos Teltonika pasa de 5 a 43, con entradas genericas por familia para quien no sepa el modelo exacto de su equipo.
- Cinco capas de mapa nuevas — Se añadieron LocationIQ Dark y Light y tres capas de Geoapify, y LocationIQ pasa a usar clave propia en vez de una de terceros.
- Los informes con mapa dejan de fallar y permiten elegir la capa — OpenStreetMap estaba bloqueando las imágenes del mapa dentro de los informes. Ahora se respeta su política de uso, la capa se elige por informe y las imágenes se cargan solo cuando el mapa se ve.
- El selector de mapa solo muestra las capas que funcionan — Hay capas que solo andan en el mapa clásico y otras solo en el nuevo. Cada motor lista las suyas y ya no se pierde la capa elegida al cambiar de motor.
- Filtro «tiene cámara» en el listado de equipos — El filtro de equipos tiene una casilla nueva para ver solo los vehículos con cámara.
- Las grabaciones de la tarjeta SD usan los canales reales del equipo — El selector de canales lee los canales que el equipo tiene de verdad y suma la opción «todos los canales». Elegir un canal ahora sí filtra la lista.
- Color del texto del formulario de acceso — Apariencia tiene un color nuevo para el texto de dentro del panel de acceso, que se perdía sobre fondo oscuro.
- Los equipos JT808 informan inicio y fin de viaje — La plataforma ya guarda la hora y las coordenadas que el equipo manda al empezar y al terminar un viaje, en vez de descartarlas.
- Página de ayuda de los eventos de cámara — El Centro de Ayuda explica ahora los eventos ADAS, DMS, BSD y de vídeo: qué dispara cada uno y qué se ve al saltar.
- Theme Pro: iconos propios en el menú — Dispositivos, Área y el resto del menú usan los iconos del propio tema, y Tareas queda dentro de Herramientas en este diseño.
- Un aspecto más suave para los marcadores agrupados — Cuando varios vehículos quedan uno encima de otro, el número se muestra ahora sobre un círculo sólido con un resplandor suave detrás, en lugar de los anillos cortados. El color sigue indicando cuántos hay agrupados.
- Las difusiones ya no se cortan a media faena — Un servidor de correo lento o un push lento mataban el envío a los treinta segundos, y el mensaje se quedaba una hora esperando su reintento. El límite es ahora de dos minutos. Es la explicación más probable de las difusiones que se daban por enviadas y nunca llegaban.
- La conversión de video ya no espera detrás de las importaciones — Convertir una grabación compartía la fila con las importaciones y la generación de informes. Ahora corre en su propio proceso, así que una conversión larga no retrasa el resto del trabajo.
- Las confirmaciones de alerta se ejecutan una sola vez — Las comprobaciones que confirman una alerta unos segundos después de detectarla, las de nivel de combustible, cambio brusco de sensor, inicio de movimiento y corte de corriente, se ejecutan ahora una única vez, las tome el proceso que las tome. Según quién tomara el trabajo, alguna podía ejecutarse tres veces y emitir el mismo evento más de una vez.
- El menú Registros se queda marcado — Abrir cualquiera de las páginas que cuelgan de Registros, como solicitudes de baja, integraciones, alertas de clientes o registros push, mantiene ahora esa entrada marcada en el menú lateral.
- La API de la app también reproduce grabaciones — La API móvil gana los métodos para iniciar una reproducción, controlarla (pausa, salto, avance rápido) y leer la cola de descargas en segundo plano. Ya podía listar y descargar grabaciones; ahora una aplicación también puede mostrarlas, y los tres métodos quedan descritos en la documentación de la API.
Correcciones
- La puntuación EcoDrive ya es la misma en pantalla, informe y Excel — Los cinco informes de EcoDrive daban puntuaciones que no se podían comparar entre sí: en unos 0 era lo mejor y en otros 100, y el exceso de velocidad se penalizaba por número de veces en unos y por duración en otros. Ahora los cinco usan la misma escala del módulo, donde 100 es conducción perfecta, y el mismo semáforo de colores. Además, el informe EcoDrive entregaba en Excel una puntuación distinta de la que mostraba en pantalla: el archivo dejaba fuera los giros bruscos y calculaba el exceso sobre una columna vacía. Se corrigió, y ese informe gana la columna de giros bruscos, el número de excesos y un resumen del periodo con viajes, tiempo en movimiento, ralentí, horas de motor y combustible.
- Siete informes que no abrían vuelven a funcionar — Los informes de listas de chequeo, gastos del equipo, geocercas por turno, paradas en geocerca (normal y por turno), información general por turno y limpieza diaria fallaban al generarse. El de listas de chequeo no abría nunca, para ningún usuario. Los demás fallaban cuando el informe estaba guardado o programado desde antes de que se añadiera alguna de sus opciones. Ahora, si falta una opción, se usa el mismo valor que propone el formulario en vez de cortar el informe. También se corrigió el de limpieza diaria cuando el vehículo seguía dentro de una zona al terminar el periodo consultado: antes se quedaba sin hora de salida y fallaba.
- La ruta no se veía al editarla con la capa apagada — Si mostrar rutas estaba desactivado en el mapa, al pulsar editar la ruta aparecía y desaparecía al instante, y lo mismo al cambiarle el color. Ahora se ve mientras se edita y vuelve a ocultarse al guardar o cancelar. Corregido igual en los puntos de interés.
- El selector de ubicación se llevaba el mapa principal — Abrir el selector de ubicación de una tarea reiniciaba el mapa de la pantalla y se llevaba consigo capas como la de aeronaves. Ya no toca el mapa principal.
- Ventanas que quedaban muertas al reabrirlas — Al cerrar y volver a abrir Chat, Tareas o Mensajes de difusión, el buscador, la paginación y los contadores dejaban de responder, y el selector de ubicación salía en blanco. Corregido en los cuatro casos.
- Contenido inyectado en las ventanas emergentes — El nombre y la posición de un popup se imprimían sin escapar en la tabla del administrador, de modo que un revendedor podía inyectar código que se ejecutaba en el navegador del administrador. Ahora se escapan, y la posición y las reglas se validan en el servidor.
- Las ventanas emergentes eran accesibles por dirección directa — El menú solo las mostraba a administrador y revendedor, pero operadores y supervisores podían entrar escribiendo la dirección. Ahora el propio módulo lo impide.
- Un popup invisible capturaba los clics del mapa — La ventana emergente ocupaba su sitio antes de mostrarse y se comía los clics sobre el mapa; además podía quedar por debajo de los paneles laterales.
- El popup se daba por leído antes de tiempo — Se marcaba como leído al pintarse, así que bastaba con navegar antes de que terminara para no volver a verlo nunca. Ahora se marca al cerrarlo.
- Los contadores del mapa no cuadraban con el listado — Los indicadores de estado contaban solo los equipos marcados en el mapa, Vencido y No conectado se quedaban siempre en cero, y al pulsar uno la lista no coincidía con el número. Ahora el contador y el filtro usan el mismo criterio y se resuelven en el servidor.
- Un conjunto de tareas nuevo no aparecía en el desplegable — Al crear un conjunto desde su pestaña había que cerrar y volver a abrir la ventana para poder elegirlo en Nueva tarea. Ahora la lista se recarga al crear, editar o borrar.
- Los mapas de CARTO dejaban de cargar sin avisar — CARTO empezó a exigir una clave de API para sus mapas base. Se añade el campo en Configuración del servidor y, mientras no haya clave, esas capas no se ofrecen en vez de quedarse en gris.
- Textos sin traducir en las tablas de consulta — Las tablas mostraban No data available in table cuando no había resultados. Traducido en todas.
- Entrar en Rutas desde Dispositivos mostraba el panel vacío — Al pasar de Dispositivos a Rutas el panel se quedaba en blanco hasta pasar por Geocercas y volver. El cambio de pestaña ya no depende de cuál estuviera abierta antes.
- El interruptor «Visible» de la tabla de rutas no hacía nada — El interruptor leía datos que la vista nunca escribía, así que nunca cambiaba la visibilidad de la ruta.
- Los botones de la rejilla horaria movían la tabla equivocada — Con una alerta abierta detrás de otra ventana, los botones de días y laborables de una rejilla actuaban sobre la otra. Ahora cada rejilla responde solo a sus botones, y reabrir una ventana ya no acumula manejadores de click.
- Los horarios se corrían una hora con el cambio de hora — Un horario guardado en verano empezaba una hora tarde al cambiar la hora, tanto en alertas como en asignaciones de ruta. Ahora los horarios se guardan en hora local y se convierten en el momento de comprobarlos, así que el cambio de hora ya no los mueve. Los horarios que ya existían siguen funcionando igual y se corrigen solos la próxima vez que se guarden.
- Asignar una ruta podía borrar un horario ya puesto — Añadir dispositivos a una ruta, o importar asignaciones desde un archivo, dejaba sin horario ni ancho de corredor a las asignaciones que ya existían. Ahora esos ajustes se respetan salvo que los cambies de verdad.
- Editar una ruta reseteaba quién la asignó y cuándo — Cambiar el nombre de una ruta marcaba todas sus asignaciones como recién hechas por quien editó. Ese historial se conserva, y solo las asignaciones nuevas registran fecha.
- Alerta de cambio brusco de sensor: ya cierra el ciclo completo — Un solo cambio real generaba varios eventos seguidos; en modo porcentaje no confirmaba nunca en sensores de rango corto y siempre en tanques grandes; una confirmación de 0 segundos no se guardaba; y el sensor específico se guardaba por un identificador que solo valía para un equipo. Ahora hay un tiempo de espera tras confirmar, el umbral se compara en las mismas unidades, el 0 se respeta y se rechaza al guardar el modo porcentaje sobre un sensor sin rango.
- Cámaras: solo quien tiene acceso al equipo las ve y las edita — Conociendo el identificador se podían listar, crear o mover a otro equipo las cámaras de equipos ajenos, tanto las de grabación como las de vídeo en vivo.
- La baja de cuenta ya no se dispara con un enlace — La solicitud de eliminación por API ya no se acepta como un simple enlace: exige una petición de envío. Además, un gerente solo ve y resuelve las solicitudes de su propia rama.
- Asignar usuarios a una alerta se limita a los propios — Al crear o editar una alerta por API, los identificadores de usuarios fuera del alcance se ignoran.
- Un cliente no se puede colgar de un gerente ajeno — Al guardar un cliente, el gerente debe ser uno mismo o alguien de la propia rama.
- El enlace de la tarjeta pública no se puede mover a otra tarjeta — Al editar un enlace, la tarjeta a la que pertenece queda fija.
- Las importaciones solo aceptan usuarios del propio alcance — En la importación de dispositivos y de tareas, el usuario o correo indicado en el fichero debe estar dentro del alcance de quien importa.
- Recuperar contraseña respeta el bloqueo de cambio — Si al usuario se le bloqueó el cambio de contraseña, la recuperación por correo (web y API) tampoco la cambia.
- Los mensajes de difusión ya no marcan como enviado lo que falló — Un correo rechazado o una notificación push que no llegó a ningún dispositivo se registran como fallidos. Los tokens push inválidos se eliminan solos y dejan de generar errores.
- Entrar con Google: sin altas automáticas y con verificación — No se crean cuentas nuevas si el acceso con Google no está habilitado por defecto, y el token que envía la app se verifica contra Google antes de aceptarlo.
- Un Excel ilegible avisa en vez de dar error — Importar un fichero Excel dañado devolvía un error 500; ahora muestra «formato inválido» y deja constancia en el registro.
- Un fallo de la caché de licencia ya no bloquea el panel — Una caché de licencia ilegible se trataba como denegación y todo el panel respondía 503. Ahora se descarta y se vuelve a sincronizar. La página de salud y las rutas que usan los equipos y la app del conductor no pasan por ese bloqueo.
- Alertas de combustible: la confirmación ya no borra el bloqueo de otra detección — Si la confirmación tardaba más que el bloqueo, al terminar borraba el de la detección siguiente y se perdían o duplicaban eventos. Ahora solo libera el suyo.
- Los comandos en cola ya no se envían dos veces — Cuando un equipo se conectaba dos veces seguidas, el mismo comando pendiente podía salir dos veces. La fila se reserva antes de enviar.
- Un fallo del módulo de rutas ya no interrumpe el guardado de posiciones — El seguimiento de recorridos corre dentro del guardado de posiciones; un error interno suyo perdía el lote. Ahora se registra y el guardado continúa.
- Rutas: grupo validado por dueño y errores de exportación visibles — Al guardar una ruta solo se acepta un grupo propio. Si una exportación falla, se muestra el aviso en vez de una descarga vacía.
- Mapa nuevo: correcciones de paridad con el clásico — Segundo clic en un marcador, lista del clúster, popup al cambiar de equipo, seguimiento durante la actualización, nombres al pasar el ratón, borrado de puntos de interés, colas e imprecisión en historial, zoom con los botones y cambio de capa sin perder la selección.
- Guardar el token de notificaciones desde la app daba error — Cinco métodos de la API fallaban con error 500 al registrar el token push tras un despliegue. Además, los errores de bloqueo de SIM, cancelación de suscripción y tres informes que se tragaban en silencio ahora quedan registrados.
- El informe RAG ya no avisa por la columna de duración — El informe de conducción (RAG) mostraba un aviso por una columna que ese tipo de informe no calcula.
- Token de acceso único: solo para usuarios del propio alcance — Un gerente podía pedir un token de acceso para cualquier correo, incluido el del administrador, y entrar con su cuenta. Ahora solo para usuarios de su propia rama, y el token vale una sola vez aunque se intente usar dos veces a la vez.
- Eventos personalizados: la condición «entre» funcionaba al revés — Una condición de tipo «entre 10 y 20» se cumplía fuera del rango y fallaba dentro, porque el tipo se guardaba como texto. Corregido y cubierto con una prueba.
- Historial: ya no muestra el valor actual en posiciones antiguas — Para sensores que reportan de vez en cuando, el historial y los informes rellenaban los huecos con el valor de ahora, aunque la posición fuera de hace semanas. Ahora solo se usa el último valor conocido anterior a cada posición.
- Número de factura de gastos por cuenta — La numeración de facturas es por usuario, pero el sistema exigía que fuera única en todo el servidor: un usuario chocaba con los números de otro y podía saber si ese número existía en otra cuenta. Ahora cada cuenta lleva su propia numeración. Requiere ejecutar migraciones.
- Pago con tarjeta: el cobro se comprueba contra el pedido — El pago con tarjeta solo miraba si el cobro había ido bien, no si correspondía al pedido: un cobro pequeño o ya usado podía activar un pedido mayor, volver a la página de confirmación sumaba otro periodo, una cancelación que el proveedor rechazaba se daba por hecha en silencio, y el pedido no se comprobaba contra su dueño. Ahora se comparan importe, moneda y pedido, la confirmación no se repite, se avisa cuando el proveedor no confirma la cancelación y el pedido tiene que ser propio.
- Cambiar la contraseña cierra también la sesión de las apps — Al cambiar la contraseña se cerraba la sesión web y las notificaciones, pero la app seguía entrando con su sesión anterior. Ahora también se cierra.
- Informe de paradas y motor: errores registrados y textos traducibles — Un error de base de datos al generar el informe se perdía en silencio y los rumbos y el enlace al mapa salían siempre en español. Ahora el error se registra y los textos siguen el idioma del usuario.
- Importar CSV: una fila con columnas de más ya no corta la importación — Una fila con un número de columnas distinto al de la cabecera detenía toda la importación con un error. Ahora esa fila se omite y el resto se importa.
- Exportar historial: cada usuario solo descarga sus propios ficheros — El enlace de descarga del historial exportado no comprobaba quién lo pedía. Ahora solo sirve los ficheros generados por el propio usuario.
- La API de la app indica si el equipo tiene cámara también en lista y mapa — El dato de cámara solo venía en la ficha completa; la lista y el mapa de la app no lo recibían.
- Los fallos al guardar posiciones vuelven a quedar en el registro — Desde junio, un error al guardar posiciones solo se reportaba al servicio de errores externo; si no estaba configurado, no quedaba rastro. Ahora también se escribe en el registro del servidor.
- Borrar un conjunto de tareas no refrescaba la tabla — Al confirmar el borrado de un conjunto de tareas la tabla no se recargaba (la función que la refresca se perdía al compilar). Corregido; requiere recompilar los scripts.
- Una alerta sin usuario ya no detiene el chequeo de alertas — Si quedaba una alerta de un usuario borrado, el proceso periódico que revisa las alertas se interrumpía y no seguía con las demás. Ahora esa alerta se omite.
- El historial de comandos no muestra el teléfono de otros usuarios — En el historial de comandos enviados aparecía el teléfono de quien envió cada comando, visible para cualquier usuario del equipo. Ahora solo se muestra si tienes permiso sobre ese usuario.
- Cerrar una ventana abierta sobre otra ya no rompe la de abajo — Al abrir una ventana encima de otra (por ejemplo los recorridos desde la lista de rutas) y cerrarla, la de abajo perdía el fondo oscuro y la página volvía a desplazarse detrás. Ahora la ventana de abajo se conserva intacta. Requiere recompilar los scripts.
- Chat: los permisos de ver y editar ya se aplican — Un usuario con el permiso de chat desactivado podía abrir y escribir conversaciones desde la web. Ahora los permisos de ver, editar y eliminar del chat se respetan. Además, los gerentes y administradores ven las conversaciones de todos los equipos a los que tienen acceso, y cada participante puede borrar sus propios mensajes.
- Chat: envío, actualización y limpieza más fiables — Si un mensaje no se podía enviar, el texto se perdía sin aviso; ahora se conserva y se muestra el error. La conversación seguía refrescándose aunque fallara la conexión en tiempo real, el contador del diseño Material no se actualizaba, buscar desde la segunda página no devolvía nada, podían crearse dos conversaciones para el mismo equipo, los usuarios asignados a un equipo después de crear su chat no recibían avisos, y al borrar un equipo o un usuario quedaban restos en el chat. Todo corregido.
- Los avisos de pago de Paydunya vuelven a entrar — La comprobación de autenticidad del aviso de pago no coincidía con lo que envía la pasarela, así que ningún aviso legítimo pasaba y el pago no se activaba solo. Ahora se comprueba como indica su documentación.
- Las grabaciones pedidas por FTP no llegaban — La cámara aceptaba el comando y no subía nada, así que el clip nunca aparecía.
- La alerta de duración de encendido saltaba con el vehículo en movimiento — La alerta de ralentí contaba el tiempo de encendido aunque el vehículo no estuviera detenido.
- Los distribuidores no podían elegir la capa de mapa en los informes — El selector de mapa de los informes no les mostraba ninguna capa.
- Crear una ruta y cancelar dejaba el mapa en modo dibujo — Tras cancelar, el siguiente clic en el mapa seguía agregando un punto.
- El panel seguía diciendo «Dispositivos» al crear una ruta — El título del panel lateral no acompañaba al formulario de rutas.
- Error en la consola al cargar el banner superior — El script del banner corría antes de que la página estuviera lista.
- La ficha de cliente no abría en algunos idiomas — Una traducción guardada como lista rompía las pantallas de crear y editar cliente.
- Un informe no abría — Al abrirlo se llamaba a un método que ya no existía.
- Dar de alta un equipo reiniciaba el servicio de rastreo — Crear un equipo reiniciaba el servicio de rastreo siempre, que quedaba fuera de línea unos segundos y hacía que la aplicación mostrara «Unable to connect to tracker server». En un servidor fueron 214 reinicios en una semana, hasta tres en medio minuto. El reinicio ocurre ahora solo cuando se cambia de verdad el reenvío de datos.
- Las geocercas circulares podían dejar de disparar — En instalaciones donde nunca se creó una función opcional de la base de datos, toda comprobación contra una geocerca circular fallaba en silencio: la alerta sencillamente no saltaba. La distancia se calcula ahora sin esa función, con el mismo resultado al metro.
- No se podían contratar los planes gratuitos — Contratar un plan gratuito terminaba en error porque su página de confirmación no existía. La página ya está, y confirmar activa la suscripción de verdad en lugar de dar por bueno un pago que no activaba nada.
- Contenido inyectado a través de un popup o del banner superior — El HTML de un popup y el del banner superior se publicaban tal cual se habían escrito, así que quien pudiera crear uno podía ejecutar código en el navegador de todos los que lo vieran. Ahora se limpia antes de mostrarlo: se conservan el formato, las listas y los enlaces, y se quitan los scripts y los manejadores de eventos.
- Los informes programados podían dejar de generarse — Si la ejecución diaria se saltaba un informe por cualquier motivo, su bloqueo quedaba puesto y ese informe no se volvía a generar hasta que el bloqueo caducara. El bloqueo se libera ahora en todas las salidas.
- Las coordenadas de la búsqueda de geocercas no se comprobaban — La latitud y la longitud que se envían al preguntar qué geocercas contienen un punto entraban en la consulta sin validarse. Ahora se comprueban, y lo que no sea una coordenada no devuelve ningún resultado.
- El botón «añadir sensor» no hacía nada — En el widget de sensores el botón para añadir un sensor apuntaba, por una errata, a una ventana que no existe, así que al pulsarlo no ocurría nada.
- Editar una alerta de cambio brusco de sensor fallaba — Abrir para editar una alerta del tipo «cambio brusco de sensor» devolvía un error del servidor en vez del formulario. Ahora abre con normalidad.
- Dos columnas del informe de cinturón mostraban su nombre interno — En el informe de cinturón de seguridad las columnas de duración y puntuación imprimían su clave interna en lugar del encabezado, por una errata. Ahora se leen bien.
- Arrancar el video en vivo mostraba un mensaje de error interno — Cuando el video en vivo no podía arrancar, al navegador le llegaba el texto del error interno. Ahora se muestra un mensaje claro y el detalle va al registro de errores.
- La alerta de inicio de movimiento podía confirmarse con datos viejos — La confirmación de la alerta de inicio de movimiento se ejecutaba antes de que las posiciones nuevas estuvieran guardadas, así que podía juzgar con datos viejos. Ahora espera unos segundos antes de comprobar.
- Una alerta de combustible podía liberar el turno de otra detección — Cuando dos detecciones de nivel de combustible se solapaban, el fallo de una liberaba el bloqueo de la otra, y las dos podían acabar procesándose a la vez.
- Cinco etiquetas se mostraban con su nombre interno — Filtro, plan del equipo, tipo de equipo e IMEI, sin PDI y pedido no encontrado aparecían con su clave interna en todos los idiomas. Ya están traducidas.
Soporte de Dispositivos
- Grabadoras MDVR Howen (H-Protocol) — Primera fase del soporte de las grabadoras MDVR Howen por su protocolo propio: registro, latido, posición, estado y su catálogo de alarmas, que cubre asistencia a la conducción (colisión, salida de carril, peatón, señales de tránsito, frenada brusca), vigilancia del conductor (fatiga con nivel, teléfono, fumar, ojos cerrados, bostezo, cambio de conductor) y punto ciego. También se leen el encendido, los viajes, la tarjeta del conductor y el kilometraje. Los comandos hacia la grabadora y su video llegan en la fase siguiente.