Skip to main content

UDP GPS Tracker Relay

Project description

airtrackrelay

UDP socket server to collect live tracking reports and relay them to metarace telegraph as JSON encoded objects.

Supported tracking devices and messages:

  • Quectel GL300/320 "Air Interface"
    • +ACK : Command acknowledge, type: 'drdack'
    • +RESP, +BUFF:
    • GTFRI, GTRTL, GTSOS, GTLOC : Location report, type: 'drdpos'
    • GTINF : Information report, type: 'drdstat'
  • Beaker
    • AES128 Location, type 'drdpos'

Configuration is via metarace sysconf section 'airtrackrelay' with the following keys:

key (type) Description [default]
topic (string) MQTT relay topic ['tracking/data']
port (int) UDP listen port [1911]
k1 (string) Beaker K1, 128 bit hex string [null]
k2 (string) Beaker K2, 128 bit hex string [null]
uid (int32) Beaker uid/config id [0x45670123]

Tracker imeis are read from the section 'tracking' under the key 'devices', which is a map of device ids to a dict object:

key (type) Description [default]
imei (string) Device IMEI
type (string) Device type

Example config:

{
 "airtrackrelay": {
  "port": 12345,
  "topic": "tracking/data",
      "key": "000102030405060708090a0b0c0d0e0f",
      "cbcsig": 1234567890
 },
 "tracking": {
  "devices": {
   "bob": { "imei": "012345678901234", "label": null,
    "phone": "+12345678901", "type": null },
   "gem": { "imei": "023456788901234", "label": null,
    "phone": null, "type": null },
  }
 }
}

Example Info Message:

{"type": "drdstat", "drd": "bob", "devstate": "41", "rssi": "13",
 "voltage": "4.08", "battery": "94", "charging": "0", "buffered": false,
 "sendtime": "20220101023424" }

Example Ack Message:

{"type": "drdack", "drd": "gem", "ctype": "GTFRI", "cid": "1A3D",
 "sendtime": "20220101031607", "req": ""}

Example GL3xx Location Message:

{"type": "drdpos", "fix": true, "lat": "-13.567891",
 "lng": "101.367815", "elev": "22.6", "speed": "12.7",
 "drd": "gem", "fixtime": "20220101022231",
 "buffered": false, "battery": "94", "flags": 0}

Example Beaker Location Message:

{"type": "drdpos", "fix": true, "lat": "-12.345666",
 "lng": "101.123555", "speed": "0.0", "drd": "bob",
 "fixtime": "2023-01-13T03:12:49.00Z", "battery": "100",
 "buffered": false, "flags": 255}

Requirements

  • metarace >=2.0

Installation

$ pip3 install airtrackrelay

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

airtrackrelay-1.0.2.tar.gz (5.9 kB view hashes)

Uploaded Source

Built Distribution

airtrackrelay-1.0.2-py3-none-any.whl (6.6 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page