Switching Mode from auto_manual

I am having simple time Switch app running, I would like to select function based on timeinput Wizard.
With this code if i press the button auto/manual then only switching stage between time Zone else it will remain in previous stage.

If its automatic mode.
based on RTC time , if Rtc time between timezone1 range Switch1 enable disable other Switch
if Rtc time between timezone2 range Switch2 enable disable other Switch
if Rtc time between timezone3 range Switch3 enable disable other Switch
if Rtc time between timezone4 range Switch4 enable disable other Switch
it must be totally automatic in switching time based on timing. Only problem retaining previous stage

In manual mode . I could able to select individual switch and decide operation which seems to be working fine .

BLYNK_WRITE(V50)  // Manual/Auto selection
{
  if (param.asInt() == 0)

  {
    manual = 1;
    Serial.println("Manual mode is selected ");
    // restorelastbuttonpressed ();



  } else
  {
    manual = 0;
    Serial.println("AUTO mode is selected ");
    AutoMode_Function();
    // checklastbuttonpressed();
  }
}



void AutoMode_Function()
{
  sprintf(currentTime, "%02d:%02d:%02d", hour(), minute(), second());
  Serial.print("Current Time: ");
  Serial.println(currentTime);
  
  if (hour() >= SThour &&  hour() <= SPhour)
  {
    if (minute() >= STmin && minute() <= SPmin)
    {
      TimeZone1 = 1;
      Blynk.virtualWrite(V51, 1);
      Blynk.virtualWrite(V52, 0);
      Blynk.virtualWrite(V53, 0);
      Blynk.virtualWrite(V54, 0);
    }

  }

  if (hour() >= Wk_Emd_SThour && hour() <= Wk_Emd_SPhour)
  {
    if (minute() >= Wk_Emd_STmin && minute() <= Wk_Emd_SPmin)
    {
      TimeZone2 = 1;
      Blynk.virtualWrite(V51, 0);
      Blynk.virtualWrite(V52, 1);
      Blynk.virtualWrite(V53, 0);
      Blynk.virtualWrite(V54, 0);
    }
  }
  if (hour() >= Al_SThour && hour() <= Al_SPhour)
  {
    if (minute() >= Al_STmin && minute() <= Al_SPmin)
    {
      TimeZone3 = 1;
      Blynk.virtualWrite(V51, 0);
      Blynk.virtualWrite(V52, 0);
      Blynk.virtualWrite(V53, 1);
      Blynk.virtualWrite(V54, 0);
    }
  }
  if (hour() >= TimeZ4__SThour && hour() <= TimeZ4__SPhour)
  {
    if (minute() >= TimeZ4__STmin && minute() <= TimeZ4__SPmin)
    {
      TimeZone4 = 1;
      Blynk.virtualWrite(V51, 0);
      Blynk.virtualWrite(V52, 0);
      Blynk.virtualWrite(V53, 0);
      Blynk.virtualWrite(V54, 1);
    }
  } else
  {
    Blynk.virtualWrite(V51, 0);
    Blynk.virtualWrite(V52, 0);
    Blynk.virtualWrite(V53, 0);
    Blynk.virtualWrite(V54, 0);
  }


}
1 Like

good job but give us missing part.
else it’s unusable for us.

I believe you need some help, if so check this recent post Blynk Thermostat