Smart Watch Remote Start for Pebble

PebbleRemoteStart750

PebbleRemoteStart750
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.

Summary

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

What makes a watch a Smart Watch?

SmartWatch750x420

Prior to Android Wear I honestly thought that most smart watches weren’t really Smart. There’s a lot of buzz, and hype around Smart Watches and wearable’s. For years I have been unbelievably enticed by the concept of a fully connected device on my wrist. As a kid my concept of a Smart Watch was more akin to a walkie talkie(think Knight Rider), but as an adult those delusions of grandeur look more like something out of Minority Report. Samsung’s “Galaxy Gear: A Long Time Coming” ad highlights this pretty well. However I wanted to dig deeper and think about what it means to be “Smart” in a connected device world.

What Makes A Device Smart

I decided to do some research into the origins of the term “Smartphone”. I had once read a definition that stated a Smartphone was a device that you could add applications to and extend its functionality. This is not a bad term but that actually precludes the first generation of iPhone from being a smartphone(which was an argument at the time of it’s release that many made). More recently PC Mag defines a Smartphone as “A cellular telephone with built-in applications and Internet access.” http://www.pcmag.com/encyclopedia/term/51537/smartphone. Which would include the original iPhone and iOS 1 (I don’t think it was ever actually called iOS 1 though).

Crafting a smart watch definition from these ideas we get “A watch with built-in applications and Internet access”. Sounds a little vague still and I think we can all agree that we’ll be flexible with the “internet access part”. I don’t expect every watch to have 3G, or even Wi-Fi necessarily, but I certainly expect it to be able to tether to a smart phone and access information services via that connection. Since all of the watches labeled as “Smart” perform this function we’ll just label that as a given.

Built-in Applications

So let’s talk about the built-in applications part for a moment. I’m going to focus a bit on the Pebble for a moment because it’s a great candidate for this argument. I own a Pebble and use it a lot for the convenience of seeing my notifications on my wrist and not having to take my phone out pocket every time it vibrates. Notification viewing is of great utility but I have a hard time calling it a “Smart” feature. You can think of it as an application on the device, which it is, but I need more. The watch also comes a built in application for music control and clock, it tells time. So I guess it has built in applications, but are they that smart?

Well Pebble’s 2.x firmware allows you to add “Watch Apps” and Watch Faces. At first glance the apps just seem like watch faces with some extra information being displayed. As a developer I decided to dig deeper. The reality is Pebble provides developers with some fairly robust tools, including a cloud based IDE, to develop for the Pebble. It’s easy to use web services/APIs to pull in data to the Pebble, as well as push information from it. The Pebble can actually run JavaScript-ed code on itself. And while the interface is still fairly limited I feel the expandability of the platform allows the device to function in a much smarter manner then just telling time. Focusing on the “a smart watch needs apps” argument I think we can consider this a smart watch, and since it’s able to utilize your phones internet connection via Bluetooth it fulfills our two pronged test for a smart watch.

Now let’s look at the Galaxy Gear for a moment. While I haven’t had a lot of hands on time with these devices it’s fairly obvious that any number of smart phone functions are duplicated. You can reply to text messages, answer calls, and take pictures. Like the Pebble the Gear has a Developer Kit that allows Developers to create additional apps and functionality for the watch. So it’s a fairly easy argument that the Gear is smart. My biggest problem with the Galaxy Gear, it doesn’t work with my iPhone. I get it, kind of, but since it only works with a handful of phones (it doesn’t work with all Androids) Samsung is extremely limiting their marketplace. You could look at it as a Brand/ecosystem play but is their ecosystem that strong to have the watch limited to only a few devices that it works with? I digress.

Conclusion

So what have we done here? Well we defined a Smart Watch as “A watch with built-in applications and Internet access”. Then we tested that hypothesis with both the Pebble and the Samsung Gear. Basically I proved my own pessimism about the term “Smart Watch” wrong.

More of My Thoughts

I think these devices are just the tip of the iceberg. I believe Android Wear will really advance Smart Watches as a technology and as a consumer device. The enhanced interaction between watch and phone, as well as the standardization of a more open platform will allow developers greater freedom. And lets be honest if you keep the developers happy great things will happen.

2014 The Year of Smart – My Impressions of CES

2014CES750x420

The Consumer Electronic Show is a massive convention in Vegas where the largest  (and even some of the smallest) names in technology show off their new products.  While it’s role has shrunken a bit as a result of companies like Apple and Samsung choosing to unveil their flagship products at their own media events, CES is still full of announcements and prototypes.

The announcements at CES tend to set the tone for the years new technology.  In the past it was things like HD TVs, then later 3D TVS.  This year the theme is “Smart” Everything, Smart Watch’s, Smart TVS, Smart Devices.  So I’m officially dubbing 2014 “The Year of Smart.”

With mobile establishing dominance (yeah I’m not going to call it the year of mobile.  Every CEO says that every year) we’re seeing more and more devices come out that integrate with our smartphones.  “Wearables” is one of the new buzzwords we’ve been hearing, but at CES we also saw a lot of home automation devices.  Archos is one of the companies making a big play in this area.  Personally I hope it takes offs, but larger have tried and failed, although can we actually call Googles Android at Home a try?  I digress.  Let’s take a look at some of the new “Smart” products that we’re seeing

Smart TVs

This is not a new category but it is one that’s gained increased focus and an area that’s going to be interesting.  I can’t tell if TV vendors think they need apps because that’s part of the reason Smart Phones took off and are all the rage, or if they believe there’s a genuine purpose for them.  While I certainly like the idea of an app on my TV I still find there to be some issues, I’ll relegate this to a separate story.  For now needless to say everyone is adding more apps, web browsers, and even operating systems into their TVs (LG is putting WebOS on theirs).

Smart Watches

There’s been a lot of buzz and speculation about an “iWatch” coming out of Apple, a competitor coming from Google, and a host of other companies.

This used to be an area of technology that highly excited me, but then again I grew up watching Michael Knight talk to KITT via a watch that looked lower tech then a Casio calculator watch.

The idea here is you can stop taking your phone out of your pocket every 5 minutes and look like a social human being at a bar.  You should have the ability to quickly glance at important information such as weather, traffic, appointments, missed text messages.  Sound like a nice evolved Smart Phone home screen (that we still don’t have options for on iOS cough cough).  However in practice I find them to be quite limited.  Having something constantly linked to the Bluetooth on my iPhone just drains the battery and I end up looking at 6 hour old weather information.

The Galaxy Gear is an interesting experiment albeit to expensive and only supported by a few devices.   While it’s already been on sale for a few months BMW showed off an app at CES for the Gear that let’s you see information about your car and even access certain features on it.  This is cool, plus one for them.

We’re seeing a host of other Smart Watches from other manufactures.  Most of the specs on these aren’t all that new or noteworthy, but we are finally starting to see more stylish options, such as the redesigned Frame from Meta and the Pebble Steel from Pebble.

Wearables

This is the category that the likes of the Jawbone Up, Nike Fuelband and Fitbit helped create.  CES showed an increasing number of companies creating products in this category.  Most of these are fitness trackers, with some occasional upgrades such as pulse and blood pressure monitoring.

Smart Cars

Ok I might be making this term up also…but CES has always had an automotive component to it and this year we continued to see a convergence of the digital with the automotive.

This year Audi announced are working on an Android integration, while Pioneer and JVC announced new Stereo head units that further integrated with iOS and Android.  With Tesla continuing to lead the way for 3/4G connected telematics we’re seeing the traditional car manufacturers adding the same technology into their cars.

Smart Startups

CNET seems to have said it best startups are starting to steal the show at CES.  Crowdsourcing seems to be a huge driver of startup success, enabling engineers and inventors to fund their ideas.   This begs the question why larger companies aren’t innovating at this high of a level, a post for another day, probably including some corporate finance.

What we can say however is we are seeing smarter products utilizing smarter funding methods, and often times crowd sourcing final feature sets.  It’s intriguing that they are spending budget on CES displays but at the same time it gives them huge exposure to the media and consumers.

In summary CES continues to show off the advancement companies are making every year in technology.  This year we’re seeing more devices that can connect to each other, sharing data and resources and providing users with better experiences.  This is a trend I hope continues.