This may be too easy for you guys, but FYI, you can use the common anolog Jonson temperature controller for both heating and cooling. Most use these for controlling a refrigerator or freezer over riding the OEM thermostat on the appliance.
Normally you would want to control cooling or heating. When cooling, the controller would switch on the current with a temperture rise and off when the target tempearture is reached. Conversely, when heating, the controller would switch on with a temperature drop and off when the target temperature is attained.
There will be times when the ambient temperatures swing both above and below the desired chamber temperatues. Typically when this happens neither heating or cooling is required. The chamber (refrigerator or freezer) insulation will minimize these swings and more than likely neither heating or cooling is required to stay within the range desired. In most locales, the swings in ambient are not so drastic as to require any heating or cooling at all. The temperatures in the insulated chamber will remain relatively constant within a reasonable degree and certainly acceptable for home brewing purposes.
Now then, eventually the seasons will change and either heating or cooling will be required. When this occurs, simply make a judgement call and configure the controller for heating or cooling whichever is required.
So, the Johnson analog controller can be very easily modifed to perform either task. It's simply a matter of taking the cover off and switching one of the internal leads to the alternatre terminal. When you remove the cover, the existence of the alternate terminal will not be obvious as it is concealed by a plastic plug. To switch it for heating instead of cooling, simply pull the plastic plug out and move the switch wire and screw to the newly revealed terminal hole on the switch. Put the plug that was removed back in to the old terminal threaded hole.
It is important to note that this change is only required about twice a year when the seaons change and the need for heating or cooling is obvious. During the twice yearly transition periods usually nothing at ll needs to be done.
A cheap min/max type indoor/outdoor thermometer will help determine when one or the other is needed.
Hope this helps. It's harder to explain in writing than it is to actually do in practice. The bottom line is that the cheap Johnson analog controllers will do the job and do it well. Obviously, this isn't a totally automated solution, but it is quick and simple to do, not to mention very inexpensive as in, "no cost" if you already have an analog Johnson controller. No need to figure out a complex solution. This is a very easy modification.
Hope this helps.