diff -r b58e0c9897e1 -r cb5c73a8ae90 main/automation.c --- a/main/automation.c Sat Jun 06 16:52:44 2020 +0200 +++ b/main/automation.c Sat Jun 06 20:20:06 2020 +0200 @@ -304,6 +304,7 @@ case MAIN_AUTO_COOLING_H: case MAIN_AUTO_COOLING_M: case MAIN_AUTO_COOLING_C: + Sub_Screen = 0; TempReached = false; runtime.StageResume = Main_Screen; runtime.StageTimeLeft = 0; @@ -1159,7 +1160,7 @@ } #endif MLT_info(71, 26, true); - if (xSemaphoreTake(xSemaphoreDriver, 10) == pdTRUE) { + if (Sub_Screen == 1 && xSemaphoreTake(xSemaphoreDriver, 10) == pdTRUE) { /* * If the pump safe temperature is reached, add the control button. * Redefine key number 3 if it is at the position of key 2. @@ -1167,8 +1168,13 @@ if ((driver_state->mlt_pv < equipment.PumpMaxTemp) && (Buttons[3].x == Buttons[2].x) &&(Buttons[3].y == Buttons[2].y)) { Buttons_Add(255, 200, 60, 40, (char *)"Pomp", 3); Buttons_Show(); + Sub_Screen = 2; } xSemaphoreGive(xSemaphoreDriver); + if (Sub_Screen == 2) { + snprintf(msg, 63, "{\"main\":\"%d\",\"sub\":\"%d\",\"timer\":\"\"}", Main_Screen, Sub_Screen); + ws_server_send_text_clients((char *)"/ws", msg, strlen(msg)); + } } switch (Buttons_Scan()) { case 1: if (xSemaphoreTake(xSemaphoreDriver, 10) == pdTRUE) {