Shion: Location-based Home Automation

After a busy week of client work, I spent most of today hacking on Shion. For the past couple of months, I wanted to implement location-based home automation (e.g. “activate Snapshot FOO when I go more than 5 miles from home”), so I spent the day doing just that:

Shion Location Based Services

Rather than treat mobile clients as invisible participants in the Shion ecosystem, I went ahead and made them full peers of the other devices in the network. Doing so made it convenient for me to gather information from the devices (phones as sensors) and send instructions to the mobile client (phones as controllable devices). If you click through to the higher-resolution version of the screenshot, you’ll see that Shion gathers location information from the mobile clients and provides a “beacon” command that plays a unique sound on the mobile client (for those times when you unwittingly lose it between the couch cushion). For those concerned with sharing too much location information, a preference on the iPhone app allows it to go into private mode: beacon commands can be sent, but location data stays on the device. Since Shion does not store any of this information on a server (information passes through, but doesn’t stick around in the online components), it provides a secure alternative to other server-centric location-based services. The online service is only the conduit for passing the information from your phone to your Mac.

For those willing to share location information with their copies of Shion, a variety of interesting possibilities open up:

  1. Shion can be used to define geographically-aware “zones” that associate a particular geography with an action (activate a snapshot, execute an AppleScript, etc.)
  2. Shion can be used to track the location of several mobile devices simultaneously. This is much like Apple’s “Find My iPhone”, but will work on any client or device equipped with some form of geolocation functionality. On my own roadmap are Android and WebOS devices. (Both of those platforms will actually implement a richer feature set than the iOS devices on account of their unfettered multitasking abilities.)
  3. By hooking into the Events system in Shion, this feature an be used to draw a map of your travels over a given period of time. Don’t remember where you saw that interesting shop? Look it up on your copy of Shion.

I’m very excited about this feature and feel that I’m only scratching the surface of the possibilities. Location-awareness will be available in the next releases of Shion & Shion Touch. If you have any questions or concerns about this feature, please post a comment below.