[App][Pro] ZoneTracks

ZoneTracks

Keep track of the family with the OwnTracks app — without handing your location data to a third party.

Homey Tracks uses the free, open-source OwnTracks app on your phone to report location to your Homey. Nothing goes through my servers, or anyone else’s* — the data goes from your phone straight to your Homey (or via your own MQTT broker) and stays there.

*Unless you use a third part MQTT broker

:hammer_and_wrench: Issues / feature requests: Issues · AdyRock/com.ady.zonetracks · GitHub


What you get

  • :round_pushpin: Live map of everyone in the household, in the app settings and as a Homey Dashboard widget
  • :bust_in_silhouette: A device per person with Presence, Zone, Battery, Speed, Last seen and Last coordinates, plus an image of the current location and previous journeys
  • :repeat: Flow cards for arrivals and departures — per person, or one Flow for the whole family
  • :world_map: Zones (waypoints) created on Homey and pushed automatically to everyone’s phone
  • :motorway: Journey history — trips split automatically, filterable by person and date range
  • :framed_picture: Rendered map images on each device that you can attach to notifications from a Flow
  • :lock: Private by design — no cloud service, no account, no subscription

Requirements

  • Homey Pro (firmware 12.4.0 or later)
  • The OwnTracks app on each phone — iOS /
    Android
  • HTTP mode: nothing else. Phones post to your Homey through the Homey relay, so there’s no port forwarding or broker to set up.
  • MQTT mode: an MQTT broker reachable from the internet so phones can report while out and about.
    I used EMQX for testing. TLS is supported.

Not sure which to pick? There’s a built-in comparison behind the image help button on the Connection screen.

Quick start

  1. Install Zoneracks and open its app settings.
  2. On the Connection tab pick HTTP (easiest) or MQTT, fill in the details and press Save.
  3. Add a User device for each person you want to track and give it a name.
  4. Open the device’s Advanced settings and set the User ID:
    • HTTP mode — anything unique; the endpoint URL to paste into OwnTracks is shown right underneath it.
    • MQTT mode — must match that phone’s OwnTracks Username, or its Device ID if everyone shares
      one broker login.
  5. Configure OwnTracks on the phone with that URL (HTTP) or your broker details (MQTT).
  6. Makes sure to turn on Remote commands and Remote configuration in the OwnTracks Preferences Advance settings section
  7. Back in app settings, add your Zones on the Zones tab. They sync to the phones automatically.

The image help buttons on every settings screen walk through each step in more detail.


Connection

Choose MQTT or HTTP and enter the connection details. MQTT supports TLS and a custom port.

Settings, units and backup

  • Units — speed in km/h or mph.
  • Tracking — minimum distance between recorded points (default 50 m) and how many points to keep per person (default 1000). Higher values mean longer history but more storage.
  • Backup / Restore — copy your whole configuration out as text and paste it back in, on this Homey or a different one. After a restore, just add the User devices again: the backed-up users are offered to you during pairing so everything reconnects with no retyping.

Avatars

Upload a photo per person. It’s used as their marker on the maps and is pushed to their OwnTracks app so the family sees each other’s faces there too.

Zones (waypoints)


Create zones with a name, position and radius, and Homey pushes them to the OwnTracks apps for you — no fiddling with waypoints on each phone.

  • Shared zones go to everybody; private zones belong to one person only.
  • Set the position by clicking on the map instead of typing coordinates.
  • Promote a private zone to shared, with a prompt if the name clashes (replace, keep both, or cancel).

Map and journeys



Shows everyone’s current position plus their recent tracks. You can:

  • filter which people are shown, and choose a date range (today, last 7 days, custom, …);
  • see trips as separate journeys rather than one long line — a new journey starts after a configurable gap (default 30 minutes) of no movement;
  • pick a single journey to display, or show them all;
  • copy the raw logged coordinates to the clipboard.

The map stops auto-recentring as soon as you pan or zoom, so it won’t yank the view away while you’re looking at something.

Fewer false alerts: location fixes with poor accuracy (worse than 100 m) are rejected, and a big jump while you’re standing still has to be confirmed by a second fix before it counts. Points are also re-ordered by time, so a batch of fixes uploaded after a phone has been offline no longer draws a line shooting back across the map.

Dashboard widget

[screenshot: widget]

A Map widget for the Homey Dashboard showing everyone live, with per-widget options for showing zones, showing recent tracks, and how many hours of history to draw (1–168). Tap a person to centre on them, and show/hide individuals or their tracks straight from the widget.

The User device

Each person becomes a device with:

Capability What it shows
Presence On when they’re in one of their presence zones
Zone (waypoint) The zone they’re currently in
Battery Their phone’s battery level
Speed Current speed, in km/h or mph
Last seen Time of the last report
Last coordinates Latest lat/lon

Battery and speed are logged to Insights, so you can chart them over time.

Which zones count as “present” is set per person in the device’s Advanced settings (a comma-separated list, defaults to Home) — handy if someone’s “home” is the annexe rather than the house.

Map pictures on the device

Every User device carries a rendered map image of where they are now, plus a picture of each of their last five journeys (labelled like “Home → Work, 08:12”). Because they’re normal Homey images you can attach them to a push notification or email from a Flow — for example, send yourself a map when someone gets home.

Flow cards

Triggers (any person):

  • A person entered a zone (waypoint) — with user and zone tokens
  • A person left a zone (waypoint) — with user and zone tokens

One Flow with these covers the whole family, no matter how many people you add later.

Triggers (a specific person):

  • Entered [zone] zone (waypoint)
  • Left [zone] zone (waypoint)

Condition:

  • The zone (waypoint) is / isn’t [zone]

Some ideas: turn the heating up when the first person leaves work, announce arrivals over a speaker, warn you if a phone’s battery drops below 15 % while away from home, or send the journey map when the kids get to school.


Languages

English, Dutch, German, French, Spanish, Portuguese, Italian, Polish, Russian, Norwegian and Korean.

Reporting a problem

There’s a Logs tab in the app settings. Tick Enable logging, reproduce the issue, then use Email logs (or Copy logs and paste them here). That’s by far the quickest route to a fix — please include which connection mode you’re using and which phone OS.

Support the app

The app is free. If you find it useful, you can buy me a coffee via PayPal — entirely optional and much appreciated.


Testers and feedback, good or bad, are welcome. :slight_smile:

Changelog is in the post below — I’ll keep it updated as new versions land.

Hello Adrian,

That was quick :wink: Thanks for your efforts!

Works for 100% (EDIT: with HTTP that is):
I installed it, added a user, configured it, created flows, and it works great while spoofing my location with FakeGPS (which means it should work when I start moving the phone around too).

/Peter

Just out of interest, are you using the MQTT or HTTP mode?

I had some issues with OwnTracks on my phone using MQTT as it would stop reporting when it transitioned from WiFi to the mobile network. It looked like the app connection got confused. I have made several changes on my phone now to see if that fixes it and will find out today.

On HTTP it worked fine, which I guess is because it’s not a permanent connection (connects, sends data, disconnects), but MQTT maintains a constant connection to the broker.

Hello Adrian,

First of all, thanks for your app!!

This sounds very interesting, but I am not familiar with Owntracks. How do I get the broker-URL like that?

Could you perhaps explain how we should set it up?

Regards,

Eric

English mate.

Sorry not mentioning it, I use HTTP. My MQTT setup is local only.
But I’ve not tested wifi / mobile network changes yet, I’m still at home. If you say HTTP works fine, it’ll work fine here as well.

Hi,

Just trying to get it working. I think I need to fill the host address in owntracks http, but how to get that url?

Thanks

Hi, oh, found it. Connected!

Sorry I haven’t been replying as working on more features for this app plus fixes in some other apps, so been very busy today.

I have been trying to put in lots of help buttons and adding translations to make it easier.

Adrian, for your information I’d like to confirm it works with HTTP :white_check_mark: in real life situations, when going out and returning home.

Hi Adrian,

I notice that my zones in the owntrack app become new zones in the homey track and I get noticed when enter / leave the zone in homey.

Zones that I create in homey track do not get registered in the owntrack app.

the alarm did not change the status in the card of my account.

(I have only an iPhone no computer)

Thanks Adrian for again a great app!!

Cheers

Eric

I have fixed that one. The app was only sending the zones to one user.

I will publish an update by the end of tomorrow.

Hi Adrian,

Owntrack is runs non-stop. In homey track I have a timeline notificaties each time Someone enters or leaves a zone. I notice every 3 minuten that I am supposed to leave a zone and instantly arrive in the same zone again. Could it be in a setting that I May have to change?

Cheers,

Eric

It’s probably noisy GPS that jumps around. My wife’s phone is doing the same, so the next version requires 3 reports outside of a zone before marking them as away.

Also in the next version you can see the track on the map and see the reported points.

I have published an update to v1.0.3

Quite a lot of addition in the app settings pages.

Thanks Adrian,

The notification for entering/leaving zone is perfect!!

The zone is still only detected from owntracks, zones created in homey track are not detected, nor exchanged with owntracks.

Thanks for your hard work!!

Cheers,

Eric

I believe you are connecting via HTTP, is that correct?

So, just to be sure I understand, you mean that zones you create in Homey Tracks are not appearing in OwnTracks on the mobile?

Are you setting up the zones as Shared or for a user?

If you create a zone in OwnTracks mobile, do they show up in Homey Tracks?

I am aware, that in HTTP mode the mobile has to connect to Homey Tracks to send a location update and the zones etc are returned then.

Do you see your avatar in the OwnTracks mobile?

Hi Adrian,

Yes, I use the http in owntracks.

And Yes, till now only zones created in owntracks are Exchanged with homey tracks.

The zones created in homey track are Shared type.

In owntracks I see the avatar selected in homey tracks.

Thanks Adrian!!!

Maybe I screwed it up myself.

Since this morning I don’t get updates of the zones anymore.

To be sure, what is the name of the field in owntracks where I need to paste the url of the endpoint?

Is that in ‘host’ of ‘url’?

In HTTP mode it is URL. The Host is for MQTT mode.