My thermostat has 7 24V outputs (W, W2 for two stage heat), Y, Y2 (for two stage cooling), G (fan only), O/B (heat pump reverse) and L (fault).
It also has connections for an outside temperature sensor for controlling when to use a heat pump.
I don’t have a heat pump or two stage cooling (at least not in the conventional sense), but I have other things I’d do with those connections if I could.
Here in Santa Clara there isn’t much humidity and the outside temperature usually drops below 72 in the late afternoon or early evening.
As long as the outside temp isn’t over 78 or so, the house stays cool until the late afternoon.
When I had the new furnace/AC put in, I added an external air inlet from the front of the house to the furnace.
The fresh air duct and normal return air duct from the house both have 24v dampers to select which actually connects to the furnace air return.
This lets me use the furnace fan to blow fresh air through the house in the evenings when the outside temperature drops, rather than running the AC.
At the moment, this is selected by a couple of manual switches bolted on the furnace return and a couple of relays.
The two-stage furnace runs at low speed with Fan only (G) or high speed with (G) and (Y) energized. For AC, it must run at high speed to keep the condenser from freezing.
The cooling demand line (Y) from the thermostat connects to the two switches. S1 connects it on to the furnace (or not) selecting high-speed or low-speed.
S2 connects (Y) from the thermostat to activate two SPDT relays (could have been a single DPDT).
The R1 connects (Y) (via S1 and the furnace) to connect to the compressor (n/c).
The second relay connects 24V to one damper or the other (close fresh air when n/c, close indoor return n/o).
So I essentially have 3 stage cooling (low-speed fresh air, high-speed fresh air, high-speed AC) but it’s manually selected now and controlled by the thermostat’s Y.
I also have an attic roof fan that I’d like to control.
I realize you can’t design for my specific needs.
If you built a board with the standard outputs noted at the top, I’d hack it to repurpose Y2 and O/B to select fresh air and to activate an external relay for the attic fan. (I’d keep the relays I’ve got to ensure I don’t turn on the compressor without setting the furnace to high speed or leave both dampers open or closed at once.)
I plan to add wired (DS18B20) temperature sensors outside (at the fresh air inlet) and in the attic.
(Wired because I don’t want to have to run power to them or climb up there to change batteries.)
If you’ve got a spare GPIO pin to tie those to directly, that would be ideal.
Otherwise I’d have to use another controller turn these signals into RF to talk to an RF receiver on the main controller board.
I would like to use RF remote sensors to read the temperature in different parts of the house and keep the OpenThermostat itself in the furnace closet.
I want to modify the software to use downloaded weather data together with live inside and outside temperature to decide:
o On a day expected to be over 78 or so, run the AC as needed all day.
o On a day expected to be cooler, don’t run anything until the outside air cools off in the late afternoon, then run low or high speed fresh air through the house.
o When using fresh air, automatically choose low or high speed based on the difference between desired and actual inside temp and the difference between inside and outside temp.
I also want to control the attic roof fan at night with the outside and attic temperatures:
o If the next day is expected to be hotter than 75, run the fan as long as the outside temperature is lower than attic temp.
(Currently it runs on an analog thermal switch in the attic so it runs longer than it needs to and I have to climb up there to change the temp setting in spring and fall.)
If your base OpenThermostat driver board doesn’t have enough 24v outputs to do all the above, I’d want to connect an expansion board.
I also figured that the same main controller could control the sprinklers too, with an expansion board to activate the sprinkler lines.
(That assumes the controller has enough capacity to accommodate all the firmware needed for OpenThermostat and OpenSprinkler.)