Run between Hours

It should happen when it is at 15. If the Serial.println(" Hora is between 8PM and 5AM" ); is being printed, then that portion of the code should be executed.

If that is perfect, the idea is

BETWEEN TimeDay AND TimeNight - Pins SEAN 1 and between the remaining hours are 0 - BUT MUST ONLY be executed only once. For me to be able to modify them manually in case I need IN or OUT of the schedule.

I explain ?

As mentioned I did not check all scenarios. And after your new explanation.

Try changing to this.

void setFlag()
{
 Hora = hour(); 
 Serial.println(" Hora AT START_UP is:"+ String(Hora));
 if (Hora >= TimeDay && Hora <= TimeNight)
 {
  Flag = 0;
 }
 else
 {
  Flag = 1;
 }
timer.setInterval(60000L,automatic); //starts the check
 
}

void automatic() {

 Hora = hour();
Serial.println(" Hora is:"+ String(Hora)+"  "+"TimeDay is: "+String(TimeDay) + "  "+ "TimeNight is: "+ String(TimeNight));

 Serial.println(" Flag is:"+ String(Flag));
  
 if (Flag == 0)
{
  if (Hora >= TimeDay && Hora <= TimeNight)
  {
  Serial.println(" Hora IS or between TimeDay and TimeNight" );
  Serial.println(" Hora is:"+ String(Hora));
  Blynk.virtualWrite (V2, "1");
  Blynk.virtualWrite (V5, "1");
  Blynk.virtualWrite (V6, "1");
  Blynk.virtualWrite (V3, "1");
  Flag = 1;
   } 
}
else if (Flag == 1) 
{
 if (Hora < TimeDay || Hora > TimeNight)
  {
   Serial.println(" Hora is BEFORE TimeDay or AFTER TimeNight " );
   Serial.println(" Hora is:"+ String(Hora));
  Blynk.virtualWrite (V6, "0");
  Blynk.virtualWrite (V5, "0");
  Blynk.virtualWrite (V2, "0");
  Blynk.virtualWrite (V3, "0");
  Flag = 0;
  }

}

}

Also, TimeDay < TimeNight.

Same , 18 hs dont no nothing.

17:21:17.261 -> [0] Getting IP...
17:21:23.895 -> [6639] IP:192.168.1.6
17:21:23.929 -> [6640] 
17:21:23.929 ->     ___  __          __
17:21:23.963 ->    / _ )/ /_ _____  / /__
17:21:23.998 ->   / _  / / // / _ \/  '_/
17:21:23.998 ->  /____/_/\_, /_//_/_/\_\
17:21:24.036 ->         /___/ v0.6.1 on Arduino Mega
17:21:24.075 -> 
17:21:24.075 -> [6757] Connecting to 192.168.1.14
17:21:24.321 -> [7068] Ready (ping: 7ms).
17:21:24.695 -> [7432] Time sync: OK
17:21:25.826 ->  Hora AT START_UP is:17
17:22:25.836 ->  Hora is:17  TimeDay is: 17  TimeNight is: 18
17:22:25.873 ->  Flag is:0
17:22:25.910 ->  Hora IS or between TimeDay and TimeNight
17:22:25.947 ->  Hora is:17
17:23:25.844 ->  Hora is:17  TimeDay is: 17  TimeNight is: 18
17:23:25.912 ->  Flag is:1
17:24:25.876 ->  Hora is:17  TimeDay is: 17  TimeNight is: 18
17:24:25.910 ->  Flag is:1
17:25:25.885 ->  Hora is:17  TimeDay is: 17  TimeNight is: 18
17:25:25.918 ->  Flag is:1
17:26:25.950 ->  Hora is:17  TimeDay is: 17  TimeNight is: 18
17:26:26.020 ->  Flag is:1
17:26:26.020 -> [308634] Time sync: OK
17:27:25.919 ->  Hora is:17  TimeDay is: 17  TimeNight is: 18
17:27:25.953 ->  Flag is:1
17:28:25.940 ->  Hora is:17  TimeDay is: 17  TimeNight is: 18
17:28:25.975 ->  Flag is:1
17:29:25.935 ->  Hora is:17  TimeDay is: 17  TimeNight is: 18
17:29:26.004 ->  Flag is:1
17:30:25.978 ->  Hora is:17  TimeDay is: 17  TimeNight is: 18
17:30:26.014 ->  Flag is:1
17:31:25.990 ->  Hora is:17  TimeDay is: 17  TimeNight is: 18
17:31:26.023 ->  Flag is:1
17:32:26.061 ->  Hora is:17  TimeDay is: 17  TimeNight is: 18
17:32:26.128 ->  Flag is:1
17:32:26.128 -> [668636] Time sync: OK
17:33:26.027 ->  Hora is:17  TimeDay is: 17  TimeNight is: 18
17:33:26.064 ->  Flag is:1
17:34:26.022 ->  Hora is:17  TimeDay is: 17  TimeNight is: 18
17:34:26.093 ->  Flag is:1
17:35:26.056 ->  Hora is:17  TimeDay is: 17  TimeNight is: 18
17:35:26.093 ->  Flag is:1
17:36:26.063 ->  Hora is:17  TimeDay is: 17  TimeNight is: 18
17:36:26.097 ->  Flag is:1
17:37:26.065 ->  Hora is:17  TimeDay is: 17  TimeNight is: 18
17:37:26.136 ->  Flag is:1
17:38:26.157 ->  Hora is:17  TimeDay is: 17  TimeNight is: 18
17:38:26.195 ->  Flag is:1
17:38:26.230 -> [1028636] Time sync: OK
17:39:26.098 ->  Hora is:17  TimeDay is: 17  TimeNight is: 18
17:39:26.170 ->  Flag is:1
17:40:26.107 ->  Hora is:17  TimeDay is: 17  TimeNight is: 18
17:40:26.175 ->  Flag is:1
17:41:26.128 ->  Hora is:17  TimeDay is: 17  TimeNight is: 18
17:41:26.198 ->  Flag is:1
17:42:26.165 ->  Hora is:17  TimeDay is: 17  TimeNight is: 18
17:42:26.199 ->  Flag is:1
17:43:26.166 ->  Hora is:17  TimeDay is: 17  TimeNight is: 18
17:43:26.201 ->  Flag is:1
17:44:26.263 ->  Hora is:17  TimeDay is: 17  TimeNight is: 18
17:44:26.297 ->  Flag is:1
17:44:26.297 -> [1388637] Time sync: OK
17:45:26.211 ->  Hora is:17  TimeDay is: 17  TimeNight is: 18
17:45:26.246 ->  Flag is:1
17:46:26.224 ->  Hora is:17  TimeDay is: 17  TimeNight is: 18
17:46:26.258 ->  Flag is:1
17:47:26.222 ->  Hora is:17  TimeDay is: 17  TimeNight is: 18
17:47:26.291 ->  Flag is:1
17:48:26.255 ->  Hora is:17  TimeDay is: 17  TimeNight is: 18
17:48:26.289 ->  Flag is:1
17:49:26.276 ->  Hora is:17  TimeDay is: 17  TimeNight is: 18
17:49:26.311 ->  Flag is:1
17:50:26.346 ->  Hora is:17  TimeDay is: 17  TimeNight is: 18
17:50:26.379 ->  Flag is:1
17:50:26.414 -> [1748633] Time sync: OK
17:51:26.284 ->  Hora is:17  TimeDay is: 17  TimeNight is: 18
17:51:26.354 ->  Flag is:1
17:52:26.307 ->  Hora is:17  TimeDay is: 17  TimeNight is: 18
17:52:26.345 ->  Flag is:1
17:53:26.342 ->  Hora is:17  TimeDay is: 17  TimeNight is: 18
17:53:26.378 ->  Flag is:1
17:54:26.360 ->  Hora is:17  TimeDay is: 17  TimeNight is: 18
17:54:26.397 ->  Flag is:1
17:55:26.344 ->  Hora is:17  TimeDay is: 17  TimeNight is: 18
17:55:26.413 ->  Flag is:1
17:56:26.432 ->  Hora is:17  TimeDay is: 17  TimeNight is: 18
17:56:26.505 ->  Flag is:1
17:56:26.505 -> [2108634] Time sync: OK
17:57:26.391 ->  Hora is:17  TimeDay is: 17  TimeNight is: 18
17:57:26.427 ->  Flag is:1
17:58:26.405 ->  Hora is:17  TimeDay is: 17  TimeNight is: 18
17:58:26.474 ->  Flag is:1
17:59:26.409 ->  Hora is:17  TimeDay is: 17  TimeNight is: 18
17:59:26.478 ->  Flag is:1
18:00:26.445 ->  Hora is:18  TimeDay is: 17  TimeNight is: 18
18:00:26.481 ->  Flag is:1
18:01:26.459 ->  Hora is:18  TimeDay is: 17  TimeNight is: 18
18:01:26.493 ->  Flag is:1

I think there is still some misunderstanding.

so if TimeDay is 17 and TimeNight is 18, Change Vpins to 1 @ TimeDay, once, and do nothing until after TimeNight. Since TimeNight is 18 that means that the change will happen at 19.
In other words, Vpins set to 1 from 5PM (17) until 6:59PM (end of 18), At 7PM (19) Vpins set to 0.

If you want the Vpins to change to 0 at 6PM (18), then try this:

void setFlag()
{
 Hora = hour(); 
 Serial.println(" Hora AT START_UP is:"+ String(Hora));
 if (Hora >= TimeDay && Hora < TimeNight)
 {
  Flag = 0;
 }
 else
 {
  Flag = 1;
 }
timer.setInterval(60000L,automatic); //starts the check
 
}

void automatic() {

 Hora = hour();
Serial.println(" Hora is:"+ String(Hora)+"  "+"TimeDay is: "+String(TimeDay) + "  "+ "TimeNight is: "+ String(TimeNight));

 Serial.println(" Flag is:"+ String(Flag));
  
 if (Flag == 0)
{
  if (Hora >= TimeDay && Hora < TimeNight)
  {
  Serial.println(" Hora IS or between TimeDay and TimeNight" );
  Serial.println(" Hora is:"+ String(Hora));
  Blynk.virtualWrite (V2, "1");
  Blynk.virtualWrite (V5, "1");
  Blynk.virtualWrite (V6, "1");
  Blynk.virtualWrite (V3, "1");
  Flag = 1;
   } 
}
else if (Flag == 1) 
{
 if (Hora < TimeDay || Hora >= TimeNight)
  {
   Serial.println(" Hora is BEFORE TimeDay or AFTER TimeNight " );
   Serial.println(" Hora is:"+ String(Hora));
  Blynk.virtualWrite (V6, "0");
  Blynk.virtualWrite (V5, "0");
  Blynk.virtualWrite (V2, "0");
  Blynk.virtualWrite (V3, "0");
  Flag = 0;
  }

}

}
1 Like

No ,

When time its 17 , Vpins change to 1 .
When time its 18 . Vpins change to 0

1 only in each

But the problem is when the device is turned off …
If I have TimeDay set at 5pm and TimeNigth at 11pm and the current time is 7pm. You MUST execute the function of Vpins to 1

The last posted code “should” do all of that.

Hopefully…

I’m just trying it out, I really appreciate your time! Thank you.

Then I tell you.

19:49:39.054 ->  Hora AT START_UP is:19
19:50:39.062 ->  Hora is:19  TimeDay is: 19  TimeNight is: 20
19:50:39.131 ->  Flag is:0
19:50:39.131 ->  Hora IS or between TimeDay and TimeNight
19:50:39.166 ->  Hora is:19
19:51:39.105 ->  Hora is:19  TimeDay is: 19  TimeNight is: 20
19:51:39.140 ->  Flag is:1
19:52:39.108 ->  Hora is:19  TimeDay is: 19  TimeNight is: 20
19:52:39.142 ->  Flag is:1
19:53:39.130 ->  Hora is:19  TimeDay is: 19  TimeNight is: 20
19:53:39.165 ->  Flag is:1
19:54:39.220 ->  Hora is:19  TimeDay is: 19  TimeNight is: 20
19:54:39.255 ->  Flag is:1
19:54:39.255 -> [308617] Time sync: OK
19:55:39.156 ->  Hora is:19  TimeDay is: 19  TimeNight is: 20
19:55:39.190 ->  Flag is:1
19:56:39.178 ->  Hora is:19  TimeDay is: 19  TimeNight is: 20
19:56:39.212 ->  Flag is:1
19:57:39.181 ->  Hora is:19  TimeDay is: 19  TimeNight is: 20
19:57:39.251 ->  Flag is:1
19:58:39.200 ->  Hora is:19  TimeDay is: 19  TimeNight is: 20
19:58:39.235 ->  Flag is:1
19:59:39.219 ->  Hora is:19  TimeDay is: 19  TimeNight is: 20
19:59:39.254 ->  Flag is:1
20:00:39.303 ->  Hora is:20  TimeDay is: 19  TimeNight is: 20
20:00:39.337 ->  Flag is:1
20:00:39.372 ->  Hora is BEFORE TimeDay or AFTER TimeNight 
20:00:39.406 ->  Hora is:20
20:00:39.441 -> [668668] Time sync: OK

Rlly nice , thx!