/qtripp

Queclink Track (air) Interface Protocol Processor

Primary LanguageCOtherNOASSERTION

qtripp

The Queclink Track (air) Interface Protocol Processor is a TCP GPRS server for Queclink devices: qtripp obtains GPS positions from these devices and publishes those over MQTT in OwnTracks JSON format as `location objects.

qtripp

requirements

  • an Internet-facing server with an open TCP port
  • a Queclink device. We have tested GV65, GV65+, GV55, GV200MT, and GV500. Others ought to be no problem, though you might have to adapt device configurations from the Protocol documentation.
  • an MQTT broker (see the OwnTracks Booklet)
  • a bit of patience

features

  • configurable MQTT publish topics (device lookup)
  • extensible
  • copious debugging
  • support for device reports with embedded segments (e.g. GTFRI/GTERI)
  • ignore specific device reports
  • configurable reports per/device and on a per/firmware basis
  • fast
  • extra JSON data can be merged in to data from devices
  • OwnTracks JSON support
  • MQTT, TLS, TLS client certificates, user/password authentication
  • list devices connected (console & MQTT)
  • statistics over MQTT
  • statistics dump including subtype stats and IMEI stats.
  • (pseudo-) LWT for devices (when a device disconnects, qtripp publishes LWT)
  • support for 1-Wire temperature sensors (on GV65/GV65+)
  • raw data is copied to file for backup, replay, debugging, etc.
  • optional beanstalkd support (requires beanstalk-client) for mirroring. (sample workers are provided.) beanstalk host/port/tube are configurable; payload is OwnTracks JSON enriched with a field imei and a raw_line field which contains original ASCII device data (+RESP:GT ... $)

commands

-t owntracks/qtripp/*/cmd -m list
-t owntracks/qtripp/*/cmd -m stats
-t owntracks/qtripp/*/cmd -m dump

logging

2017-08-16T17:25:55Z 1502904355 pid=564 +++ I=863123456789090 (JP car) M=GV65 np=200 P=310603 C=2 T=RESP:GTERI (scheduled report) LINE=+RESP:GTERI,310603,8...
---------+---------- ----+----- ---+---     +---------------- -+------ +----- +----- +------- +-- +----------  +----------------  +-------------------------
         |               |         |        |                  |       |      |      |        |   |            |                  |
         |               |         |        |                  |       |      |      |        |   |            |                  +-----------------  raw data received
         |               |         |        |                  |       |      |      |        |   |            +------------------------------------  (description of T=)
         |               |         |        |                  |       |      |      |        |   +-------------------------------------------------  T=type/subtype
         |               |         |        |                  |       |      |      |        +-----------------------------------------------------  C=counter (total reports handled so far)
         |               |         |        |                  |       |      |      +--------------------------------------------------------------  P=protov (proto, maj/min)
         |               |         |        |                  |       |      +---------------------------------------------------------------------  np=number of parts (csv)
         |               |         |        |                  |       +----------------------------------------------------------------------------  M=model (from protov)
         |               |         |        |                  +------------------------------------------------------------------------------------  (name)
         |               |         |        +-------------------------------------------------------------------------------------------------------  I=<imei>
         |               |         +----------------------------------------------------------------------------------------------------------------  process ID
         |               +--------------------------------------------------------------------------------------------------------------------------  epoch
         +------------------------------------------------------------------------------------------------------------------------------------------  date/timestamp ISO (Zulu)

beanstalk

  1. clone beanstalk-client into qtripp's directory, cd into that and make. (Apply this fix on macOS.)
  2. in qtripp's Makefile, define BEANSTALK

credits

authors

  • Jan-Piet Mens (@jpmens)
  • Christoph Krey (@ckrey)