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.
- 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
- 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 araw_line
field which contains original ASCII device data (+RESP:GT ... $
)
-t owntracks/qtripp/*/cmd -m list
-t owntracks/qtripp/*/cmd -m stats
-t owntracks/qtripp/*/cmd -m dump
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)
- clone beanstalk-client into qtripp's directory,
cd
into that andmake
. (Apply this fix on macOS.) - in qtripp's
Makefile
, defineBEANSTALK
- uthash, by Troy D. Hanson
- json.c, by Joey Adams
- ini.c, by Ben Hoyt
- mongoose, by Cesanta
- statsd-c-client
- Jan-Piet Mens (@jpmens)
- Christoph Krey (@ckrey)