Tu código no funcionaba al menos con mi compilador.
El mio responde a cada comando y con velocidad.
Ahora lo que tu planteas es un problema de tu programación. Yo eso no lo he visto. Porque al intentar ver tu programa me daba errores y al superarlos no respondia a las peticiones.
Cuando logré que todo funcione fue lo que te postee.
Veré lo que comentas.
O sea que acá esta tu problema
if (req.indexOf("/abajotodo") != -1) {
tiempoAnterior=millis();
temp =1;
digitalWrite(rele2,LOW);
digitalWrite(rele1,HIGH);
Serial.println("Bajando persiana");
}
if ((millis()>tiempoAnterior+periodo)&&temp==1){
digitalWrite(rele2,HIGH);
temp = 0;
Serial.println("Persiana completamente bajada");
}
if (req.indexOf("/tiempo") != -1) {
Serial.println(millis());
Serial.println(tiempoAnterior);
}
if (req.indexOf("/arribatodo") != -1) {
tiempoAnterior2 = millis();
temp2 = 1;
digitalWrite(rele1,LOW);
digitalWrite(rele2,HIGH);
Serial.println("Subiendo persiana");
}
if ((millis()>tiempoAnterior2+periodo2)&&temp2==1){
digitalWrite(rele1,HIGH);
temp2 = 0;
Serial.println("Persiana completamente subida");
}
Dices que sin quitar lo que tu comentastes eso desconecta el relé1 o 2 según corresponda.
No lo comprendo por ahora.
Ya veo que esto es el problema.. se queda esperando aca sin hacer nada
// Wait until the client sends some data
Serial.println("new client");
while(!client.available()){
delay(1);
}