Testing default Traccar 5.6 on ubuntu server with Filter: Accuracy for Watch protocol

Track-trace2 years ago

I am testing server filter: Accuracy

In traccar.xml the following is added.

    <entry key='filter.enable'>true</entry>
    <entry key='filter.accuracy'>30</entry>

First i test the filter with Osmand protocol. Below we can see i set the Accuracy in the sent data to 40,7 (higher then filter.accuracy 30 to trigger the filter). When i sent this data from a browser to the server on osmand port 5055 the position is filtered.

http://myserverip:5055/?id=74236×tamp=1677896382&lat=51.035581&lon=3.730006&speed=4.7&bearing=0.0&altitude=43.10000228881836&accuracy=40.74599983215332&batt=65.0&charge=true

In the log i can see.

2023-03-04 22:26:49  INFO: Position filtered by Accuracy filters from device: 74236

So Filter Accuracy is working for Osmand protocol.

Then i test the same settings with the Watch protocol.

From the Watch protocol we know that the Accuracy value is the last value in the device data.

https://www.traccar.org/protocol/5093-watch/

The device reports Accuracy: 40.7

[CS*YYYYYYYYYY*LEN*UD, location data (see Appendix 1)]

Example:

[3G*9403094122*00CD*UD,180916,025723,A,22.570733,N,113.8626083,E,0.00,249.5,0.0,6,100,60,0,0,00000010,7,255,460,1,9529,218,95298 ,63555,133,9529,63554,129,9529,21405,126,9529,21242,124,9529,21151,120,9529,63556,119,0,40.7]

illustrate:
Data content:
UD, command number
180916, date
025723, time
A, gps positioning is valid
22.570733, latitude
N, latitude representation
113.8626083,longitude
E, longitude representation
0.00, speed
249.5,direction
0.0, altitude
6, the number of satellites
100, gsm signal strength
60, power
0, step count
0, the number of flips
00000010, the terminal state, the data is in hexadecimal, parsed into binary as 0000 0000 0000 0000 0000 0000 0001 0000
7, the number of base stations
255,460,1,9529,21809,158,9529,63555,133,9529,63554,129,9529,21405,126,9529,21242,124,9529,21151,120,9529,63556,119, base station information
0, the number of WiFi
40.7, positioning accuracy, in meters

When i use test-commands.py from traccar to sent this Watch device data with Accuracy 40.7 then the Filter is not triggered:

[3G*8401202342*0164*UD,040323,224300,A,51.035581,N, 3.730006,E,4.31,159.1,0.0,8,92,73,003107,0,00000000,6,255,204,8,3170,49308,141,3170,49310,147,3170,51919,141,3170,51933,131,3190,53451,129,3190,53450,125,5,SomeWifi ,1c:b9:c4:d2:97:78,-74,SomeWifi2,90:5c:44:c8:63:c8,-75,SomeWifi3,92:5c:14:c8:63:c8,-75,SomeWifi4,44:fe:3b:e4:6b:f0,-76,SomeWifi5,2a:35:d1:6:a3:69,-76,40.7]

Changing the data to Invalid "V" or other values does not trigger the filter either.

Any clues ?

Anton Tananaev2 years ago

I'm pretty sure that accuracy value from the Watch protocol is not decoded.

Track-trace22 years ago

Its Track-trace, but i cant reply to this thread (to many requests) when a write a reply. So i registered an extra account..

Im trying to understand your answer. So you actually mean that Filtering Accuracy is not (yet) implemented in the server code for Watch protocol ?

Anton Tananaev2 years ago

No, I'm saying that the accuracy value is not supported. Filtering works the same for all protocols.

Track-trace22 years ago

I see, since all Watch protocol devices i have seen send the actual accuracy value with the position data. Is this something to add as a feature request for filtering ?

Anton Tananaev2 years ago

It's a feature request for the protocol implementation, not for filtering.

Track-trace22 years ago

Ok i get it. Posted the request here: https://github.com/traccar/traccar/issues/5041