Thermostats are a pretty attractive area to enable home automation. At the most basic level, a lot of people might want to schedule their air conditioning to turn down while they're out of the house during the day before cooling it off again in the evening in order to save energy. At the next level though, you may want to be able to just manually turn your thermostat up or down from your seat on the couch via your phone, or even monitor and adjust the temperature remotely.
Thermostats, however, have been one of the biggest disappointments in my home automation system. Now, it's not thermostats in general, but the particular implementation I'm using seems to work somewhat poorly.
Given that I have a rather sizeable Insteon setup being controlled by Indigo, an Insteon compatible thermostat seemed to be the way to go. I bought a couple of Venstar thermostats, which have an optional Insteon adapter which communicates on the wireless part of the Insteon network. They were relatively easy to set up in Indigo and report any changes in current temperature, temperature setpoints or heat/cool/fan modes back to Indigo. Plus, all of those can be controlled by Indigo. So there is full capability to monitor and control the system automatically, by schedule or from my iPhone anywhere I can get an internet connection.
This is basically exactly what I want, if it were to work correctly. The Insteon Thermostat adapters seem to have some problems with communications. Some problems are simple, like reporting the temperature 4 times in quick successeion every time there is a temperature change - readable in Indigo's log. While this doesn't really cause any kind of problem per se, it does suggest that there is an underlying communication problems.
The second, slightly more severe problem is that instructions to the thermostats don't always get executed. It's not an irregular occurrence to adjust the heating and cooling setpoints and see that only one of them has been changed. This may leave the house not being heated and cooled to the temperature I like, or even worse could result in the heat setpoint being set ABOVE the cooling setpoint, resulting in running both heater and A/C (although I've never seen this happen, and suspect the Venstar Thermostat's control logic itself would prevent both from being run).
The third problem which is slightly more severe seems to be that the thermostat adapters seem to be able to 'jam' up the wireless communication specturm used by Insteon. When this happens, not only does thermostat communication struggle, but other parts of the network that are wireless only (such as door sensors used to turn on pantry lights etc) also lose the ability to communicate. This problem is usually fixed with a quick and simple reset of the thermostat adapters, and is not a big deal now that I know what is causing this communications issue (although before I discovered the thermostat adapters were at fault, I spent considerable time trying to troubleshoot why the pantry light wouldn't turn on when the door was opened any more). This is also a relatively infrequent issue.
The fourth and by far most serious problem is that the thermostat adapters seem to have the ability to randomly set the thermostat setpoints to random values. Thankfully, the first occurrance of this happened when I was home and not out of town where it would have gone undetected and possibly damaged by A/C system. My wife woke me one night complaining that she was freezing. I agreed it was pretty cold, and picked up my phone to check the thermostat. The current temperature was already in the mid-60s, with the cool setpoint having been lowered to something in the 30s! Since then I've also seen the heat setpoint set at ABOVE 200F! The risk of expensive damage here is obvious. Since this originally happened, I now have triggers set up in Indigo that monitor the setpoints, and if they are ever set outside any range of reasonability (65-85 degrees) then it immediately sets the setpoints back to normal values (actually, it does it twice, with a minute in between commands to ensure the settings are adopted correctly - per the communications issue outlined above). Also, an alert is sent to my phone, and when I receive that I will log in to the system remotely to also ensure that the setpoints have been set correctly. This system has been working and capturing the errors with perfect success, however I would still prefer a better solution.
The deficincies of this setup were not so bad that they bothered me, up until the random-setpoint issue. Truthfully, they used to be much worse, but Smarthome recognized an issue with the thermostat adapters and reissued new adapters at their cost with updated firmware. Also, to their credit, they sent out new ones first, and let you send in the old ones after, rather than requiring you to send in your deficient unit first. On the other hand, this fix did not completely solve the problems. I still experience them, just less frequently.
That being said, I would still like another solution. With Indigo's plugin architecture, the field of available thermostats has opened up quite a bit. There are several available thermostats which can be very reliably controlled via IP control or serial control, however, they need to have Cat5 or similar wire run to the thermostat, which I do not (so if you're on the pre-wire stage, you should be sure to run Cat5 to your thermostats along with the regular thermostat wire).
Another solution that is very tempting is the Nest Thermostat. It's great looking, operates on WiFi, and there is a plugin available for Indigo to control it. Unfortunately, the plugin does not control the Nest directly. There is no API available for direct control of the Nest. You must set up an account with Nest to control your thermostat, and all thermostat control goes through Nest's servers. So we are now reliant on Nest's servers to stay up for us to control our thermostats, not to mention our own internet connections. Not only do I not like this solution because it relies on the internet being up for simple thermostat control, but the plugin that connects Indigo to the thermostat seems to simply be an undocumented control of your account on Nest's servers. If Nest were to change that web login setup, the plugin would fail. And of course, Nest has their OWN iPhone app (which yes, looks very nice, but I don't want a seperate app for every thing in my house) - the point of the home automation is to centralize and simplify and this is just contradictory to that. Nest guys, if you ever open the API and let developers control the thermostat directly, I will buy two of them from you. (Here's a great write up by Jay at Perceptive Automation (Indigo) on the whole trend of requiring a third-party server to control simple things in your own home).
Finally, Smarthome has released their own thermostats (as opposed to an adapter used to control the Venstar unit). I'm not yet eager to jump on board with this since I'm still smarting from my current thermostat experience with that vendor.
So in the meantime, I have a system that works... but that I also distrust somewhat. I'll almost certainly move to a different solution, but am kind of in a holding pattern until I see one that works perfectly for me.