The Idea
Recently, on a roadtrip, my family and I exchanged location sharing data on Google Maps, so we could track each other’s progress.
After we got home from vacation, we kept up the location sharing because it was fun and useful. For example, before I called my brother I could check if we was working, because his work at the hospital has random shift times. Or, when my parents went on a trip to New Zealand, we could track their progress.
My parents in particular adored this feature. My mom would, every morning, check on her children to make sure that we were all OK and to see what we were up to. I got a lot of very specific questions about my activities: “I saw you were at XXX store for an hour yesterday, how was that?” Also, for me and my wife, it was pretty typical locations in general. We were at work, at home, or somewhere in-between. Really, to avoid the privacy breaches but still inform my parents, I would love to have something that just told them what category of place we were in. Also, with their 50th wedding anniversary coming up in a couple years(crazy, right?), it seemed like the perfect project.
The Inspiration
If you’re on this website, you’ve probably noticed my rampant nerdiness. Thus my inspiration: the Weasley clock, featured in the Harry Potter films and books. This magic clock tracked all the Weasley family members and identified their locations. While I don’t think we will use the “Quidditch” or “Mortal Peril” categories, this seemed to be the exact answer to my question. Now I just had to develop the software and mechanics to support it.
The Tech
Fortunately, we all walk around with microcomputers in our pockets that constantly spy on us while addicting us. So I knew if the NSA had this data, I could probably convince my siblings to give it to me as well, if I could just figure out how. Ideally I’d find a lightweight solution that would somehow convey latitude/longitude to some network location that my clock would eventually access.
Enter OwnTracks. The exact solution. This is an open source, lightweight location sharing app available on both Android and iPhone. All location data is private. It uses MQTT, a machine data transfer protocol, to send the data to a server. Also, it supports Regions, areas on the map that you can label and the app will indicate if it is inside that area. This is perfect to denote home and work locations.
However, OwnTracks needs to connect to an MQTT broker, software that will collect and distribute the messages typically run on a server. You can rent these servers very cheaply, but you know what is even cheaper? An IT buddy with a server in his basement. Thus enters Mosquitto, another open source software that acts as an MQTT broker.
The Plan
Thus we have our software picture all filled in. Owntracks will be installed on the phones, sending location data to the MQTT broker Mosquitto on my buddy’s server, and then my hardware will connect to this server to download the data. I just have to put it all together and pair it with the mechanics.
Should be simple right?