Enclavamiento de dos reles con blynk iot

He realizado un proyecto de control de dos relés con un Esp32 y la aplicación Blynk IOT.
Funciona correctamente desde el movil pulsando los dos botones virtuales correspondientes a cada uno. Necesito que los dos relés estén enclavados, es decir que no puedan activarse los dos al mismo tiempo. He intentado hacerlo de varias formas desde el código del ide de Arduino pero no lo he conseguido y tampoco veo la forma de hacerlo desde la “Web Dashboard” de la plantilla de la aplicación. Pido si son tan amables y alguién me puede ayudar pues soy nuevo en programación. Aqui les adjunto el código.
Gracias Un saludo

#define BLYNK_TEMPLATE_ID "xxxxxxxxxxx"
#define BLYNK_DEVICE_NAME "Reles"
#define BLYNK_FIRMWARE_VERSION        "1.1.0"
#define BLYNK_PRINT Serial
#define APP_DEBUG
#include "BlynkEdgent.h"
   const byte rele1 = 13;
   const byte rele2 = 27;
   int state1;
   int state2;
void setup()
{
  Serial.begin(115200);
  delay(100);
  pinMode (rele1,OUTPUT);
  pinMode (rele2,OUTPUT);   
  BlynkEdgent.begin();
}

void loop() {                                                           
  BlynkEdgent.run();
}
   BLYNK_WRITE(V0){                                                                                                    
   state1 = param.asInt();                                        
   digitalWrite(pin13,state1);    
   }                                                                                                                                         
   BLYNK_WRITE(V1){                                                                                                           
   state2 = param.asInt();                                      
   digitalWrite(pin27,state2);
   }¨

@Pablo Please edit your post, using the pencil icon at the bottom, and add triple backticks at the beginning and end of your code so that it displays correctly.
Triple backticks look like this:
```

Copy and paste these if you can’t find the correct symbol on your keyboard.

Pete.

Perdonen mi ignorancia
Muchas gracias
Un saludo

You can try something like this

BLYNK_WRITE(V0)
{
  int pinValue = param.asInt();
  
  if (pinValue == 1){
   digitalWrite(rele1, HIGH);
   digitalWrite(rele2, LOW);
   Blynk.virtualWrite(V1, 0);
  }
}
BLYNK_WRITE(V1)
{
  int pinValue = param.asInt();
  
  if (pinValue == 1){
   digitalWrite(rele2, HIGH);
   digitalWrite(rele1, LOW);
   Blynk.virtualWrite(V0, 0);
  }
}

You can also try automation, which requires no coding.
https://docs.blynk.io/en/concepts/automations

Buenas Juan
Gracias por responder tan rápidamente la solución que me propones está bien, efectivamente los dos relés no pueden activarse a la vez, pero lo que realmente quiero es que si se pone el switch1 en “ON” y se activa el relé1 no se pueda poner el switch2 también en “ON” hasta que el switch1 no se ponga en “OFF” y viceversa. De esta forma que me propones (yo ya lo había probado) efectivamente no se pueden activar los dos a la vez pero en milésimas de segundos pueden coincidir. Esto lo pretendo hacer para el funcionamiento de dos motores que en ningún momento pueden coincidir a la vez.
Muy agradecido por tu aportación
Un saludo

You can use a timeout timer to add a delay between events, for instance

BLYNK_WRITE(V0)
{
  int pinValue = param.asInt();
  
  if (pinValue == 1){
   digitalWrite(rele1, LOW); // turn off relay 1.
   timer.setTimeout(500L, []() // wait half a second.
  {  
   digitalWrite(rele2, HIGH); // turn on relay 2.
   }); 
  }
}

You need to do a logic test in your BLYNK_WRITE(vPin) callbacks, before you make the callback update the physical pin with a digitalWrite command.

A bit of pseudo code to demonstrate…

BLYNK_WRITE(switch1)
{
  If (switch2_state == 0)
  {
    // you only reach this point if switch2 is already off
    digital.write(param.asInt());
  }
}

Pete.

Gracias por sus aportaciones pero con los escasos conocimientos que tengo de programación no consigo implantar el bloque de código que me ha enviado. Le mando de nuevo mi código por si amablemente me lo quiere reformar al completo. Muchas gracias
Pablo

#define BLYNK_TEMPLATE_ID "xxxxxxxxxxx"
#define BLYNK_DEVICE_NAME "Reles"
#define BLYNK_FIRMWARE_VERSION        "1.1.0"

#define BLYNK_PRINT Serial

#define APP_DEBUG


#include "BlynkEdgent.h"
   const byte rele1 = 13;
   const byte rele2 = 27;
   int state1;
   int state2;
void setup()
{
  Serial.begin(115200);
  delay(100);
  pinMode (rele1,OUTPUT);
  pinMode (rele2,OUTPUT);   
  BlynkEdgent.begin();
}

void loop() {                                                           
  BlynkEdgent.run();
}
   BLYNK_WRITE(V0){                                                                                                    
   state1 = param.asInt();                                        
   digitalWrite(pin13,state1);    
   }                                                                                                                                         
   BLYNK_WRITE(V1){                                                                                                           
   state2 = param.asInt();                                      
   digitalWrite(pin27,state2);
   }

// Este es el trozo de código que me ennvió últimamente

BLYNK_WRITE(switch1)
{
  If (switch2_state == 0)
  {
    // you only reach this point if switch2 is already off
    digital.write(param.asInt());
  }
}

Hola Juan te agradezco de verdad tu aportación pero no consigo solucionar el problema , yo lo que quiero simplemente es que el funcionamiento de cada relé sea independiente el uno del otro,lo que me propones entiendo que cuando se active uno de los relés y transcurridos los 500 ms se active el otro y eso no es lo que yo necesito.Quizas estoy equivocado pues soy aficionado y de programación entiendo muy poco pues lo mío es los circuitos eléctricos.
Muy agradecido Un saludo
Pablo

My piece of pseudo code was intended to demonstrate the principal to allow you to modify your code yourself - not a piece of code to be slotted into your sketch.
I’m not going to write your code for you.

Pete.

Bueno pués gracias por todo
Pablo