Other apps
Wialon for Android/iOS
Wialon Local
Wialon Hosting
Additional Settings of FLS
  • sensors
  • fuel_sensors

The fuel level sensor has additional settings which are shown when the Calculate data in reports by the sensor option is activated. These settings are divided into basic and advanced ones.

Calculate data in reports by the sensor

This option allows detecting drains, fillings, and determining the amount of consumed fuel. If it is enabled, the data calculated by fuel level sensors is taken into account in the Consumed row in statisticsas well as in reports in the Consumed by FLS, Consumed in motion, Consumed without motion, Avg consumption, etc. columns. In Wialon for Android/iOS the enabled option allows to see fuel level data in the unit section.

The option doesn't influence notifications about fuel fillings and fuel drains, that is, if the option is disabled, these notifications can be triggered.

When using this sensor, the fuel consumption is calculated on the basis of the fuel level in the tank according to the following formula: [fuel level value at the beginning of the interval] − [value at the end of the interval] + [fillings] − [drains] (drains are subtracted if the Exclude drains from fuel consumption option is activated in the report settings).

Different report tables have different intervals. For more information about the intervals, see the description of the tables.

Basic settings

The basic settings of the fuel level sensor include three options.

Filtration type

This option allows filtering the sensor values to avoid data outliers (sudden changes in the fuel level: rises or falls). Filtration is taken into account in reports (in tables and charts when displaying smoothed lines), in jobs for sending fuel level information, and in notifications about fuel fillings and drains.

The drop-down list contains three items:



Select this item if the data doesn't require filtering.

Median filtration

If you select median filtration, you should specify its level, that is, how much the data should be smoothed. Typically, values from 0 to 5 are used. 

If the filtration level is equal to 0, smoothing is carried out on the basis of three messages. In other cases, the number of messages on the basis of which smoothing should be carried out is calculated as follows:

  • if the field value is an odd number from 1 to 255, it is multiplied by 5;
  • if the value is an even number from 2 to 254, it is multiplied by 5, and 1 is subtracted from the result.

If the filtration level is too high, the data may be distorted. Therefore, we don’t recommend specifying a value higher than 8.

Adaptive median filtration

If you select adaptive median filtration, no additional settings are required. The algorithm automatically selects a suitable value based on the unit data.

The algorithm smoothes small random fluctuations in fuel level without affecting significant variations. This allows detecting fuel fillings and potential drains more efficiently and determining their volume more accurately.

The unit tooltip and the extended unit information show raw FLS values, that is, the values which haven't been filtered yet.

Minimum fuel drain volume

The minimum decrease in the fuel level which should be considered a drain. The value of this field should be greater than 0 and can be fractional.

Minimum fuel filling volume

The minimum increase in the fuel level which should be considered a filling. The value of this field should be greater than 0 and can be fractional.

Advanced settings

The system uses default values for the advanced settings, but you can change them if needed. To do this, activate the Advanced settings option and edit the values in the General settings, Filling settings, and drain settings blocks. If the Advanced settings option is deactivated, the edited values are replaced by the default ones.

General settings

Calculate fuel consumption by time

If this option is enabled, all time intervals, regardless of whether the unit has been moving or not, are included in the calculation of fuel consumption. If this option is disabled, the fuel level on the intervals without movement is not included in the calculation.

For the time-based fuel calculation, you should activate the Calculate fillings by time, Calculate drains by time, and Calculate fuel consumption by time options at the same time.

Replace invalid values with those calculated mathematically

This option becomes available when the previous one is activated. If this option is enabled, the erroneous values detected in the interval are replaced with the ones calculated mathematically. The data indicated in the properties of the ignition sensors, relative and absolute engine hours (the Consumption, l/h option), and the value of the engine efficiency sensor are used during the mathematical calculation.

Ignore the messages after the start of motion

This option allows skipping messages during the indicated number of seconds at the beginning of movement when determining the fuel level. Otherwise, you can get inaccurate data due to various factors. The start of the movement is registered when the minimum speed indicated in the trip detector is reached.

Filling settings

Calculate fillings by time

This calculation method is recommended for units with high fuel consumption at idling (generator, tower crane, etc.). When this option is activated, all time intervals are included, regardless of trips/stops.

Detect fuel fillings only during stops

When this option is enabled, fillings are detected only at stops, that is, when the speed of the unit is lower than the minimum one indicated in the trip detection. This allows reducing the number of false fillings which are caused, for example, by fluctuations in the fuel level during movement.

The initial fuel level is taken from the first message without movement or from the last message with movement.

If any value is indicated in the Timeout to detect final filling volume field, the fillings are also detected during this time after the stop ends.

If a time period between stops is less than the one indicated in the Timeout to separate consecutive fillings field, such stops and the movement intervals between them are considered as one stop. The time when the first stop begins is considered to be the beginning of the filling, and the time after the last stop and the expiration of the timeout is considered to be the end of the filling.

Timeout to detect final filling volume

This field becomes available when the previous option is activated. Here you can indicate the duration of interruptions between fuel entries in the process of filling. To determine the fuel level after the filling, the message that follows the indicated timeout is used, but not the last one that corresponds to the filling. To determine the filling volume, the system calculates the difference between the fuel level from this message and the message that precedes the start of the filling.

Calculate filling volume by raw data

This option can be useful if you set a high level of median filtration for smoothing the outliers of FLS values. As a result of such filtration, the values of the initial and final fuel level and of the filling volume are distorted. Under certain conditions, the option allows replacing them with the values calculated on the basis of raw data, that is, the data before smoothing.

If this option is enabled, the system uses the following algorithm:

  • The filling volume (Vfilled) is calculated according to the formula:
    Vfilled = Vmax  —  Vmin,
    Vmax  is the maximum fuel level within the filling interval according to the raw data;
    Vmin  is the minimum fuel level within the filling interval according to the raw data.
    Vmin is also considered to be the initial fuel level within the filling interval. To calculate the final level within this interval, the filling volume (Vfilled) is added to the initial level.
  • If the resulting value of the filling volume exceeds the volume calculated on the basis of raw data, the values of the initial and final level and of the filling volume are replaced with the new ones. Otherwise, the values remain the same.

Timeout to separate consecutive fillings

If this option is enabled and more than one filling within a short time interval is detected, the fillings are combined into one, provided that the time between them (timeout) does not exceed the time indicated in this setting.

In the fields for indicating duration value, you can enter only 0 or an integer greater than 0.

You can get information on fillings by executing the Fuel fillings report, using the Send fuel information by email or SMS job or the notification about fuel fillings.

Drain detection settings

Calculate drains by time

It is similar to the Calculate fillings by time option (see above).

Detect fuel drains in motion

This setting becomes available only after activating the previous option. The setting allows detecting drains not only during stops, but also during movement, which can be useful, for example, for ships. However, in many cases, activating this option can result in the detection of false drains due to changes in fuel level, for example, while driving on rough terrain.

Minimum stop duration to detect a fuel drain

This setting is available only if the Detect fuel drains in motion option is disabled. Here you can specify the minimum duration of the interval without movement which is followed by a decrease in the fuel level by more than the minimum fuel drain volume indicated in the basic settings.

Calculate drain volume by raw data

It is similar to the Calculate filling volume by raw data option (see above).

Timeout to separate consecutive drains

If this option is enabled and more than one drain during a short time interval is detected, the drains are combined into one, provided that the time between them (timeout) does not exceed the time indicated in this setting and the fuel level has not increased.

In the fields for indicating duration value, you can enter only 0 or an integer greater than 0.

You can get information on drains by executing the Fuel drains report, using the Send fuel information by email or SMS job or the notification about drains.

Questions and answers

  What is the difference between time-based and mileage-based calculation of fuel level?

1. Mileage-based calculation

In a standard situation, all calculations of fuel level are mileage-based. That means data from the FLS is taken only during intervals of movement (trips). Those trips are defined according to parameters set in the trip detector.

Drains and fillings are detected if there is a difference between the fuel level on the following movement interval (X) and the fuel level on the previous movement interval (Y). If (X — Y) > 0, it is a filling; if (X — Y) < 0, it is a drain; if X = Y, it is neither. Of course, there can be some inaccuracy in data coming from the FLS. That is why, to avoid false drains and fillings, set the following parameters in the FLS properties:

  • minimum fuel filling volume,
  • minimum fuel drain volume,
  • minimum stop duration to detect a fuel drain,
  • and some others.

2. Time-based calculation

This type of calculation is more complicated and is based on the following algorithm: the speed of the decrease of fuel level according to the FLS is compared with the consumption calculated mathematically. The time-based calculation is necessary for stationary units. It is also widely used for moving units for controlling drains during the movement, for example.


A vehicle stayed at a parking lot during 10 hours. Defueling was made in small portions over the whole parking period. As a result, 60 liters of fuel were drained. It is possible to determine if it was a drain o fuel consumption according to the state of the unit's ignition sensor. ​

  Why doesn't consumption by math work?

Since the consumption math mechanism is based on the values of the ignition sensor, check its properties and operation. You may not have this sensor created or there may be 0 l/h indicated for the fuel consumption in its properties.

  How to configure consumption by math if the unit doesn't have ignition?

You may use one of the approaches described below.

Variant 1

Create a virtual ignition sensor. We recommend that you use average speed (speed+#speed)/const2 as its parameter.

Variant 2

Even if you haven't installed an ignition sensor in the unit or are not sure of the name of the parameter that responds for the ignition, in the parameters of the device there may be some characteristic that corresponds to the operation of the engine. To use it, compare two messages from the unit: one — when the ignition the most probably off; the other — when it's on.


During a long time interval the unit sends approximately the following set of parameters:

hdop=1, odo=0, adc2=2.0475, adc12=1037, c1=0, c2=0, c3=0, c4=0, mcc=260, mnc=2, lac=56720, cell_id=43811, ta=1,
gsm_lvl=55, total_fuel=407154, can_fls=101, can_taho=4797, can_engine_hrs=230420, can_mileage=137603392, engine_temp=123,
srv_dist=0, j1939_air_temp=9072, J1708_eng_hrs=230420, J1708_fl_used=430282, J1708_fl_lvl=101, I/O=80/0

While moving at some speed — approximately the following:

hdop=1, odo=847.358764648, adc2=2.3595, adc12=1117, c1=0, c2=0, c3=0, c4=0, mcc=260, mnc=2, lac=56720, cell_id=60167, 
ta=1, gsm_lvl=71, total_fuel=407178, can_fls=101, can_taho=9940, can_engine_hrs=230447, can_mileage=137609550, 
engine_temp=124, srv_dist=0, j1939_air_temp=9353, J1708_eng_hrs=230447, J1708_fl_used=430307, J1708_fl_lvl=101, I/O=d1/0

Straight before the start of the movement, as a rule, the ignition turns on:

hdop=1, odo=0, adc2=1.4937, adc12=895, c1=0, c2=0, c3=0, c4=0, mcc=260, mnc=2, lac=56720, cell_id=60268, ta=2, 
gsm_lvl=64, total_fuel=407166, can_fls=100, can_taho=996, can_engine_hrs=230439, can_mileage=137605711, engine_temp=120, 
srv_dist=0, j1939_air_temp=9369, J1708_eng_hrs=230439, J1708_fl_used=430295, J1708_fl_lvl=100, I/O=80/0

Discard the parameters that are obviously imprecise: hdop (precision), adcN (it's difficult to determine the regularity), odo (relative odometer in meters), mcc mnc cell_id and lac (LBS data section), gsm_lvl (the level of the GSM signal), etc. The parameter J1708_eng_hrs for this unit seems the most probable, as it doesn't change during the night parking. As a rule, it is also possible to use pwr_ext. Is the ignition is digital, you can follow the values' changes in the block 'I/O =' (see more details in the Inputs and outputs section).

Variant 3

If you have already connected the ignition, find out its parameter by means of the method described above or from the manual of the manufacturer.

  Why does mathematical calculation show enormous values?

Possible reasons:

  • In some cases, the system may consider that during the interval with no messages from the unit its ignition was on. Adjust the default value '0 seconds' on the Maximum interval between messages option on the Advanced tab of unit properties. The influence of the option on the fuel calculation is described in the documentation.
  • Several engine efficiency sensors can be created. Check up their values. The easiest way to evaluate it is to create in a report a simple chart with one of the curves Fuel consumption by math.
  How to determine fuel consumption, if I know how much fuel the unit consumes within the city, and how much outside it?

Let us suppose that the fuel consumption in the urban cycle is 10 l/100 km and 7 l/100 km — in the suburban cycle.

  • Create an ignition sensor (as in the example above) and set 1 l/h for the consumption during idling.
  • The average consumption in the urban cycle is 36 km/h, in the suburban — 80 km/h.
  • The unit will cover a distance of 100 km driving at a speed of 36 km/h in 2.8 hours. 10 l / 2.8 = 3.57. Let us calculate the value of the increasing coefficient when moving in the city: 3.57 / 1 (idling) = 3.57.
  • As a result of a similar calculation for the suburban cycle, we obtain the coefficient equal to 5.6.
  • Create an engine efficiency sensor, taking into account the fact that the unit cannot consume less fuel than during the idling, and that it is stationary before the beginning of the movement. As a parameter we use the average speed (speed + # speed) / const2 and fill in the calculation table (manually or using the calculation table wizard):

Note that the last pair of points is how the system calculated before (the fuel consumption was considered constant for a speed above 80 km/h). You cannot use this method and change the set of points. Also '3' in this example is the minimum speed from the unit's trip detector, consequently, this parameter can be different for your unit.

Result: in our example, the average consumption has been calculated for the unit. It has been calculated relative to the speed and time between messages and taking into account the values of the vehicle operation.

  How does the mathematical calculation algorithm work?

During the mathematical calculation, fuel consumption is computed separately for each pair of messages.

The following algorithm is used:

  1. The status of each engine sensor (engine ignition, absolute and relative engine hours sensors) in the current message is determined.
  2. For the operating sensors the values indicated in the field Consumed, l/h of their properties are summed.
  3. The values of the engine efficiency sensors bounded to the engine sensors are calculated.
  4. The received values are summed according to the formula k1 + (k2 - 1) + (k3 - 1) + … + (kn – 1). In that way, the coefficient is formed. If the sum of the coefficients is less than 0 or invalid, the total coefficient will be 1.
  5. To determine the current fuel consumption of the unit, the value from point 2 is multiplied by the value of point 4.
  6. The value from the previous message till the current one is multiplied by the value from point 5.
  7. The consumption for each message pair for the indicated interval is summed and in that way, the fuel consumption is determined by consumption math.
  Where is the Consumption by rates setting?

This setting is on the Advanced tab.

Video: Gurtam | Training session. Fuel control

You can find information about fuel control in the following video dated 26.09.2019:

If you find a mistake in the text, please select it and press Ctrl+Enter.
Thank you for your feedback!
Report a mistake
Text with the mistake Comment
Maximum 500 characters