Arret d'une boucle while

Bonjour à tous, je suis toujours sur mon projet de clôture qui avance doucement ( je n'ai pas trop de temps en ce moment)
Cependant, j'ai un petit soucis dans une boucle while.
J'aimerai que, si la cloture est éteinte plus d'un certain temps, une notif est envoyé pour me prévenir.
J'y arrive déjà, mais le problème est que ça ne s'arrête pas, je reçois un nombre très important de notification, alors que j'aimerai n'en avoir qu'une.
J'ai pourtant bien essayé de mettre en place un compteur : for (i = 0; i<1; I++)
mais ça ne s'arrete pas.
Voici mon code :

// si la cloture est éteinte depuis plus de 30 mn, on prévient tout le monde

         while ( cloture1Allume == false ) {
   
            if (millis()-tempscloturearret >= 60000) {
          {
             sendToPushingBox(DEVID5);
 }}

Merci d'avance

voilà le principe

// si la cloture est éteinte depuis plus de 30 mn, on prévient tout le monde

while ( cloture1Allume == false ) && (flag_envoi == false;)
{

  if (millis() - tempscloturearret >= 60000) {
    {
      sendToPushingBox(DEVID5);
      flag_envoi = true;
    }
  }

Merci, c'est simple , ou ai je la tete !

il suffisait de rajouter un variable de type booleen .
Juste un point pour éviter des soucis à quelqun d'autre, ton code ne compilera pas ( je sais que tu le sais) mais ça peut aider un débutant .

// si la cloture est éteinte depuis plus de 30 mn, on prévient tout le monde

while (( cloture1Allume == false ) && (flag_envoi == false))


  if (millis() - tempscloturearret >= 60000) {
    {
      sendToPushingBox(DEVID5);
      flag_envoi = true;
    }
  }
[code]

ca compile chez moi, il manquait juste les déclarations et la neutralisation de la ligne d'envoi
c'était juste le principe que je voulais te montrer :slight_smile:

unsigned long tempscloturearret;
boolean flag_envoi=false;
boolean cloture1Allume=false;
void setup() {

// si la cloture est éteinte depuis plus de 30 mn, on prévient tout le monde

while (( cloture1Allume == false ) && (flag_envoi == false))

  if (millis() - tempscloturearret >= 60000) {
    {
    //  sendToPushingBox(DEVID5);
      flag_envoi = true;
    }
  }

}

void loop() {
  // put your main code here, to run repeatedly:

}

Oui je sais que tu sais ! C'était juste pour pas bloquer un débutant à cause de parenthèses et point virgule