filter.skipLimit & filter.duplicate

jv8 years ago

Hi,

I am using version 3.15
I have done some test with OsmAnd protocol and use different 'timestamp' in my http request.

  1. With filter.duplicate set to true, using the same timestamp I still see the new records appearing in the reports

  2. With filter.skipLimit (<entry key='filter.skipLimit'>10</entry>),
    I still see records in the reports appearing even if there is less than 10 seconds between :
    2017-12-30 12:48:48
    2017-12-30 12:48:49
    2017-12-30 12:48:51
    2017-12-30 12:48:52

No error and nothing special in the logs.

When I modify the traccar.xml, each time I stop and then startDaemon.sh

traccar.xml

    <entry key='database.driver'>org.h2.Driver</entry>
    <entry key='database.driver'>org.h2.Driver</entry>
    <entry key='database.url'>jdbc:h2:./data/database</entry>
    <entry key='database.user'>sa</entry>
    <entry key='database.password'></entry>
    <entry key='database.ignoreUnknown'>false</entry>
    <entry key='database.registerUnknown'>true</entry>
    <entry key='filter.enable'>true</entry>
    <entry key='filter.skipLimit'>10</entry>
    <entry key='web.port'>80</entry>

Am I missing something in the configuration file or somewhere else ?

Thank you for your help.

Anton Tananaev8 years ago
  1. Duplicate filter uses timestamp to detect duplicates, so obviously it won't work.

  2. Skip limit is NOT for filtering. It's for the opposite. It's for keeping locations.

I would suggest to read documentation more carefully before asking questions like this:

https://www.traccar.org/configuration-file/

jv8 years ago

Understood for 1)

For 2) I don't understand how the filter.skipLimit works, can you give an example ?
It is written :

  • If the time difference between last position and a new one is more than this limit, the new position will not be filtered out.
    Which is the same as
  • If the time difference between last position and a new one is LESS than this limit, the new position WILL BE filtered out.

Or my question would be, is it possible to filter new records if the time difference is less than a specific duration ?

Anton Tananaev8 years ago

If the time difference between last position and a new one is LESS than this limit, the new position WILL BE filtered out.

Where did you get this statement from? It's not from documentation and your assumption is wrong.

It works exactly as it's written and it only makes sense to configure it in addition to some filtering options. For example, you have a device that reports location every minute. You enable distance filtering to avoid multiple reports with same location when device is stationary, but you still want to make sure devices is still online, so you enable skipLimit with 9 minutes. It means even if device didn't move you still get one report every 9 minutes to keep device status online.

jv8 years ago

Thank you for the example, this is clear now for me.