update_sensor
Para crear, modificar o eliminar sensores, utilice el método unit/update_sensor.
Endpoint
svc=unit/update_sensor¶ms={
"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:
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:
"{
\"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:
|
| 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:
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:
|
| 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:
(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:
"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:
"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:
"c":"{\"fuel_params\":{\"maxImpulses\":10,\"skipZero\":0}}"
Ejemplo de pasar fuel_params de un sensor de nivel de batería:
"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:
"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
0x2000funciona 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:
[
<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:
[
<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. |