         if (sensorVal < ReqTemp - 1)  {
           HeatingOn = true;
         }
-        if (sensorVal > ReqTemp + 1) {
+        if (sensorVal >= ReqTemp) {
           HeatingOn = false;
         }
         DrawFire(HeatingOn);

  Serial.println(day());
  Serial.println(month());
  // Need to clear the box out first.
  TFTscreen.fillRect(0,0,TFTscreen.width(),23,Black);
  if (day() == 25 && month() == 12)
  {
    TFTscreen.text(SeasonGreetings[0], 0, 5);

  Serial.begin(115200);
  setSyncProvider(RTC.get);
  SetupDisplayLayout();
  irrecv.enableIRIn();
}

void loop() {
  // Read the Temperature
  ReadTemperature();
  ReadTime();
  CheckIR(); // This has the delay of 2000ms
}

void CheckIR()
{

  Serial.println("CheckIR");
  IRCheckTime = millis() + 2000;
  while (IRCheckTime > millis())
  {
    if (irrecv.decode(&results)) {
    TFTscreen.setTextSize(1);
       TFTscreen.stroke(Black);
      String TempRequested = "";
      TempRequested += ReqTemp;
      TFTscreen.text(TempRequested.c_str(), ReqTempStartPointX, ReqTempStartPointY);
      Serial.println(results.value, HEX);
      Serial.println(results.value);
      if (results.value == 2579) //Down
      {
        ReqTemp--;
      }
      if (results.value == 530) //Up
      {
        ReqTemp++;
      }
      irrecv.resume(); // Receive the next value
      memset(PreviousTemperature,0,sizeof(PreviousTemperature));
      memset(PreviousHumidity,0,sizeof(PreviousHumidity));
      TempRequested = "";
      TempRequested += ReqTemp;
      TFTscreen.stroke(White);
      TFTscreen.text(TempRequested.c_str(), ReqTempStartPointX, ReqTempStartPointY);
    }
  }

  Serial.println("CheckIR - Done");
}

// Define Functions.
