"TheDecider" was originally hardcoded with specific values that were fixed in place until I changed them in the Arduino sketch, recompiled, and uploaded. There are two types of decisions that TheDecider executes, timed-based, and sensor-based rules. The time-based rules simply compare the current time to the last time the appliance was turned-on or off. The sensor-based rules use a minimum value threshold and a maximum value threshold that are compared to the current sensor reading and then execute the corresponding action for the appliance. For example, if the temperature is below 55° then turn-off the ventilation fans; if the temperature is above 80° then turn-on the ventilation fans. Each appliance has corresponding rules for sensor reading thresholds, time-based automation, and a combination of both, priority depending on the order of the rules.
