Sign inSign up

ahmadsaubani/gps-client

By ahmadsaubani

•Updated 6 days ago

Teltonika GPS Codec8 Extended simulator. Send fake GPS data to any server via HTTP API.

Image
Developer tools
1

849

ahmadsaubani/gps-client repository overview

⁠GPS Client — Teltonika Codec8 Extended Simulator

Docker Image: ahmadsaubani/gps-client:latest

⁠SETUP

Docker Compose:

services:
  gps-client:
    image: ahmadsaubani/gps-client:latest
    ports:
      - "9091:9091"
    environment:
      - GPS_SERVER_HOST=192.168.1.100
      - GPS_SERVER_PORT=8888
      - API_PORT=9091
    restart: unless-stopped

Run:

docker compose up -d

⁠ENVIRONMENT VARIABLES

Variable          Default       Description
----------        ---------     ---------------------------
GPS_SERVER_HOST   localhost     GPS server host
GPS_SERVER_PORT   8888          GPS server port
API_PORT          9091          API service port

⁠ENDPOINTS

Method  Path        Description
------  ----------  -------------------------
GET     /health     Health check
POST    /send       Send GPS data (modified)
POST    /send-raw   Send raw hex (no modification)

⁠REQUEST BODY — POST /send

Required (3 fields):

Field       Type     Description
---------   ------   ----------------------------
imei        string   IMEI perangkat (14-16 char)
latitude    float    Lintang (-90 to 90)
longitude   float    Bujur (-180 to 180)

Optional — Record fields:

Field        Type     Default    Description
----------   ------   ---------  ----------------------------
speed        uint16   0          km/h
altitude     int16    0          meter
angle        uint16   0          heading 0-360
satellites   uint8    0          jumlah satellite
priority     uint8    0          0=low, 1=high
timestamp    string   UTC now    format: 2006-01-02 15:04:05

Optional — 1-byte IO (N1):

Field                          Type     Description
------------------------------ ------   --------------------------------
ignition                       uint8    0/1 — status mesin
movement                       uint8    0/1 — bergerak/diam
gsm_signal                     uint8    0-5 — sinyal GSM
sd_status                      uint8    0/1 — status SD card
ext_power                      uint8    0/1 — power eksternal
usb_power                      uint8    0/1 — USB power
gnss_jamming                   uint8    0/1 — deteksi jamming
sleep_mode                     uint8    0-2 — mode sleep
data_mode                      uint8    data mode
gnss_status                    uint8    GNSS fix status
auto_geofence                  uint8    auto geofence status
unplug                         uint8    unplug detection
crash_detection                uint8    crash detection
over_speeding                  uint8    over speeding
towing_detection               uint8    towing detection
green_driving_type             uint8    green driving type
green_driving_value            uint8    green driving value
trip                           uint8    trip status
ble_battery1                   uint8    BLE battery 1
number_of_dtc                  uint8    number of DTC
din1                           uint8    digital input 1
din2                           uint8    digital input 2
din3                           uint8    digital input 3
din4                           uint8    digital input 4
din5                           uint8    digital input 5
din6                           uint8    digital input 6
dout1                          uint8    digital output 1
dout2                          uint8    digital output 2
dout3                          uint8    digital output 3
dout4                          uint8    digital output 4
battery_level                  uint8    battery level %
fuel_type                      uint8    fuel type
obd_engine_load                uint8    OBD engine load %
obd_coolant_temp               uint8    OBD coolant temp
short_fuel_trim                uint8    short fuel trim
intake_map                     uint8    intake MAP
vehicle_speed                  uint8    vehicle speed
timing_advance                 uint8    timing advance
obd_intake_air_temp            uint8    OBD intake air temp
throttle_position              uint8    throttle position
commanded_egr                  uint8    commanded EGR
egr_error                      uint8    EGR error
obd_fuel_level                 uint8    OBD fuel level
barometric_pressure            uint8    barometric pressure
ambient_air_temp               uint8    ambient air temp
hybrid_battery_life            uint8    hybrid battery life
engine_oil_temp                uint8    engine oil temp
geofence_zone1                 uint8    geofence zone 1
accelerator_pedal              uint8    accelerator pedal
adblue_level                   uint8    adblue level
alarm                          uint8    alarm
network_type                   uint8    network type
immobilizer                    uint8    immobilizer
jamming                        uint8    jamming
idling                         uint8    idling
bt_status                      uint8    BT status
driving_state                  uint8    driving state
instant_movement               uint8    instant movement
crash_event_counter            uint8    crash event counter
ground_sense                   uint8    ground sense
private_mode                   uint8    private mode
wake_reason                    uint8    wake reason
motorcycle_fall_detection      uint8    motorcycle fall detection
eye_humidity1                  uint8    EYE humidity 1
eye_magnet1                    uint8    EYE magnet 1
eye_movement1                  uint8    EYE movement 1
eye_pitch1                     uint8    EYE pitch 1
eye_low_battery1               uint8    EYE low battery 1

SSF (Standard State Flags) — subset:
ssf_keyinignitionlock          uint8    key in ignition lock
ssf_handbrake_is_active        uint8    handbrake active
ssf_front_left_door_open       uint8    front left door open
ssf_front_right_door_open      uint8    front right door open
ssf_trunk_door_open            uint8    trunk door open
ssf_ignition                   uint8    ignition
ssf_engine_working             uint8    engine working
ssf_ready_to_drive             uint8    ready to drive
ssf_footbrake_is_active        uint8    footbrake active
ssf_battery_charging           uint8    battery charging

Optional — 2-byte IO (N2):

Field                           Type     Description
------------------------------- ------   --------------------------------
ext_bat_volt                    uint16   mV — tegangan baterai eksternal
bat_volt                        uint16   mV — tegangan baterai internal
bat_current                     uint16   mA — arus baterai
analog_input1                   uint16   mV — analog input 1
analog_input2                   uint16   mV — analog input 2
gnss_pdop                       uint16   x10 — Position Dilution of Precision
gnss_hdop                       uint16   x10 — Horizontal Dilution of Precision
air_pressure                    uint16   hPa — tekanan udara
engine_rpm                      uint16   Engine RPM
fuel_level                      uint16   % — level bahan bakar
fuel_rate_gps                   uint16   L/h — konsumsi bahan bakar GPS
fuel_consumption                uint16   L/100km
engine_load                     uint16   % — beban mesin
oil_pressure                    uint16   kPa — tekanan oli
oil_temperature                 uint16   C — suhu oli
trip_odometer                   uint16   m — trip odometer
battery_level                   uint16   % — level baterai
gsm_signal_pwr                  uint16   dBm — kekuatan sinyal GSM
gsm_mcc                         uint16   GSM MCC
gsm_mnc                         uint16   GSM MNC
gsm_lac                         uint16   GSM Location Area Code
gsm_cell_id                     uint16   GSM Cell ID
gsm_area_code                   uint16   GSM Area Code
gsm_operator                    uint16   GSM Operator
internal_battery_voltage        uint16   mV
speed_internal                  uint16   km/h — speed sensor internal
axis_x                          uint16   axis X
axis_y                          uint16   axis Y
axis_z                          uint16   axis Z
ble_temp                        uint16   BLE temperature
ble_humidity                    uint16   BLE humidity
fuel_pressure                   uint16   fuel pressure
maf                             uint16   MAF
eco_score                       uint16   eco score
battery_temperature             uint16   battery temperature
pcb_temperature                 uint16   PCB temperature
door_status                     uint16   door status
engine_temperature              uint16   engine temperature
ble_fuel_level1                 uint16   BLE fuel level 1
eye_temperature1                uint16   EYE temperature 1
eye_battery_voltage1            uint16   EYE battery voltage 1
eye_roll1                       uint16   EYE roll 1

Optional — 4-byte IO (N4):

Field                           Type     Description
------------------------------- ------   --------------------------------
active_gps_operator             uint32   active GPS operator
total_odometer                  uint32   m — total odometer
pulse_counter_din1              uint32   pulse counter DIN1
pulse_counter_din2              uint32   pulse counter DIN2
fuel_used_gps                   uint32   mL — fuel used GPS
fuel_consumed                   uint32   mL — fuel consumed
total_mileage                   uint32   m — total mileage
engine_worktime                 uint32   s — engine worktime
control_state_flags             uint32   control state flags
trip_distance                   uint32   m — trip distance
cng_used                        uint32   CNG used
vehicle_range_on_battery        uint32   vehicle range on battery
vehicle_range_additional_fuel   uint32   vehicle range additional fuel
distance_to_next_service        uint32   distance to next service
ignition_on_counter             uint32   ignition on counter
umtslte_cell_id                 uint32   UMTS/LTE cell ID
gsm_cell_id_4                   uint32   GSM Cell ID (4-byte)
total_distance                  uint32   m — total distance
total_fuel                      uint32   mL — total fuel
coolant_temp                    uint32   C — coolant temp
intake_air_temp                 uint32   C — intake air temp
engine_hours                    uint32   s — engine hours
runtime                         uint32   s — runtime

Optional — 8-byte IO (N8):

Field                           Type     Description
------------------------------- ------   --------------------------------
iccid1                          uint64   ICCID 1
iccid2                          uint64   ICCID 2
module_id8b                     uint64   module ID (8-byte)
ibutton                         uint64   iButton
rfid                            uint64   RFID
user_id                         uint64   user ID
security_state_flags            uint64   security state flags
driver1_id_high                 uint64   driver 1 ID high
driver1_id_low                  uint64   driver 1 ID low
driver2_id_high                 uint64   driver 2 ID high
driver2_id_low                  uint64   driver 2 ID low
ble_rfid1                       uint64   BLE RFID 1

⁠CURL EXAMPLES

Send without change data hex

curl -X POST http://localhost:9091/send-raw \
  -H "Content-Type: application/json" \
  -d '{
    "imei": "your-imei",
    "hex": "your-hex"
  }'

Minimal (only 3 required fields):

curl -X POST http://localhost:9091/send \
  -H "Content-Type: application/json" \
  -d '{
    "imei": "your-imei",
    "latitude": -4.343896,
    "longitude": 104.353851
  }'

GPS + Speed + Ignition:

curl -X POST http://localhost:9091/send \
  -H "Content-Type: application/json" \
  -d '{
    "imei": "your-imei",
    "latitude": -4.343896,
    "longitude": 104.353851,
    "speed": 80,
    "ignition": 1
  }'

Full fields:

curl -X POST http://localhost:9091/send \
  -H "Content-Type: application/json" \
  -d '{
    "imei": "your-imei",
    "latitude": -4.343896,
    "longitude": 104.353851,
    "speed": 100,
    "altitude": 50,
    "angle": 180,
    "satellites": 12,
    "priority": 1,
    "ignition": 1,
    "movement": 1,
    "ext_bat_volt": 12800,
    "bat_volt": 3800,
    "fuel_level": 75,
    "engine_rpm": 2500,
    "engine_load": 60,
    "gsm_signal": 4,
    "timestamp": "2026-09-08 10:30:00"
  }'

CAN Bus / OBD (FMC device):

curl -X POST http://localhost:9091/send \
  -H "Content-Type: application/json" \
  -d '{
    "imei": "FMC650XXXXXXXXX",
    "latitude": -6.2239983,
    "longitude": 106.8335566,
    "speed": 60,
    "ignition": 1,
    "engine_rpm": 3200,
    "fuel_level": 82,
    "fuel_rate_gps": 12,
    "engine_load": 45,
    "coolant_temp": 90,
    "intake_air_temp": 35,
    "oil_pressure": 250,
    "total_distance": 15000000,
    "engine_hours": 2592000
  }'

Digital Input/Output:

curl -X POST http://localhost:9091/send \
  -H "Content-Type: application/json" \
  -d '{
    "imei": "your-imei",
    "latitude": -4.343896,
    "longitude": 104.353851,
    "din1": 1,
    "din2": 0,
    "dout1": 1,
    "dout2": 0
  }'

Custom timestamp:

curl -X POST http://localhost:9091/send \
  -H "Content-Type: application/json" \
  -d '{
    "imei": "your-imei",
    "latitude": -4.343896,
    "longitude": 104.353851,
    "timestamp": "2026-09-08 14:30:00"
  }'

Health check:

curl http://localhost:9091/health

⁠RESPONSE

Success:

{
  "status": "success",
  "message": "GPS data sent successfully",
  "data": {
    "imei": "your-imei",
    "latitude": -4.343896,
    "longitude": 104.353851,
    "speed": 0,
    "server": "192.168.1.100:8888"
  }
}

Error:

{
  "status": "error",
  "message": "Failed to send GPS data to server",
  "error": "connection refused"
}

Tag summary

Content type

Image

Digest

sha256:d9c5e396c…

Size

4.8 MB

Last updated

6 days ago

docker pull ahmadsaubani/gps-client