Current Relay On/Off Status- In App Button

It’s not a good idea having all of your timers being called at exactly the same time. Your board isn’t capable of multi tasking, so you’re effectively queueing all of these tasks one after another. BlynkTimer will drop incomplete tasks in some situations when you do this.

See the “Staggering Timers” section of this tutorial for info on potential solutions…

Also, I’d be inclined to add these virtualWrites into the functions that take the various readings rather than having this timed function…

That’s because the functions called by your alarms don’t have any code in them to update the button statuses.
For example this….

Should probably look something like this…

void LightsOn() {
  Serial.println("Alarm: - turn lights On");
  digitalWrite(Light, HIGH);
  Blynk.virtualWrite(V5, 1); // update the Light button widget
}

Pete.