   }
 }
 
-void sendBlowerStatus()
+void sendStatus()
 {
   if (resetLatch == 0) // Sets ESP start/reset time and date to display in app until blower activity.
   {
-    startHour = hour();
-    startMin = minute();
-    startMonth = month();
-    startDay = day();
-    resetLatch++;
-  }
-
-  if (digitalRead(blowerPin) == HIGH && resetTattle == 0 && startMin > 9)
-  {
-    Blynk.virtualWrite(16, String("SYSTEM RESET at ") + startHour + ":" + startMin + " " + startMonth + "/" + startDay);
-  }
-  else if (digitalRead(blowerPin) == HIGH && resetTattle == 0 && startMin < 10)
-  {
-    Blynk.virtualWrite(16, String("SYSTEM RESET at ") + startHour + ":0" + startMin + " " + startMonth + "/" + startDay);
-  }
-  else if (digitalRead(blowerPin) == LOW && resetTattle == 0 && startMin > 9)
-  {
-    Blynk.virtualWrite(16, String("SYSTEM RESET at ") + startHour + ":" + startMin + " " + startMonth + "/" + startDay);
-  }
-  else if (digitalRead(blowerPin) == LOW && resetTattle == 0 && startMin < 10)
-  {
-    Blynk.virtualWrite(16, String("SYSTEM RESET at ") + startHour + ":0" + startMin + " " + startMonth + "/" + startDay);
+    resetHour = hour();
+    resetMin = minute();
+    resetMonth = month();
+    resetDay = day();
+    ++resetLatch;
+  }
+
+  // This wonderful mess displays what I need with AM/PM and leading zeros for minutes (for different scenarios).
+  // I've tried more elegant or lean solutions, but they ended up more complex with more lines of code!
+  if (digitalRead(blowerPin) == HIGH && resetTattle == 0 && resetMin > 9)
+  {
+    Blynk.virtualWrite(16, String("SYSTEM RESET at ") + resetHour + ":" + resetMin + " on " + resetMonth + "/" + resetDay);
+  }
+  else if (digitalRead(blowerPin) == HIGH && resetTattle == 0 && resetMin < 10)
+  {
+    Blynk.virtualWrite(16, String("SYSTEM RESET at ") + resetHour + ":0" + resetMin + " on " + resetMonth + "/" + resetDay);
+  }
+  else if (digitalRead(blowerPin) == LOW && resetTattle == 0 && resetMin > 9)
+  {
+    Blynk.virtualWrite(16, String("SYSTEM RESET at ") + resetHour + ":" + resetMin + " on " + resetMonth + "/" + resetDay);
+  }
+  else if (digitalRead(blowerPin) == LOW && resetTattle == 0 && resetMin < 10)
+  {
+    Blynk.virtualWrite(16, String("SYSTEM RESET at ") + resetHour + ":0" + resetMin + " on " + resetMonth + "/" + resetDay);
   }
   else if (digitalRead(blowerPin) == HIGH && resetTattle == 1) // Runs when blower is OFF.
   {


SimpleTimer timer;

WiFiClient client; // Try running without... might not need? I see this down already in the various subroutines

WidgetLED led1(V2); // Heartbeat (status)
WidgetRTC rtc;
BLYNK_ATTACH_WIDGET(rtc, V8);
WidgetTerminal terminal(V26);

int blowerPin = 2;  // 3.3V logic source from blower
int xStop = 1;
int xStart = 1;
int alarmTrigger = 0;
int alarmFor = 0;
int xFirstRun = 0;
int resetTattle = 0;
int splitAlarmTime = 180; // 180s (3 min) timeout after a high split reading

unsigned long onNow = now();
unsigned long offNow = now(); // To prevent error on first Tweet after blower starts - NOT WORKING YET

int offHour, offHour24, onHour, onHour24, offMinute, onMinute, offSecond, onSecond, offMonth, onMonth,
    offDay, onDay, runTime, tempSplit, secondsCount, alarmTime, startHour, startMin, startMonth, startDay;

int resetLatch = 0;

int currentRuntimeSec;      // Sum of today's blower runtime in seconds
int currentOfftimeSec = 0;
int currentRuntimeMin;      // Sum of today's blower runtime in minutes
int currentRuntimeStint;    // Current (last) duration of a blower fan run "cycle/session"
int currentRuntimeStintMin; // Current (last) duration of a blower fan run "cycle/session"
int yesterdayRuntime;       // Sum of yesterday's blower runtime in minutes
int totalRuntimeLatch = 0;

int dayCountLatch = 0;
int todaysDate, yesterdaysDate, yesterdaysMonth;
int msgLatch = 0;

float tempRA, tempSA;       // Return and supply air temperatures

// For EEPROM
int eeIndex = 0;  // This is the EEPROM address location that keeps track of next EEPROM address available for storing a blower runtime.
int eeCurrent;    // This is the next EEPROM address location that runtime will be stored to.
int eeWBsum;      // This is the sum of all EEPROM addresses (total runtime stored).

void setup()
{
  Serial.begin(9600);
  Blynk.begin(auth, ssid, pass);

  EEPROM.begin(201); // Reminder: "201" means addresses 0 to 200 are available (not 1 to 201 or 0 to 201).

  sensors.begin();
  sensors.setResolution(ds18b20RA, 10);

    Serial.println();
    Serial.println("closing connection");
  }

  else if (digitalRead(blowerPin) == HIGH)
  {
    int runStatus = NULL;

