Probleme lancement pompe pour arrosage automatique

Bonjour à tous,

j'ai un problème pour lancer ma pompe pour l'arrosage automatique.

La pompe ne se lance pas du tout quand le seuil est dépassé ( enfin en dessous )

JE sais qu'il s'agit d'un code très simple mais je n'arrive pas a trouvé l'erreur quelqu'un peut-il m'aider ?

int allumage1(){ 

unsigned long priseT1; // variable pour calcul de temps

int humi1 = moyenneSonde(A4); //appel de la fonction pour calculer 20 valeur de la sonde d'humidité
      
      if(humi1 < seuilHumi && comptM1 == 0){ // seuiHumi = 350 et comptM1 = 0 au tous début du code
        priseT1 = millis(); // prise de temps
        digitalWrite(4,HIGH); // allumage de la pompe
        delay(4000); // 4 sec d'allumage pour 100ML
       digitalWrite(4,LOW);// extinction
       graph1 = seuilHumi-50; // état de la pompe pour le graphique
       comptM1 = 1; // compteur d'allumage
      }

      if(millis()-priseT1 >= pauseM && comptM1==1){ // pauseM = 20 minutes le temps que l'eau arrive a la pompe 
        comptM1 = 0;
      
       
      }
      return(humi1);
}

Affiche les valeurs de humi1, seuilHumi et comptM1 avant le if pour voir si c'est normal qu'il ne rentre pas dans le if

humi1 est variables en fonction de l'humidité de 0 a 1023

seuil humi est une constant = 500 avant le void setup
et comptM1 =1; avant le void setup

et il évolue comme il faut tous le long du code
mais si j'enleve le bloquage avec

 if(millis()-priseT1 >= pauseM && comptM1==1){ // pauseM = 20 minutes le temps que l'eau arrive a la pompe 
        comptM1 = 0;
      
       
      }

tous marche bien

Donc tout va bien ?

A quoi serr preiseT1? est il légitime d"en faire une variable locale à la fonction allumage? (elle perdra sa valeur si on quitte cette fonction, au return, donc...)