  * changes in version 0.13:
            * removing endOfCycleState since my HVAC does not need it
            * adding time in notifications
+ * changes in version 0.14:
+           * debouncing target temp and fan status
+
+TODO list:
+ * take few samples and average them
+
 *******************************************************************************/
 
 #define PUSHBULLET_NOTIF "pushbulletGUST"
+const int TIME_ZONE = -4;
 
 /*******************************************************************************
  initialize FSM states with proper enter, update and exit functions

  if (Particle.function("setTargetTmp", setTargetTemp)==false) {
     Particle.publish(APP_NAME, "ERROR: Failed to register function setTargetTemp", 60, PRIVATE);
  }
  if (Particle.function("setFan", setFan)==false) {
     Particle.publish(APP_NAME, "ERROR: Failed to register function setFan", 60, PRIVATE);
  }
  //TESTING_HACK


  if ( currentTemp >= (targetTemp + margin) ) {
    //Particle.publish(APP_NAME, "Desired temperature reached", 60, PRIVATE);
    Particle.publish(PUSHBULLET_NOTIF, "Desired temperature reached" + getTime(), 60, PRIVATE);
    thermostatStateMachine.transitionTo(idleState);
  }
}
void heatingExitFunction(){
  //Particle.publish(APP_NAME, "heatingExitFunction", 60, PRIVATE);
  Particle.publish(PUSHBULLET_NOTIF, "Heat off" + getTime(), 60, PRIVATE);
  myDigitalWrite(fan, LOW);
  myDigitalWrite(heat, LOW);
  myDigitalWrite(cold, LOW);
