update_sensor

Para crear, modificar o eliminar sensores, utilice el método unit/update_sensor.

Endpoint

Copied!
svc=unit/update_sensor&params={
    "itemId": <long>,
    "id": <long>,
    "callMode": <text>,
    "unlink": <uint>,
    "n": <text>,
    "t": <text>,
    "d": <text>,
    "m": <text>,
    "p": <text>,
    "f": <uint>,
    "c": <text>,
    "vt": <uint>,
    "vs": <long>,
    "tbl": [
        {
            "x": <double>,
            "a": <double>,
            "b": <double>
        }
    ]
}

Parámetros

La solicitud debe contener los siguientes parámetros:

Parámetro Descripción
itemId ID de la unidad.
id ID del sensor. Pase 0 si desea crear un sensor.
callMode Acción: create, update, delete.
unlink Eliminar vínculos con otros sensores y parámetros de la unidad: 1 (sí, predeterminado), 0 (no).

Para crear o actualizar un sensor, también se requieren los siguientes parámetros:

Parámetro Descripción
n Nombre.
t Tipo (ver Tipos de sensores).
d Descripción.
m Unidad de medida.
p Parámetro.
f Flags del sensor (ver Flags de sensores).
c Configuración (ver Parámetros de configuración del sensor).
vt Tipo de validación (ver Tipos de validación).
vs ID del sensor de validación.
tbl Tabla de cálculo.

Flags de sensores

Flag Descripción
0x01 Tipo de sensor: instantáneo.
0x02 Tipo de sensor: diferencial.
0x03 Tipo de sensor: diferencial con desbordamiento (2 bytes).
0x04 Tipo de sensor: cambio de apagado a encendido.
0x05 Tipo de sensor: cambio de encendido a apagado.
0x20 Activar la opción Con desbordamiento.

Puede ser utilizada para los siguientes sensores:

  • Kilometraje
  • Consumo de combustible absoluto
  • Horas de motor absolutas

Si el flag 0x20 no está configurado, el delta de cambio se calcula como la diferencia absoluta entre los valores actuales y previos. Si el flag está configurado y el valor actual es menor que el anterior, el delta es igual al valor actual (es decir, se asume que el valor anterior es 0). Este flag se aplica al cálculo del valor del sensor. El manejo de desbordamiento para eventos de sensores diferenciales se configura por separado en overflow_limit, independientemente de este flag.
0x40 Aplicar los límites inferior y superior (lower_bound, upper_bound) después del cálculo. Si el flag no está configurado, entonces cada límite se aplica a los datos sin procesar (en el caso de FLS, hay dificultades para configurar límites inferior y superior para datos sin procesar). Si el flag está configurado, entonces cada límite se aplica a datos calculados (procesados).

Tipos de sensores

Valor Tipo de sensor
absolute fuel consumption Sensor del consumo de combustible absoluto
accelerometer Acelerómetro
alarm trigger Activación de alarma
battery level Sensor de nivel de batería
counter Sensor contador
custom Sensor personalizado
digital Sensor digital personalizado
driver Asignación de conductor
engine efficiency Sensor de eficiencia del motor
engine hours Horas de motor absolutas
engine operation Sensor de ignición del motor
engine rpm Sensor de revoluciones del motor
fuel level Sensor del nivel de combustible
fuel level impulse sensor Sensor impulsivo del nivel de combustible
impulse fuel consumption Sensor impulsivo del consumo de combustible
instant fuel consumption Sensor del consumo de combustible instantáneo
mileage Sensor de kilometraje
odometer Odómetro relativo
private mode Modo privado
relative engine hours Horas de motor relativas
temperature Sensor de temperatura
temperature coefficient Coeficiente de temperatura
trailer Asignación de remolque
voltage Sensor de voltaje
weight Sensor de peso

Para más información sobre los tipos de sensores, consulte Tipos de sensores.

Parámetros de configuración del sensor

Los siguientes parámetros se utilizan para configurar un sensor:

Copied!
"{
  \"act\": <bool>,
  \"appear_in_popup\": <bool>,
  \"battery_capacity\": <double>,
  \"ci\": <object>,
  \"calc_fuel\": <uint>,
  \"engine_efficiency\": <array>,
  \"engine_sensors\": <array>,
  \"filter\": <long>,
  \"fuel_params\": <object>,
  \"mu\": <uint>,
  \"pos\": <uint>,
  \"show_time\": <bool>,
  \"unbound_code\": <text>,
  \"validate_driver_unbound\": <bool>,
  \"do_not_show\": <bool>,
  \"timeout\": <uint>,
  \"uct\": <bool>,
  \"lower_bound\": <double>,
  \"upper_bound\": <double>,
  \"overflow_limit\": <double>,
  \"text_params\": <uint>,
  \"show_as_percentage\": <uint>
}"

El parámetro c se envía como una cadena que contiene un objeto JSON. Encierre el objeto entre comillas dobles y escape las comillas dobles en sus claves y valores ("). Consulte los ejemplos de configuración a continuación.

Configure los flags del sensor en el parámetro de nivel superior f. No configure c.flags directamente.

Parámetro Descripción
act Cálculo del valor del sensor: 0 (basado en el último mensaje de la unidad), 1 (basado en los últimos parámetros de la unidad).
Esta opción utiliza lógica invertida:
  • El estado habilitado (valor 0) se refiere a la versión de lógica histórica más antigua.
  • El estado deshabilitado (valor 1) se refiere a la versión de lógica más nueva (los datos se utilizan para ventanas emergentes, lo cual es útil cuando los parámetros importantes se reciben con poca frecuencia).
Por defecto, se selecciona la versión de lógica más antigua.
appear_in_popup Pase true para habilitar la opción Visible, o false para deshabilitarla.
battery_capacity Capacidad de batería de un sensor de nivel de batería, en kWh. Se utiliza junto con show_as_percentage para mostrar el nivel de batería como un porcentaje.
ci Intervalos de valores personalizados. Consulte los ejemplos de configuración.
calc_fuel Especifique un valor distinto de cero para habilitar el cálculo de datos por el sensor, o 0 para deshabilitarlo. Para un sensor de nivel de batería, esto habilita el cálculo del nivel de batería y carga cuando el sensor se utiliza con el detector battery_level, charge o ev.
engine_efficiency Array de ID de sensores de eficiencia del motor utilizados por un sensor de motor.
engine_sensors Array de ID de sensores de motor utilizados por un sensor de nivel de combustible para calcular el consumo de combustible.
filter Redefine el nivel de filtrado para el sensor. Entero de 0 a 255. Aplica un filtro de suavizado al valor del sensor. Válido para los siguientes sensores:
  • Acelerómetro
  • Personalizado
  • Revoluciones del motor
  • Nivel de combustible impulsivo
  • Temperatura
  • Voltaje
  • Peso
Los sensores de nivel de combustible y nivel de batería utilizan una configuración de filtrado separada. Consulte fuel_params en los ejemplos de configuración.
fuel_params Configuración de un sensor de nivel de combustible o nivel de batería. Consulte los ejemplos de configuración.
mu Sistema de medida:
  • 0: SI
  • 1: US
  • 2: imperial
  • 3: métrico con galones
pos Posición del sensor en la lista (cuenta desde 1).
show_time Pase true para mostrar el valor del sensor con la hora desde la cual se recibió este valor, o false para ocultar la hora. Para más información, lea sobre la opción Hora en la página Sensores.
unbound_code Para los sensores de asignación de conductor o remolque, puede especificar un código de separación personalizado.
validate_driver_unbound Validar separación: 0 (no), 1 (sí).
do_not_show Este parámetro se utiliza para configurar el sensor de Modo privado. Configúrelo en 1 para evitar que los datos de ubicación de la unidad se transmitan cuando el sensor está encendido, o 0 para permitir que estos datos se reciban.
timeout Timeout, segundos.
uct Pase 0 para habilitar la opción Desbordamiento por datos sin procesar. Pase 1 para deshabilitarla. La opción está disponible solo para sensores contadores diferenciales con desbordamiento.

La opción cambia el orden en que se aplica la tabla de cálculo en los informes. No afecta cómo se aplica overflow_limit a los eventos de sensores diferenciales.
lower_bound Límite inferior de valores válidos del sensor para la tabla de cálculo.
upper_bound Límite superior de valores válidos del sensor para la tabla de cálculo.
overflow_limit Valor en el que el contador del sensor se reinicia a cero. El sistema lo utiliza para calcular eventos de sensores diferenciales para los siguientes sensores:
  • Kilometraje
  • Horas de motor absolutas
  • Consumo de combustible absoluto
  • Consumo de combustible impulsivo
  • Contador diferencial
Si el valor actual es menor que el valor anterior y el límite es mayor que 0, el delta se calcula como (overflow_limit - valor anterior) + valor actual. Si el límite es 0 o no está configurado, el delta es igual al valor actual. El sistema aplica esta clave independientemente del flag 0x20, que controla el manejo de desbordamiento en el cálculo del valor del sensor. Especifique el límite en valores procesados, es decir, en los valores obtenidos después de que se aplique la tabla de cálculo. La clave uct no afecta este comportamiento.

Para sensores de consumo de combustible impulsivo, esta clave afecta solo a los eventos. Para configurar el valor de desbordamiento para el cálculo del consumo de combustible en informes, utilice fuel_params.maxImpulses, que corresponde a la opción Impulsos máximos. A diferencia de overflow_limit, maxImpulses se aplica a valores sin procesar, antes de la tabla de cálculo.
text_params Pase 1 para habilitar la opción Parámetros de texto, o 0 para deshabilitarla.
show_as_percentage Pase 1 para mostrar el nivel de batería como un porcentaje del valor especificado en battery_capacity, o 0 para mostrar el valor en kWh. Si battery_capacity falta o no es un número positivo, el valor se muestra en kWh. Consulte la opción Convertir valores a %.

Ejemplos de configuración

En el parámetro ci, cada clave es el límite inferior de un intervalo, y cada valor describe cómo se muestra el valor del sensor en este intervalo:

Copied!
"c":"{\"ci\":{\"0\":{\"t\":\"Off\",\"c\":16711680},\"50\":{\"t\":\"On\"}}}"
Clave Descripción
t Texto mostrado en lugar del valor del sensor.
c Color de texto opcional, especificado como un entero en formato decimal.

Para configurar un intervalo sin límite inferior, utilice la clave "-Infinity".

Ejemplo de pasar fuel_params de un sensor de nivel de combustible:

Copied!
"c":"{\"fuel_params\":{\"flags\":1728,\"ignoreStayTimeout\":20,\"minFillingVolume\":21,\"minTheftTimeout\":0,\"minTheftVolume\":15,\"filterQuality\":0,\"fillingsJoinInterval\":300,\"theftsJoinInterval\":300,\"extraFillingTimeout\":0}}"

Ejemplo de pasar fuel_params de un sensor de consumo de combustible impulsivo:

Copied!
"c":"{\"fuel_params\":{\"maxImpulses\":10,\"skipZero\":0}}"

Ejemplo de pasar fuel_params de un sensor de nivel de batería:

Copied!
"c":"{\"fuel_params\":{\"flags\":16387,\"filterQuality\":0,\"minFillingVolume\":10,\"fillingsJoinInterval\":300}}"

Para un sensor de nivel de batería, el sistema utiliza la configuración que se indica a continuación. Si no pasa el objeto fuel_params en absoluto, el sistema utiliza la configuración de combustible de la unidad. Si pasa el objeto sin algunas de las claves, el sistema utiliza los valores de la tabla.

Clave Descripción
flags Flags de detección de carga y filtrado. Los valores son los mismos que para un sensor de nivel de combustible. Para ver la lista, consulte unit/get_fuel_settings.

Si no especifica esta clave, el sistema utiliza 1, lo que combina los valores de sensores con el mismo nombre. Para desactivar la combinación, especifique un valor sin el flag 0x01. Si el valor incluye el flag 0x2000, la combinación permanece activada independientemente de los otros flags que pase.
filterQuality Nivel de filtrado de mediana (0-255). Se aplica cuando el filtrado de mediana está habilitado en flags. Se ignora cuando el filtrado adaptativo está habilitado. Si no especifica esta clave, el sistema utiliza 0.
minFillingVolume Volumen de carga mínimo, en kWh. Si no especifica esta clave, el sistema utiliza 20 kWh. El valor predeterminado en el campo Volumen de carga mínimo de la interfaz es 10 kWh. Para aplicar el mismo umbral a través de la API, especifique esta clave explícitamente.
fillingsJoinInterval Timeout para separar cargas consecutivas, en segundos. Si no especifica esta clave, el sistema utiliza 300 segundos.

El sistema utiliza esta configuración solo cuando el cálculo de datos por el sensor está habilitado en calc_fuel. Esta configuración corresponde a la opción Calcular datos según el sensor. Los valores calculados son devueltos por los detectores battery_level, charge y ev. Para más detalles, consulte la sección Tipos de detectores de eventos.

La clave show_as_percentage afecta solo a la visualización. Siempre especifique battery_capacity y la configuración de detección de carga en kWh.

Ejemplo de una cadena c para un sensor de nivel de batería, donde se configuran a la vez la detección de carga y la visualización en porcentaje:

Copied!
"c":"{\"fuel_params\":{\"flags\":16387,\"filterQuality\":0,\"minFillingVolume\":10,\"fillingsJoinInterval\":300},\"show_as_percentage\":1,\"battery_capacity\":64.5,\"calc_fuel\":2,\"act\":1,\"mu\":0,\"appear_in_popup\":true}"

Pase show_as_percentage y battery_capacity dentro de la cadena c, junto a fuel_params, y mantenga el parámetro m del sensor configurado como kWh.

El tipo de filtrado se configura en flags: utilice 0x02 para habilitar el filtrado y agregue 0x4000 para el filtrado de mediana adaptativo. Si configura el flag 0x2000, el sistema utiliza solo los flags de filtrado y el valor filterQuality del sensor.

Para los sensores de nivel de batería, el flag 0x2000 funciona de manera opuesta a su descripción en la página unit/get_fuel_settings: no aplica la configuración de combustible predeterminada de la unidad.

El sistema siempre agrega el modo de cálculo por tiempo (0x10) para sensores de nivel de batería. No puede deshabilitarlo a través de este método.

Para sensores de nivel de batería, el sistema reinicia las claves ignoreStayTimeout, minTheftVolume y extraFillingTimeout a 0, incluso si especifica otros valores. Las claves minTheftTimeout y theftsJoinInterval no tienen efecto porque la detección de descarga no está disponible para estos sensores.

Tipos de validación

Flag de tipo de validación Descripción
0x01 AND lógico
0x02 OR lógico
0x03 AND matemático
0x04 OR matemático
0x05 Sumar
0x06 Restar validador del sensor
0x07 Restar sensor del validador
0x08 Multiplicar
0x09 Dividir sensor por validador
0x0A Dividir validador por sensor
0x0B Verificación de no nulo
0x0C Reemplazar sensor con validador en caso de error

Respuesta

Si la solicitud para crear o actualizar un sensor se completa con éxito, se devuelve una respuesta en el siguiente formato:

Copied!
[
  <long>,  /* ID del sensor */
  {
    "id": <long>,       /* ID del sensor */
    "n": "<text>",      /* Nombre */
    "t": "<text>",      /* Tipo */
    "d": "<text>",      /* Descripción */
    "m": "<text>",      /* Unidad de medida */
    "p": "<text>",      /* Parámetro */
    "f": <uint>,        /* Flags del sensor */
    "c": <text>,        /* Configuración, enviada y devuelta como una cadena JSON */
    "vt": <int>,        /* Tipo de validación */
    "vs": <long>,       /* ID del sensor de validación */
    "tbl": [            /* Tabla de cálculo */
      {
        "x": <double>,
        "a": <double>,
        "b": <double>
      }
    ]
  }
]

Si la solicitud para eliminar un sensor se completa con éxito, se devuelve una respuesta en el siguiente formato:

Copied!
[
  <long>,   /* ID del sensor */
  null
]

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

Códigos de error

Código de error Descripción
4 Parámetros de entrada incorrectos.
6 No se pudo actualizar un parámetro de la sección params.
7 No hay derecho de acceso ADF_ACL_AVL_UNIT_EDIT_SENSORS a la unidad.
2015 No se puede eliminar el sensor porque se utiliza en las propiedades avanzadas de la unidad o en las propiedades de otro sensor.

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