The Internet of Things (IoT) Integration Explosion
Since I started my project to integrate my home I have discovered a lot of cool tools. There are a lot of choices now to bridge the integration of the different technologies, but a lot of these tools are immature. Let’s look at the types of tools available. These tools can be used in combination to provide a variety of ways to solve the IoT usage and integration problem.
Six of the devices/services above have supported and well documented APIs. Thank you. Another 3 have documented APIs although no support. 10 devices don’t have an API and I may be able to do only partial integration or wait. The Eagle has a simple http REST well defined API. The Davis doesn’t, but fortunately there is a tool called Weathersnoop that provides a nice API to access data locally or remotely. Followmee has a good API service well documented. The ATT M2X is similar. The Tesla has an “unsupported” but reasonably well documented API. The WEMO has a similar unsupported SOAP / http interface. The Bodymedia has a good API definition. The Carrier does not although there are hints that a new device and service is coming shortly that will improve the situation significantly. The IFTTT service does not have an API service, the same with Thalmic. The Myq has an undocumented interface unsupported again. The Lynx does not have any support for external interaction yet.
I like the Followmee service and it works well. They did make me pay $10/year for access to the API recently which several months ago when I first signed up for the service was free. At least it is reasonably priced.
Each of these APIs is significantly different. A considerable amount of research is needed to find, write the interface to the device, check it. This is especially true in the undocumented unsupported cases. Most of these API’s have poor security. Tesla upgraded its API to use Oauth2 which is good but its implementation is non-standard.
I believe this is common situation. To write and get working all of these services has been more work than I wanted but I am also happy with the functionality I am getting so far.
The Tesla API lets me see data I can’t see about my car that I can’t see any other way that could be very helpful. I have automated some functions to do things like “Announce” the car which during daytime honks the horn, waits 10 seconds, honks the horn again and opens the trunk which makes the car very visible. At night the same function will blink the lights wait 10 seconds and do it again. It also unlocks the car, turns on the heating or airconditioning depending on the internal temperature in the car and enables the car for driving (starting it.) 🙂
Overall this has been much worse than I expected. Wemo has some integration with IFTTT but none of the services I have explored has any knowledge of any of these devices to simplify integration. So far, the integration requires writing my own code for everything I want to do. All these services claim to be IoT services but then have not opened their APIs, documented them, they have not worked with other vendors to create interoperability. I am very dissatisfied with the state of the industry.
The APIs are very inconsistent. Some use get for everything, some use get, post and put for different things but not in any logical way you would know intuitively. Some require some things on the URI and some require headers or fields in the body. Some use a security token that you have to remember and use in subsequent calls. Some work through a proxy service available in the cloud and some can be accessed locally.
This is a pathetic situation. I am publishing on open source the code for these devices so at least someone might be able leverage the experience I am gaining with this experiment. I should have that up in a week or less and will let you know the location.
I am very happy so far with the ATT M2X service for recording all my data. I have tested a number of these data storage solutions. Some had no consumer pricing or limited trials that were not useful. Some of the services wanted 500 dollars+/year for data storage for a consumer which makes no sense. Others limited me to a total of 8 sensors per device and a small number of devices. The ATT service is well documented, works brilliantly, is free for consumer uses that are reasonable. I have nearly 50 sensors in it and it is working well. Some of the services I tried turned out to not be functional at this time. They were more promise than fact. The ecosystem is barely functional. A lot of vendors are focusing on the Enterprise market. They claim the ability to take many thousands of devices data and claim significant data analytics capability.
I am still waiting for some of these analytics things to be useful at the consumer level. I get real time data from my energy meter but the company that promises to be able to give me powerful analysis won’t be ready for some time to offer it.
I am using google spreadsheets for my visualization at this time. The scripting and functionality provided in google sheets is comprehensive and flexible. The spreadsheet metaphor makes it easy for me to test out some of my automations first before implementing them and also providing a simple easily modified user interface for viewing the data and initiating actions anywhere.
The spreadsheet solution is great for testing during this phase of adding devices and playing with the rules. Once I have decided on what I want to do about visualization and control I will look at more of the options. There are options to have physical special purpose devices, build a phone app or web service.
Most of the vendors still seem to believe that IoT means I buy their device and then I download a phone app and connect to the cloud. I am then supposed to bring up their app to control their device and only their device. This is NOT making it easier. I don’t know if these vendors really think this is the way IoT will work. I think many of the consumer companies are suffering from not understanding the paradigm shift in the works. I don’t want 20 different apps on my phone and switching between them. I don’t want to control things myself anyway. The whole point of IoT is to make things smarter so I don’t need to interact with the device as much. I don’t want their app except as a last resort if my automation fails.
I am still debating where to put most of my automation. There are dozens of options in this category. I have downloaded some and played with them a little. I am debating where to put the automation. I believe it would be ideal to put my automation local and get a hub like Smarthings, Vera or Ninja Smartblocks but I am also waiting to see what Apple does and new versions of some of the products out there. To their credit it does seem like Smartthings, Vera are making big efforts to create more off the shelf integration. Discussion boards at these companies talk about integrating almost all of the devices I have listed above. However, at this time none of them has more than a couple checkboxes yet. Their progress looks a lot more than others.
An issue is that even if I try to have local decision making and cloud backup a number of the devices I have don’t allow that and require the device connect directly with the cloud and I access functionality from the cloud. That really pisses me off. An example of this is MYQ from Chamberlain / Liftmaster. In retrospect I really wish I didn’t have their garage door opener. Like other companies they have decided I am going to build my entire IoT strategy apparently on their garage door system and cloud service! NOT! They advertise this great internet gateway, claim a great flexible expandable service but the API is unsupported and undocumented as well as being ridiculously verbose. It took more time to get it working because of the poor documentation I have found. I had to tear the wall controller apart and solder some wires to provide the functionality I wanted.
I am still hopeful that we are early in this revolution. I believe Apple and Google will drive many of these companies to much more interoperability. I believe that most of these companies will realize their “do it alone” strategy is doomed. Nobody is going to base their IoT for their home or business on any one vendor. None of them provide a wide enough range of devices to make it a compelling argument.