Position fields and unitsΒΆ

The field names in the feed do not say what unit they use and the vendor documents nothing. These were verified against a live account and recorded drives (see the AGENTS.md gotchas and the design spec it names). Read this before doing arithmetic on an export.

Field

Unit

Notes

fix_at

epoch seconds, UTC

Normalised on parse: the sync CSV carries an integer that is seconds or milliseconds (anything above 10,000,000,000 is read as milliseconds), the trackers endpoint an ISO 8601 string. A zone-less ISO value is read as UTC. A value outside the representable range makes the row skipped and counted.

fix_timezone

integer offset

Not a zone name. Its interpretation is unconfirmed; nothing depends on it, because every timestamp is handled and exported in UTC.

latitude, longitude

decimal degrees

Non-finite values make the row skipped and counted.

speed

km/h

Reported speed is 3.6 times the speed derived from consecutive positions. InfluxDB field speed_kmh.

altitude

metres

InfluxDB field altitude_m.

course

degrees clockwise from true north

Matches the bearing between fixes. GPS course over ground, so unreliable at low speed. InfluxDB field course_deg.

distance

centimetres

A per-fix delta reported by the device from its own consecutive readings, not an odometer. It can disagree slightly with the distance computed from two stored coordinates when a fix was dropped or GPS jittered. Do not correct it.

voltage

centivolts

1303 means 13.03 V.

id

integer

Server position id. The sync offset is the highest id seen.

tracker_id

integer

Device id.

rssi, sat, battery

as sent

Stored as received.

The local positions table has the columns of trackiwi.COLUMNS, in that order, which is also the column order of the csv export. The InfluxDB point format (measurement trackiwi_position, units in the field names) is built by trackiwi/lineprotocol.py; see REQ_LINEPROTOCOL_UNITS in the requirements.