Some items like controllable dampers are necessary, but costs incurred from others like the zone controller and extra thermostats could be avoided. I wrote up code for my Elk M1 Gold to basically replace the zone controller and multiple controllable thermostats. I've been running this code on my home system for a few months now and thought that others may want to try it out. This code saved me over $1000 in hardware.
I have 2 HVAC units (one for each floor). The downstairs is mostly open space, so zoning won't really help. I have zoned my upstairs (one bedroom per zone) and with this code I control all 6 zones (1 for downstairs and 5 bedrooms). Currently I am using only 2 controllable thermostats (RCS TR16) and temperature probes for each bedroom. I haven't installed dampers yet.
It was challenging to create a state machine given the limited language of the Elk control panel. Although this code is fairly stable (I haven't made any changes to it in a long time), you should consider this beta code. I haven't fully tested out everything (for example, I don't have the dampers installed yet). If you choose to use this code and experience unexpected behavior, please debug it. You can use the Ethernet module to email you on triggered events or perhaps use CQC to log the changes in outputs and temperatures.
1) Elk M1 Gold with some space for these additional rules. The amount of space that this code takes up depends on a number of things like the number of zones and how many windows you have and what features you want to implement. My system is at about 50% usage including some non HVAC control code.
2) 1 controllable thermostat per HVAC unit. I'm using a RCS TR16.
3) ELK-M1XSP - Elk Serial controller to control the thermostat.
4) 1 temperature sensor per zone. I'm using an ELK-M1ZTSR in most zones. One zone uses a keypad for its temperature sensor.
5) Hardware to control normally opened Dampers. I haven't done this yet, so I don't know what is required here.
1) Each HVAC unit is controlled by one controllable thermostat. Each zone uses a temperature probe (cheaper).
2) The entire floor can go into economy mode when not occupied or via rules. This is independent of zone temperature controls.
3) When a zone needs to be temperature controlled, it can request it.
4) Dampers only close when the zone is within set points and does not need any more cool air or heat or when temperature control is not needed for that zone.
5) Economy Mode is on by default for the floor. Zone comfort control takes over for each zone. This ensure a lowest or highest possible temperature at the thermostat.
6) Heat requests have priority.
7) You can use automation software like CQC to monitor and control the system.
8) Keep physical thermostats synced with controller code. I've had too many failed commands to the thermostats, so I repeat the commands every 5 minutes. I think this might be a bug in the Elk serial interface, so I compensate with my code.
9) Opening windows will shut off the HVAC.
10) HVAC can be controlled by a schedule that is defined on the Elk control panel or via tasks or via arming modes or via presence (motion detectors).
11) Minimum HVAC runtime is defined by the thermostat. The RCS TR16 defaults to 4 minutes.
12) The rooms will continue to receive hot and cold air for 70 seconds after reaching the set point.
1) If the control panel or software fails while a zone is being heated or cooled, the thermostat may be stuck at a very high or low set point range. Restarting the control panel will reset the thermostat. If the control panel is down while the thermostat is in the heat or cool mode, you will have to manually reset the thermostat's set points. This is a limitation of the architecture.
2) Need to find a way to get the temperature in the return duct. Don't know if the M1ZTSR will work in ducts. Add code to shutoff heat/cold if the return duct exceeds a threshold. Keep the fan running to bring the temperature back to an acceptable range.
3) Need to refine the damper control code to open close dampers if the zone call matches the current HVAC call. We don't want to close dampers while the air is blowing so leave current zones open until the entire HVAC call has ended.
Download and rename the file to *.mht.
Edited by Black Magic, 13 March 2007 - 01:52 PM.