OwnTracks iOS App

OwnTracks

OwnTracks app is the default Geo-Position sensor for Personal Console on iOS.

1. HTTP

Currently HTTP mode is supported by default. Its direct nature means there is potentially less data leakage in the system.

http settings application default 88.io reference
TrackerID randomly generated last 2 characters of the relay server url
DeviceID randomly generated last 2 characters of the relay server url
Host host https://agent-quuvoo4ohcequuox.0.88.io
UserID user user
Authentication enabled disabled
Password random disabled
Secret encryption key blank blank
ignoreStaleLocations blank 2
ignoreInaccurateLocations blank 150
locatorDisplacement 200 50
locatorInterval 180 900
positions 50 1000
maxHistory 0 200
subQos 1 1
keepAlive 60 60
pubQos 1 1
willQos 1 1
monitoring 1 2
downgrade 0 10
ranging disabled enabled
extendData enabled enabled
sub enabled enabled
cmd disabled enabled
pubrRetain enabled enabled
willRetain disabled enabled
cleanSession disabled enabled
allowRemoteLocation enabled enabled

2. MQTT

MQTT may be supported as an additional option by some Community Entities, below are some reference mqtt settings.

mqtt settings application default 88.io reference
TrackerID randomly generated last 2 characters of the relay server url
DeviceID randomly generated last 2 characters of the relay server url
Host host mqtt.jeiheaxi2iu4phea.1.88.io
Port 8883 51110
Websockets disabled disabled
Proto 4 4
TLS enabled disabled
UserID user user
Authentication enabled disabled
Password random disabled
Secret encryption key blank blank
ignoreStaleLocations blank 2
ignoreInaccurateLocations blank 150
locatorDisplacement 200 50
locatorInterval 180 900
positions 50 1000
maxHistory 0 200
subQos 1 1
keepAlive 60 60
pubQos 1 1
willQos 1 1
monitoring 1 2
downgrade 0 10
ranging disabled enabled
extendData enabled enabled
locked disabled enabled
sub enabled enabled
cmd disabled enabled
pubrRetain enabled enabled
willRetain disabled enabled
cleanSession disabled enabled
allowRemoteLocation enabled enabled

3. Private Cyberspace

After installation of the Owntrack mobile app on your phone, your Personal Console has the details you need to enter into the Owntracks app, so it can start sending your daily positions back to your Private Cyberspace.

The Relay Server URL which is the host needed in the Owntracks app is located at https://app.contacttrace.com.au -> Citizen Timeline -> Status Broadcast -> Position Broadcast.

4. Alternative Backends

  1. OwnTracks Recorder
  2. Nextcloud PhoneTrack
  3. OwntracksRecorder
  4. Home Assistant

Owntracks JSON

Information from here:
https://owntracks.org/booklet/tech/json/

_type=location

{
    "_type" : "location",
    elements
}
  • acc Accuracy of the reported location in meters without unit (iOS,Android/integer/meters/optional)
  • alt Altitude measured above sea level (iOS,Android/integer/meters/optional)
  • batt Device battery level (iOS,Android/integer/percent/optional)
  • bs Battery Status 0=unknown, 1=unplugged, 2=charging, 3=full (iOS, Android)
  • cog Course over ground (iOS/integer/degree/optional)
  • lat latitude (iOS,Android/float/degree/required)
  • lon longitude (iOS,Android/float/degree/required)
  • rad radius around the region when entering/leaving (iOS/integer/meters/optional)
  • t trigger for the location report (iOS,Android/string/optional)
    • p ping issued randomly by background task (iOS,Android)
    • c circular region enter/leave event (iOS,Android)
    • b beacon region enter/leave event (iOS)
    • r response to a reportLocation cmd message (iOS,Android)
    • u manual publish requested by the user (iOS,Android)
    • t timer based publish in move move (iOS)
    • v updated by Settings/Privacy/Locations Services/System Services/Frequent Locations monitoring (iOS)
  • tid Tracker ID used to display the initials of a user (iOS,Android/string/optional) required for http mode
  • tst UNIX epoch timestamp in seconds of the location fix (iOS,Android/integer/epoch/required)
  • vac vertical accuracy of the alt element (iOS/integer/meters/optional)
  • vel velocity (iOS,Android/integer/kmh/optional)
  • p barometric pressure (iOS/float/kPa/optional/extended data)
  • poi point of interest name (iOS/string/optional)
  • conn Internet connectivity status (route to host) when the message is created (iOS,Android/string/optional/extended data)
    • w phone is connected to a WiFi connection (iOS,Android)
    • o phone is offline (iOS,Android)
    • m mobile data (iOS,Android)
  • tag name of the tag (iOS/string/optional)
  • topic (only in HTTP payloads) contains the original publish topic (e.g. owntracks/jane/phone). (iOS,Android >= 2.4,string)
  • inregions contains a list of regions the device is currently in (e.g. ["Home","Garage"]). Might be empty. (iOS,Android/list of strings/optional)
  • inrids contains a list of region IDs the device is currently in (e.g. ["6da9cf","3defa7"]). Might be empty. (iOS,Android/list of strings/optional)
  • SSID, if available, is the unique name of the WLAN. (iOS,string/optional)
  • BSSID, if available, identifies the access point. (iOS,string/optional)
  • created_at identifies the time at which the message is constructed (vs. tst which is the timestamp of the GPS fix) (iOS,Android)
  • m identifies the monitoring mode at which the message is constructed (significant=1, move=2) (iOS/integer/optional)

Notes:

  • The tst in a ping is a current timestamp, so that it doesn't look like a duplicate.
  • The tid defaults to the last two characters of the topic
  • A missing t element also indicates an automatic location update
  • A publish of "_type": "location" with a "b" trigger is sent when an iOS device enters or leaves a beacon in addition to a "_type": "transition": if somebody leaves and enters his home without having left the radius of detection for significant changes, a subscriber to his main topic would otherwise not get notified of any location change although beacon or circular region enter and leave transitions were generated.
  • The acc, alt, cog, vac, vel elements are only added if they are not zero
  • Some Android devices always return 0 for alt or vel
  • Elements marked with extended data are only added if extendedData=true is configured