Turn your Computer into an iBeacon and Make it Trigger Reminders

I’ve been playing around a lot lately with different ways to get reminders other than at specific times and using geofences using the iOS Reminders App. I’ve got a second post in the works for my experiences with WeMo motion-based notifications, but I was excited to learn about iBeacons and was eager to try it out.  This post will detail my early experiences with successfully setting up my iMac at work as an iBeacon and getting reminders from it on my iPhone 4S. When I started looking for iBeacon software, there was no free out-of-the-box way to set them up that I could find. There’s code available and tutorials on how to write the code, but nothing that I could find that gave a layperson’s perspective on how to get it going.  I didn’t want to get into a new coding project.  I just wanted to use what was available.  This post will show you how to turn your office computer into an iBeacon and get reminders when you get to your office or when you leave your office.  It uses, and is based on the excellent code and article for BeaconOSX by Matthew Robinson.

Why would someone need this?  The Reminders app has location-based reminders, you say?  Well, location based reminders in the Reminders App are based on geofences, which are not very accurate.  You get the “when you leave” reminders after you’re a ways down the road, or sometimes even miles away.  Same goes for the “when you arrive reminders”.  At those times, you’re not paying attention to your phone, you’re looking at the road, and the reminder frequently goes unnoticed or forgotten.  With iBeacon reminders, you get “indoor-level” location based reminders, like when you step into a specific room.  When you get to your desk, you get reminders relevant to that setting.  So it’s really handy when setting reminders to make that important phone call or not to forget your gym shorts.

Requirements.  You need at least:

  • iPhone 4S or higher with:
  • A Mac with
    • OS X 10.9 (Mavericks)
    • Bluetooth 4.0
    • XCode (Apple’s developer software, which is free – don’t worry, no coding required)

The first thing we will do is turn your mac into an iBeacon.  Here’s how it works.  First, we will download and compile the BeaconOSX application:

  1. Download BeaconOSX from GitHub (https://github.com/mttrb/BeaconOSX/archive/master.zip)
  2. Unzip the file by double-clicking it.
  3. Double-click on the file named “BeaconOSX.xcodeproj”.
  4. You might be asked to approve new software to be installed.  If so, click “Yes”.
  5. Click the “play” button in the top left corner of the XCode.

This will build and launch the BeaconOSX application.  It will put it in a directory similar to this path, though it might be slightly different:

~/Library/Developer/Xcode/DerivedData/BeaconOSX-bdmdqpzkufjqfjfbtwttnnnsdggz/Build/Products/Debug/BeaconOSX.app

The running app will have a window that looks similar to this:

BeaconOSX

Next, we’re going to get BeaconOSX to start broadcasting an iBeacon signal.  This part took me awhile to figure out, because of that top value in the BeaconOSX window, which is called a UUID.  Each beacon has a UUID which is specific to the app you use to detect it.  I happened to find the UUID in the image above in the sales record for beacons created for the app “Pocket Informant 4.0” (which I had some difficulty getting to work), but I think any UUID might do.  I’d be curious to know more specifics about what makes a valid UUID, but for now, let’s use the UUID above:

A77B94E5-F974-4B6D-B0DD-E3064FCCAA44

Paste that UUID into the top field in the BeaconOSX window and then click “startAdvertising”.

Lastly, we need to install, run, and configure our iOS iBeacon reminders app.  We’re going to use Proximitask.  Though there may be others out there, this was the first one I was able to get to work.  Proximitask is nice because you can enter the same values that BeaconOSX takes.

Go to the App Store App and search for and install Proximitask.  When it’s done downloading, run it.  You’ll see a screen something like this:

screen568x568

We now need to tell Proximitask about our new beacon.

  1. Swipe left until you see a button that says “Add New Beacon”.  Touch that.
  2. Give the beacon a name (I chose “Office”).
  3. Enter the UUID, Major, and Minor values that are in your BeaconOSX window.
  4. Touch save.

Now, you simply need to restart your computer (and possibly your iPhone).  Launch BeaconOSX and click “startAdvertising” again, and you’re good to go.

Proximitask has 2 categories of reminders, “Upon Arrival” and “Upon Exit”.  When you click the “+” icon, you will be able to either create a new task for the highlighted category (“Upon Arrival” or “Upon Exit”), or select one to import from the Reminders App.  You can feel free to play around.  The tasks in Proximitask can be deleted and it will not delete them from the Reminders App.

Some notes…  I have yet to play around with/tweak the power of my iBeacon signal.  I’m getting my reminders well outside of my office.  In fact, my “Upon Exit” reminders are being triggered after I leave the entire building as opposed to exiting my office door.  Tweaking the signal strength might improve that, but I’ve yet to play around with the settings.  It might be that even if I tweak the settings, I might not get the “Upon Exit” reminders in a timely fashion, as I’ve read that some people have experiences spurious triggering of beacon notifications while their phone is right next to the computer.  My guess is that if the signal disappears, Proximitask keeps looking for it for awhile before deciding that you’ve left.  This is probably an attempt to prevent spurious triggerings of notifications.

Also, I have not yet configured a way to keep BeaconOSX running through restarts.  You can definitely add it to your login items under System Preferences->Users & groups->Click your account->Login Items, but that won’t start up the iBeacon Signal.  You’ll still have to click “startAdvertising”.  I may whip up some AppleScript to get that going at some point in the future.

I only this week got this all up and running and will report back on my experience after I’ve been using it awhile.  Have fun playing around with it.

Advertisements

4 thoughts on “Turn your Computer into an iBeacon and Make it Trigger Reminders

  1. Being the perfectionist that I am, I have been reluctant to make a followup post about this simply because I have not perfected the setup yet. I still haven’t set it up to start broadcasting upon restart and I have not yet figured out how to tweak the values to get a more accurate notification, however I will say that I have the measured power set at 10 and that seems to perform a bit better. I get notifications upon arrival now outside the hallway of my office – a couple offices away now and occasionally get notifications while at the cafe just outside my wing.

    Like

    1. I have not yet migrated to 10.10 yet and looking at the source material for this article to see how to respond to your reply, I see that the BeaconOSX author says in a note that “THIS DOES NOT WORK IN YOSEMITE!!! Apple [has] closed the loophole that allowed a Mac to be used as an iBeacon in Mavericks.” (https://github.com/mttrb/BeaconOSX)

      This bums me out since I have really gotten used to getting proximitask notifications upon arriving at my desk and when I upgrade, I will lose that handy notification.

      There are numerous work-arounds to get precise location based reminders. Personally, I like motion sensor notifications. If I could combine that with geofence logic (e.g. only notify me if I’m in the area (i.e. not motion triggered reminders set off by the janitor when I’m away)), I think that would be more precise than iBeacons.

      If you find a work-around for Yosemite, do let me know!

      Liked by 1 person

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s