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 below are extracted from here:
https://owntracks.org/booklet/tech/json/

_type=location

This location object describes the location of the device that reported it.

{
    "_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)

NOTE:

Currently the following 5 values from the owntracks beacon type are used to create the Bluetooth Activity Marker:

  • acc
  • alt
  • batt
  • cog Course over ground (iOS/integer/degree/optional)
  • lat latitude (iOS,Android/float/degree/required)
  • lon longitude (iOS,Android/float/degree/required)
  • tst UNIX epoch timestamp in seconds of the location fix (iOS,Android/integer/epoch/required)
  • vel velocity (iOS,Android/integer/kmh/optional)
  • p barometric pressure (iOS/float/kPa/optional/extended data)
  • SSID, if available, is the unique name of the WLAN. (iOS,string/optional)
  • BSSID, if available, identifies the access point. (iOS,string/optional)
owntracks value pin value comment
acc Byte A
alt Byte C and D
batt Byte E and F
cog
lat
lat
vel
p
SSID
BSSIB
  • 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.

_type=beacon

These messages are published when beacon ranging (iOS only) is enabled. Be advised that beacon ranging publishes a lot of messages and has a strong impact on battery life.

{
    "_type":"beacon",
    elements
}
  • desc name of the seen beacon (iOS/String)
  • uuid UUID of the seen beacon (iOS/String)
  • major Major number of the seen beacon (iOS/integer/epoch)
  • minor Minor number of the seen beacon (iOS/integer/epoch)
  • tst Timestamp at which the beacon was seen (iOS/integer/epoch)
  • acc Accuracy of the proximity value (iOS/integer/meters)
  • rssi Received signal strength of the beacon (iOS/integer/decibel)
  • proxRelative distance to the beacon (iOS/integer)
    • 0 Proximity of the beacon could not be determined
    • 1 Beacon is in the immediate vicinity
    • 2 Beacon is relatively close to the user
    • 3 Beacon is far away

There are 3 values (rssi, acc, prox) from owntracks that can be used estimate distance, we will be using the acc only.

NOTE:

Currently the following 5 values from the owntracks beacon type are used to create the Bluetooth Activity Marker:

owntracks value marker value comment
uuid Byte A uuid converted to one hexadecimal byte
major Byte C and D decimal converted to two hexadecimal bytes
minor Byte E and F decimal converted to two hexadecimal bytes
tst timestamp seconds
acc meter meters