Saltar al contenido principal

POST /api/devices/{deviceId}/alerts

Este endpoint permite enviar datos de alertas para un dispositivo específico en la aplicación de seguimiento satelital. Es útil para actualizar el sistema con nueva información de alertas del dispositivo.

Detalles de la Solicitud

La solicitud se realiza utilizando el método POST en la URL /api/devices/{deviceId}/alerts. Debes reemplazar {deviceId} con el ID real del dispositivo que deseas actualizar.

Parámetros de la Solicitud

Este endpoint requiere el parámetro deviceId que debe incluirse en la ruta de la URL.

ParámetroTipoObligatorioDescripción
deviceIdstringEl identificador único del dispositivo a actualizar.

Parámetros del Cuerpo de la Solicitud

El cuerpo de la solicitud debe incluir un objeto JSON con los datos de la alerta para el dispositivo.

CampoTipoObligatorioDescripción
fromstringFecha y hora de inicio de la alerta, en formato ISO 8601.
tostringFecha y hora de fin de la alerta, en formato ISO 8601.
alertNamestringNoNombre de la alerta por la cual filtrar. Si se omite o es nulo, se devolverán todas las alertas disponibles en el rango de fechas especificado. Consulta la sección de Nombres de Alertas Disponibles a continuación para los valores válidos.

Nombres de Alertas Disponibles

El parámetro alertName acepta valores de cadena de texto específicos correspondientes a los diferentes tipos de eventos rastreados por el dispositivo. Si no se proporciona este campo, la API devolverá todas las alertas del dispositivo dentro del rango de fechas.

Los nombres de alerta válidos son:

Nombre de AlertaDescripción
GPSOffEl GPS está apagado.
GPSNoSignalEl GPS ha perdido la señal.
ForbiddenAreaEl dispositivo entró en un área prohibida (geocerca).
AllowedAreaEl dispositivo salió o entró en un área permitida.
SOSButtonSe presionó el botón de pánico/SOS.
SpeedLimitEl dispositivo excedió el límite de velocidad.
NoMovementTimeEl dispositivo ha estado inactivo/detenido por demasiado tiempo.
Sensor1OnSe activó el sensor 1.
GPSUnpluggedEl dispositivo fue desconectado de su fuente de energía principal.
Sensor1OffSe desactivó el sensor 1.
TemperatureGreaterThanLa temperatura excedió el límite máximo.
TemperatureLowerThanLa temperatura cayó por debajo del límite mínimo.
FuelJumpDownCaída repentina en el nivel de combustible (posible robo).
FuelJumpUpAumento repentino en el nivel de combustible (reabastecimiento).
FuelLessThanEl nivel de combustible está críticamente bajo.
FutureDateEl dispositivo envió una fecha en el futuro.
PastDateEl dispositivo envió una fecha en el pasado.
Sensor2OnSe activó el sensor 2.
Sensor2OffSe desactivó el sensor 2.
Sensor3OnSe activó el sensor 3.
Sensor3OffSe desactivó el sensor 3.
Sensor4OnSe activó el sensor 4.
Sensor4OffSe desactivó el sensor 4.
ExpiredDateLos datos han expirado.
MileageAlerta de kilometraje activada.
VibrationVibración detectada.
RPMLímite de RPM excedido.
CheckPointSe alcanzó un punto de control.
CheckAreaSe cruzó un área de control.
SpeedLowerLa velocidad cayó por debajo de un límite establecido.
OfflineEl dispositivo se desconectó (offline).
LowBatteryLa batería interna del dispositivo está baja.
BatteryVoltageEl voltaje de la batería principal está fuera de rango.
SleepModeEl dispositivo entró en modo de suspensión/ahorro de energía.
Temperature2LessThanLa temperatura secundaria cayó por debajo del límite mínimo.
Temperature2GreaterThanLa temperatura secundaria excedió el límite máximo.
RouteDesviación de ruta detectada.
Sensor1TimeSe alcanzó el límite de tiempo específico del sensor 1.
Sensor2TimeSe alcanzó el límite de tiempo específico del sensor 2.
Sensor3TimeSe alcanzó el límite de tiempo específico del sensor 3.
Sensor4TimeSe alcanzó el límite de tiempo específico del sensor 4.
SensorAccumulated1TimeEl tiempo acumulado en el sensor 1 excedió el límite.
SensorAccumulated2TimeEl tiempo acumulado en el sensor 2 excedió el límite.
SensorAccumulated3TimeEl tiempo acumulado en el sensor 3 excedió el límite.
SensorAccumulated4TimeEl tiempo acumulado en el sensor 4 excedió el límite.
FuelJumpDown2Caída repentina en el nivel de combustible del tanque secundario.
FuelJumpUp2Aumento repentino en el nivel de combustible del tanque secundario.
FuelLessThan2El nivel de combustible del tanque secundario está críticamente bajo.
AttributeEqualsSe cumplió la condición de igualdad de un atributo personalizado.
AttributeLessThanSe cumplió la condición de menor-que de un atributo personalizado.
AttributeGreaterThanSe cumplió la condición de mayor-que de un atributo personalizado.
HarshBrakingFrenado brusco o repentino detectado.
HarshAccelerationAceleración brusca o repentina detectada.
AuthenticationFailedFalló la autenticación del dispositivo o del conductor.
IdleTimeEl vehículo ha estado en ralentí por demasiado tiempo.

Autenticación Requerida

La autenticación requerida para utilizar el endpoint es mediante un token Bearer. Este método de autenticación implica que cada solicitud debe incluir un encabezado de autorización con un token de acceso válido. Este token Bearer actúa como una credencial que verifica la identidad del usuario o aplicación que realiza la solicitud, asegurando que solo las entidades autorizadas puedan modificar la información del usuario. Al requerir este tipo de autenticación, el sistema garantiza un nivel elevado de seguridad y control de acceso, protegiendo los datos de los usuarios contra accesos no autorizados.

Ejemplo de Solicitud

POST /api/devices/device123/alerts HTTP/1.1
Host: api.plaspy.com
Authorization: Bearer {token}
Content-Type: application/json

{
"from": "2024-06-01T00:00:00Z",
"to": "2024-06-01T23:59:59Z",
"alertName": "Speeding Alert"
}

Parámetros de Respuesta

La respuesta de este endpoint incluye detalles sobre el éxito de la operación y cualquier error que pueda haber ocurrido.

CampoTipoObligatorioDescripción
successbooleanIndica si la solicitud fue exitosa.
errorstringNoMensaje de error en caso de que la solicitud falle.
apiUsageintegerNoUso de la API en la solicitud actual.
apiDailyUsageintegerNoUso diario de la API.
alertsarrayNoLista de objetos de alerta si la solicitud fue exitosa. Cada objeto contiene información detallada sobre la alerta.

Dentro del campo alerts, el objeto tiene los siguientes campos:

CampoTipoObligatorioDescripción
dateTimestringFecha y hora de la alerta.
latitudenumberLatitud de la alerta.
longitudenumberLongitud de la alerta.
textstringNoTexto descriptivo de la alerta.
notificationsarrayNoLista de notificaciones.
alertsarrayNoLista de alertas asociadas.

Ejemplo de Respuesta Exitosa

{
"success": true,
"apiUsage": 150,
"apiDailyUsage": 3000,
"alerts": [
{
"dateTime": "2024-06-01T12:00:00Z",
"latitude": 40.712776,
"longitude": -74.005974,
"text": "Speeding Alert",
"notifications": ["Email", "SMS"],
"alerts": ["High Speed"]
}
]
}

Ejemplo de Respuesta de Error

Respuesta de Error 400 (Bad Request)

{
"success": false,
"error": "Bad Request",
"apiUsage": 150,
"apiDailyUsage": 3000
}

Respuesta de Error 500 (Internal Server Error)

{
"success": false,
"error": "Internal Server Error",
"apiUsage": 150,
"apiDailyUsage": 3000
}

Este endpoint es esencial para actualizar los datos de alertas de un dispositivo dentro del sistema. Permite a los usuarios enviar información de alertas detallada y actualizada para un dispositivo específico, asegurando un seguimiento y monitoreo precisos.