WidgetTimeInput reset value from UI

Hi community,

When I try to reset the value of V9 (datastreams Timer), after it get the stop time, the timer propose again the last values. The routine “timereset” do not take effect. I’m using the WidgetTimeInput.h library and the only values I’m considering are starting & stopping time. These the information regarding my project, thanks in advance for your help:

ESP8266 MCU, WiFi connectedto Blynk server, Android 8.1.0, Blynk Library v1.1.0

/*** nodeMCU 1.0 ESP-12E Module Blynk 2.0 c/notifiche v6.0 311222 ***

   - nodeMCU 1.0 ESP-12E module
   - Blynk 2.0 App - IDE v2.0.3 - CLI v0.29.0
   - esp8266 Community v3.1.0
   - Blynk Libraries 1.1.0 https://github.com/blynkkk/blynk-library/releases/latest
   - URL Gestore schede http://arduino.esp8266.com/stable/package_esp8266com_index.json

  D1  GPIO 5 relayL2  Relay L2    BUTTON PUSH
  D2  GPIO 4 ring     Trigger     RING interCom
  D3  GPIO 0 led      LED Fade    LED blue fade mode
  D5  GPIO 14 relayL1 Relay L1    BUTTON PUSH 1/0
  D6  GPIO 12 enable  Autorizza   BUTTON ACCESSO ATTIVO
  D7  GPIO 13 dht     DHT22       GAUGE widget Temp. Hum.

  V1  WiFi OnLine       UI LED WiFi status
  V2  WiFi check        UI LED check
  V3  High Temp.        UI LED High Temperature Alert
  
  V4  Temperatura       UI GAUGE TEMP.
  V5  Umidita'          UI GAUGE HUM.

  V6  L1 control        UI BUTTON L1
  V7  L2 control        UI BUTTON L2
  V8  Autorizza         UI BUTTON Autorizza

  V9  Temporizzato      UI TIMER (Time Input Widget)
  V10 RTC               UI Current Time

*****************************************************************/

#define BLYNK_PRINT Serial
#define BLYNK_TEMPLATE_ID "xxxxxxxxxxxxxx"
#define BLYNK_DEVICE_NAME "iOT xxxxxxx"
#define BLYNK_AUTH_TOKEN "xxxxxxxxxxxxxxx"
#define BLYNK_FIRMWARE_VERSION "2.0.0"

#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include "DHT.h"
#include <TimeLib.h>
#include <WidgetRTC.h>
#include <WidgetTimeInput.h>

char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "xxxxxxxxx";
char pass[] = "xxxxxxxxxxxxxxxxx";

BlynkTimer timer;
WidgetRTC rtc;

#define USE_NODE_MCU_BOARD

#define relayL2 5   // D1
#define ring 4      // D2
#define led 0       // D3
#define relayL1 14  // D5
#define enable 12   // D6
#define dht 13      // D7

DHT dhtA(13, DHT22);

WidgetLED LED1(V1);
WidgetLED LED2(V2);
WidgetLED LED3(V3);

IPAddress local_IP(192, 168, 1, 132);
IPAddress gateway(192, 168, 1, 1);
IPAddress subnet(255, 255, 255, 0);
IPAddress primaryDNS(8, 8, 8, 8);
IPAddress secondaryDNS(8, 8, 4, 4);

int RINGlast = HIGH;
int brightness = 0;
int fadeAmount = 10;
bool alert_sent = false;
int startAt = -1;
int stopAt = -1;
String currentTime;
String startTime;
String stopTime;

BLYNK_CONNECTED() {
  Blynk.syncVirtual(V6, V7, V8, V10, V13);
}
BLYNK_WRITE(V6) {
  int BUTTL1 = param.asInt();
  digitalWrite(relayL1, BUTTL1);
}
BLYNK_WRITE(V7) {
  int BUTTL2 = param.asInt();
  digitalWrite(relayL2, BUTTL2);
}
BLYNK_WRITE(V8) {
  int BUTTState = param.asInt();
  digitalWrite(enable, BUTTState);
}
BLYNK_WRITE(V13) {
  Serial.print("Got a value: ");
  Serial.println(param.asStr());
}
BLYNK_WRITE(V9) {
  TimeInputParam t(param);
  long startseconds = (t.getStartHour() * 3600) + (t.getStartMinute() * 60) + (t.getStartSecond());
  if (t.hasStartTime() && startseconds != 23295) {
    startTime = String(t.getStartHour()) + ":" + t.getStartMinute() + ":" + t.getStartSecond();
    Serial.println("Start: " + startTime);
  } else {
  }
  long stopseconds = (t.getStopHour() * 3600) + (t.getStopMinute() * 60) + (t.getStopSecond());
  if (t.hasStopTime() && stopseconds != 23295) {
    stopTime = String(t.getStopHour()) + ":" + t.getStopMinute() + ":" + t.getStopSecond();
    Serial.println("Stop: " + stopTime);
  } else {
  }
}
void timereset() {
  Blynk.virtualWrite(V9, startAt, stopAt);
}
void timeChecker() {
  currentTime = String(hour()) + ":" + minute() + ":" + second();
  Blynk.virtualWrite(V10, "Time is ", currentTime);
  if ((currentTime == startTime) && (alert_sent == false)) {
    Blynk.logEvent("timer_on");
    delay(1000);
    Blynk.virtualWrite(8, HIGH);
    digitalWrite(enable, HIGH);
    alert_sent = true;
  } else if ((currentTime != startTime) && (alert_sent == true)) {
    alert_sent = false;
  } else if ((currentTime == stopTime) && (alert_sent == false)) {
    Blynk.logEvent("timer_off");
    delay(1000);
    Blynk.virtualWrite(8, LOW);
    digitalWrite(enable, LOW);
    alert_sent = true;
    timereset();
  } else if ((currentTime != stopTime) && (alert_sent == true)) {
    alert_sent = false;
  }
}
void setup() {
  Serial.begin(115200);
  delay(100);
  if (!WiFi.config(local_IP, gateway, subnet)) {
    Serial.println("Failed to configure");
  }
  Serial.print("Connecting to ");
  Serial.println(ssid);
  WiFi.begin(ssid, pass);
  while (WiFi.status() != WL_CONNECTED) {
    delay(50);
    Serial.print(".");
  }
  Blynk.config(auth);
  while (Blynk.connect(1000) == true) {
  }
  Blynk.begin(auth, ssid, pass, "46.101.217.214", 80);
  delay(50);
  dhtA.begin();
  rtc.begin();

  pinMode(relayL2, OUTPUT);
  pinMode(ring, INPUT_PULLUP);
  pinMode(led, OUTPUT);
  pinMode(relayL1, OUTPUT);
  pinMode(enable, OUTPUT);
  pinMode(dht, INPUT);
  digitalWrite(relayL2, HIGH);
  digitalWrite(ring, HIGH);
  digitalWrite(led, LOW);
  digitalWrite(relayL1, HIGH);
  digitalWrite(enable, LOW);

  Blynk.logEvent("iot_online");

  timer.setInterval(120000L, Clima);
  timer.setInterval(60000L, CheckConnection);
}
void CheckConnection() {
  LED1.off();
  LED2.on();
  if (Blynk.connected() == false) {
    Blynk.connect();
  } else {
    LED1.on();
    LED2.off();
  }
}
void Clima() {
  byte h1 = dhtA.readHumidity();
  byte t1 = dhtA.readTemperature();
  Blynk.virtualWrite(V4, t1);
  Blynk.virtualWrite(V5, h1);
  if ((t1 >= 35) && (alert_sent == false)) {
    Blynk.logEvent("high_temp");
    LED3.on();
    alert_sent = true;
  } else if ((t1 < 35) && (alert_sent == true)) {
    LED3.off();
    alert_sent = false;
  } else if (t1 < 35) {
    LED3.off();
    alert_sent = false;
  }
}
void Fade() {
  analogWrite(led, brightness);
  brightness = brightness + fadeAmount;
  if (brightness <= 0 || brightness >= 250) {
    fadeAmount = -fadeAmount;
  }
  delay(50);
}
void InterCom() {
  int RINGState = digitalRead(ring);
  int BUTTState = digitalRead(enable);
  if (RINGlast != RINGState) {
    delay(80);
    RINGState = digitalRead(ring);
    if (RINGlast != RINGState) {
      RINGlast = RINGState;
      if ((RINGState == LOW) && (BUTTState == LOW) && (alert_sent == false)) {
        Blynk.logEvent("citofono_on");
        delay(1000);
        alert_sent = true;
      } else if ((RINGState != LOW) && (BUTTState != LOW) && (alert_sent == true)) {
        alert_sent = false;
      } else if ((RINGState == LOW) && (BUTTState == HIGH) && (alert_sent == false)) {
        Blynk.logEvent("door_open");
        alert_sent = true;
        apre();
      } else if ((RINGState != LOW) && (BUTTState != HIGH) && (alert_sent == true)) {
        alert_sent = false;
      }
    }
  }
}
void apre() {
  delay(2000);
  digitalWrite(relayL1, LOW);
  delay(800);
  digitalWrite(relayL1, HIGH);
}
void loop() {
  Blynk.run();
  InterCom();
  Fade();
  timeChecker();
  timer.run();
}