   timer.setTimeout(2500L, heartbeatOn);
 }
 
-BLYNK_WRITE(V19) // App button to reset EEPROM stored total and address
+BLYNK_WRITE(V19) // App button to reset EEPROM 0-200
 {
   int pinData = param.asInt();
 

    for (int i = 0 ; i < 201 ; i++) {
      EEPROM.write(i, 0);
    }
    EEPROM.write(eeIndex, 1); // Defined address 1 as the starting location.
    EEPROM.commit();
  }
}

BLYNK_WRITE(V20) // App button to reset ESP
{
  int pinData = param.asInt();



SimpleTimer timer;

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

const int blowerPin = 12;  // WeMos pin D6. Todo: Change blowerPin to coolingPin (also, fanOnlyPin and heatingPin for future).
int xStop = 1;             // Provides "latching" associated with recording unit start/stop time.
int xStart = 1;            // Provides "latching" associated with recording unit start/stop time.
int xFirstRun = 0;         // Think these kinds of things can be their own routines and triggred from void setup().
int resetTattle = 0;       // Same as above, but might keep this to lockout other things.
int resetLatch = 0;        // Same! This only functions to set the time and date displayed in-app after hardware restart.
int rtcWait = 0;           // Due to Blynk RTC start delay...

int offHour, offHour24,  // All used to send an HVAC run status string to Blynk's app.
    onHour, onHour24, offMinute, onMinute, offMonth, onMonth, offDay, onDay;

int tempSplit;                    // Difference between return and supply air.
const int tempSplitSetpoint = 20; // Split lower than this value will send alarm notification.
int alarmFor = 0;                 // Provides "latching" for high split alarm counting & functionality. 0 is normal. 1 is prealarm. 5 is alarmed and lockout.
const int splitAlarmTime = 180;   // If a high split persists for this duration (in seconds), notification is sent.
int alarmTime;                    // Seconds that high split alarm has been active.
int resetHour, resetMin,          // ALSO BE MOVED to void setup() runOnce deal. Sets the date/time the hardware was reset.
    resetMonth, resetDay;

int todaysAccumRuntimeSec;            // Today's accumulated runtime in seconds - displays in app.
int todaysAccumRuntimeMin;            // Today's accumulated runtime in minutes - displays in app.
int currentCycleSec, currentCycleMin; // If HVAC is running, the duration of the current cycle (non-accumulating).
int yesterdayRuntime;                 // Sum of yesterday's runtime in minutes - displays in app.
int todaysDate;                       // Sets today's date related to things that reset at EOD.

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

const int eeIndex = 0;    // This is the EEPROM address location that keeps track of next EEPROM address available for storing a single blower cycle runtime.
int eeCurrent = 1;        // This is the next EEPROM address location that cycle runtime will be stored to.
int eeWBsum;              // This is the sum of all EEPROM addresses (total runtime stored).
int eeTodaysStartsCount;  // Records how many times the unit has started today.


void setup()
{
  Serial.begin(9600);
   WiFi.mode(WIFI_STA);
   
  //WiFi.softAPdisconnect(true); // Per https://github.com/esp8266/Arduino/issues/676 this turns off AP
  Blynk.begin(auth, ssid, pass);

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