Do you have any protocol documentation?
I tried to search on the internet and that's all I found.
The payload send by the software is in Little Endian.
From the device we have received "012EDB583C07DACE1E1F7E941803DFFF0000920601" on our server.
Timestamp
Take the first 4 bytes "012EDB58"
Change endianness
01 2E DB 58 -> 58 DB 2E 01
When you convert 58DB2E01 to decimal you will get: "1490759169"
Timestamp: 1490759169
Battery
Take the next byte, multiply by 10 and add 3000 to get the millivolts
Battery: 3600
Temperature
Take the next byte, and convert hex to decimal
Temperature: 7
GPS
Take the next 4 bytes for Latitude and another 4 for the Longitude, change endianness, convert hex to decimal and divide by 10000000
GPS: 52.211273,5.1942526
Altitude
Altitude: -32
Speed
speed: 0
Course
course: 146
Satellite
Satellite count: 6
Time to Fix
Time to fix: 1
The length of the message doesn't seem to match.
I can see it too. The device is a Sodaq SARA SFF and, I run Universal Tracker on it.
https://support.sodaq.com/Boards/Sara_SFF/examples/universal_tracker/
That's all I could find about it on this site.
Wait. It's open source?
Then it should be possible to find all the information from the code. But it seems like it would require a new protocol anyway.
I found a topic here on the forum 5 years ago, this topic was discussed. According to them, there is no protocol for this yet.
https://www.traccar.org/forums/topic/sodaq-universal-tracker/
I found a pattern, it might help you to decode it.
{
"type": "object",
"properties": {
"latitude": {
"type": "number"
},
"longitude": {
"type": "number"
}
}
}
{
"sense": [
{
"asset": "timestamp",
"value": {
"byte": 0,
"bytelength": 4,
"signed": false,
"byteorder": "little",
"type": "integer"
}
},
{
"asset": "v",
"value": {
"byte": 4,
"bytelength": 1,
"signed": false,
"calculation": "val * 10 + 3000",
"type": "integer"
}
},
{
"asset": "t",
"value": {
"byte": 5,
"bytelength": 1,
"signed": true,
"type": "integer"
}
},
{
"asset": "g",
"value": {
"latitude": {
"byte": 6,
"bytelength": 4,
"signed": true,
"byteorder": "little",
"calculation": "val / 10000000",
"type": "integer"
},
"longitude": {
"byte": 10,
"bytelength": 4,
"signed": true,
"byteorder": "little",
"calculation": "val / 10000000",
"type": "integer"
},
"altitude": {
"byte": 14,
"bytelength": 2,
"signed": true,
"byteorder": "little",
"type": "integer"
}
}
},
{
"asset": "speed",
"value": {
"byte": 16,
"bytelength": 2,
"signed": false,
"byteorder": "little",
"type": "integer"
}
},
{
"asset": "sat",
"value": {
"byte": 19,
"bytelength": 1,
"signed": false,
"type": "integer"
}
},
{
"asset": "ttf",
"value": {
"byte": 20,
"bytelength": 1,
"signed": false,
"type": "integer"
}
}
]
}
My device, which is equipped with a Ublox Sara R412m chip, sends these messages to the server on port 5001.
I tried to set it with the IMEI number and the identifier found in the log, but unfortunately it does not appear on the map.
Unfortunately, I'm new to the topic and I don't know what kind of protocol this is.