Ir al contenido principal

🛰️ Integración: GPS

Aprende cómo integrar datos de posicionamiento GPS de tus vehículos con SimpliRoute para tener trazabilidad en tiempo real desde la plataforma.

Escrito por Tauriel

SimpliRoute 🚀 permite integrar datos de posicionamiento GPS de tus vehículos directamente a la plataforma para tener trazabilidad en tiempo real. Esta integración está orientada a desarrolladores o proveedores de GPS y requiere conocimientos técnicos.


Endpoint y autenticación 🔑

Para enviar datos GPS a SimpliRoute debes realizar una llamada con método POST al siguiente endpoint:

Debes incluir los siguientes parámetros en el Header de la solicitud:

  • Content-Type: application/json

  • Authorization: ApiKey <<token>>

Notas: Puedes obtener tu token de API desde Ajustes / Perfil / Mi API Token en la plataforma.


Integración básica de datos GPS 🔗

El Payload de la solicitud debe enviarse en formato JSON con los siguientes campos:

  • latitude: número decimal de hasta 6 dígitos decimales.

  • longitude: número decimal de hasta 6 dígitos decimales.

  • timestamp: fecha y hora en UTC con formato YYYY-MM-DD HH:II:SS-00. Ejemplo: 2019-02-20 10:35:00-00

  • vehicleId: ID del vehículo en el sistema SimpliRoute.

  • providerName: nombre del proveedor de información GPS de los vehículos.

Ejemplo de objeto JSON:

{
  "latitude": -33.4311548,
  "longitude": -70.5701852,
  "timestamp": "2019-02-20 10:35:00-00",
  "vehicleId": "<<vehicle_id>>",
  "providerName": "<<proveedor>>"
}


Integración con variables adicionales 🔗

Si necesitas enviar variables adicionales como temperatura, humedad u otras alertas, puedes incluir los siguientes campos opcionales en el Payload:

  • temperature: datos de temperatura. Ver objeto temperature más abajo. (Retro compatible pero deprecado; se recomienda usar el objeto alert.)

  • alert: datos de alerta. Ver objeto alert más abajo.

  • alerts: arreglo de objetos de alerta para enviar múltiples alertas simultáneamente.

Objeto temperature:

  • value: número decimal con la temperatura en grados Celsius.

  • alert_type: tipo de alerta: min cuando la temperatura es inferior al límite establecido, o max cuando es mayor.

  • alert_message: mensaje para el supervisor encargado.

Objeto alert:

  • name: identificador del tipo de alerta.

  • type: tipo de alerta.

  • value: valor de la alerta.

  • message: mensaje para el supervisor encargado.


Alertas disponibles 💥

Puedes enviar los siguientes tipos de alerta a través del campo alerts:

  • temperature — Temperatura

  • geofence — Geocerca

  • speed — Velocidad

  • humidity — Humedad

  • door — Puertas

  • brake — Detención

  • temperature_2 — Temperatura 2

  • temperature_3 — Temperatura 3

  • jamming — Bloqueo de señal GPS

  • tiredness — Sensor de fatiga

  • fuel_cap — Apertura de tapa de combustible

  • fuel_variation — Variación brusca de combustible

  • driver_door_open — Apertura puerta del conductor

  • speeding — Exceso de velocidad

  • loss_of_load — Desacople de carga

  • no_smoking / smoking — Alerta no fumar

  • Demurrage — Sobreestadía

Ejemplo de payload completo con alertas:

{
  "latitude": -33.4311548,
  "longitude": -70.5701852,
  "timestamp": "2017-10-19 09:12:02-00",
  "vehicleId": "<<vehicle_id>>",
  "temperature": {
    "value": 2.4,
    "alert_type": null,
    "alert_message": null
  },
  "alert": {
    "name": "door",
    "type": "open",
    "value": true,
    "message": "open door alert"
  },
  "alerts": [
    {
      "name": "general",
      "type": "ºC",
      "value": 4,
      "message": "temperature is lower than 5 degrees"
    }
  ],
  "providerName": "<<provider>>"
}

Respuesta exitosa:

{
  "status": "Tracked",
  "id": "2408269119724499",
  "daily_status": "Updated"
}

Respuesta con alertas inválidas:

{
  "status": "Tracked",
  "id": "2408269119724499",
  "daily_status": "Updated",
  "invalid_alerts": ["invalid_alert"]
}


Frecuencia de envío de datos ⏱️

Para un trazado correcto de las rutas en el mapa, se recomienda la siguiente frecuencia de envío:

  • Flotas de hasta 20 vehículos: máximo 1 dato por vehículo cada 20 segundos.

  • Flotas de más de 20 vehículos: 1 dato por vehículo por minuto.


Pérdida de señal y envío de datos locales 🛰️

Si uno o más vehículos circulan por zonas sin cobertura satelital o experimentan pérdida de señal, se recomienda utilizar colas (queues) para almacenar los datos que no pudieron enviarse y enviarlos posteriormente cuando la señal se restablezca.

Al restablecer la señal, el sistema puede enviar los datos acumulados con un tiempo máximo de 10 segundos entre cada envío, hasta completar la totalidad de los objetos en cola.

Notas: El intervalo de 10 segundos aplica únicamente para datos almacenados localmente por pérdida de señal. Los vehículos con cobertura activa deben mantener la frecuencia recomendada indicada anteriormente. Los datos deben enviarse de manera independiente — un arreglo con todos los objetos puede provocar errores en la comunicación.


¿Ha quedado contestada tu pregunta?