When I moved into the house the swamp cooler had a very basic control. It was a dial switch with several of the pre-printed markings scraped off and left with the settings “Off” “Fan” and “Cool”. That was pretty much how it operated – set the switch to off and nothing happened, on fan it just turned the fan on at high speed, and on cool it turned the fan on at high speed as well as ran the water pump. Better than nothing, but not very good.
As I got to know more about the system I wondered why the low speed settings didn’t work given that all the documentation I had showed I should have a high and low speed setting. On investigation I discovered that for some reason the system had been installed with only 4 instead of 5 wires, and the installer decided that they could dispense with hooking up the low speed side of the fan motor. I wanted the low speed option which meant I’d need to open things up and run another wire, and since I was already going to be going into the system and would need to replace the dial switch for one with the low speed markings I decided I might as well upgrade the controller.
My plan was to get a programmable thermostat like those in common use for air conditioners, but I quickly found that unlike most air conditioners, swamp coolers generally use a line voltage controller, they have different numbers of outputs, and the selection is pretty basic. There are a few low voltage options on the market, but they were well off the cost / performance curve of line voltage models and my system was already set up for line voltage. I was unable to find any line voltage systems, so I opted for a basic Dial brand 7619A swamp cooler thermostat. Since I wanted a programmable time function, I also picked up a 1 Hp motor capacity programmable timer. After running the additional wire up to the swamp cooler, I connected the timer in series with the power input to the thermostat and had what I thought I wanted.
In general the system worked as designed. At the times I had set, the timer turned on or off the power to the swamp cooler control. When the power was on, the thermostat determined whether to turn on the cooler based on the temperature it sensed. So far so good, but ….
There were a few shortcomings still to be addressed. First off, the thermostat was designed for constant power to it and had no setpoint memory – so whenever the power to it turned off (which the timer did several times a day) it next powered up to the default setpoint of 77 degrees F. Second, the thermostat relied on manual settings for the fan speed and water configuration. Third, there was no accommodation for humidity settings, so on one abnormally humid day I came home to find it happily adding yet more water to the already damp air.
For many users these would be trivial issues. For the way I use my swamp cooler though they were close to deal breakers and I wasn’t at all satisfied with the setup. Where I live in the desert it is not unusual for night lows to be in the 50’s while daytime highs are over 100, and my house is fairly well insulated. On a typical day I like to keep the system off until the house starts to heat up in the early afternoon, then run it through the afternoon and evening. Once the outside temperature drops below the inside temperature I’ll shut the water off and use the fan to cold-soak the house overnight. The house also has an air conditioner, but I have it set at a relatively high setpoint so that it only comes on if we have an extremely hot day or on the few days a year when it is either too humid for the swamp cooler to be effective or outdoor air quality is particularly poor.
I had been thinking for a while about how to improve the situation, but it took a mistake on my part while overriding the timer one day to turn that into action. On that day we were under an excessive heat advisory (and the high at my house that day ended up being 116) so I decided rather than using the timer to keep the system off all day while I was at work it was probably worth letting it run on the thermostat. I remembered to hit the override button on the timer, but I forgot to set the water selector switch on the swamp cooler thermostat to “on”. I came home expecting a relatively cool house, and instead I walked in and found the swamp cooler running, the air conditioner running, and the inside temperature at 105.
It was time to act. I bought a Raspberry Pi computer, a couple of temperature / humidity sensors, some suitably sized relays, and a box to put them in. After a few hours spent learning the basics of the Python programming language, I hooked up the sensors and relays (but did not connect them to the swamp cooler), launched the code, and let it run for a few days in the background to confirm that it was operating as I expected. Following a couple of minor tweaks, I took the plunge and connected them to the cooler. Since I anticipated I would want to be able to override the control at times, I also included an isolation switch to allow going back to the existing timer / thermostat system. The basic setup is as below:
As the system currently stands, when operating under the Pi control the system looks at indoor and outdoor temperature and humidity and the time of day. Based on the values and differences between inside and outside temperature and humidity as well as the rates of change, it determines when to run the fan at high or low speed and if water is needed to meet the desired setpoint for the conditions. During the portion of the day when I am typically not at home the system is generally off, but will turn on if the house becomes unusually warm. Likewise, if the temperature continues to go up it will turn off just below the air conditioner setpoint to avoid having the situation where it is sucking hot outside air in while the air conditioner is running. Overnight, when it is colder outside than inside, it uses a reduced setpoint to coldsoak the house.
I was happily surprised by the capabilities and ease of setup and configuration of this Raspberry Pi based system. For a total cost of under $100 and a few hours of time I have a very capable adaptive swamp cooler controller with the flexibility to change and update as new situations arise.