Button web temporiser millis () possible ?

Bonjour a tous merci de m accueillir & toute bonne année,

Je viens de commencer dans le monde arduino
Et la question qui se pose,
et il possible de lancer une commande temporiser, faire tirer relay depuis un navigateur via un button pendant un certain temps, sans utiliser delay?
ex d utilisation (gâche de porte, ouvert de qqchose pendant un certain temps)
Apres avoir fait 4 jour de recherche sur le net infructueuse,
j ai deja commence un petit qqchose en rajoutant la fonction millis()
la fonction millis fonctionne
sauf que le navigateur mémorise l’etat / ?led=push
il doit y avoir un prob avec le bouton qui fait plutôt interrupteur mais pas assez de connaissance pour trouver la solution…bouu
Si quelque un pourrait me donner un coup de pouce
Merci d’avance andro:

#include "etherShield.h"
#include "ETHER_28J60.h"
int datapushbuton1;//crée une variable nommée "poussoirA"
int memstatpush_A;//crée une variable nommée "etat_A"
const int led_A = 5;//crée constantes broches de sorties des leds
const int temporisation_A = 8000;
unsigned long temps_A;//récupère la valeur temps_a & temps_b
static uint8_t mac[6] = {0x74,0x69,0x69,0x2D,0x30,0x31};   // this just needs to be unique for your network, 
static uint8_t ip[4] = {192, 168, 0, 116}; // IP address for the webserver
static uint16_t port = 80; // Use port 80 - the standard for HTTP
ETHER_28J60 e;

void setup()
{ 
e.setup(mac, ip, port);
pinMode(led_A, OUTPUT);
}

void loop()
{
  char* params;
  if (params = e.serviceRequest())
  {
    e.print("<h1><a href='/?led=push'>tempo push</a></h1>");

    {


datapushbuton1 = (strcmp(params, "?led=push"));
if(datapushbuton1 == 0)
{
temps_A = millis();

memstatpush_A = HIGH; 
digitalWrite(led_A, HIGH);
}

// Vérifie la led A si il faut l'éteindre
if(memstatpush_A == HIGH && ((millis() - temps_A) > temporisation_A))
{
memstatpush_A = LOW;
digitalWrite(led_A, LOW);
}

}
    e.respond();
  }
  }