main/automation.c

changeset 121
30aca5888d2b
parent 119
1cef3c25426b
child 126
e133a292ad21
equal deleted inserted replaced
120:afd58d4c7b5b 121:30aca5888d2b
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();

mercurial