get_notification_data

El método get_notification_data se usa para obtener información detallada sobre las notificaciones especificadas.

Endpoint

Copied!
svc=resource/get_notification_data&params={
  "itemId": <long>,
  "col": [
    <long>
  ]
}

Parámetros

Nombre Descripción
itemId ID del recurso.
col Matriz de ID de notificaciones.

Respuesta

Si la solicitud se ejecuta con éxito, se devuelve una respuesta en el siguiente formato:

Copied!
[
  {
    "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 activaciones (0, sin límite) */
    "mmtd": <uint>,             /* intervalo de tiempo máximo entre mensajes, s */
    "cdt": <uint>,              /* tiempo de espera de activación, s */
    "mast": <uint>,             /* duración mínima del estado de activación, 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>,               /* flags 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 activaciones */
    "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>               /* flags de horario */
    },

    "ctrl_sch": {
      			    /* horario de intervalos de cantidad máxima de activaciones */
      "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>               /* flags de horario */
    },

    "un": [
      <long>
    ],                           /* matriz de ID de unidades/grupos de unidades */

    "act": [
      {
        "t": "<text>",           /* tipo de acción (vea más abajo) */
        "p": {
          "blink": "<text>",     /* minimapa intermitente al activarse */
          "color": "<text>",     /* color de notificación en línea */
          "url": "<text>",       /* dirección URL del sonido de notificación */
          ...
        }
      }
    ],                           /* acciones */

    "trg": {
      "t": "<text>",             /* tipo de control (vea más abajo) */
      "p": {
        "<text>": "<text>"
        /* nombre de parámetro: valor */
      }
    },

    "ct": <uint>,                /* hora de creación */
    "mt": <uint>                 /* hora de la última modificación */
  }
]
Parámetro Descripción
id ID de notificación.
n Nombre de notificación.
txt Texto de notificación.
ta Hora de activación (formato Unix). Corresponde al ajuste Hora de activación.
td Hora de desactivación (formato Unix). Corresponde al ajuste Hora de desactivación.
ma Cantidad máxima de activaciones (0 significa sin límite). Corresponde al ajuste Activaciones máximas.
mmtd Intervalo de tiempo máximo entre mensajes, en segundos. Corresponde al ajuste Lapso máximo entre mensajes.
cdt Tiempo de espera del análisis de mensajes, en segundos. Corresponde al ajuste Tiempo de espera del análisis de mensajes.
mast Duración mínima del estado de activación, en segundos. Corresponde al ajuste Duración mínima de estado que activa la notificación.
mpst Duración mínima del estado anterior, en segundos. Corresponde al ajuste Ignorar interrupciones de estado de activación menores a.
cp Período de control en relación con la hora actual, en segundos. Corresponde al ajuste Retraso permitido de mensaje.
fl Flags de notificación (vea más abajo).
tz Zona horaria.
la Idioma del usuario (código de dos letras).
ac Cantidad de activaciones (cantidad de veces que se ha activado la notificación).
d Descripción de notificación.
sch Horario de notificación. Contiene intervalos de tiempo (f1, f2, t1, t2 en minutos desde medianoche), máscara de días del mes (m), máscara de meses (y), máscara de días de la semana (w) y flags de horario (fl).
ctrl_sch Horario para los intervalos de reinicio del contador de Activaciones máximas. Usa la misma estructura que sch.
un Matriz de ID de unidades o grupos de unidades que la notificación monitorea.
act Matriz de acciones. Cada acción tiene un tipo (t) y parámetros (p). Consulte Tipos de acciones.
trg Configuración de condición. La estructura depende del tipo de control: tipo de control único (consulte Tipos de control) o tipo basado en expresión (consulte Combinación de varias condiciones). El tipo basado en expresiones no está disponible en Wialon Local.
ct Hora de creación (formato Unix).
mt Hora de la última modificación (formato Unix).

Flags de notificación:

Flag Descripción
0x0 La notificación se activa solo al cambiar de estado de no activación a activación.
0x1 La notificación se activa para cada mensaje dentro del estado de activación.
0x2 La notificación está deshabilitada.

Para las notificaciones del 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 active después de 10 minutos de inactividad, especifique 10 para min_idle_time y 600 para mast.

Si la solicitud falla, se devuelve un código de error.

Tipos de acciones

Están disponibles los siguientes tipos de acciones para las notificaciones:

Notificar por email

Copied!
{
	"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

Copied!
{
	"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

Copied!
{
	"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

Copied!
{
	"t":"mobile_apps",		/* tipo de acción */
	"p":{
		"apps":"{\"<text>\":[	/* nombre de la aplicación móvil */
				<uint>	/* ID de usuario */
		]}"
	}
}

Enviar una solicitud

Copied!
{
	"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

Copied!
{
	"t":"messenger_messages",	/* tipo de acción */
	"p":{
		"chat_id":"<text>",		/* ID del chat o enlace del canal (@link) en Telegram */
		"token":"<text>"		/* token del bot en Telegram */
	}
}

Si el parámetro token o chat_id está vacío, la notificación no se envía.

Enviar notificación a WhatsApp

Copied!
{
	"t":"whatsapp",	/* tipo de acción */
	"p":{
          "sender": "<text>",      /* número de teléfono del remitente */
          "recipients": "<text>",  /* números de teléfono de los destinatarios */
          "templateSid": "<text>", /* Twilio Content SID de la plantilla de WhatsApp aprobada */
          "templateTags": "<text>" /* objeto JSON que asocia el índice de la variable de la plantilla (claves de cadena "1", "2", ...) con el nombre de una etiqueta de notificación de Wialon (sin signos %) */
        }
}

Registrar evento para la unidad

Copied!
{
	"t":"event",		/* tipo de acción */
	"p":{
		"flags":"<text>"		/* registrar como: 0, evento; 1, infracción */
	}
}

Enviar un comando

Copied!
{
	"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 */
	}
}

Para obtener la lista de los tipos de comandos disponibles, use el método core/get_hw_cmds.

Modificar acceso a unidades

Copied!
{
	"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

Copied!
{
	"t":"counter",		/* tipo de acción */
	"p":{
		"engine_hours":"<text>",	/* valor del contador de horas de motor */
		"flags":"<text>",		/* flags de contador (vea más abajo) */
		"mileage":"<text>",	/* valor del contador de kilometraje */
		"traffic":"<text>"	/* valor del contador de tráfico GPRS */
	}
}

Flags de contador:

Flag 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

Copied!
{
	"t":"store_counter",		/* tipo de acción */
	"p":{
		"engine_hours":"<text>",		/* nombre del parámetro para el contador de horas de motor */
		"flags":"<text>",			/* flags (vea más abajo) */
		"mileage":"<text>"		/* nombre del parámetro para el contador de kilometraje */
	}
}

Flags:

Flag 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

Copied!
{
	"t":"status",		/* tipo de acción */
	"p":{
		"ui_text":"<text>"	/* estado */
	}
}

Agregar o quitar unidades de grupos

Copied!
{
	"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

Copied!
{
	"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>",			/* flags de intervalo */
		"params":"<text>",		/* configuración de informe (XML) */
		"report_guid":"<text>",		/* ID del recurso que contiene la plantilla de informe; puede ser cualquier recurso sobre el cual el creador del recurso tenga el derecho de acceso «Ver plantillas de informes». Si no hay acceso o la plantilla se ha eliminado, el informe no se envía */
		"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 */
	}
}

Los flags de intervalos se describen en la sección Flags de intervalo de la página report/exec_report.

Formatos de archivo:

  • 1: HTML
  • 2: PDF
  • 4: XLS
  • 8: XLSX
  • 16: XML
  • 32: CSV

Crear una rutina

Copied!
{
	"t":"route_control",	/* tipo de acción */
	"p":{
		"description":"<text>",	/* descripción */
		"expiration":"<text>",	/* término de vigencia */
		"flags":"<text>",		/* flags de rutina */
		"name":"<text>",		/* nombre */
		"route":"<text>",		/* ID de ruta */
		"schedule":"<text>"	/* ID de horario */
	}
}

Los flags de rutina se describen en la sección Flags de la rutina de la página route/get_round_data.

Separar al conductor

Copied!
{
	"t":"drivers_reset",	/* tipo de acción */
	"p":{}
}

Separar el remolque

Copied!
{
	"t":"trailers_reset",	/* tipo de acción */
	"p":{}
}

Crear un asunto

En Wialon Local, esta acción está disponible a partir de la versión 2504.

Copied!
{
	"t": "create_task",	/* tipo de acción */
	"p": {
        "task_priority": "<int>", /* prioridad de asunto */
        "task_assignee": "<int>" /* ID del usuario a quien está asignado el asunto */
	}
}

Tipos de control

Los siguientes tipos de control están disponibles para las notificaciones:

Geocerca

Copied!
"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>, 	/* el flag 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 referencias de geocercas separadas por comas en formato propID:createTime (para geocercas del mismo recurso que la notificación) o itemId_propId:createTime (para geocercas de un recurso diferente). Por ejemplo, para referenciar una geocerca con ID 15 creada el 2024-01-15 a las 10:30:00 UTC (timestamp: `1705315800`), especifique "15:1705315800". Para referenciar un grupo de geocercas, agregue el prefijo gr a su ID, por ejemplo, gr15 o gr800064667_1. Las geocercas de recursos sobre los cuales el creador del recurso no tiene el derecho de acceso «Ver geocercas» se omiten */
		"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" */
	}
}

Puede usar el método resource/get_zone_data para obtener las propiedades de la geocerca.

Dirección

Copied!
"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>, 	/* el flag 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

Copied!
"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>", /* el flag 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 */
		"driver":"<text>"	/* este flag permite tener en cuenta las asignaciones de conductor: 1, la notificación se activará cuando no haya conductor asignado; 2, se activará cuando haya un conductor asignado; 0, este flag será ignorado */
	}
}

Alarma (SOS)

Copied!
"trg":{
	"t":"alarm",		/* tipo de control */
	"p":{}
}

Entrada digital

Copied!
"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

Copied!
"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 */
	}
}

Tipos de control del parámetro:

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

Copied!
"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>",         /* el flag 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

Copied!
"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 cuando: 0, conexión perdida; 1, conexión perdida y restaurada; 2, conexión restaurada */
		"geozones_type":"<text>", /* tipo de control: 0, fuera de geocerca; 1, dentro de geocerca */ 
		"geozones_list":"<text>"  /* lista de referencias de geocercas separadas por comas en formato propID:createTime (para geocercas del mismo recurso que la notificación) o itemId_propId:createTime (para geocercas de un recurso diferente). Por ejemplo, para referenciar una geocerca con ID 15 creada el 2024-01-15 a las 10:30:00 UTC (timestamp: `1705315800`), especifique "15:1705315800". Para referenciar un grupo de geocercas, agregue el prefijo gr a su ID, por ejemplo, gr15 o gr800064667_1. Las geocercas de recursos sobre los cuales el creador del recurso no tiene el derecho de acceso «Ver geocercas» se omiten */
	}
}

Inactividad

Copied!
"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 inactividad, min */
		"min_speed":"<text>",		/* velocidad mínima, km/h */
		"prev_msg_diff":"<text>",         /* el flag 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 referencias de geocercas separadas por comas en formato propID:createTime (para geocercas del mismo recurso que la notificación) o itemId_propId:createTime (para geocercas de un recurso diferente). Por ejemplo, para referenciar una geocerca con ID 15 creada el 2024-01-15 a las 10:30:00 UTC (timestamp: `1705315800`), especifique "15:1705315800". Para referenciar un grupo de geocercas, agregue el prefijo gr a su ID, por ejemplo, gr15 o gr800064667_1. Las geocercas de recursos sobre los cuales el creador del recurso no tiene el derecho de acceso «Ver geocercas» se omiten */
	}
}

El valor del parámetro min_idle_time especificado en minutos debe corresponder al valor del parámetro mast especificado en segundos. Por lo tanto, si desea que la notificación se active después de 10 minutos de inactividad, especifique 10 para min_idle_time y 600 para mast.

SMS

Copied!
"trg":{
	"t":"sms",		/* tipo de control */
	"p":{
		"mask":"<text>"		/* máscara de texto SMS */
	}
}

Proximidad de unidad

Copied!
"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>",         /* el flag 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 IDs 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

Copied!
"trg":{
	"t":"msgs_counter",		/* tipo de control */
	"p":{
		"flags":"<text>",			/* tipo de mensajes: 1, mensajes de datos; 2, mensajes SMS */
		"msgs_limit":"<text>",		/* límite de mensajes */
		"time_offset":"<text>"		/* reiniciar contador cada (límite 24h), s */
	}
}

Progreso de ruta

Copied!
"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) */
	}
}

Tipos de control de la ruta:

Tipo Descripción
1 Rutina iniciada.
2 Rutina finalizada.
4 Rutina anulada.
8 Llegada al punto de control.
16 Punto de control omitido.
32 Salida del punto de control.
64 Atraso.
128 Adelanto.
256 Regreso a lo programado.

Conductor

Copied!
"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 de conductor; 2, separación de conductor */
	}
}

Remolque

Copied!
"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 de remolque; 2, separación de remolque */
	}
}

Mantenimiento

Copied!
"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>",			/* flags de control de mantenimiento (vea más abajo) */
		"mask":"<text>",			/* máscara basada en comodines */
		"mileage":"<text>",		/* intervalo de kilometraje, km */
		"val":"<text>"			/* notificar cuando: 1, el término de servicio se aproxima; -1, el término de servicio ha expirado */
	}
}

Flags de control de mantenimiento:

Flag 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

Copied!
"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 referencias de geocercas separadas por comas en formato propID:createTime (para geocercas del mismo recurso que la notificación) o itemId_propId:createTime (para geocercas de un recurso diferente). Por ejemplo, para referenciar una geocerca con ID 15 creada el 2024-01-15 a las 10:30:00 UTC (timestamp: `1705315800`), especifique "15:1705315800". Para referenciar un grupo de geocercas, agregue el prefijo gr a su ID, por ejemplo, gr15 o gr800064667_1. Las geocercas de recursos sobre los cuales el creador del recurso no tiene el derecho de acceso «Ver geocercas» se omiten */
	}
}

Descarga de combustible

Copied!
"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 referencias de geocercas separadas por comas en formato propID:createTime (para geocercas del mismo recurso que la notificación) o itemId_propId:createTime (para geocercas de un recurso diferente). Por ejemplo, para referenciar una geocerca con ID 15 creada el 2024-01-15 a las 10:30:00 UTC (timestamp: `1705315800`), especifique "15:1705315800". Para referenciar un grupo de geocercas, agregue el prefijo gr a su ID, por ejemplo, gr15 o gr800064667_1. Las geocercas de recursos sobre los cuales el creador del recurso no tiene el derecho de acceso «Ver geocercas» se omiten */
	}
}

Estado de dispositivo

Copied!
"trg": {
        "t": "health_check",  /* tipo de control */
        "p": {
            "healthy": <uint>,  /* indica si el dispositivo está en buen estado: 0, no; 1, sí */
            "unhealthy": <uint>,   /* indica si el dispositivo está en mal estado: 0, no; 1, sí */
            "needAttention": <uint>,  /* indica si el dispositivo requiere atención: 0, no; 1, sí */
            "triggerForEachIncident": <uint>  /* activar para cada incidente: 0, desactivado; 1, activado */
        }
    }

Combinación de varias condiciones

Este tipo de control permite combinar hasta tres condiciones de notificación en una única expresión utilizando operadores lógicos (AND/OR).

El tipo de control basado en expresiones no está disponible en Wialon Local.

Copied!
"trg": {
    "t": "expression",
    "p": {},
    "expression": "<text>",      /* Cadena de texto que define la expresión lógica que combina varias condiciones. Utiliza nombres de condiciones conectados con operadores "AND" u "OR". */
    "conditions": {              /* Parámetros para cada condición en la expresión. Las claves son nombres de condiciones de la expresión, los valores son objetos con parámetros específicos de la condición. */
        "<condition_name>": {
            /* Parámetros específicos de la condición */
        }
    }
}

Tipos de condiciones admitidas

Existen tipos de condiciones combinables y no combinables. Las combinables pueden utilizarse con operadores AND/OR (hasta 3 condiciones), mientras que las no combinables deben ser la única condición en la expresión.

Condiciones combinables

Tipo de condición Descripción
speed Violación del umbral de velocidad.
idling Detección de inactividad del motor.
speeding_gis Violación del límite de velocidad según los mapas de Gurtam Maps.
driver_unassigned Separación del conductor de la unidad.
address Activación basada en dirección.
geozone_inside Entrada de la unidad en geocerca.
geozone_outside Salida de la unidad de geocerca.
interposition Distancia de la unidad a otras unidades.
sensor_range Valor del sensor dentro o fuera del rango especificado.
sensor_change Cambio del valor del sensor.
alarm Activación del botón de alarma.
msg_param Parámetro en un mensaje.
digital_input Estado de entrada digital.
outage Pérdida de conexión.
fuel_filling Llenado de combustible.
fuel_theft Descarga de combustible.
battery_charge Recarga de batería.
eco_driving Infracción de conducción eficiente.

Las condiciones outage, fuel_filling, fuel_theft, battery_charge y eco_driving deben ser la primera condición en la expresión. La única excepción: fuel_filling, fuel_theft y battery_charge pueden ir una después de otra o después de eco_driving si se combinan mediante el operador OR.

Condiciones no combinables

Tipo de condición Descripción
tag Asignación de pasajero a la unidad.
msgs_counter Límite de mensajes alcanzado.
trailer Asignación de remolque a la unidad.
driver Asignación de conductor a la unidad.
sms Recepción de SMS.
tag_alarm Alarma de pasajero.
route_control Actividad en ruta.
service_intervals Mantenimiento.
health_check Estado de dispositivo.

Ejemplos de expresiones:

  • "geozone_inside OR geozone_outside"
  • "speed AND driver_unassigned"
  • "address OR sensor_range"

Si se utiliza el mismo tipo de condición varias veces, agregue un guion bajo y un sufijo numérico:

  • "geozone_inside_1 AND geozone_inside_2 AND speed"

Parámetros de condiciones

Cada condición en el objeto conditions tiene parámetros específicos según su tipo.

Velocidad

Copied!
{
    "speed": {
        "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 */
    }
}

Inactividad (tiempo de inactividad)

Copied!
{
    "idling": {
        "min_speed": <uint>,        /* velocidad mínima, km/h */
        "max_speed": <uint>,        /* velocidad máxima, km/h */
        "min_idle_time": <uint>     /* tiempo mínimo de inactividad, min */
    }
}

Límite de velocidad en vías

Copied!
{
    "speeding_gis": {
        "speeding_tolerance": <any>,    /* tolerancia de exceso de velocidad */
        "include_lbs": <uint>           /* procesar mensajes LBS: 1, sí; 0, no */
    }
}

Rango del sensor

Copied!
{
    "sensor_range": {
        "sensor_type": "<text>",        /* tipo de sensor */
        "sensor_name_mask": "<text>",   /* máscara del nombre del sensor */
        "merge": <uint>,                /* sensores similares: 0, calcular por separado; 1, sumar valores */
        "lower_bound": <double>,        /* valor del sensor desde */
        "upper_bound": <double>,        /* valor del sensor hasta */
        "reversed": <uint>              /* activar: 0, dentro del rango especificado; 1, fuera del rango especificado */
    }
}

Valor del sensor

Copied!
{
    "sensor_change": {
        "sensor_type": "<text>",        /* tipo de sensor */
        "sensor_name_mask": "<text>",   /* máscara del nombre del sensor */
        "lower_bound": <double>,        /* cambio del valor del sensor desde (relativo al mensaje anterior) */
        "upper_bound": <double>         /* cambio del valor del sensor hasta (relativo al mensaje anterior) */
    }
}

Conductor no asignado

Copied!
{
    "driver_unassigned": {
        "driver": <uint>    /* este flag permite tener en cuenta las asignaciones de conductor: 1, la condición se cumple cuando no hay conductor asignado; 2, la condición se cumple cuando hay un conductor asignado; 0, este flag se ignora */
    }
}

Alarma

Copied!
{
    "alarm": {}
}

Parámetro en un mensaje

Copied!
{
    "msg_param": {
        "kind": <uint>,            /* tipo de control del parámetro: 0, rango de valores; 1, máscara de texto; 2, disponibilidad del parámetro; 3, falta del parámetro */
        "lower_bound": <double>,   /* valor del parámetro desde */
        "param": "<text>",         /* nombre del parámetro */
        "text_mask": "<text>",     /* máscara de texto */
        "type": <uint>,            /* activar: 0, dentro del rango especificado; 1, fuera del rango especificado */
        "upper_bound": <double>    /* valor del parámetro hasta */
    }
}

Entrada digital

Copied!
{
    "digital_input": {
        "input_index": <uint>,   /* entrada digital (1-32) */
        "type": <uint>           /* tipo de control: 0, controlar la activación; 1, controlar la desactivación */
    }
}

Unidad dentro de geocerca

Copied!
{
    "geozone_inside": {
        "geozone_ids": "<text>",   /* lista de referencias de geocercas separadas por comas en formato propID:createTime (para geocercas del mismo recurso que la notificación) o itemId_propId:createTime (para geocercas de un recurso diferente). Para referenciar un grupo de geocercas, agregue el prefijo gr a su ID, por ejemplo, gr15 o gr800064667_1. Las geocercas de recursos sobre los cuales el creador del recurso no tiene el derecho de acceso «Ver geocercas» se omiten */
        "lo": "<text>",            /* operador lógico (opcional): "AND", "OR" */
        "include_lbs": <uint>      /* procesar mensajes LBS: 1, sí; 0, no */
    }
}

Unidad fuera de geocerca

Copied!
{
    "geozone_outside": {
        "geozone_ids": "<text>",   /* lista de referencias de geocercas separadas por comas en formato propID:createTime (para geocercas del mismo recurso que la notificación) o itemId_propId:createTime (para geocercas de un recurso diferente). Para referenciar un grupo de geocercas, agregue el prefijo gr a su ID, por ejemplo, gr15 o gr800064667_1. Las geocercas de recursos sobre los cuales el creador del recurso no tiene el derecho de acceso «Ver geocercas» se omiten */
        "lo": "<text>",            /* operador lógico (opcional): "AND", "OR" */
        "include_lbs": <uint>      /* procesar mensajes LBS: 1, sí; 0, no */
    }
}

Dirección

Copied!
{
    "address": {
        "city": "<text>",      /* ciudad */
        "country": "<text>",   /* país */
        "house": "<text>",     /* casa */
        "radius": <uint>,      /* radio de activación */
        "region": "<text>",    /* región */
        "street": "<text>",    /* calle */
        "type": <uint>,        /* tipo de control: 0, en el radio de dirección; 1, fuera del radio de dirección */
        "include_lbs": <uint>  /* procesar mensajes LBS: 1, sí; 0, no */
    }
}

Proximidad de unidad

Copied!
{
    "interposition": {
        "lo": "<text>",        /* operador lógico (opcional): "AND", "OR" */
        "radius": <uint>,      /* radio, m */
        "type": <uint>,        /* tipo de control: 0, controlar la aproximación de unidades; 1, controlar el alejamiento de unidades */
        "unit_guids": "<text>", /* lista de IDs de las unidades controladas (separados por comas) */
        "include_lbs": <uint>  /* procesar mensajes LBS: 1, sí; 0, no */
    }
}

Pérdida de conexión

Copied!
{
    "outage": {
        "check_restore": <uint>,   /* notificar cuando: 0, conexión perdida; 1, conexión perdida y restaurada; 2, conexión restaurada */
        "time": <uint>,            /* intervalo de tiempo, s */
        "type": <uint>,            /* tipo de control: 0, pérdida de coordenadas; 1, pérdida de conexión */
        "include_lbs": <uint>      /* procesar mensajes LBS: 1, sí; 0, no */
    }
}

SMS

Copied!
{
    "sms": {
        "mask": "<text>"   /* máscara de texto SMS */
    }
}

Límite de mensajes

Copied!
{
    "msgs_counter": {
        "flags": <uint>,      /* tipo de mensajes: 1, mensajes de datos; 2, mensajes SMS */
        "msgs_limit": <uint>, /* límite de mensajes */
        "time_offset": <uint> /* reiniciar contador cada (límite 24h), s */
    }
}

Actividad de pasajero

Copied!
{
    "tag": {
        "tag_code_mask": "<text>",   /* máscara del código de etiqueta */
        "type": <uint>              /* tipo de control: 1, subida; 2, bajada */
    }
}

Alarma de pasajero

Copied!
{
    "tag_alarm": {
        "time": <uint>   /* tiempo de espera de alarma, s */
    }
}

Conductor

Copied!
{
    "driver": {
        "code_mask": "<text>",   /* máscara del código del conductor */
        "flags": <uint>          /* tipo de control: 1, asignación de conductor; 2, separación de conductor */
    }
}

Remolque

Copied!
{
    "trailer": {
        "code_mask": "<text>",   /* máscara del código del remolque */
        "flags": <uint>          /* tipo de control: 1, asignación de remolque; 2, separación de remolque */
    }
}

Actividad en ruta

Copied!
{
    "route_control": {
        "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): 1, rutina iniciada; 2, rutina finalizada; 4, rutina anulada; 8, llegada al punto de control; 16, punto de control omitido; 32, salida del punto de control; 64, atraso; 128, adelanto; 256, regreso a lo programado */
    }
}

Llenado de combustible

Copied!
{
    "fuel_filling": {
        "sensor_name_mask": "<text>"   /* máscara del nombre del sensor */
    }
}

Descarga de combustible

Copied!
{
    "fuel_theft": {
        "sensor_name_mask": "<text>"   /* máscara del nombre del sensor */
    }
}

Recarga de batería

Copied!
{
    "battery_charge": {
        "sensor_name_mask": "<text>"   /* máscara del nombre del sensor */
    }
}

Conducción eficiente

Copied!
{
    "eco_driving": {
        "criterions": [              /* matriz de filtros de criterios de conducción eficiente */
            {
                "type": "<text>",    /* tipo de criterio: speeding (exceso de velocidad), acceleration (aceleración), braking (frenado), turn (giro), idling (inactividad), harsh (conducción temeraria), sensor (personalizado) */
                "mask": "<text>"     /* máscara del nombre del criterio */
            }
        ]
    }
}

La notificación se activa cuando finaliza un evento de infracción de conducción eficiente. Para utilizar esta condición, se deben configurar criterios de conducción eficiente en la unidad mediante unit/update_drive_rank_settings. Las infracciones detectadas durante el recálculo de datos históricos no activan la notificación.

Al combinar la condición eco_driving con otras condiciones, eco_driving debe ser la primera condición en la expresión. El sistema verifica las otras condiciones comparándolas con el mensaje en el momento de inicio de la infracción, pero la notificación se activa en el momento de finalización de la infracción.

La condición eco_driving solo se puede combinar con fuel_filling, fuel_theft y battery_charge utilizando el operador OR. No se puede combinar con idling, speeding_gis, driver_unassigned ni con otra condición eco_driving.

Mantenimiento

Copied!
{
    "service_intervals": {
        "days": <long>,          /* intervalo de días */
        "engine_hours": <long>,  /* intervalo de horas de motor, h */
        "flags": <uint>,         /* flags de control de mantenimiento: 0, controlar todos los intervalos de servicio; 1, intervalo de kilometraje; 2, intervalo de horas de motor; 4, intervalo de días */
        "mask": "<text>",        /* máscara basada en comodines para el nombre del intervalo de servicio */
        "mileage": <long>,       /* intervalo de kilometraje, km */
        "val": <long>            /* notificar cuando: 1, el término de servicio se aproxima; -1, el término de servicio ha expirado */
    }
}

Estado de dispositivo

Copied!
{
    "health_check": {
        "healthy": <any>,                /* activar con estado "en buen estado": "0", no; "1", sí */
		"needAttention": <any>,          /* activar con estado "requiere atención": "0", no; "1", sí */
        "triggerForEachIncident": <any>,  /* activar para cada incidente en el estado "requiere atención": "0", desactivado; "1", activado */
		"unhealthy": <any>              /* activar con estado "en mal estado": "0", no; "1", sí */
    }
}

Códigos de errores

Código Descripción
4 Parámetros de entrada incorrectos.
7 El objeto con el ID indicado no existe o no es un recurso, o el usuario no tiene el derecho de acceso Ver notificaciones al recurso.

Si nota un error en el texto, por favor resáltelo y presione Ctrl+Intro.