Since all of the programming can be done by SmartThings, I use a less than $100 zwave thermostat. On the thermostat basically you can only do heat, cool and manually set the temperature. With smartthings you can change the temp automatically when you come home, at certain times, etc. I figured why pay for a thermostat that can be programmed when smartthings does it anyway. The only problem is when you lose internet. But you can just set the temp manually.