Ho sostituito il delay() con il millis così:
timeStop = millis()+23000;
while(millis()<timeStop){
Console.println(timeStop-millis());}
non cambia nulla, non arriva risposta al browser.
Ho visualizzato sulla console la variabile command dopo il ritardo di 23000ms ed è valorizzata. Inoltre
client.print("Apertura cancello eseguita.");
è all'interno dell' if quindi anche se si azzerasse dovrebbe comunque fare il print in quanto sono dentro all'if.
Sembrerebbe proprio un problema della variabile "client". Questo però starebbe a significare che non posso fare elaborazioni lunghi lato arduino, se devo avere un ritorno e questo mi pare strano.
In alternativa dovrei inserire sulla pagina html un timer javascript che interroghi arduino per sapere se l'operazione è terminata.