And just one more thing… Bryan asked about thermostats.
My story is a little different than most, in that we don’t use central heat in our home. We used to have a central heater, but upstairs was always too hot, and downstairs was always too cold, especially the living room of all places, and it seemed to blow more dust around than even the best filters could collect. So we got rid of it, and moved to independent heat in each room/area, in some cases with in-wall electric heaters, and in some places (like bedrooms) with portable electric oil radiators.
Initially, I wanted to go with Nest thermostats, but they’re designed for a central heater. To do multiple devices, you need multiple Nests, plus an adapter since the thermostat is looking for one of those wierd 24V control circuits, and just can’t cope with running a straight AC relay. So, my total for 'Nest’ing was going to be about $2000. LOL, NOT.
As an aside, a lot of the proprietary nature here, is in figuring out, and handling, all the different goofy thermostat control protocols and wiring. Nest does a really nice job of that.
So I started playing with Arduino, and moved pretty quickly to the wifi-enabled Spark Core (now the $19 Particle Photon) as I knew I would want some integration, but didn’t want to run serial cable for the Arduinos, or deal with an entire rPi on the wall in each room.
So rev 1 let me set a temperature, and ran an AC relay pigtail, to control temps in the kids bedrooms, with very little hardware - the Spark Core, a 4x7-segment display, a serial temp & humidity chip, a digital knob.
The problem was, I really wanted to manage the temperature well, so I got as close to PWM as I could with an oil radiator: cycling every 6 minutes. At this rate, I hit the relay’s EOL after just one winter, so I knew I’d need a different solution.
I found about that time, that most of the home automation outlets we moving to opto-isolated relays (which pretty much last forever) - so I picked one up, and a z-wave USB adapter, and started working having the Spark core send web requests to a small app running on a local server, which would then switch the outlet on & off. Long before I succeded there, I found the Wink hub (which Home Depot was selling for $20 with the purchase of any 2 compatible devices). This made the server part of the equation, and the complexity around z-wave, completely obsolete.
I’ve nearly got the Spark-based controller talking to the Wink’s API - just working out a few bugs there now, and working on a 3-d printed faceplate instead of the project boxes that are currently stuck on the wall, with plenty of time for the coming winter. Hopefully this revision will actually be something work sharing