get_notification_data
La función get_notification_data se usa para obtener información detallada sobre las notificaciones especificadas.
svc=resource/get_notification_data¶ms={"itemId":<long>,
"col":[<long>]}
Parámetros
Nombre | Descripción |
---|---|
itemId | ID del recurso. |
col | Matriz de ID de notificaciones. El campo es opcional. Si no está presente, la función se ejecuta para todas las notificaciones. |
Resultado devuelto
Si la solicitud se ejecuta con éxito, se devuelve el resultado en el siguiente formato:
[
{
"id":<long>, /* ID de notificación */
"n":"<text>", /* nombre */
"txt":"<text>", /* texto de notificación */
"ta":<uint>, /* hora de activación (formato Unix) */
"td":<uint>, /* hora de desactivación (formato Unix) */
"ma":<uint>, /* cantidad máxima de ejecuciones (0: no limitada) */
"mmtd":<uint>, /* intervalo de tiempo máximo entre mensajes, s */
"cdt":<uint>, /* tiempo de espera de ejecución, s */
"mast":<uint>, /* duración mínima del estado de alarma, s */
"mpst":<uint>, /* duración mínima del estado anterior, s */
"cp":<uint>, /* período de control en relación con la hora actual, s */
"fl":<uint>, /* marcas de notificación (vea más abajo) */
"tz":<uint>, /* zona horaria */
"la":"<text>", /* idioma del usuario (código de dos letras) */
"ac":<uint>, /* cantidad de ejecuciones */
"d":"<text>", /* descripción de notificación */
"sch":{ /* limitación de tiempo */
"f1":<uint>, /* inicio del intervalo 1 (minutos desde medianoche) */
"f2":<uint>, /* inicio del intervalo 2 ((minutos desde medianoche) */
"t1":<uint>, /* fin del intervalo 1 (minutos desde medianoche) */
"t2":<uint>, /* fin del intervalo 2 (minutos desde medianoche) */
"m":<uint>, /* máscara de los días del mes [1: 2||0, 31: 2||30] */
"y":<uint>, /* máscara de meses [Jan: 2||0, Dec: 2||11] */
"w":<uint>, /* máscara de los días de la semana [Mon: 2||0, Sun: 2||6] */
"fl":<int> /* marcas de horario */
},
"ctrl_sch":{ /* horario de la cantidad máxima de intervalos de ejecución */
"f1":<uint>, /* inicio del intervalo 1 (minutos desde medianoche) */
"f2":<uint>, /* inicio del intervalo 2 (minutos desde medianoche) */
"t1":<uint>, /* fin del intervalo 1 (minutos desde medianoche) */
"t2":<uint>, /* fin del intervalo 2 (minutos desde medianoche) */
"m":<uint>, /* máscara de los días del mes [1: 2||0, 31: 2||30] */
"y":<uint>, /* máscara de meses [Jan: 2||0, Dec: 2||11] */
"w":<uint> /* máscara de los días de la semana [Mon: 2||0, Sun: 2||6] */
"fl":<int> /* marcas de horario */
},
"un":[<long>], /* matriz de ID de unidades/grupos de unidades */
"act":[ /* acciones */
{
"t":"<text>", /* tipo de acción (vea más abajo) */
"p":{ /* parámetros */
"blink": "<text>", /* minimapa intermitente al activarse la notificación */
"color": "<text>", /* color de notificación en línea */
"url": "<text>", /* dirección URL del sonido de notificación */
...
},
...
}
],
"trg":{ /* control */
"t":"<text>", /* tipo de control (vea más abajo) */
"p":{ /* parámetros */
"<text>":"<text>", /* nombre de parámetro: valor */
...
}
},
"ct":<uint>, /* hora de creación */
"mt":<uint> /* hora de la última modificación */
}
]
Marcas de notificaciones:
Marca | Descripción |
---|---|
0x0 | La notificación se activa después del primer mensaje. |
0x1 | La notificación se activa después de cada mensaje. |
0x2 | La notificación está desactivada. |
Para las notificaciones con el tipo de control Inactividad, el valor del parámetro mast especificado en segundos debe corresponder al valor del parámetro min_idle_time especificado en minutos. Así, si desea que la notificación se ejecute tras 10 minutos de inactividad, especifique 10 para min_idle_time y 600 para mast.
Si no se ha podido ejecutar la solicitud, se devuelve un código de error.
Tipos de acciones
Están disponibles los siguientes tipos de acciones para las notificaciones:
- Notificar por email;
- Notificar por SMS;
- Mostrar notificación en línea en una ventana emergente;
- Enviar una notificación móvil;
- Enviar una solicitud;
- Enviar notificación a Telegram;
- Registrar evento para la unidad;
- Enviar un comando;
- Modificar acceso a las unidades;
- Fijar el valor del contador;
- Guardar el valor del contador como parámetro;
- Registrar el estado de la unidad;
- Agregar o quitar unidades de grupos;
- Enviar un informe por email;
- Crear una rutina;
- Separar al conductor;
- Separar el remolque.
Notificar por email
{
"t":"email", /* tipo de acción */
"p":{
"email_to":"<text>", /* dirección del correo electrónico */
"html":"<text>", /* usar etiquetas HTML: 0, no; 1, sí */
"img_attach":"<text>", /* adjuntar imagen desde la notificación: 1, sí; 0, no */
"subj":"<text>" /* texto del mensaje */
}
}
Notificar por SMS
{
"t":"sms", /* tipo de acción */
"p":{
"phones":"<text>" /* lista de números de teléfono (separados por punto y coma) */
}
}
Mostrar notificación en línea en una ventana emergente
{
"t":"message", /* tipo de acción */
"p":{
"color":"<text>", /* color de notificación */
"name":"<text>", /* nombre de notificación */
"url":"<text>" /* dirección URL del sonido de notificación */
}
}
Enviar una notificación móvil
{
"t":"mobile_apps", /* tipo de acción */
"p":{
"apps":"{\"<text>\":[ /* nombre de la aplicación móvil */
<uint> /* ID de usuario */
]}"
}
}
Enviar una solicitud
{
"t":"push_messages", /* tipo de acción */
"p":{
"url":"<text>", /* nombre del servidor (puede especificar el puerto), comience con "http(s)" */
"get":<bool> /* tipo de solicitud: 1, GET; 0, POST */
}
}
Enviar notificación a Telegram
{
"t":"messenger_messages", /* tipo de acción */
"p":{
"chat_id":"<text>", /* ID de canal en Telegram */
"token":"<text>" /* token de usuario en Telegram */
}
}
Registrar evento para la unidad
{
"t":"event", /* tipo de acción */
"p":{
"flags":"<text>" /* registrar como: 0, evento; 1, infracción */
}
}
Enviar un comando
{
"t":"exec_cmd", /* tipo de acción */
"p":{
"cmd_type":"<text>", /* tipo de comando */
"link":"<text>", /* tipo de enlace */
"name":"<text>", /* nombre de comando */
"param":"<text>" /* parámetros */
}
}
Puede encontrar la lista de los tipos de comandos disponibles aquí.
Modificar acceso a las unidades
{
"t":"user_access", /* tipo de acción */
"p":{
"acl_bits":"<text>", /* 1: establecer bit; 0: quitar bit */
"acl_mask":"<text>", /* máscara de bits que deben cambiar */
"units":"<text>", /* lista de ID de unidades (separados por comas) */
"users":"<text>" /* lista de ID de usuarios (separados por comas) */
}
}
Fijar el valor del contador
{
"t":"counter", /* tipo de acción */
"p":{
"engine_hours":"<text>", /* valor del contador de horas de motor */
"flags":"<text>", /* marcas de contador (vea más abajo) */
"mileage":"<text>", /* valor del contador de kilometraje */
"traffic":"<text>" /* valor del contador de tráfico GPRS */
}
}
Marcas de contador:
Marca | Descripción |
---|---|
1 | Establecer el valor del contador de kilometraje. |
2 | Establecer el valor del contador de horas de motor. |
4 | Establecer el valor del contador de tráfico GPRS. |
Guardar el valor del contador como parámetro
{
"t":"store_counter", /* tipo de acción */
"p":{
"engine_hours":"<text>", /* nombre del parámetro para el contador de horas de motor */
"flags":"<text>", /* marcas (vea más abajo) */
"mileage":"<text>" /* nombre del parámetro para el contador de kilometraje */
}
}
Marcas:
Marca | Descripción |
---|---|
1 | Guardar el valor del contador de kilometraje como parámetro. |
2 | Guardar el valor del contador de horas de motor como parámetro. |
Registrar el estado de la unidad
{
"t":"status", /* tipo de acción */
"p":{
"ui_text":"<text>" /* estado */
}
}
Agregar o quitar unidades de grupos
{
"t":"group_manipulation", /* tipo de acción */
"p":{
"add_to":"<text>", /* agregar a los grupos especificados */
"remove_from":"<text>" /* quitar de los grupos especificados */
}
}
Enviar un informe por email
{
"t":"email_report", /* tipo de acción */
"p":{
"email_to":"<text>", /* dirección de correo electrónico */
"file_type":"<text>", /* formato de archivo (vea más abajo) */
"flags":"<text>", /* marcas de intervalo */
"params":"<text>", /* configuración de informe (XML) */
"report_guid":"<text>", /* ID de recurso */
"report_id":"<text>", /* ID de plantilla */
"report_object_guid":"<text>", /* ID de objeto para el informe */
"report_object_id":"<text>", /* ID de objeto subordinado (0: si el informe se ejecuta para el objeto) */
"time_from":"<text>", /* inicio del intervalo de tiempo */
"time_to":"<text>" /* fin del intervalo de tiempo */
}
}
Crear una rutina
{
"t":"route_control", /* tipo de acción */
"p":{
"description":"<text>", /* descripción */
"expiration":"<text>", /* término de vigencia */
"flags":"<text>", /* marcas de rutina */
"name":"<text>", /* nombre */
"route":"<text>", /* ID de ruta */
"schedule":"<text>" /* ID de horario */
}
}
Las marcas de rutina se describen aquí.
Separar al conductor
{
"t":"drivers_reset", /* tipo de acción */
"p":{}
}
Separar el remolque
{
"t":"trailers_reset", /* tipo de acción */
"p":{}
}
Tipos de control
Están disponibles los siguientes tipos de control para las notificaciones:
- Geocerca;
- Dirección;
- Velocidad;
- Alarma (SOS);
- Entrada digital;
- Parámetro en un mensaje;
- Valor del sensor;
- Pérdida de conexión;
- Inactividad;
- SMS;
- Interposición de unidades;
- Exceso de mensajes;
- Progreso de ruta;
- Conductor;
- Remolque;
- Mantenimiento;
- Llenado de combustible o recarga de batería;
- Descarga de combustible;
- Estado de dispositivos;
Geocerca
"trg":{
"t":"geozone", /* tipo de control */
"p":{
"sensor_type":"<text>", /* tipo de sensor */
"sensor_name_mask":"<text>", /* máscara del nombre del sensor */
"lower_bound":<uint>, /* valor del sensor desde */
"upper_bound":<uint>, /* valor del sensor hasta */
"prev_msg_diff":<uint>, /* la marca permite crear un rango para el valor actual de acuerdo con el valor anterior(prev) de la siguiente manera: [prev+lower_bound ; prev+upper_bound]; por lo tanto, el rango para el valor actual es relativo al valor anterior: 0, desactivar la opción; 1, activar la opción */
"merge":<uint>, /* sensores similares: 0, calcular por separado; 1, sumar valores */
"reversed":<uint>, /* activar: 0, dentro del rango especificado; 1, fuera del rango especificado */
"geozone_ids":"<text>", /* lista de ID de geocercas (separados por comas) */
"type":<uint>, /* tipo de control: 0, controlar entradas en una geocerca; 1, controlar salidas de una geocerca */
"min_speed":<uint>, /* velocidad mínima, km/h */
"max_speed":<uint>, /* velocidad máxima, km/h */
"include_lbs":<uint>, /* procesar mensajes LBS: 1, sí; 0, no */
"lo":"<text>" /* operador lógico (opcional): "AND", "OR" */
}
}
Dirección
"trg":{
"t":"address", /* tipo de control */
"p":{
"sensor_type":"<text>", /* tipo de sensor */
"sensor_name_mask":"<text>", /* máscara del nombre del sensor */
"lower_bound":<uint>, /* valor del sensor desde */
"upper_bound":<uint>, /* valor del sensor hasta */
"prev_msg_diff":<uint>, /* la marca permite crear un rango para el valor actual de acuerdo con el valor anterior(prev) de la siguiente manera: [prev+lower_bound ; prev+upper_bound]; por lo tanto, el rango para el valor actual es relativo al valor anterior: 0, desactivar la opción; 1, activar la opción */
"merge":<uint>, /* sensores similares: 0, calcular por separado; 1, sumar valores */
"reversed":<uint>, /* activar: 0, dentro del rango especificado; 1, fuera del rango especificado */
"radius":<uint>, /* radio de activación */
"type":<uint>, /* tipo de control: 0, controlar en el radio de dirección; 1, controlar fuera del radio de dirección */
"min_speed":<uint>, /* velocidad mínima, km/h */
"max_speed":<uint>, /* velocidad máxima, km/h */
"country":"<text>", /* país */
"region":"<text>", /* región */
"city":"<text>", /* ciudad */
"street":"<text>", /* calle */
"house":"<text>", /* casa */
"include_lbs":<uint> /* procesar mensajes LBS: 1, sí; 0, no */
}
}
Velocidad
"trg":{
"t":"speed", /* tipo de control */
"p":{
"lower_bound":"<text>", /* valor del sensor desde */
"max_speed":"<text>", /* velocidad máxima, km/h */
"merge":"<text>", /* sensores similares: 0, calcular por separado; 1, sumar valores */
"min_speed":"<text>", /* velocidad mínima, km/h */
"prev_msg_diff":"<text>", /* la marca permite crear un rango para el valor actual de acuerdo con el valor anterior(prev) de la siguiente manera: [prev+lower_bound ; prev+upper_bound]; por lo tanto, el rango para el valor actual es relativo al valor anterior: 0, desactivar la opción; 1, activar la opción */
"reversed":"<text>", /* activar: 0, dentro del rango especificado; 1, fuera del rango especificado */
"sensor_name_mask":"<text>", /* máscara del nombre del sensor */
"sensor_type":"<text>", /* tipo de sensor */
"upper_bound":"<text>" /* valor del sensor hasta */
}
}
Alarma (SOS)
"trg":{
"t":"alarm", /* tipo de control */
"p":{}
}
Entrada digital
"trg":{
"t":"digital_input", /* tipo de control */
"p":{
"input_index":"<text>", /* entrada digital (1-32) */
"type":"<text>" /* tipo de control: 0, controlar la activación; 1, controlar la desactivación */
}
}
Parámetro en un mensaje
"trg":{
"t":"msg_param", /* tipo de control */
"p":{
"kind":"<text>", /* tipo de control del parámetro (vea más abajo) */
"lower_bound":"<text>", /* valor del parámetro desde */
"param":"<text>", /* nombre del parámetro */
"text_mask":"<text>", /* máscara de texto */
"type":"<text>", /* activar: 0, dentro del rango especificado; 1, fuera del rango especificado */
"upper_bound":"<text>" /* valor del parámetro hasta */
}
}
Los tipos de control del parámetro son:
Tipo | Descripción |
---|---|
0 | Rango de valores. |
1 | Máscara de texto. |
2 | Disponibilidad del parámetro. |
3 | Falta del parámetro. |
Valor del sensor
"trg":{
"t":"sensor_value", /* tipo de control */
"p":{
"lower_bound":"<text>", /* valor del sensor desde */
"merge":"<text>", /* sensores similares: 0, calcular por separado; 1, sumar valores */
"prev_msg_diff":"<text>", /* la marca permite crear un rango para el valor actual de acuerdo con el valor anterior(prev) de la siguiente manera: [prev+lower_bound ; prev+upper_bound]; por lo tanto, el rango para el valor actual es relativo al valor anterior: 0, desactivar la opción; 1, activar la opción */
"sensor_name_mask":"<text>", /* máscara del nombre del sensor */
"sensor_type":"<text>", /* tipo de sensor */
"type":"<text>", /* activar: 0, dentro del rango especificado; 1, fuera del rango especificado */
"upper_bound":"<text>" /* valor del sensor hasta */
}
}
Pérdida de conexión
"trg":{
"t":"outage", /* tipo de control */
"p":{
"time":"<text>", /* intervalo de tiempo, s */
"type":"<text>", /* tipo de control: 0, pérdida de coordenadas; 1, pérdida de conexión */
"include_lbs":<uint>, /* procesar mensajes LBS: 1, sí; 0, no */
"check_restore":<uint>, /* notificar sobre: 0, pérdida de conexión; 1, pérdida y restauración de conexión; 2, restauración de conexión */
"geozones_type":"<text>", /* tipo de control: 0, fuera de geocerca; 1, dentro de geocerca */
"geozones_list":"<text>" /* lista de ID de geocercas (separados por comas) */
}
}
Inactividad
"trg":{
"t":"speed", /* tipo de control */
"p":{
"lower_bound":"<text>", /* valor del sensor desde */
"max_speed":"<text>", /* velocidad máxima, km/h */
"merge":"<text>", /* sensores similares: 0, calcular por separado; 1, sumar valores */
"min_idle_time":"<text>", /* tiempo mínimo de ralentí, min */
"min_speed":"<text>", /* velocidad mínima, km/h */
"prev_msg_diff":"<text>", /* la marca permite crear un rango para el valor actual de acuerdo con el valor anterior(prev) de la siguiente manera: [prev+lower_bound ; prev+upper_bound]; por lo tanto, el rango para el valor actual es relativo al valor anterior: 0, desactivar la opción; 1, activar la opción */
"reversed":"<text>", /* activar: 0, dentro del rango especificado; 1, fuera del rango especificado */
"sensor_name_mask":"<text>", /* máscara del nombre del sensor */
"sensor_type":"<text>", /* tipo de sensor */
"upper_bound":"<text>", /* valor del sensor hasta */
"geozones_type":"<text>", /* tipo de control: 0, fuera de geocerca; 1, dentro de geocerca */
"geozones_list":"<text>" /* lista de ID de geocercas (separados por comas) */
}
}
El valor del parámetro min_idle_time especificado en minutos debe corresponder al valor del parámetro mast especificado en segundos. Así, si desea que la notificación se ejecute tras 10 minutos de inactividad, especifique 10 para min_idle_time y 600 para mast.
SMS
"trg":{
"t":"sms", /* tipo de control */
"p":{
"mask":"<text>" /* máscara del texto de SMS */
}
}
Interposición de unidades
"trg":{
"t":"interposition", /* tipo de control */
"p":{
"sensor_name_mask":"<text>", /* máscara del nombre del sensor */
"sensor_type":"<text>", /* tipo de sensor */
"lower_bound":"<text>", /* valor del sensor desde */
"upper_bound":"<text>" /* valor del sensor hasta */
"merge":"<text>", /* sensores similares: 0, calcular por separado; 1, sumar valores */
"max_speed":"<text>", /* velocidad máxima, km/h */
"min_speed":"<text>", /* velocidad mínima, km/h */
"reversed":"<text>", /* activar: 0, dentro del rango especificado; 1, fuera del rango especificado */
"prev_msg_diff":"<text>", /* la marca permite crear un rango para el valor actual de acuerdo con el valor anterior(prev) de la siguiente manera: [prev+lower_bound ; prev+upper_bound]; por lo tanto, el rango para el valor actual es relativo al valor anterior: 0, desactivar la opción; 1, activar la opción */
"radius":"<text>", /* radio, m */
"type":"<text>", /* tipo de control: 0, controlar la aproximación de unidades; 1, controlar el alejamiento de unidades */
"unit_guids":"<text>", /* lista de UD de las unidades controladas (separados por comas) */
"include_lbs":<uint>, /* procesar mensajes LBS: 1, sí; 0, no */
"lo":"<text>" /* operador lógico (opcional): "AND", "OR" */
}
}
Exceso de mensajes
"trg":{
"t":"msgs_counter", /* tipo de control */
"p":{
"flags":"<text>", /* tipo de mensajes: 1, mensajes con datos, 2, mensajes SMS */
"msgs_limit":"<text>", /* límite de mensajes */
"time_offset":"<text>" /* intervalo de restablecimiento de los valores del sensor (límite 24h), s */
}
}
Progreso de ruta
"trg":{
"t":"route_control", /* tipo de control */
"p":{
"mask":"<text>", /* máscara del nombre de la ruta */
"round_mask":"<text>", /* máscara del nombre de la rutina */
"schedule_mask":"<text>", /* máscara del nombre del horario */
"types":"<text>" /* tipos de control de la ruta (separados por comas) */
}
}
Los tipos de control de la ruta son:
Tipo | Descripción |
---|---|
1 | Rutina iniciada. |
2 | Rutina finalizada. |
4 | Rutina anulada. |
8 | Llegada al punto de control. |
16 | Omisión del punto de control. |
32 | Salida del punto de control. |
64 | Atraso. |
128 | Adelantamiento. |
256 | Regreso a lo programado. |
Conductor
"trg":{
"t":"driver", /* tipo de control */
"p":{
"driver_code_mask":"<text>", /* máscara del código del conductor */
"flags":"<text>" /* tipo de control: 1, asignación; 2, separación */
}
}
Remolque
"trg": {
"t": "trailer", /* tipo de control */
"p": {
"driver_code_mask": "<text>", /* máscara del código del remolque */
"flags": "<text>" /* tipo de control: 1, asignación; 2, separación */
}
}
Mantenimiento
"trg":{
"t":"service_intervals", /* tipo de control */
"p":{
"days":"<text>", /* intervalo de días */
"engine_hours":"<text>", /* intervalo de horas de motor, h */
"flags":"<text>", /* marcas de control de mantenimiento (vea más abajo) */
"mask":"<text>", /* máscara de filtro de intervalos */
"mileage":"<text>", /* intervalo de kilometraje, km */
"val":"<text>" /* notificar cuando: 1, término de servicio se aproxima: ; -1, término de servicio caduca */
}
}
Las marcas de control de mantenimiento son:
Marca | Descripción |
---|---|
0 | Controlar todos los intervalos de servicio. |
1 | Intervalo de kilometraje. |
2 | Intervalo de horas de motor. |
4 | Intervalo de días. |
Llenado de combustible o recarga de batería
"trg":{
"t":"fuel_filling", /* tipo de control */
"p":{
"sensor_name_mask":"<text>", /* máscara del nombre del sensor */
"geozones_type":<uint>, /* tipo de control de geocerca: 0, desactivado o fuera de geocerca; 1, dentro de geocerca */
"geozones_list":"<text>", /* lista de ID de geocercas (separados por comas) en el formato "resourceID_geozone ID" */
"realtime_only":<uint>, /* ignorar el recálculo de datos históricos: 0, desactivar; 1, activar */
}
}
Descarga de combustible
"trg":{
"t":"fuel_theft", /* tipo de control */
"p":{
"sensor_name_mask":"<text>", /* máscara del nombre del sensor */
"geozones_type":<uint>, /* tipo de control de geocerca: 0, desactivado o fuera de geocerca; 1, dentro de geocerca */
"geozones_list":"<text>", /* lista de ID de geocercas (separados por comas) en el formato "resourceID_geozone ID" */
"realtime_only":<uint>, /* ignorar el recálculo de datos históricos: 0, desactivar; 1, activar */
}
}
Estado de dispositivos
"trg": {
"t": "health_check", /* Tipo de control */
"p": {
"healthy": <uint>, /* Muestra si el dispositivo está en buen estado: 0 — no, 1 — sí */
"unhealthy": <uint>, /* Muestra si el dispositivo está en mal estado: 0 — no, 1 — sí */
"needAttention": <uint>, /* Muestra si el dispositivo require atención: 0 — no, 1 — sí */
"triggerForEachIncident": <uint> /* Activar para cada incidente: 0 — opción deshabilitada, 1 — opción habilitada */
}
}
Códigos de errores
Código | Descripción |
---|---|
4 | Parámetros de entrada incorrectos. |
7 | El usuario no tiene el derecho de acceso necesario al recurso (ADF_ACL_AVL_RES_VIEW_NF). |