The IOT Landscape:
How do you integrate IoT devices
Let’s take an example of the devices I am talking in my review here. Here is a summary of the functionality and interoperability of a set of IoT devices:
Some of the devices can be operated from a common device or app but a lot of devices have separate controls. Just like in the home electronics world a lot of the IoT devices are not compatible with each other in terms of being easily interoperable. If my goal is to make my life better by leveraging multiple IoT devices to provide “intelligent” functions this is not obvious how to do this.
IoT devices come with one or more protocols they talk. Some devices can connect with only a certain controller type. Some devices connect directly to the internet. The types of connectivity that devices support include Bluetooth Low Energy, Z-Wave, Zigbee, Wifi protocols, CoAP and sometimes a proprietary protocol. Some devices fall within a standard like Z-wave or Zigbee where numerous devices operate according to a predefined set of standards that allows multiple devices to share a similar controller and be operated easily in a common way.
It would obviously make life a lot simpler if everything talked a single standard protocol for IoT like Z-Wave for instance that defines a good low power inexpensive physical transport as well as high interoperability but for reasons there are arguments why each vendor has chosen a particular set of protocols to support. There is no need for a single standard if higher level functionality provided sufficient abstraction of underlying devices the interoperability would be less of a concern. Some hub manufacturers are doing that like Ninja.
The Ninja Sphere is slated to provide support for Z-Wave, Zigbee, Bluetooth, Wifi and other protocols but even it does not support some of the protocols listed in the above list of devices.
If a single device could provide integrated local connectivity to all devices for instance in the above table it wouldn’t solve several other critical problems. To operate the devices or leverage the information from the devices you need higher level services sometimes in the cloud or specific applications that don’t support integration. In that case we need to look at programmatic interfaces to leverage multiple devices.
Each IoT device offers usually a mobile App for controlling the device. In some cases, like Z-wave devices there are a number of applications that know how to operate and leverage the devices. There are other standards like UP (from Jawbone) that allow multiple apps to leverage several IoT devices.
Many IoT devices offer a local interface. This is particularly true if the device is large enough that you would interact with it, for instance a car.
Almost all IoT devices also offer an internet service that allows you to control the device, operate it remotely. This is one of the biggest reasons to have IoT devices so most IoT’s have this. Unfortunately, if you have 10 devices you may find you have 10 different web services you will have to sign in to, 10 web services that don’t necessarily know about other web services meaning you still don’t have a way to integrate devices easily that aren’t in a common Web service.
This leaves us with the low level programmatic interfaces and APIs provided by the device manufacturers. Most manufacturers are providing SDK (software development kits) or APIs to their devices so that 3rd parties can build interfaces to them. However, with thousands of devices out there and many using their own SDKs it is hard to imagine that there will be a lot of this integration across a lot of applications.
Nonetheless if you are your own programmer you may find this a powerful way for you to build some cross device integration.
The more desirable way than an SDK is to use an API to talk to the device or to the devices Web service. APIs are a relatively uniform way to build integration between devices. This still requires a programmer to leverage to build an application to integrate the devices.
Integration Services / Approaches
The next level of integration is to use an existing Integration service in the cloud to combine different IoT devices. An example of this is IFTTT (If this then that.)
IFTTT already provides some cross IoT device API integration.
Other articles in this series:
Why would you want to Integrate IOT devices? Examples from a use case for the home (coming)
An example of integration of diverse sets of IOT devices (coming)