Button(switch) not responding when using simpletimer

Hi,
i am using blynk application works fine with arduino and esp8266.But when i use simpletimer librabry my button widgets are not responding.(when i turned ON ,its not working)…and sometimes there is a login time out and reconnection.
But without using button pin everything works fine i was able to read and write datas.
Hope some body will help.
my code:

#define BLYNK_DEBUG
#define BLYNK_PRINT Serial    // Comment this out to disable prints and save space
#include <ESP8266_SoftSer.h>
#include <BlynkSimpleShieldEsp8266_SoftSer.h>
#include <SimpleTimer.h>

// Set ESP8266 Serial object
#include <SoftwareSerial.h>
SoftwareSerial EspSerial(10, 11); // RX, TX
SimpleTimer timer; 
int val;
int tempPin = A1;
const int gasPin = A2; //GAS sensor output pin to Arduino analog A0 pin
int alert = 12;
int val1;

WidgetLED led1(V0); //register to virtual pin 0
WidgetLCD lcd(V3);

ESP8266 wifi(EspSerial);
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "4a815c9140304a98afab37d98e0e560e";

void setup()
{
  // Set console baud rate
  Serial.begin(9600);
  delay(10);
  // Set ESP8266 baud rate
  // 9600 is recommended for Software Serial
  EspSerial.begin(9600);
  delay(10);
  timer.setInterval(2000L, readtemp);
  Blynk.begin(auth, wifi, "Sameer", "sam99455");
    }
    BLYNK_WRITE(V2){   
  int i = param.asInt();
   if(i == 1)
  {
    digitalWrite(2, HIGH);
  }
  else if(i == 0)
  {
    digitalWrite(2, LOW);
  }
}
void readtemp()
{
  BLYNK_WRITE(V2);
  lcd.print(0, 0, " FIRE   ");
  lcd.print(0, 1, "   ALERT SYSTEM " );
  val = analogRead(tempPin);
float mv = ( val/1024.0)*5000; 
float cel = mv/10;
  Blynk.virtualWrite(1, cel);
if(cel > 25){
    led1.on();
      Blynk.email("shabeersalih@gmail.com", "ALERt", "FIRE IS DETECTED IN YOUR HOME");
    //digitalWrite(6, HIGH);
     }
  else{
    led1.off();
    //digitalWrite(6, LOW);
  }
  lcd.clear();
}
void loop()
{
  Blynk.run();
   
  timer.run();  
  }

@shabeersalih

I think you can’t use BLYNK_WRITE(V2); within simple timer method. Please try something like that

BLYNK_WRITE(V2){  
int i = param.asInt();
pressButton(i);
}

void pressButton (int i) {
if(i == 1)
  {
    digitalWrite(2, HIGH);
  }
  else if(i == 0)
  {
    digitalWrite(2, LOW);
  }
}

void readtemp()
{
  
  pressButton(someVariable);
}