107 switch (Main_Screen) { |
107 switch (Main_Screen) { |
108 case MAIN_AUTO_INIT1: |
108 case MAIN_AUTO_INIT1: |
109 log_msg(TAG, "Automation startup"); |
109 log_msg(TAG, "Automation startup"); |
110 #ifdef CONFIG_TEMP_SENSORS_SIMULATOR |
110 #ifdef CONFIG_TEMP_SENSORS_SIMULATOR |
111 Fake_MLT = recipe.MashStep[0].Step_temp - 10; |
111 Fake_MLT = recipe.MashStep[0].Step_temp - 10; |
112 Fake_HLT = recipe.SpargeTemp - 15; |
112 Fake_HLT = recipe.SpargeTemp - 45; |
113 if (xSemaphoreTake(xSemaphoreDS18B20, 10) == pdTRUE) { |
113 if (xSemaphoreTake(xSemaphoreDS18B20, 10) == pdTRUE) { |
114 ds18b20_state->mlt_temperature = ((int)(Fake_MLT * 16)) / 16.0; |
114 ds18b20_state->mlt_temperature = ((int)(Fake_MLT * 16)) / 16.0; |
115 ds18b20_state->hlt_temperature = ((int)(Fake_HLT * 16)) / 16.0; |
115 ds18b20_state->hlt_temperature = ((int)(Fake_HLT * 16)) / 16.0; |
116 xSemaphoreGive(xSemaphoreDS18B20); |
116 xSemaphoreGive(xSemaphoreDS18B20); |
117 } |
117 } |
592 runtime.UseHLT = _UseHLT = false; |
592 runtime.UseHLT = _UseHLT = false; |
593 } |
593 } |
594 ESP_LOGD(TAG, "Use HLT %s", (_UseHLT)?"true":"false"); |
594 ESP_LOGD(TAG, "Use HLT %s", (_UseHLT)?"true":"false"); |
595 updateRuntime = true; |
595 updateRuntime = true; |
596 if (_UseHLT) { |
596 if (_UseHLT) { |
597 /* |
597 /* |
598 * Calculate HLT setpoint for pre-heat. Substract the |
598 * Calculate HLT setpoint for pre-heat. |
599 * available Mash rest times, asume 0.5 degrees/minute |
599 * Substract the available Mash rest plus ramp times, |
600 * heat capacity during mash. |
600 * asume 0.67 degrees/minute heat capacity during mash. |
601 */ |
601 */ |
602 int AvailableTime = 0; |
602 int AvailableTime = 0; |
603 for (int i = 1; i < 6; i++) // Only normal Mash steps |
603 for (int i = 0; i < recipe.Mashsteps; i++) { |
604 AvailableTime += recipe.MashStep[i].Step_time; |
604 if (recipe.MashStep[i].Step_temp < 75) { |
|
605 AvailableTime += (recipe.MashStep[i].Step_time + recipe.MashStep[i].Ramp_time); |
|
606 } |
|
607 } |
605 if (xSemaphoreTake(xSemaphoreDriver, 10) == pdTRUE) { |
608 if (xSemaphoreTake(xSemaphoreDriver, 10) == pdTRUE) { |
606 driver_state->hlt_sp = recipe.SpargeTemp - ((AvailableTime / 2) + 2); |
609 driver_state->hlt_sp = recipe.SpargeTemp - ((AvailableTime / 1.5) + 2); |
|
610 if (driver_state->hlt_sp < 10.0) |
|
611 driver_state->hlt_sp = 10.0; |
607 log_msg(TAG, "HLT preheat set to %4.2f", driver_state->hlt_sp); |
612 log_msg(TAG, "HLT preheat set to %4.2f", driver_state->hlt_sp); |
608 xSemaphoreGive(xSemaphoreDriver); |
613 xSemaphoreGive(xSemaphoreDriver); |
609 } |
614 } |
610 } |
615 } |
611 Buttons_Clear(); |
616 Buttons_Clear(); |