Hello everyone,
I have been developing a server for some time to support Teltonika devices.
However, I recently realized that there were some differences between the devices.
For example, if we take these two links:
https://wiki.teltonika-gps.com/view/TMT250_AVL_ID_List
https://wiki.teltonika-gps.com/view/FMB120_Teltonika_Data_Sending_Parameters_ID
Then we search for “389”.
For a TMT250, this corresponds to “Button Click”.
For an FMB120, this corresponds to “OBD OEM Total Mileage”.
The goal of this would be for my services to be able to give notification to my customers like : “Did you have an alert 255? It’s an overspeeding”.
I also have big concerns about “Parameters ID” (Page with FMB_Device_Family_Parameter_list). I would like to give my customers the possibility of configuring certain parameters of their trackers.
For example, with my web interface, they could set a speed alert to 70km/h instead of the default 90km/h.
It’s “pretty simple” normally.
But nothing tells me that I won’t have the same problem as stated above with AVL IDs.
I want to be sure that the parameters I send to the tag are the ones I have in mind.
For example: 11104. Am I sure this setting will always be linked to “Max speed” on all different trackers? That its minimum value will be 0 and its maximum value 260?
Because the user must be constrained by the application. And the server that will send the command does not send any value that the user managed to enter.
I started putting all these differences into a JSON file.
Below are the AVL IDs that interest me.
I have approximately the same thing for the Parameters ID…
But I don’t like what I have done. And I separated the trackers into “Mobility” and “Telematics”, but that was not a good idea at all.
There has to be another solution, a better way, easier…
It would be a huge job to support all the trackers and their functions that interest us…
I must not be the only one to have asked myself this question. No ?
I would very much like to have your opinion on this.
How do you manage these differences ?
Thanks a lot for your help,
Sincerely.
{
"shared": {
"16": {
"value-type": "integer",
"min-value": 0,
"max-value": 2147483647,
"name": "total_odometer",
"unit": "m"
},
"17": {
"value-type": "float",
"min-value": -8000,
"max-value": 8000,
"precision": 0.001,
"name": "axis_x",
"unit": "G"
},
"18": {
"value-type": "float",
"min-value": -8000,
"max-value": 8000,
"precision": 0.001,
"name": "axis_y",
"unit": "G"
},
"19": {
"value-type": "float",
"min-value": -8000,
"max-value": 8000,
"precision": 0.001,
"name": "axis_z",
"unit": "G"
},
"21": {
"value-type": "integer",
"min-value": 0,
"max-value": 5,
"name": "gsm_signal"
},
"24": {
"value-type": "integer",
"min-value": 0,
"max-value": 350,
"name": "speed",
"unit": "km/h"
},
"67": {
"value-type": "float",
"min-value": 0,
"max-value": 65535,
"precision": 0.001,
"name": "battery_voltage",
"unit": "V"
},
"68": {
"value-type": "float",
"min-value": 0,
"max-value": 65535,
"precision": 0.001,
"name": "battery_current",
"unit": "A"
},
"69": {
"value-type": "enum",
"values": {
"0": "GNSS OFF",
"1": "GNSS ON with fix",
"2": "GNSS ON without fix",
"3": "GNSS SLEEP"
},
"name": "gnss_status"
},
"113": {
"value-type": "integer",
"min-value": 0,
"max-value": 100,
"name": "battery_level",
"unit": "%"
},
"155": {
"value-type": "enum",
"values": {
"0": "Left zone",
"1": "Entered zone",
"2": "Overspeeding end",
"3": "Overspeeding start"
},
"name": "geofence_zone_01"
},
"156": {
"value-type": "enum",
"values": {
"0": "Left zone",
"1": "Entered zone",
"2": "Overspeeding end",
"3": "Overspeeding start"
},
"name": "geofence_zone_02"
},
"157": {
"value-type": "enum",
"values": {
"0": "Left zone",
"1": "Entered zone",
"2": "Overspeeding end",
"3": "Overspeeding start"
},
"name": "geofence_zone_03"
},
"158": {
"value-type": "enum",
"values": {
"0": "Left zone",
"1": "Entered zone",
"2": "Overspeeding end",
"3": "Overspeeding start"
},
"name": "geofence_zone_04"
},
"159": {
"value-type": "enum",
"values": {
"0": "Left zone",
"1": "Entered zone",
"2": "Overspeeding end",
"3": "Overspeeding start"
},
"name": "geofence_zone_05"
},
"175": {
"value-type": "bool",
"values": {
"0": "Left zone",
"1": "Entered zone"
},
"name": "auto_geofence"
},
"199": {
"value-type": "integer",
"min-value": 0,
"max-value": 2147483647,
"name": "trip_odometer",
"unit": "m"
},
"236": {
"value-type": "bool",
"values": {
"0": "Reserved",
"1": "Alarm event occured"
},
"name": "alarm",
"unit": "m"
},
"240": {
"value-type": "bool",
"values": {
"0": "Movement OFF",
"1": "Movement ON"
},
"name": "movement"
},
"255": {
"name": "overspeeding",
"value-type": "integer",
"min-value": 0,
"max-value": 255
},
"385": {
"name": "beacons_list",
"value-type": "hex",
"max-lenght": 1024
}
},
"telematics": {
"1": {
"value-type": "bool",
"name": "digital_input_1"
},
"2": {
"value-type": "bool",
"name": "digital_input_2"
},
"3": {
"value-type": "bool",
"name": "digital_input_3"
},
"6": {
"value-type": "float",
"min-value": 0,
"max-value": 65535,
"precision": 0.001,
"name": "analog_input_2"
},
"9": {
"value-type": "float",
"min-value": 0,
"max-value": 65535,
"precision": 0.001,
"name": "analog_input_1"
},
"66": {
"value-type": "float",
"min-value": 0,
"max-value": 65535,
"precision": 0.001,
"name": "external_voltage"
},
"179": {
"value-type": "bool",
"name": "digital_output_1"
},
"180": {
"value-type": "bool",
"name": "digital_output_2"
},
"239": {
"name": "ignition",
"value-type": "integer",
"min-value": 0,
"max-value": 160
},
"251": {
"name": "idling",
"value-type": "bool",
"values": {
"0": "Moving",
"1": "Idling"
}
},
"389": {
"value-type": "hex",
"max-lenght": 2,
"name": "button_click"
},
"390": {
"value-type": "integer",
"min-value": 0,
"max-value": 4294967295,
"precision": 0.1,
"name": "odb_oem_fuel_level",
"unit": "l"
}
},
"mobility": {
"116": {
"value-type": "bool",
"values": {
"0": "Charger not connected",
"1": "Charger connected"
},
"name": "charger_connected"
},
"242": {
"name": "man_down",
"value-type": "bool",
"values": {
"0": "Man Down deactivated",
"1": "Man Down active"
}
},
"389": {
"value-type": "hex",
"min-value": 0,
"max-value": 160,
"name": "button_click"
},
"390": {
"value-type": "bool",
"values": {
"0": "Device turned OFF",
"1": "Device turned ON"
},
"name": "power_event"
}
}
}