Computer-driven, Open Source Based HVAC Control?
richardtallent asks: "Other than various X-10 compatible products, has anyone found a consumer-level, computer-programmable thermostat? I could hack something out with some discrete components and a serial port, but I'd prefer a stand-alone, wall-mounted device that communicates via Ethernet or serial. GPL/LGPL/BSD-licensed software is a must; full documentation and a CLR, Java, or ActiveX interface library would be even better. With a fully programmable interface, I could set up any number of scenarios and variables based on DOW, time, work/school schedules, CPU temperature override, current or forecasted weather, electricity/gas rates, IR signals, remote control via DSL, etc. I could also automate alerts for replacing the filter, estimate costs before the bill arrives, etc." I have seen the home of the future. We will build them ourselves out of nifty little projects like these.
Hack value?
You don't want to shell out for a professionally-installed HVAC?
Why?
I have been pwned because my
here is a site that contains information about networked thermostats. Perhaps you can get one and hack it to do what you want. On the flip side, a few buddies and I who live in the heart of the wine industry (Napa Valley, CA) are trying to program computer-controlled cooling/heating/mixing systems etc... for the wine industry. Perhaps we can/should work on converting this to a standard HVAC thermostat as well. (note: we actually have been thinking of doing that but were worried about a possibally weak market.) Any suggestions?
http://www.xcicorp.com/ (the site about networked thermostats)
Sig? I don't need no stinking sig!
Erutangis ym si siht.
At risk of getting my site dash-slotted here it is.
(try not to mock too hard - it works!)
What was that monstrosity? Pascal???
I have been pwned because my
Check out maxim 1-wire temperature sensors. Those little monsters are worth to try. They also got serial(RS-232), parallel and USB interface.
http://www.maxim-ic.com/
* Origin: XBase BBS (2:490/4100) Well the good old days may not return and rocks might melt and sea may burn.
h4cking, virii and cr4ckz!
w00t!
--TheOrangeSquid Is it any wonder things seem so awry? We swim in a sea of confusion and don't have to think to survive
No, it's Clipper. It's almost, but not quite, entirelly unlike Pascal ;)
* Origin: XBase BBS (2:490/4100) Well the good old days may not return and rocks might melt and sea may burn.
[Sorry for being OT, I just couldn't resist asking a related question...]
I have a home burglar alarm system I purchased several years ago that basically just gets inputs on twisted pairs from simple sensors all over the house and has a phone line out, some power sensor, and the ability to activate an outside alarm.
But a lot of the system seems to be software, AFAICT.
Is there any open source implementation of a burglar alarm system?
"Provided by the management for your protection."
Just buy a BasicStamp module (or something similar), hook up a sensor, a relais, an lcd and a couple of buttons. The software should be very easy to write. Even networking modules are available for the Stamp-modules, I believe. More info: www.basicstamp.com
History matters..
I am currently a programmer for an HVAC company. We use control products made by this company. http://www.kmc-controls.com/ All programming is done in BASIC. Works great. Most HVAC stuff is just IF THEN statements. KMC is due to release a web enabled interface box for their systems sometime soon. Each controller is a standalone computer with anywhere from 4 to 128 IN/OUTs. They communicate with each other using RS-485 (much more robust that 232 in high RF interference enviroments). Their high end controllers use ethernet and the BACNet protocol allowing login across the internet. The system is designed to dial a pager, cell phone, or control computer in the event of an alarm. -- Brice Ligget Encode Corp. ligget (at) attbi.com
Sounds like you could use a Progammable Logic Controller, MatPLC is working on GPL'd PLC hardware and software. There is a mailing list. This sort of question could be posted there. Or check out A-List another good resource.
This sig is self referential.
or was it Embedded Linux Journal? Anyway, there was an embedded systems article discussing a project to build a thermostat which would get the weather forecast and try to save on heating/cooling by running the system at temperatures and times which were more efficient. I think they called it predictive cooling. Very, very cool idea.
1. A low cost system for predicting residential HVAC (heating, ventilation and air conditioning) loads based on weather forecasts and local meteorological data. 2. An adaptive system for providing increased energy- and cost-efficient HVAC operation.
It runs java, has Ethernet, RS-232, and 1-wire interfaces built in, and it's small enough to look like a normal programmable thermostat.
http://www.ibutton.com/TINI/index.html
The simplest way to control the thermostat of your HVAC is to simply get one of those X10 relay units (basically a simply relay controlled by X10), then hook a power supply and resistor in series with the relay switch contacts, then place the resistor (cover the bare leads with heat shrink tubing) near the bi-metalic strip or sensor in the thermostat. Then use X10 to switch the current on and off to the resistor, which will heat up, causing the temperature to rise local to the thermostat, turning the unit on and off.
Now, that is a cheesy way to do it, but it works, and it doesn't require anything real fancy.
If you want something better looking, the wires that run down from the HVAC unit are typically 12 or 24 VDC or AC. You have two wires, when connected together cause the contactor (basically the industry term for BIG HONKIN RELAY) to turn on and off. So, all the thermostat is doing is using another relay, transistor, or mecury switch to make and break contact between those two wires. There is also a third (and possibly fourth and fifth) wire used as well, for heating, etc - and things get even funkier with gas heat, electric AC, etc. It isn't too complicated, but you would do yourself well to know what kind of system you have, and what kind of thermostat you need, then get a cheap mechanical thermostat, take it apart, and study it so you know what goes where.
Anyhow, once you know your system, and what wires do what, at that point it is easy and cheap to get a few relays to hook into the system. You could even put the box up near or in the AC unit itself. If you absolutely need serial/ethernet, then look into a BASIC Stamp, PIC, or the newly released Javelin Stamp (Java-based Stamp) - there are also a ton of similar micro-controllers as well by other companies. Anyhow, use one of them to control the relays, and communicate with the uC via serial commands.
Finally, regardless of whether you use the funky X10 control, or the more sophisticated relay system, you need sensors. What you want are called thermistors - they are basically resistors that are very sensitive to temperature changes. Be sure to get ones that have a temp range you need, and remember some are marketed in only degress celcius, so if you are needing degrees farenheit, you need to convert to know the range. Anyhow, you will need these and a few microcontrollers with ADCs - the thermistor is hooked up with another resistor and a power source (separate from the uC!!!) in a voltage divider, and that voltage is read by the uC's ADC and converted into a value. You will have to calibrate with a real thermometer to know what values equal what temp, but once you know that, you can use these thermistors as good sensors.
Place the thermistors in the following spots: Put one at each register outlet, one at the HVAC intake, one inside the attic, one outside, and one at the center of each room.
With the information from these probes, you can now know when to turn the HVAC on and off. If you wanted to take this further, you could hook fans and window blind controls to the system to help with the cooling/heating of specific rooms. You could also set up the HVAC vent system with "vent valves" (these may need to be custom built) that can open/close on control from the system to direct the heating/cooling to the areas that need it. Couple that with door/window sensors, and the system could shut off cooling/heating for unused rooms, for example.
As you can see, the system, and associated programming, can and will become VERY complex VERY quickly. But if this is something you really want to do, it can also be a VERY fun project...
Good luck!
Reason is the Path to God - Anon
http://www.misterhouse.net
Stop eating my hands.
Just plug a thermistor into the
joystick port of any computer, instant digital thermometer.
I bought an RCS TR15
The documentation (in PDF's on that page) was decent enough that it let me slap together a small Ruby script to control it in a very short while.
I've been using this thermostat with my script running out of cron for about six months now, and it's worked quite nicely.