Saltar al contenido principal

Caso Real: Sistema GPS de Flota con Traccar y Dolibarr

Módulo GPS para Dolibarr ERP: hardware SinoTrack, Traccar open source, mapas en tiempo real con Leaflet y optimización de rutas con IA.

Fran Cobos 7 min de lectura 1328 palabras

Tabla de contenidos

TL;DR

La empresa necesitaba rastrear su flota de vehículos sin depender de plataformas SaaS caras. Seleccioné el hardware GPS, lo instalé físicamente en los vehículos, migré de la plataforma propietaria a Traccar (open source), y desarrollé un módulo completo en Dolibarr con mapas en tiempo real, histórico de rutas y optimización con IA. Resultado: control total de la flota con coste recurrente cero.

<video src=“/videos/gps.mp4” controls muted playsinline class=“w-full rounded-xl my-6 shadow-lg” style=“max-height: 480px; object-fit: cover;”

Tu navegador no soporta vídeo HTML5.


El problema de la empresa

La empresa tenía vehículos en ruta pero cero visibilidad:

  • No sabían dónde estaban los vehículos en tiempo real
  • Las rutas no se optimizaban — los conductores elegían su camino
  • No había histórico de recorridos para auditorías
  • Las soluciones SaaS del mercado costaban 15-30€/vehículo/mes y los datos quedaban en servidores ajenos

Lo que me pidieron: “Necesitamos ver dónde están nuestros coches y que sea nuestro, no de otro.”


Fase 1: Selección del hardware GPS

Investigué 8 dispositivos GPS 4G. Requisitos:

RequisitoPor qué
Compatible con TraccarPara no depender de plataformas propietarias
Conectividad 4G/LTELas redes 2G/3G están cerrando
Configuración por SMSPara modificar parámetros sin acceso físico
Alimentación por vehículoSin baterías que cambiar
Precio < 40€/unidadEscalable a toda la flota

Elegí el SinoTrack ST-901 4G: 25€/unidad, LTE, compatible con Traccar, configuración por comandos SMS/AT, alimentación 12V-80V directa del vehículo.

Instalación física

No es solo comprar el GPS y enchufarlo. Instalé cada dispositivo personalmente:

  1. Conexión a alimentación del vehículo (12V directo desde fusiblera)
  2. Ocultación del hardware bajo el salpicadero (antirrobo)
  3. Verificación de señal GPS en frío y en movimiento
  4. Configuración por SMS: intervalo de reporte (30s), servidor de destino, APN del operador
# Comandos SMS reales de configuración del ST-901
804{password} {ip_traccar} {puerto}     # Servidor de destino
805{password} 30                         # Intervalo de reporte (30 segundos)
TIMER{password} 30                       # Frecuencia de envío

Fase 2: Migración de plataforma propietaria a Traccar

El GPS viene configurado de fábrica para enviar datos a los servidores de SinoTrack. Su plataforma web funciona pero:

  • Coste mensual por dispositivo
  • Cero personalización del dashboard
  • Datos en sus servidores (China) — problema de RGPD
  • API limitada — no se puede integrar con Dolibarr

La solución: Traccar como hub intermedio

┌──────────┐     ┌─────────────┐     ┌──────────────┐     ┌──────────┐
│ GPS      │────▶│  Traccar    │────▶│  API REST    │────▶│ Dolibarr │
│ ST-901   │4G   │  (propio)   │     │  propia      │     │  Módulo  │
│ en coche │     │  Docker     │     │  PHP         │     │  GPS     │
└──────────┘     └─────────────┘     └──────────────┘     └──────────┘

Traccar es open source, soporta 200+ protocolos de GPS y tiene API REST. Lo desplegué con Docker en el mismo servidor Linux de la empresa:

# docker-compose.yml para Traccar
services:
  traccar:
    image: traccar/traccar:latest
    ports:
      - "8082:8082"   # Web UI
      - "5013:5013"   # Protocolo SinoTrack
    volumes:
      - ./traccar.xml:/opt/traccar/conf/traccar.xml
      - traccar-data:/opt/traccar/data

Redirigí los GPS del servidor SinoTrack a mi servidor Traccar cambiando la IP de destino por SMS. En 10 minutos, todos los GPS reportaban a mi infraestructura.


Fase 3: Módulo Dolibarr con mapas en tiempo real

Con los datos fluyendo a Traccar, desarrollé un módulo completo para Dolibarr que consume la API de Traccar y añade lógica de negocio.

Mapas interactivos con Leaflet.js

// Mapa de la flota en tiempo real
const map = L.map('fleet-map').setView([40.4168, -3.7038], 6);
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png').addTo(map);

// Marcador por cada vehículo activo
vehicles.forEach(v => {
  const marker = L.marker([v.lat, v.lng], { icon: vehicleIcon })
    .bindPopup(`
      <b>${v.plate}</b><br>
      Velocidad: ${v.speed} km/h<br>
      Última actualización: ${v.lastUpdate}
    `)
    .addTo(map);
});

¿Por qué Leaflet y no Google Maps? Coste cero. OpenStreetMap + Leaflet no tiene límite de peticiones ni requiere API key de pago. Para una flota de 10-50 vehículos, es la solución correcta.

Funcionalidades del módulo

FuncionalidadImplementación
Tracking en tiempo realPolling a Traccar API cada 30s, actualización de marcadores en mapa
Histórico de rutasConsultas a BD con filtro de fechas, polylines en Leaflet
GeocercasPolígonos definidos por el usuario, alertas al entrar/salir
Alertas de velocidadThreshold configurable por vehículo
Paradas no autorizadasDetección de parada > 15min fuera de zonas permitidas
DashboardsChart.js con km recorridos, tiempo en ruta, paradas por día
Comparación de rutasRuta planificada vs ruta real superpuestas en mapa

Optimización de rutas con IA

Implementé un algoritmo que analiza el histórico de rutas y sugiere optimizaciones:

  • Detecta rutas repetitivas con desvíos innecesarios
  • Sugiere el orden óptimo de paradas (variante del TSP)
  • Calcula ahorro estimado en km y combustible

Retos técnicos reales

1. Volumen de datos GPS

Un GPS reportando cada 30 segundos genera 2.880 registros/día por vehículo. Con 10 vehículos, son 28.800 registros diarios. En un mes, casi 1 millón.

Solución:

  • Índices compuestos en MySQL (device_id, timestamp)
  • CRON job nocturno que consolida posiciones cercanas (< 5m de diferencia)
  • Particionado de tablas por mes para consultas históricas rápidas

2. GPS que deja de reportar

Los GPS a veces pierden señal (garaje subterráneo, zona sin cobertura). El sistema necesita distinguir entre “vehículo parado” y “GPS sin señal”.

Solución: timeout configurable. Si no hay datos en 5 minutos, el marcador cambia a gris con icono de “sin señal”. Si el vehículo reporta velocidad 0, se marca como “parado” con color naranja.

3. Configuración remota del GPS por SMS

Los comandos SMS al GPS tienen sintaxis estricta y no hay feedback visual. Un carácter mal y el GPS no responde.

Solución: desarrollé un panel en Dolibarr que genera los comandos SMS correctos automáticamente. El usuario solo elige “cambiar intervalo a 60s” y el sistema compone el SMS con la sintaxis correcta del ST-901.


Lo que consiguió la empresa

AntesDespués
Cero visibilidad de la flotaTracking en tiempo real de todos los vehículos
Rutas sin optimizarReducción del 15% en km recorridos
Sin histórico6 meses de recorridos consultables
SaaS de terceros (15€/vehículo/mes)Coste recurrente: 0€ (solo datos móviles del GPS)
Datos en servidores externosControl total — datos en servidor propio
Sin alertasAlertas de velocidad, geocercas y paradas anómalas

ROI: el coste del hardware (25€/GPS) + desarrollo se amortizó en 2 meses comparado con la suscripción SaaS anterior.


Stack técnico

  • Hardware: SinoTrack ST-901 4G
  • Plataforma GPS: Traccar (open source, Docker)
  • Backend: PHP + MySQL (módulo Dolibarr)
  • Mapas: Leaflet.js + OpenStreetMap
  • Dashboards: Chart.js + D3.js
  • Infraestructura: Linux, Apache, SSL/TLS, Docker
  • Optimización: Algoritmos de IA para rutas

Lo que aprendí

  1. Open source > SaaS para tracking GPS. Traccar es maduro, estable y gratis. Las plataformas propietarias cobran por algo que puedes tener por cero.
  2. La instalación física importa — un GPS mal instalado da lecturas erráticas. Hay que verificar señal en frío y en movimiento.
  3. El volumen de datos GPS crece rápido — sin consolidación y limpieza automática, la BD se infla en semanas.
  4. Leaflet + OpenStreetMap es perfecto para flotas empresariales. Google Maps no aporta nada por el sobrecoste.
  5. Dolibarr es más extensible de lo que parece — con un módulo bien diseñado puedes integrar casi cualquier funcionalidad.

¿Tu empresa necesita algo similar?

Si necesitas rastreo de flota, integración IoT con tu ERP, o cualquier desarrollo que conecte hardware con software, cuéntame tu proyecto.

Más casos reales:

Fran Cobos

Fran Cobos

Desarrollador Full Stack especializado en IA aplicada, automatización y desarrollo web. Escribo sobre herramientas, tutoriales y casos reales para programadores.

¿Necesitas desarrollo a medida?

Apps web, IA, módulos ERP — cuéntame tu proyecto.