EventScripts and reliable Bluetooth proximity detection
I’ve mentioned EventScripts before, but I’m finding it awesome enough lately to mention again. I use it in tandem with BetterTouchTool, but for different purposes.
Using BTT Remote with BetterTouchTool and Indigo with my X10 system, I can tap a button in the Dock of my iPhone, then press the volume down hardware button and turn my office lights off at night from anywhere in the house. Well, anywhere in the world, really, if I have internet access. However, with EventScripts my lights turn off automatically when I leave the room. That’s priceless.
This is done by detecting the presence of various Bluetooth devices. In this case, I have it assigned to my iPhone, which always leaves the room when I do. The problem I’ve run into before has always been that the connection disappears even when the phone is sitting right by the computer.
I’ve hacked around with Proximity in the past, but never got it to a point where my lights didn’t accidentally turn off while I was still in the room. Even triple checking the Bluetooth signal with long delays couldn’t make up for flakiness in either the iPhone’s Bluetooth or the Mac’s receiver (I’ve never determined which). It’s not constant, but the troubles happened frequently enough to make me give up on Bluetooth proximity detection for a while1.
You can also build enough rules in an app like ControlPlane to add some reliability, but even that was requiring more work than I thought should be necessary.
When I saw that EventScripts had a Bluetooth trigger, I decided to give it a shot. It has a configuration setting for the number of retries before it considers you gone. I’ve found that three retries provides perfectly reliable proximity detection. My lights go off within a few minutes after I walk away from my computer, and turn on almost instantly when I get close again. I’ve been running it for a week and a half and haven’t had my lights shut off once on me while I was still there, even with my phone in my pocket (which seemed to be a constant issue previously).
Check out EventScripts and EventScripts Mobile on the App Stores. It can do much more than just Bluetooth detection, and you can accomplish some things you’ve probably never considered before. The developer also has some really useful tools available on his site, including a JSON Helper for AppleScript. That’s handy.
I’m still considering an RFID system that lets lights and audio follow me around the house and customize behaviors per ID. If I did that, I’d chip my pets and make the house call their names from other rooms just to mess with them. Then I’ll have to pay for dog therapy for my therapy dogs. ↩