I did some reverse engineering on my former Honeywell Thermostats for my US standard HVAC system.
I find following rules for heating and cooling that is helpful for HestiaPi on conventional US HVAC unit:
Heating:
- Current: HestiaPi’s rule turns the fan relay on first, then turn heating relay on after 10s. This logic causes the US HVAC to turn off and then turn on again.
- Customization: HestiaPi’s rule in this case should instead only turn the heat relay on. The HVAC fan will turn on by itself. No fan relay state change is required.
- Code sample:
if(items[“SystemType”] == “US”) {
//commandIfDifferent(“FanMode”, “AUTO”);
//commandIfDifferent(“FanCtrl”, OFF);
// US HVAC only requires Heat relay on
createTimerSecs(1, function(){ commandIfDifferent(“HeatingPin”, ON); });
}
Cooling:
- Current: HestiaPi’s rule turns the fan relay on first, then turn cooling relay on after 10s. This logic cause the US HVAC to stagger a bit when the compressor is on.
- Customization: HestiaPi’s rule in this case should instead turn on the cooling relay to kick on the compressor then turn on the fan relay without delay.
- Code sample:
if(command == ON){
commandIfDifferent(“MainSwitch”, ON);
commandIfDifferent(“CoolingPin”, ON); // US HVAC starts cool relay the same time as fan
commandIfDifferent(“FanMode”, “AUTO”);
commandIfDifferent(“FanCtrl”, OFF);
//createTimerSecs(10, function(){ commandIfDifferent(“CoolingPin”, ON); });
events.sendCommand(“CoolingMode”, items[“CoolingMode”]); // update the LCD
}
In both cooling and heating, it result in identical logic as the Honeywell’s heating and cooling ON logic.
My HVAC system can now turn on heating and cooling very smoothly.