Classe temporisation avec millis. Erreur si plus de 32s

voilà un extrait du code qui utilise la classe

Pompe Pompe1, Pompe2, Pompe3,Pompe4, Pompe5;

 TempoOut= TempoPompe1.Eval(Step == 1,TEMPS_POMPE_1*1000); 
  TempoOut2= TempoPompe2.Eval(Step == 2,TEMPS_POMPE_2*1000); 
  TempoOut3= TempoPompe3.Eval(Step == 3,TEMPS_POMPE_3*1000); 

 //Transitions 
  if ( (LastStep == 0) && (CurrentHour==22) && (CurrentMinute==0) && (CurrentSecond==0) )
  {
    Step = 1;
    Serial.print("Démarrage arrosage pompe 1\r\n");
    Serial.print("heure:  "+ String(CurrentHour) + "     Minutes:   " + String(CurrentMinute) + "    Secondes:  " +  String(CurrentSecond) + "\r\n"   );
  }
  else if (TempoOut && (LastStep == 1))
  {
    Step = 2 ;
    Serial.print("Démarrage arrosage pompe 2\r\n");
   
  }
  else if (TempoOut2 && (LastStep == 2))
  {
    Step = 3;
    Serial.print("Démarrage arrosage pompe 3\r\n");
    CurrentSecond = second();
    Serial.print("heure:  "+ String(CurrentHour) + "    Minutes:   " + String(CurrentMinute) + "      Secondes:  " +  String(CurrentSecond)  +"\r\n"    );
    //digitalWrite(BROCHE_POMPE_1, LOW);
   }