123
Senior Member
Know all about programming a thermostat? If so, I need your help!
I'm writing a driver to communicate with an ELK M1 and I'm stuck on how to properly handle a Thermostat. It doesn't help that I don't have a programmable Thermostat to test my code ...
What puzzles me is when a thermostat is in "Automatic Mode" and automagically switches between heating and cooling. Let's assume our Thermostat has the following properties:
HeatingSetPoint -> If the room temperature drops below this value then the furnace turns on.
CoolingSetPoint -> If the room temperature rises above this value then the air-conditioner turns on.
CurrentSetPoint -> Value is equal to the Set Point currently in effect (i.e. the HeatingSetPoint or CoolingSetPoint).
If you are in Heating Mode then the CurrentSetPoint = HeatingSetPoint.
If you are in Cooling Mode then the CurrentSetPoint = CoolingSetPoint.
If you are in Automatic Mode then you must determine if the current temperature falls within one of three zones:
If the current temperature is:
If the current temperature is within the Comfort Zone, what is the value of the CurrentSetPoint?
I'm writing a driver to communicate with an ELK M1 and I'm stuck on how to properly handle a Thermostat. It doesn't help that I don't have a programmable Thermostat to test my code ...
What puzzles me is when a thermostat is in "Automatic Mode" and automagically switches between heating and cooling. Let's assume our Thermostat has the following properties:
HeatingSetPoint -> If the room temperature drops below this value then the furnace turns on.
CoolingSetPoint -> If the room temperature rises above this value then the air-conditioner turns on.
CurrentSetPoint -> Value is equal to the Set Point currently in effect (i.e. the HeatingSetPoint or CoolingSetPoint).
If you are in Heating Mode then the CurrentSetPoint = HeatingSetPoint.
If you are in Cooling Mode then the CurrentSetPoint = CoolingSetPoint.
If you are in Automatic Mode then you must determine if the current temperature falls within one of three zones:
- Heating
- Comfort
- Cooling
Code:
<----Heating Zone->|<-Comfort Zone->|<-Cooling Zone----->
-------------------H----------------C--------------------
H = HeatingSetPoint
C = CoolingSetPoint
If the current temperature is:
- In the Heating Zone (i.e. less than the HeatingSetPoint) then CurrentSetPoint = HeatingSetPoint.
- In the Cooling Zone (i.e. greater than the CoolingSetPoint) then CurrentSetPoint = CoolingSetPoint
If the current temperature is within the Comfort Zone, what is the value of the CurrentSetPoint?