Termostato per incubatrice

allora, prima di tutto prima di caricare il codice sul forum per favore fai tools->auto format
perchè come è scritto ora è illeggibile e fa passare la voglia di leggerlo al primo sgurado, guardiamo il loop() formattato decentemete:

void loop() {
  time = millis();

  sensors.requestTemperatures();

  Input = sensors.getTempCByIndex(0);
  Serial.print(" temperatura ");
  Serial.print(Input);
  lcd.setCursor(7, 0);
  lcd.print(" TE ");
  lcd.setCursor(11, 0);
  lcd.print(Input);
  myPID.Compute();

  /************************************************
   * turn the output pin on/off based on pid output
   ************************************************/
  if (millis() - windowStartTime > WindowSize)
  { //time to shift the Relay Window
    windowStartTime += WindowSize;
  }
  if (Output < millis() - windowStartTime) digitalWrite(RelayPin, HIGH), lcd.setCursor(5, 1), lcd.print("T 1");
  else digitalWrite(RelayPin, LOW), lcd.setCursor(5, 1), lcd.print("T 0");;
  Serial.print(" output ");
  Serial.print(Output);

  wdt_reset();
  loop_time = millis();
  tempoloop = loop_time - time;
  Serial.print(" ");
  Serial.println(tempoloop);
}

ora vorrei che mi spiegassi cosa cosa fai qui:

if (Output < millis() - windowStartTime){
    digitalWrite(RelayPin, HIGH);
    lcd.setCursor(5, 1);
    lcd.print("T 1");
  }else{
    digitalWrite(RelayPin, LOW);
    lcd.setCursor(5, 1);
    lcd.print("T 0");;
  }
  Serial.print(" output ");
  Serial.print(Output);