"Packet type=1 – this packet should not require acknowledgment)"
This is some old relict from very old devices. 8-10 years old.
All current devices - DO require answer to sent records (both via TCP and UDP).
So please ignore that packet_type - it does not work. I'll forward info to update documentation @ https://wiki.teltonika.lt/view/Codec
"What's the point then ?!"
You always need to send ACK to received records from device.
So what kind of ACK do we need to send ?
1. for TPC packets - 4 bytes. where first 3 bytes are zeroes. and last byte - is number of records received.
2. for UDP packet - 7 bytes. where first 5 bytes can be zeroes. and 6th byte is avl_packet_id - server must sent exactly the same avl_packet_id as with received records packet. and last 7th byte - is number of records received.
"The entire purpose of us picking UDP is to not have to deal with these kind of things (UDP is send and forget)."
Nor FM11/12/53 etc (older devices), nor FMB devices - have UDP communication in the style of send and forget. (except no_ack feature - see below)
"It is enough that the client needs to program his own code for decoding these protocols - No proper software packages are provided by Teltonika and the only code example is some undocumented C# example code that is horridly complex."
We suggest clients use other platforms for device tracking these days: https://wiki.teltonika.lt/view/Other_platforms
Since teltonika announced that tavl / tavl web -> will be going EOL: https://teltonika.lt/policies/eol/
So I implemented the UDP in Python but am stuck on these pointless ACK packets.
What do I need to send there?
[answer] Please check how demo server works and answers records sent from device. If you configure tcp:0 in values.txt -> then server will launch in UDP mode.
Then all you need is to configure device to send records to your PC -> via port which you have opened.
Then all you need to do is to compare to documentation @ https://wiki.teltonika.lt/view/Codec
How does the device (FMB630) affected if I don't send these packets ?
[answer] FMB63/64 - uses the same protocols as FMB family devices. Except it additionally has codec16. But all codecs do require answer to records received by server.
Will it at some point give up on the old records and move on to sending the latest record ? (As it should)
[answer] no. if device does not receive answer to records sent -> FW will repeat records sending (will not delete them).
Records sending order depends on newest / oldest configuration.
Can you please come up with SIMPLE and CLEAR instructions on what needs to be done ? This messing around costs us time and money!
[answer] It is clearly defined how you need to formulate answer packet to sent records from FM device.
The only error - is like you described - with packet_type - which does not work. Never did as far as i know. Just documentation was old - and wasn't updated properly.
Additional info - there is experimental functionality developed @ 03.23.xx branch (it is not yet available in 03.25.xx branch latest FW).
This functionality is called no_ack. It works only via TCP. And it works like this:
1. FM device sends records to server via TCP.
2. IF FM device is configured with no ack. I.e. device deletes records if via TCP link layer it gets to know - that sent records packet was received by the server.
I.e. server does not need to actually send an answer packet to records received.
This feature will be available at some point in latest base FW version.
You can contact your sales manager - and request it. We might provide it as experimental version for you to test.