   String check_payload = "ac status: ";
   if (bac_timer_mode)
   {
+    int timeremain = ((1800000 - (millis() - timerMillis)) / 1000 ) / 60;
+
     if (data_curr.ac_mode == 0)
     {
-      check_payload += ":timer_clock::black_square_for_stop:";
+      check_payload += ":timer_clock::black_square_for_stop:, next change in ";
+      check_payload += timeremain;
+      check_payload += " min";
     }
     else
     {
-      check_payload += ":timer_clock::arrows_counterclockwise:";
+      check_payload += ":timer_clock::arrows_counterclockwise:, next change in ";
+      check_payload += timeremain;
+      check_payload += " min";
     }
   }
   else

        {
          if (data_esp.ac_mode == 0)
          {
            data_esp.ac_mode = 1;
          }
          else
          {
            data_esp.ac_mode = 0;
          }
          btimerFirst = false;
          bhaveData   = true;
          timerMillis = millis();
          sendCheck();
        }
      }


volatile bool bignoreACretained = true;
volatile bool bac_timer_mode = false;
volatile bool bhaveData = false;
unsigned long timerMillis;
bool btimerFirst = true;

String clientName;
