get_notification_data
El método get_notification_data se usa para obtener información detallada sobre las notificaciones especificadas.
Punto final
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. |
Respuesta
Si la solicitud se ejecuta con éxito, se devuelve una respuesta 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 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>, /* 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 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> /* marcas 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> /* marcas 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 | Marcas 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 marcas 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). |
Marcas de notificación:
| Marca | 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
- 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 unidades
- Fijar el valor del contador
- Guardar el valor del contador como parámetro
- Registrar estado de la unidad
- Agregar o quitar unidades de grupos
- Enviar un informe por email
- Crear una rutina
- Separar al conductor
- Separar el remolque
- Crear un asunto
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 en la descripción del método core/get_hw_cmds.
Modificar acceso a 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 */
}
}
Las marcas de intervalo se describen aquí.
Formatos de archivo:
- 1 — HTML
- 2 — PDF
- 4 — XLS
- 8 — XLSX
- 16 — XML
- 32 — CSV
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 en la sección route.
Separar al conductor
{
"t":"drivers_reset", /* tipo de acción */
"p":{}
}
Separar el remolque
{
"t":"trailers_reset", /* tipo de acción */
"p":{}
}
Crear un asunto
{
"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
- Dirección
- Velocidad
- Alarma (SOS)
- Entrada digital
- Parámetro en un mensaje
- Valor del sensor
- Pérdida de conexión
- Inactividad
- SMS
- Proximidad de unidad
- Exceso de mensajes
- Progreso de ruta
- Conductor
- Remolque
- Mantenimiento
- Llenado de combustible o recarga de batería
- Descarga de combustible
- Estado de dispositivo
- Combinación de varias condiciones
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 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" */
"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
"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 */
"driver":"<text>" /* esta marca 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, esta marca será ignorada */
}
}
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 */
}
}
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
"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 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" */
}
}
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 inactividad, 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 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" */
}
}
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
"trg":{
"t":"sms", /* tipo de control */
"p":{
"mask":"<text>" /* máscara de texto SMS */
}
}
Proximidad de unidad
"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 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
"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
"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
"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
"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
"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 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 */
}
}
Marcas de control de mantenimiento:
| 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 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" */
"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 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" */
"realtime_only":<uint>, /* ignorar el recálculo de datos históricos: 0, desactivar; 1, activar */
}
}
Estado de dispositivo
"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.
"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. |
speed_gis |
Violación del límite de velocidad según GIS. |
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. |
eco_driving |
Infracción de conducción eficiente. |
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. |
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
{
"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)
{
"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
{
"speeding_gis": {
"speeding_tolerance": <any>, /* tolerancia de exceso de velocidad */
"include_lbs": <uint> /* procesar mensajes LBS: 1, sí; 0, no */
}
}
Rango del sensor
{
"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
{
"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
{
"driver_unassigned": {
"driver": <uint> /* esta marca 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, esta marca se ignora */
}
}
Alarma
{
"alarm": {}
}
Parámetro en un mensaje
{
"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
{
"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
{
"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) */
"lo": "<text>", /* operador lógico (opcional): "AND", "OR" */
"include_lbs": <uint> /* procesar mensajes LBS: 1, sí; 0, no */
}
}
Unidad fuera de geocerca
{
"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) */
"lo": "<text>", /* operador lógico (opcional): "AND", "OR" */
"include_lbs": <uint> /* procesar mensajes LBS: 1, sí; 0, no */
}
}
Dirección
{
"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
{
"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
{
"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
{
"sms": {
"mask": "<text>" /* máscara de texto SMS */
}
}
Límite de mensajes
{
"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
{
"tag": {
"tag_code_mask": "<text>", /* máscara del código de etiqueta */
"type": <uint> /* tipo de control: 1, subida; 2, bajada */
}
}
Alarma de pasajero
{
"tag_alarm": {
"time": <uint> /* tiempo de espera de alarma, s */
}
}
Conductor
{
"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
{
"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
{
"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
{
"fuel_filling": {
"realtime_only": <uint>, /* ignorar el recálculo de datos históricos: 0, desactivar; 1, activar */
"sensor_name_mask": "<text>" /* máscara del nombre del sensor */
}
}
Descarga de combustible
{
"fuel_theft": {
"realtime_only": <uint>, /* ignorar el recálculo de datos históricos: 0, desactivar; 1, activar */
"sensor_name_mask": "<text>" /* máscara del nombre del sensor */
}
}
Recarga de batería
{
"battery_charge": {
"realtime_only": <uint>, /* ignorar el recálculo de datos históricos: 0, desactivar; 1, activar */
"sensor_name_mask": "<text>" /* máscara del nombre del sensor */
}
}
Conducción eficiente
{
"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.
Al combinar la condición
eco_drivingcon otras condiciones,eco_drivingdebe 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_drivingsolo se puede combinar confuel_filling,fuel_theftybattery_chargeutilizando el operadorOR.
Mantenimiento
{
"service_intervals": {
"days": <long>, /* intervalo de días */
"engine_hours": <long>, /* intervalo de horas de motor, h */
"flags": <uint>, /* marcas 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
{
"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 usuario no tiene el derecho de acceso necesario al recurso (ADF_ACL_AVL_RES_VIEW_NF). |