update_items

Para agregar, eliminar o limpiar elementos monitoreados en la sesión, utilice el método events/update_items. Los elementos pueden ser unidades o recursos. Para los detectores disponibles, consulte la sección Detectores.

Las actualizaciones de eventos se entregan ya sea en los datos units_update de avl_evts o a través de events/check_updates, dependiendo de los flags de evento.

Si monitorea solo unidades, también puede usar events/update_units, pero para nuevas integraciones utilice events/update_items.

Endpoint

El formato de la solicitud depende del modo de operación.

Para agregar elementos a la sesión y establecer los detectores a monitorear para cada uno de ellos:

Copied!
svc=events/update_items&params={
  "mode": "add",
  "items": [
    {
      "id": <long>,
      "detect": {
        "<detector_name>": <long>
      }
    },
    ...
  ],
  "evt_flags": <uint>   /* opcional */
}

Para dejar de monitorear eventos de elementos específicos:

Copied!
svc=events/update_items&params={
  "mode": "remove",
  "items": [
    <long>
  ]
}

Para dejar de monitorear eventos de todos los elementos en la sesión:

Copied!
svc=events/update_items&params={
  "mode": "clear"
}

Para obtener los elementos en la sesión y su configuración de detectores:

Copied!
svc=events/update_items&params={
  "mode": "list"
}

Parámetros

La solicitud puede contener los siguientes parámetros:

Parámetro Descripción
mode Obligatorio. Modo de operación: add, remove, clear o list.
items Obligatorio para add y remove. Elementos a agregar o eliminar.
id Obligatorio para add. ID del elemento: un ID de unidad o un ID de recurso.
detect Obligatorio para add. Detectores a monitorear y sus filtros. Consulte la sección Detectores.
evt_flags Opcional. Flags de evento. Consulte la sección Flags de evento.

En el modo add, solo se agregan los elementos a los que el usuario actual tiene acceso de visualización. Si un elemento listado ya está siendo monitoreado, su configuración de detectores se reemplaza. Los valores de filtro de detectores individuales no válidos se ignoran.

Detectores

El parámetro detect define qué detectores se monitorean en la sesión. Para cada detector, especifique un valor de filtro que seleccione los eventos a monitorear. Los detectores disponibles dependen del tipo de elemento.

Tipo de elemento Detectores
Unidad Todos los detectores de eventos de unidades. Para la lista completa y los valores de filtro, consulte la sección Tipos de detectores de eventos en la página events/update_units. Utilice el valor de filtro para seleccionar los eventos:
  • Para detectores basados en sensores (sensors, ignition, lls, filling, theft, fuel_level, ev, charge, battery_level), especifique un ID de sensor, o 0 para monitorear todos los sensores del tipo de ese detector. Los detectores lls, filling, theft y fuel_level utilizan el ID del sensor del nivel de combustible.
  • Para eco_driving, especifique un ID de criterio, o 0 para monitorear todos los criterios.
  • Para trips, counters y speedings, use 0.
Recurso El detector resource_drivers, que registra eventos sobre asignaciones de conductores. Especifique un ID de conductor para monitorear asignaciones de este conductor, o 0 para monitorear asignaciones de todos los conductores del recurso.

Para monitorear varios detectores con el mismo filtro, enumérelos separados por comas:

Copied!
"detect":{"sensors,lls,ignition":0}

Para monitorear todos los detectores disponibles para el elemento, use el valor *. Para una unidad, cubre todos los detectores de unidades; para un recurso, todos los detectores disponibles para recursos, actualmente resource_drivers.

Copied!
"detect":{"*":0}

Flags de evento

El valor de evt_flags se almacena en la sesión, por lo que es suficiente establecerlo una vez. El valor por defecto es 0, lo que significa que las actualizaciones se obtienen con events/check_updates.

Para recibir actualizaciones de eventos en los datos units_update de avl_evts, establezca el flag de entrega 0x200 (512). Puede combinarlo con los flags de detalle en los bits 0x1 a 0x100. Si no se especifican flags de detalle, se utiliza el valor 0x7, que devuelve datos básicos del evento, datos específicos del detector y parámetros del mensaje asociado con el evento.

Cuando se establece el flag 0x200, events/check_updates devuelve un objeto vacío. Para obtener actualizaciones con events/check_updates, no establezca este flag.

Respuesta

Si la solicitud se completa correctamente, el formato de respuesta depende del modo de operación. De lo contrario, se devuelve un código de error.

Para los modos add, remove y clear, se devuelve el número total de elementos monitoreados:

Copied!
{
  "items": <uint>   /* número total de elementos monitoreados en la sesión; 0 después del modo clear */
}

Para el modo list, se devuelven los elementos monitoreados y su configuración de detectores. El campo evt_flags se devuelve solo si se establecen flags de evento en la sesión.

Copied!
{
  "items": [
    {
      "id": <long>,          /* ID del elemento */
      "detect": {
        "<detector_name>": <long>   /* filtro del detector */
      }
    },
    ...
  ],
  "evt_flags": <uint>
}

Códigos de error

Código Descripción
1 SID de solicitud no válido u obsoleto.
4 Error de validación de parámetros.
7 El servicio de eventos no está disponible.

Ejemplos

Los siguientes ejemplos muestran las operaciones más comunes con el método.

Suscribirse a eventos de asignación de conductores

Para monitorear asignaciones de todos los conductores del recurso con ID 1003, utilice la siguiente solicitud:

Copied!
svc=events/update_items&params={
  "mode": "add",
  "items": [
    {
      "id": 1003,
      "detect": {
        "resource_drivers": 0
      }
    }
  ]
}

Respuesta:

Copied!
{
  "items": 1
}

Para obtener las actualizaciones, llame a events/check_updates.

Recibir actualizaciones en avl_evts

En la siguiente solicitud, el valor de evt_flags 0x222 (546) combina el flag de entrega 0x200 con los flags de detalle 0x2 (datos específicos del detector) y 0x20 (valores formateados del detector).

Copied!
svc=events/update_items&params={
  "mode": "add",
  "items": [
    {
      "id": 1003,
      "detect": {
        "resource_drivers": 0
      }
    }
  ],
  "evt_flags": 546
}

Las actualizaciones se devuelven en los datos units_update de avl_evts, agrupadas por ID de elemento, detector e ID de conductor. Para la estructura de los objetos de evento, consulte events/check_updates.

Respuesta
Copied!
{
  "tm": 1732710040,
  "events": [],
  "units_update": {
    "1003": [
      {
        "resource_drivers": {
          "1": {
            "from": {
              "t": 1732637187,
              "y": 0,
              "x": 0
            },
            "to": {
              "t": 1732637187,
              "y": 0,
              "x": 0
            },
            "m": 1732637187,
            "f": 0,
            "state": 1,
            "aflags": 4,
            "unit_id": 1633,
            "format": {
              "propitem_name": "driver4_1"
            }
          }
        }
      }
    ]
  }
}

Obtener la lista de elementos monitoreados

Para verificar qué elementos se monitorean en la sesión, utilice la siguiente solicitud:

Copied!
svc=events/update_items&params={
  "mode": "list"
}

La respuesta muestra que se están monitoreando dos unidades y todos los conductores del recurso con ID 1003:

Copied!
{
  "items": [
    {
      "id": 1026,
      "detect": {
        "sensors,lls,ignition,ev,health_check": 0
      }
    },
    {
      "id": 1082,
      "detect": {
        "sensors,lls,ignition,ev,health_check": 0
      }
    },
    {
      "id": 1003,
      "detect": {
        "resource_drivers": 0
      }
    }
  ],
  "evt_flags": 546
}

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