I've been toying with the idea of creating a network accessible thermostat for several years now and with the Raspberry Pi I think I'm finally ready to try it out. I've been a software developer for 10 years but I've never done anything with accessing low level hardware (my expertise is in data processing and reporting). I got a 3M wifi thermostat for Christmas that I've just been in love with, but the ideas I've thought up over the last few years leave me wanting something much more robust.
Unfortunately there are a number of hurdles stemming from my ignorance of electronics and I was hoping to get some tips.
1) I don't know how my thermostat works. A simple 4-wire thermostat is easy enough to understand, but we have a 2-stage AC and furnace with a variable blower speed, controlled by 8 wires at the thermostat. I want to start by sniffing what's going on with all these 8 wires through the GPIO pins on my Raspberry Pi. How do I start? I'm assuming I'll want to read the signal from the thermostat on one set of pins and pass that same signal back out to the furnace? This data I can log to a database and reference to additional logging I do with the thermostat's API.
2) Is the tunneling I described above as simple as soldering the thermostat wires to my GPIO pins?
3) I have a LOT of experience with Java but next to none with C/C++. I assume Java is a pretty poor choice, but will I be able to work with it? Would it make sense to take the time to learn C or C++ instead, or maybe some other language?
I think I had more questions but that's all I can come up with at the moment. I just want to hear some people's thoughts. Thanks!
There are -50 DegC to +120 DegC versions that use 1Wire Bus (about £5 from Farnell) - There is a RasPi driver for 1wire things so no programming needed! you could use bash script. (I am led to believe). Outputs would have to be relayed as I would not trust switching 220V equipment some trusted isolation
I would say that based on the needs he described that range would more than cover what he's looking to do.
I have been unable to find any of the drivers you mentioned. I have considered writing some myself, but my understanding is that the timings required for the 1wire digital thermo-sensors might be a challenge on a device running a full OS.
Can you point me in the direction of the drivers you are referring to?
Thanks but I don't really need a temp sensor -- the wifi thermostat has an api that I can pull all of this from. I'm guessing with 8 wires that I won't have to deal with any pulse modulation so hopefully timing shouldn't be an issue. And lastly, the thermostat runs on 12v, not 220, so I'm at least a little safer there. I don't really have much time to do all this so it will be a while before I get to it.