I like the idea of monitoring smart phones on the local wifi. It's simple and effective. However, the GPS approach has the advantage of anticipating your arrival and changing the "away" status before you get home, so it's a bit more comfortable when you arrive.
One fairly easy way to implement the GPS strategy is with Google Latitude. (
https://developers.google.com/latitude/) It's easy to make RESTful requests to track locations. You get GPS coordinates, and a bit of quick math will tell you how far each person is from home. You might even track whether they are moving toward home or are stationary. Example algorithm, without much thought put into it:
- If all residents are more than 10 miles away, set away mode.
- If each resident is more than 10 miles away OR more than 6 miles away and has been stationary for 20 minutes, set away mode.
To make it fancier, we could consider social networking checkins. For example, a family dinner rule:
- If all residents are together and at least one of them has checked in to a restaurant using Latitude, Four Square, etc., set away mode until they leave that location, regardless of other rules.
There are lots of interesting possibilities!