Difference between revisions of "Help with Server FAQ"

From Wiki Knowledge Base | Teltonika GPS
Line 1: Line 1:
 
Here are some tips for solving the most common issues setting up Server.
 
Here are some tips for solving the most common issues setting up Server.
  
=='''Server Requirements'''==
+
=='''Data Interpretation'''==
 
{| class="wikitable mw-collapsible mw-collapsed" role="presentation"
 
{| class="wikitable mw-collapsible mw-collapsed" role="presentation"
|<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>
+
|<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"
 +
|<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>
 
|-
 
|-
|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.
+
|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).
# 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]]
+
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.
# 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.
+
 
 +
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'''==
 
=='''Implementation'''==
 
{| class="wikitable mw-collapsible mw-collapsed" role="presentation"
 
{| class="wikitable mw-collapsible mw-collapsed" role="presentation"
|<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>
+
|<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>
 
|-
 
|-
|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]
+
|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
# 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.
 
 
|}
 
|}
  
=='''Common mistakes'''==
+
=='''Reading Records'''==
 
{| class="wikitable mw-collapsible mw-collapsed" role="presentation"
 
{| class="wikitable mw-collapsible mw-collapsed" role="presentation"
|<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>
+
|<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>
 
|-
 
|-
|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]
+
|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.
# 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.
 
 
|}
 
|}
  
Line 36: Line 43:
 
# 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.
 
# 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.
 
|}
 
|}
=='''Server Management'''==
+
 
 +
=='''PRE-Requisite knowledge/skills'''==
 
{| class="wikitable mw-collapsible mw-collapsed" role="presentation"
 
{| class="wikitable mw-collapsible mw-collapsed" role="presentation"
|<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>
+
|<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>
 
|-
 
|-
|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]
+
|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.
# 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.
 
 
|}
 
|}
  
 
+
=='''Server Requirements/Supported Network Protocols'''==
{| class="wikitable"
+
{| class="wikitable mw-collapsible mw-collapsed" role="presentation"
|+
+
|<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>
 
 
!QUESTION
 
!ANSWER
 
 
|-
 
|-
|'''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?'''
+
|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.
|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]]
+
=='''Troubleshooting Data'''==
# 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.
+
{| class="wikitable mw-collapsible mw-collapsed" role="presentation"
|-
+
|<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?
|'''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.
 
|-
 
|'''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: [[Teltonika Data Sending Protocols|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: [[FMB920 Teltonika Data Sending Parameters ID|https://wiki.teltonika-gps.com/view/FMB920_Teltonika_Data_Sending_Parameters_ID]]
 
|-
 
|'''I want to create my own program to listen to what the device sends, what are the network protocols used by the Teltonika devices? What I need to configure on my PC to receive the data? How should I know it’s working as expected?'''
 
|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 (<nowiki>https://www.canyouseeme.org</nowiki>), port checker (<nowiki>https://portchecker.co/</nowiki>) and others. If you’re unable to open ports, you can use external tools such as ngrok (<nowiki>https://ngrok.com/</nowiki>) to virtually route the ports.
 
|-
 
|'''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 <code>356307042441013</code> would be sent as <code>000F333536333037303432343431303133</code>.
 
First two bytes denote IMEI length. In this case <code>0x000F</code> 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 <code>01</code>, if not - <code>00</code>. Note that confirmation should be sent as binary packet. I.e. 1 byte <code>0x01</code> or <code>0x00</code>.
 
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.
 
 
|-
 
|-
|'''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.
 
|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:
 
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:
+
1)   RAW with 01 record:
  
Received data in the hexadecimal stream:  
+
Received data in the hexadecimal stream:
  
<code>000000000000003608010000016B40D8EA30010000000000000000000000000000000</code>
+
000000000000003608010000016B40D8EA30010000000000000000000000000000000
  
<code>105021503010101425E0F01F10000601A014E0000000000000000010000C7CF</code>
+
105021503010101425E0F01F10000601A014E0000000000000000010000C7CF
  
 
As the Number of Data 1 and 2 shows the value 1, the server should respond:
 
As the Number of Data 1 and 2 shows the value 1, the server should respond:
  
<code>00000001</code>
+
00000001
  
2)    RAW with 02 records
+
2)   RAW with 02 records
  
Received data in the hexadecimal stream:  
+
Received data in the hexadecimal stream:
  
<code>000000000000004308020000016B40D57B48010000000000000000000000000000000</code>
+
000000000000004308020000016B40D57B48010000000000000000000000000000000
  
<code>1010101000000000000016B40D5C198010000000000000000000000000000000 101010101000000020000252C</code>
+
1010101000000000000016B40D5C198010000000000000000000000000000000 101010101000000020000252C
  
 
As the Number of Data 1 and 2 shows the value 2, the server should respond:
 
As the Number of Data 1 and 2 shows the value 2, the server should respond:
  
<code>00000002</code>
+
00000002
 +
|}
 +
 
 +
=='''Common Mistakes'''==
 +
{| class="wikitable mw-collapsible mw-collapsed" role="presentation"
 +
|<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>
 
|-
 
|-
|'''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:  [[Universal Device Test Guide#Protocols%20implementation|https://wiki.teltonika-gps.com/view/Universal_Device_Test_Guide#Protocols_implementation]]
 
|-
 
|'''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.
 
|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"
 +
|<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>
 
|-
 
|-
|'''After implement my own server I started to receive a packet with multiple records, how can I know which record was generated first?'''
+
|Here's an example of the Data Received in the HEX Format and how to parse it:
|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.
+
Received data in the hexadecimal stream:
|-
+
000000000000003608010000016B40D8EA30010000000000000000000000000000000105021503010101425E0F01F10000601A014E0000000000000000010000C7CF.
|'''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?'''
 
|The Teltonika parser pack also counts with a folder with the source code(we used C# to develop our tolls) that could be used as a template for developing your server, and can help implement protocols[SP1] .  
 
----[SP1]There should be question and answer regarding what needs to be evaluated first before starting to develop server
 
 
 
Answer:
 
  
Hardware specifications and network specifications should depend on how many devices client wants to support on his platform + future scaling and also what is the use case. For example, live tracking needs a quick network as well as fast processing of data.
+
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 20:52, 5 February 2024

Here are some tips for solving the most common issues setting up Server.

Data Interpretation

Data Functionality/Workflow

Implementation

Reading Records

Documentation

PRE-Requisite knowledge/skills

Server Requirements/Supported Network Protocols

Troubleshooting Data

Common Mistakes

RAW Data Example