Smart Watch Remote Start for Pebble


I developed an app for the Pebble Smart Watch that allows me to remote start my truck from my watch.

With all the discussion about smart watches going around, and what you may be able to do with an Apple Watch, I decided it was time to move from idea to reality. This app isn’t just screen mock ups or screen shots from a simulator, it’s actual code that works and it’s on my wrist right now. . Let’s get into the how it works/what I had to do.

Truck Equipment

Let’s start with the basics here. I installed a remote start alarm with keyless entry module into my truck. This let’s me start my truck from a few hundred feet away with a remote. Then I added an upgrade box to the remote start system that contains a cellular modem and companion app. Essentially the App communicates with a server on the internet that sends commands to the cell modem that now resides in my truck. This all allows me to remote start my truck from my iPhone.

Reverse Engineering

Knowing that my phone was interfacing with my remote start system over the internet the next step was to learn how. Using the Charles Web Debugging Proxy I was able to record my phones interactions with the server and reverse engineer the REST API it uses. From there it was a simple matter of figuring out the authentication used and defining the REST calls I would have to make to the server.

Programming the Pebble

Pebble native apps are programmable in C. Old school, tried and true, used in embedded systems C. Pebble also offers Pebble.js which allows you to make full apps in JavaScript that runs on top of things. Being an Objective C guy I went the C route. This is where things get a bit tricky though, in order to access the internet you still need to use JavaScript via PebbleKit JS. You do this using an object called AppMessage that sends key value pairs back and forth between C and JS code.

Basically I defined values 0-3 for each of the commands I wanted Lock, Unlock, Car Finder (honks the horn 5 times) and remote start. Whenever I selected a value on the UI it would send that code to the JavaScript which would then transmit the appropriate command to the Remote Start server on the web.

What’s Next

I’m working on cleaning up the UI a bit. ). I’m going to post a video on the app in action, I just have to wait for a day when it’s not snowing and Ill post a link to it.
I’ll also admit I’m keen to finish up my code to make it work on an Apple Watch (look for a separate post on that). At some point I want to add an Arduino unit to my truck along with a 3G connection for it. Ideally I want to be able to do things like open all my windows and moon roof in the summer.

A Note On Apple Watch

I’ll admit I’m still fascinated by the Apple Watch and I’ll probably buy one. I already have code working that will allow me to remote start my truck from my iPhone. I just have to finish the requisite iOS extension and lay out the User Interface and I’ll have a functional Apple Watch app. This is certainly a great example of a first generation Apple Watch app. As mentioned before the apple watch could make a great controller for other connected devices / “The Internet of Things” (I hate that term…).
A Key Fob-ish remotes start app is a quick use case associated with an action that you may not want to take your phone out of your pocket for. It’s a connected action but not a data or interface heavy one. You push a button, a REST call gets made, something happens in the real world.


In conclusion I can remote start my truck from anywhere where my phone and my truck have an Internet connection.

WWDC 2014 – What I am Most Excited About


Last week’s WWDC keynote contained an immense amount of information. It essentially summarizes an entire week’s worth of presentations into two hours. I won’t summarize it all here as Engadget, The Verge, and the many other sites out there already have, however I did want to provide some of my thoughts.

What I am most excited about is the underlying theme everything working together. It seems Apple has continued to think about ways to further tie their eco-system together, a genius business move all around but also an innovative one. I am constantly frustrated by the segregation of devices and the sheer fact that they just seem to exist on their own with now knowledge of the other.

The announcements of Continuity, Handoff, Extensibility, and a hand full of others mean we’ll be experiencing a more integrated experience soon.

Bridging OS’s

While the Mac and the iPhone still won’t share a completely common code base(akin to some of the direction Window’s is going in), there’s already a lot that they share at their core. However iOS 8 and OSX Yosemite will include what Apple is calling “Continuity”. One dictionary definition of continuity is –“a continuous or connected whole.” Great I love when they use the root of the word in the definition so let’s go with a “connected whole” which is what Apple’s been converging towards for a while. It’s a single Apple eco system that allows all of your devices to function as a connected whole.

The biggest feature here is Handoff, which allows one device to hand off what you’re working on to another device with a similar app. The best example here is email, if you start typing an email on your iPhone and walk up to your Mac you’ll see an Icon in the corner of your Mac that allows you to open that email up in the Mac Mail app and finish typing it.

Apple’s also the ability to answer an incoming call from your iPhone on your Mac or iPad, as well as allowing you to originate a phone call from them. Other features of note in this category are the ability allow your iPad to automatically data tether off of your iPhone, and iMessage’s gaining the ability to SMS from your Mac/iPad.

Bridging Apps

Remember the day’s of Blackberry when an App could add it’s capabilities to the system menus and even other apps? Well Apple’s finally bringing that to iOS with Extensibility. Instead of just development time SDKs and APIs apps can now share each others abilities, and as well apps can add themselves to Action Sheets and define what happens when you use them from there. This is huge for developers and I think we’ll see some really cool app interactions in the future.

Bridging Your Family

Family Sharing allows you to define a group of Apple ID’s that all use the same credit card. And every Apple ID in that group are able to share iTunes and App purchases.

That’s right Apple’s acknowledge that your 9 year old now has an iPod Touch and wants to play the Smurfs game. After taking some heat for In App purchase Apple, in true Apple fashion, has come up with a pretty elegant solution. When a sub user (your kid) tries to purchase something it prompts the main account owner (that’s you Mom or Dad) and asks them to approve it.

Family Sharing also creates a family photo stream where an entire family can share photos and videos, a shared calendar and the ability to access your families Find My IPhone.

The Business of an Eco-System

Apple’s experienced an interesting product halo; people came to them for the phones, but stayed for the laptops. By adding these interconnected abilities they are creating not only a stronger eco-system but as well are increasing the switching cost to leave. Family share alone can have a huge impact on reducing a families app and media costs making it more expensive to leave (i.e. you would have to buy the apps all over again for each user on Android) but also makes it cheaper to join (you only have to purchase Angry Birds once on iOS).

What’s Missing?

Well notably they didn’t show anything about Apple TV. Sure we have Air Play already, and it works pretty well, but I am curious how Continuity and Handoffs could improve it.

What Am I Really Most Excited about?

Honestly out of everything above Ia m most excited about the raw power of Continuity and Handoff’s to tightly integrate my activities across all of the Apple Platforms. It’s been a long time coming and I am excited about the groundwork that’s been laid out for developers.