Difference between revisions of "Starting with Teltonika Telematics"
(5 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | + | Here are some tips for solving the most common issues setting up Server. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | =='''Data Interpretation'''== | ||
{| class="wikitable mw-collapsible mw-collapsed" role="presentation" | {| class="wikitable mw-collapsible mw-collapsed" role="presentation" | ||
− | |<strong> | + | |<strong>Where can I find a simple and understandable description of the data sent from the device to the server, along with an explanation? I need to understand what the server sees, how it is written, and what the specific values mean.</strong> |
|- | |- | ||
− | | | + | |In the link below you can find a full explanation of the Teltonika protocols with details about Codec 8 and Codec 8 extended protocols, used for data sending, and Codec 12 for sending GPRS commands: https://wiki.teltonika-gps.com/view/Teltonika_Data_Sending_Protocols |
+ | Each device I/O parameter has its unique ID, which is called AVL ID. If you want to decode the data easily you can try to use the device Data Sending Parameters ID page to learn about the AVL parameters and how to decode it: https://wiki.teltonika-gps.com/view/FMB920_Teltonika_Data_Sending_Parameters_ID | ||
|} | |} | ||
+ | =='''Data Functionality/Workflow'''== | ||
{| class="wikitable mw-collapsible mw-collapsed" role="presentation" | {| class="wikitable mw-collapsible mw-collapsed" role="presentation" | ||
− | |<strong> | + | |<strong>After creating my server, I started to receive the same message from the device for multiple times. Should I respond to it? If yes, whats the format of the response? |
+ | </strong> | ||
|- | |- | ||
− | | | + | |First, when module connects to server, module sends its IMEI. First comes short identifying number of bytes written and then goes IMEI as text (bytes). |
− | + | For example, IMEI 356307042441013 would be sent as 000F333536333037303432343431303133. First two bytes denote IMEI length. In this case 0x000F means, that IMEI is 15 bytes long. | |
− | + | After receiving IMEI, server should determine if it would accept data from this module. If yes, server will reply to module 01, if not - 00. Note that confirmation should be sent as binary packet. I.e. 1 byte 0x01 or 0x00. Then module starts to send first AVL data packet. After server receives packet and parses it, server must report to module number of data received as integer (four bytes). If sent data number and reported by server doesnā€™t match module resends sent data. | |
|} | |} | ||
+ | =='''Implementation'''== | ||
{| class="wikitable mw-collapsible mw-collapsed" role="presentation" | {| class="wikitable mw-collapsible mw-collapsed" role="presentation" | ||
− | |<strong> | + | |<strong>I tried to implement my server but I couldnā€™t create a tool to listen to the data sent by the device. Does Teltonika have any tools to help in receiving the packets? And to parse the data received? If yes, where I can find it?</strong> |
|- | |- | ||
− | | | + | |Yes, Teltonika has a TCP and UDP listeners that makes part of the Teltonika Parser Pack. In the Parser Pack you can also find the Teltonika Parser to decode the data received by the listeners. You can find the download link of the parser pack here: https://wiki.teltonika-gps.com/view/Universal_Device_Test_Guide#Protocols_implementation |
|} | |} | ||
+ | =='''Reading Records'''== | ||
{| class="wikitable mw-collapsible mw-collapsed" role="presentation" | {| class="wikitable mw-collapsible mw-collapsed" role="presentation" | ||
− | |<strong> | + | |<strong>After implement my own server I started to receive a packet with multiple records, how can I know which record was generated first? |
+ | </strong> | ||
|- | |- | ||
− | | | + | |When you receive a packet with multiple records in the same Data Packet you can use the Timestamp to know when the record was generated. |
− | |||
|} | |} | ||
+ | =='''Documentation'''== | ||
{| class="wikitable mw-collapsible mw-collapsed" role="presentation" | {| class="wikitable mw-collapsible mw-collapsed" role="presentation" | ||
− | |<strong> | + | |<strong>I want to receive the data generated by the Teltonika device, does Teltonika have any server or service for this purpose? In case not, Are there any recommendations on how to proceed to receive the data?</strong> |
|- | |- | ||
− | | | + | |As we are a Hardware manufacturer we donā€™t count on a server or service that you can use to see the data generated by your device. So we can offer different solutions for you to reach your goals. [SP1] |
+ | # You can use an existing Fleet Management platform, a Telematics API Platform, or a Cloud Computing platform. There are a lot of options, but you can find a list with some of the compatible platforms/services here: [[Fleet Management platforms|https://wiki.teltonika-gps.com/view/Fleet_Management_platforms]] | ||
+ | # You can develop your platform to receive and parse the data generated by the device. To develop your platform you should have some knowledge about programming and networks. | ||
|} | |} | ||
+ | =='''PRE-Requisite knowledge/skills'''== | ||
{| class="wikitable mw-collapsible mw-collapsed" role="presentation" | {| class="wikitable mw-collapsible mw-collapsed" role="presentation" | ||
− | |<strong> | + | |<strong>I want to develop a Vehicle Tracking System using your GPS Tracker. So, my question is what are the required knowledge/skills to set up my server for sending/receiving data to the Teltonika tracker? I am confused about how to set up my server to send and receive the data from the device</strong> |
|- | |- | ||
− | | | + | |To develop your platform first you must be aware of some sort of information/tech skills, such as device Data Sending Protocols, device data sending parameters, basic concepts of network communications, such as communication protocols, open and test IP and ports and how to parse the data received using source codes or the provide protocols. |
− | |||
|} | |} | ||
+ | =='''Server Requirements/Supported Network Protocols'''== | ||
{| class="wikitable mw-collapsible mw-collapsed" role="presentation" | {| class="wikitable mw-collapsible mw-collapsed" role="presentation" | ||
− | |<strong> | + | |<strong>I want to develop a Vehicle Tracking System using your GPS Tracker. So, my question is what are the required knowledge/skills to set up my server for sending/receiving data to the Teltonika tracker? I am confused about how to set up my server to send and receive the data from the device</strong> |
|- | |- | ||
− | | | + | |Currently, the Teltonika devices works with 03 different protocols for Data Sending; TCP, UDP, and MQTT. You can open a TCP or a UDP port on your PC to receive the data sent by your device. You can make sure that the port is open using external websites like canyouseeme (https://www.canyouseeme.org), port checker (https://portchecker.co/) and others. If youā€™re unable to open ports, you can use external tools such as ngrok (https://ngrok.com/) to virtually route the ports. |
− | |||
|} | |} | ||
+ | =='''Troubleshooting Data'''== | ||
{| class="wikitable mw-collapsible mw-collapsed" role="presentation" | {| class="wikitable mw-collapsible mw-collapsed" role="presentation" | ||
− | |<strong> | + | |<strong>I have done the IMEI acknowledgment part by sending 01 to the device upon reception of IMEI. Now, having a bit of difficulty in sending the number of data packets received on the server from the FMX device. What exactly should I do to properly respond to the device? |
+ | </strong> | ||
|- | |- | ||
− | | | + | |After receiving the AVL packet from the device you should respond with the number of records is in the packet, which is present in the payload and presented as Number of Data 1 and/ or Number of Data 2. |
− | + | Below we have a couple of examples of packets send using the Codec8 and TCP protocols with the proper response: | |
− | |||
− | + | 1) RAW with 01 record: | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | Received data in the hexadecimal stream: | |
− | |||
− | |||
− | |||
− | + | 000000000000003608010000016B40D8EA30010000000000000000000000000000000 | |
− | + | 105021503010101425E0F01F10000601A014E0000000000000000010000C7CF | |
+ | As the Number of Data 1 and 2 shows the value 1, the server should respond: | ||
+ | 00000001 | ||
− | + | 2) RAW with 02 records | |
− | + | Received data in the hexadecimal stream: | |
− | |||
− | + | 000000000000004308020000016B40D57B48010000000000000000000000000000000 | |
− | |||
− | |||
− | |||
− | |||
− | + | 1010101000000000000016B40D5C198010000000000000000000000000000000 101010101000000020000252C | |
− | |||
− | |||
− | |||
− | |||
− | + | As the Number of Data 1 and 2 shows the value 2, the server should respond: | |
− | |||
− | |||
− | |||
− | |||
− | + | 00000002 | |
− | |||
− | |||
− | |||
|} | |} | ||
+ | =='''Common Mistakes'''== | ||
{| class="wikitable mw-collapsible mw-collapsed" role="presentation" | {| class="wikitable mw-collapsible mw-collapsed" role="presentation" | ||
− | |<strong> | + | |<strong>Iā€™m using the Parser tools to decode the records sent by the device to my server but the Parser says ā€ Corrupted Data Insertedā€¯. What should Iā€™m doing wrong?</strong> |
|- | |- | ||
− | | | + | |First, be sure that you're trying to decode using the proper protocol. I mean, if you configured the device to send messages using UDP to your server you must select UDP in the Parser, if you set the device to send the records using the TCP Protocol you must select the TCP in Parser. |
|} | |} | ||
+ | =='''RAW Data Example'''== | ||
{| class="wikitable mw-collapsible mw-collapsed" role="presentation" | {| class="wikitable mw-collapsible mw-collapsed" role="presentation" | ||
− | |<strong> | + | |<strong>I need to parse the data received on my end. Do you have any piece of code or examples that you can provide that I can use to develop my parser?</strong> |
|- | |- | ||
− | | | + | |Here's an example of the Data Received in the HEX Format and how to parse it: |
− | + | Received data in the hexadecimal stream: | |
− | + | 000000000000003608010000016B40D8EA30010000000000000000000000000000000105021503010101425E0F01F10000601A014E0000000000000000010000C7CF. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | The detailed parsing can be found in the wiki page, under the category Communication with server: https://wiki.teltonika-gps.com/view/Teltonika_Data_Sending_Protocols#Codec_8 | ||
|} | |} |
Revision as of 07:17, 6 February 2024
Here are some tips for solving the most common issues setting up Server.
Data Interpretation
Where can I find a simple and understandable description of the data sent from the device to the server, along with an explanation? I need to understand what the server sees, how it is written, and what the specific values mean. |
In the link below you can find a full explanation of the Teltonika protocols with details about Codec 8 and Codec 8 extended protocols, used for data sending, and Codec 12 for sending GPRS commands: https://wiki.teltonika-gps.com/view/Teltonika_Data_Sending_Protocols
Each device I/O parameter has its unique ID, which is called AVL ID. If you want to decode the data easily you can try to use the device Data Sending Parameters ID page to learn about the AVL parameters and how to decode it: https://wiki.teltonika-gps.com/view/FMB920_Teltonika_Data_Sending_Parameters_ID |
Data Functionality/Workflow
After creating my server, I started to receive the same message from the device for multiple times. Should I respond to it? If yes, whats the format of the response?
|
First, when module connects to server, module sends its IMEI. First comes short identifying number of bytes written and then goes IMEI as text (bytes).
For example, IMEI 356307042441013 would be sent as 000F333536333037303432343431303133. First two bytes denote IMEI length. In this case 0x000F means, that IMEI is 15 bytes long. After receiving IMEI, server should determine if it would accept data from this module. If yes, server will reply to module 01, if not - 00. Note that confirmation should be sent as binary packet. I.e. 1 byte 0x01 or 0x00. Then module starts to send first AVL data packet. After server receives packet and parses it, server must report to module number of data received as integer (four bytes). If sent data number and reported by server doesnā€™t match module resends sent data. |
Implementation
I tried to implement my server but I couldnā€™t create a tool to listen to the data sent by the device. Does Teltonika have any tools to help in receiving the packets? And to parse the data received? If yes, where I can find it? |
Yes, Teltonika has a TCP and UDP listeners that makes part of the Teltonika Parser Pack. In the Parser Pack you can also find the Teltonika Parser to decode the data received by the listeners. You can find the download link of the parser pack here: https://wiki.teltonika-gps.com/view/Universal_Device_Test_Guide#Protocols_implementation |
Reading Records
After implement my own server I started to receive a packet with multiple records, how can I know which record was generated first?
|
When you receive a packet with multiple records in the same Data Packet you can use the Timestamp to know when the record was generated. |
Documentation
I want to receive the data generated by the Teltonika device, does Teltonika have any server or service for this purpose? In case not, Are there any recommendations on how to proceed to receive the data? |
As we are a Hardware manufacturer we donā€™t count on a server or service that you can use to see the data generated by your device. So we can offer different solutions for you to reach your goals. [SP1]
|
PRE-Requisite knowledge/skills
I want to develop a Vehicle Tracking System using your GPS Tracker. So, my question is what are the required knowledge/skills to set up my server for sending/receiving data to the Teltonika tracker? I am confused about how to set up my server to send and receive the data from the device |
To develop your platform first you must be aware of some sort of information/tech skills, such as device Data Sending Protocols, device data sending parameters, basic concepts of network communications, such as communication protocols, open and test IP and ports and how to parse the data received using source codes or the provide protocols. |
Server Requirements/Supported Network Protocols
I want to develop a Vehicle Tracking System using your GPS Tracker. So, my question is what are the required knowledge/skills to set up my server for sending/receiving data to the Teltonika tracker? I am confused about how to set up my server to send and receive the data from the device |
Currently, the Teltonika devices works with 03 different protocols for Data Sending; TCP, UDP, and MQTT. You can open a TCP or a UDP port on your PC to receive the data sent by your device. You can make sure that the port is open using external websites like canyouseeme (https://www.canyouseeme.org), port checker (https://portchecker.co/) and others. If youā€™re unable to open ports, you can use external tools such as ngrok (https://ngrok.com/) to virtually route the ports. |
Troubleshooting Data
I have done the IMEI acknowledgment part by sending 01 to the device upon reception of IMEI. Now, having a bit of difficulty in sending the number of data packets received on the server from the FMX device. What exactly should I do to properly respond to the device?
|
After receiving the AVL packet from the device you should respond with the number of records is in the packet, which is present in the payload and presented as Number of Data 1 and/ or Number of Data 2.
Below we have a couple of examples of packets send using the Codec8 and TCP protocols with the proper response: 1) RAW with 01 record: Received data in the hexadecimal stream: 000000000000003608010000016B40D8EA30010000000000000000000000000000000 105021503010101425E0F01F10000601A014E0000000000000000010000C7CF As the Number of Data 1 and 2 shows the value 1, the server should respond: 00000001 2) RAW with 02 records Received data in the hexadecimal stream: 000000000000004308020000016B40D57B48010000000000000000000000000000000 1010101000000000000016B40D5C198010000000000000000000000000000000 101010101000000020000252C As the Number of Data 1 and 2 shows the value 2, the server should respond: 00000002 |
Common Mistakes
Iā€™m using the Parser tools to decode the records sent by the device to my server but the Parser says ā€ Corrupted Data Insertedā€¯. What should Iā€™m doing wrong? |
First, be sure that you're trying to decode using the proper protocol. I mean, if you configured the device to send messages using UDP to your server you must select UDP in the Parser, if you set the device to send the records using the TCP Protocol you must select the TCP in Parser. |
RAW Data Example
I need to parse the data received on my end. Do you have any piece of code or examples that you can provide that I can use to develop my parser? |
Here's an example of the Data Received in the HEX Format and how to parse it:
Received data in the hexadecimal stream: 000000000000003608010000016B40D8EA30010000000000000000000000000000000105021503010101425E0F01F10000601A014E0000000000000000010000C7CF. The detailed parsing can be found in the wiki page, under the category Communication with server: https://wiki.teltonika-gps.com/view/Teltonika_Data_Sending_Protocols#Codec_8 |