Deconstructing the Internet of things

Smart Toaster
When talking about the Internet of things (or IoT), I frequently bring up a Smart Toaster as it is such a lightning rod. People just love to make fun of it. My favorite was the tweet, “I don’t think my smart toaster needs apps” which off course was retweeted into the stratosphere.

When I read things like this, I just shake my head. You can’t evaluate tomorrow’s concepts by yesterday’s tasks! Of course a smart toaster doesn’t need apps. A horse doesn’t need wheels either. We just need to look at what smart means in a more nuanced way. The goal of this post is to convince you that the SmartToaster™ actually is a bold new vision of the future. If I can unpack what it means to be smart, so that even a lowly toaster starts to make  sense, we’ll be thinking about the IoT in a much broader context.

The Classic Vision
The classic vision the internet of things is a fairly complex cascade of activity triggered by an event. For example, when I pull into my driveway, my garage door opens, the lights turn on, a status update is sent to my family (“Dad’s home!”), the house has been preemptively warmed up and the music in my car is seamlessly transferred to my home stereo. This is a great vision but it also implies some very deep cooperation and standardization. We’ll get there over time but I’m still living in a world where my bluetooth phone has trouble talking to my bluetooth car stereo.

My point is that we shouldn’t jump straight into the most complex vision of the future. It’s confusing, excessively difficult, and can lead to a backlash when we can’t do it all at once. Small can be beautiful. Let’s look a bit deeper at my smart toaster and figure out how to peel back this grand vision. Are there layers of functionality that are easier to obtain but still provide value? I’m going to talk about three: discovery, control, and coordination. Let’s take a look at each and how they have value.

Layer 1: Discovery
This first layer is simple, very simple. At this level, a smart device just broadcasts a URL, wirelessly, to any nearby smart display. By smart display I mean a phone, a tablet, a smart TV or even Google Glass. This would allow me to walk into my kitchen, open my phone and ‘see’ that my toaster was offering up a URL. When I click on this device name, I just go to that URL in the browser. It’s that simple.

Now, to be honest, just broadcasting a top level website is pretty boring, more marketing than real consumer value. But if that URL were to contain my model number, I could be directed to a very useful support site. Even further, if the URL contained my serial number, then things could get really interesting as everything about my device, and my interaction with it, could be recorded. It could completely change customer support (and registration, and online instruction, and recycling, and….)

Companies would kill for this. They already put URLs and even QR Codes all over their product packaging. To have this extend into the life of a product is extremely useful. The problem is that they can’t. Well, some companies do, it’s just very expensive: it’s called writing a native app. But this isn’t just expensive, it doesn’t scale: no customer is going to have an app for every product in their house. If we could make the broadcast of a URL cheap to add to a product, and make it so any device could discover it, it would create a new ‘web race’ where every device could take you to their web site.

This would be the first, simplest form of the internet of things: things on the internet. It would succeed because it is universal, like the internet itself it. It also would start off a a bit assuming, a bunch of Black & Decker products pointing to instructional videos. But once the ecosystem takes off, it will start to create a linkage between anything in the real world that wants to take you to something on the web. Museums, Airport kiosks, bus stops, kids toys, and even dog collars could all sprout very useful web sites that could then in turn be a platform more much higher level services.

Layer 2: Control
Once you’ve taken that step, it’s not that much harder to add a few dollars to your product cost to wirelessly control the device. This is where people tend to misunderstand as they expect the functionality of smart devices to be on par with iPhones.

If my smart toaster had only a single, trivial function: to change my ‘toast done’ sound to a range of different sounds, from soothing zen tones to goofy kid friendly slapstick, that would be huge! Yes, in the world of toasters, adding a few additional dollars to its production cost is indeed a big deal. There is no question this is a risk, but I also know that there are many parents that would spend a lot more for a crazy, kid pleasing toaster. The Nest home heating system has proven high end devices that break outside of the norm can indeed attract larger price points.

If this extra ‘toast done’ sound feature doubled the cost of the product, it would be a terribly bad idea. However, as the cost of system on a chip devices fall, the cost of this addition will fall as well, becoming trivial over time. The trick is going to be finding the right value/price point for these early control layer products. It will get much easier as the price falls. One daring company needs to take the first scary jump and validate the approach. But whomever succeeds will be immediately followed by the rest.

Layer 3: Coordination
At this level, things start to get much harder. The previous two layers were pretty much solo endeavors. The only shared mechanism was a universal form of discovery. In fact, every smart device today, from Nest, to Sonos, to Withings smart scale ‘go solo’ by writing their own apps. The value of discovery/control is already a well known value for the trail blazer companies. The problem is that the only vialble way forward is to write an app. If we could remove that barrier, many more products would be able to sprout interactivity.

However, once we enter the realm of cooperating devices, the level of complexity rises quickly. My toaster is now part of a broader home system that can:

  • log sensor information to a common data store
  • store that information in a common format
  • respond to a range of shared commands that all devices support

These abilities are what most people associate with swarms of IoT devices: everything works together to share data and functionality. The difficulty with this level is not so much in making it happen technically but socially. In order for these scenarios to play out, companies need to cooperate and agree on certain APIs and communication protocols to get things to play nice.

We have a terrible track record of device cooperation today.  I can’t even get my TV and BlueRay player to communicate over an HDMI video cable, and this is after a decade of standardization effort. Right now, the big companies are trying to create self protecting ecosystems, attempting to crowd out competitors. But things are changing rapidly. A slew of new, scrappy Kickstarter/Indigogo projects are going to rally around a self forming standard. The tiny mammals will out race the powerful dinosaurs. Once something gains traction, it will build quickly.

This coordination effort will also likely to have deconstructed layers of its own, pushing data up and control down but that’s a separate blog post. I very much want this third coordination layer to arrive but I’m realistic we have lots of experimentation and agreement to get through first. Fortunately, this is already happening with cooperating companies like Spark Devices, SmartThings,, and many more.

The internet of things is a big complex beast and we’re in love with the most complex version of it, the coordination layer. While this layer is the most impressive of the three, we shouldn’t ignore the fairly low hanging fruit that comes from the first two: discovery and control. The discovery layer creates an entirely new way to link the real world to the web, lowering the cost so any company can easily connect their device to the internet without building an app. This is the first and easiest step. The control layer just takes it a bit further and allows you to connect and control the device. This is harder only because it is more expensive per device but that will fall quickly. Both of these layers are still fairly easy because they’re not beholden to anyone: you can control your device in any way you see fit, using any commands you want.

The only thing we have to build is the discovery system that needs to look for these URLs. This will open up an entire ecosystem of interactivity, one which, like the early internet, start off modestly but would grow into a platform to allow all sorts of products to flourish.

I’m on sabbatical now and I’m working with others on how to write this open source app. If you have any comments or suggestions, please feel free to contact me.