     xStop = 0;
     offNow = now();
   }
-}
+
+  if (digitalRead(blowerPin) == LOW) // Blower is running.
+  {
+    secondsCount = (millis() / 1000); // Start the clock that the alarm will reference.
+    if (tempSplit > 15) // > 15F is an acceptable split for alarm purposes (usually 20F in real life).
+    {
+      alarmFor = 0; // Resets alarm counting "latch."
+      alarmTime = 0; // Resets 120s alarm.
+    }
+    else
+    {
+      if (alarmFor == 0)
+      {
+        alarmTime = secondsCount + 120; // This sets the 120s alarm (from split out of spec to notification being sent)
+        alarmFor++; // Locks out alarm clock reset until alarmFor == 0.
+      }
+    }
+    if (tempSplit <= 15 && secondsCount > alarmTime && alarmFor == 1)
+    {
+      Blynk.tweet(String("Low split (") + tempSplit + "°F) " + "recorded at " + hour() + ":" + minute() + ":" + second() + " " + month() + "/" + day() + "/" + year());
+      Blynk.notify(String("Low HVAC split: ") + tempSplit + "°F");
+      alarmFor = 5; // Arbitrary value indicating notification sent and locking out repetitive notifications.
+    }
+  }
+  else
+  {
+    alarmFor = 0; // Resets alarm counting "latch."
+    alarmTime = 0; // Resets 120s alarm.
+  }
+}

  {
    Blynk.virtualWrite(1, "ERR");
  }
  led1.off();
}

void sendLCDstatus()


void sendHeartbeat()
{
  led1.on(); // The ON portion of the LED heartbeat indicator in the Blynk app
}

void loop() // Typically Blynk tasks should not be placed in void loop(), however these don't run continuously for any reason.
{
  Blynk.run();
  timer.run();
