add outdoor threshold
This commit is contained in:
parent
3771a83fcc
commit
fa958dd53b
@ -10,9 +10,11 @@
|
||||
|
||||
#define PERIODIC_INTERVAL 1U // run control loop every 1sec
|
||||
|
||||
#define RETURN_FLOW_TEMPERATURE_LOWER_LIMIT_DAY 30.0
|
||||
#define RETURN_FLOW_TEMPERATURE_LOWER_LIMIT_NIGHT 25.0
|
||||
#define CHAMPER_TEMPERATURE_TARGET 80.0
|
||||
#define RETURN_FLOW_TEMPERATURE_LOWER_LIMIT_DAY 30.0f
|
||||
#define RETURN_FLOW_TEMPERATURE_LOWER_LIMIT_NIGHT 25.0f
|
||||
#define CHAMPER_TEMPERATURE_TARGET 80.0f // Max cut off temperature, burner will stop if chamber is even or higher
|
||||
#define CHAMPER_TEMPERATURE_THRESHOLD 45.0f // Min threshold temperature for enabling burner, burner will only start if chamber is even or lower
|
||||
#define OUTDOOR_TEMPERATURE_THRESHOLD 15.0f // Min threshold temperature for enabling burner, burner will only start if outdoor is even or lower
|
||||
#define BURNER_FAULT_DETECTION_THRESHOLD (60U * 3U) // Detect burner fault if after 3 minutes no burner start detected
|
||||
|
||||
static const char *TAG = "smart-oil-heater-control-system-control";
|
||||
@ -132,15 +134,26 @@ void taskControl(void *pvParameters)
|
||||
|
||||
if ((bHeatingInAction == false) && (bBurnerFaultDetected == false))
|
||||
{
|
||||
if ((getReturnFlowTemperature().average60s.fValue <= currentControlEntry.fReturnFlowTemperature) && (getChamberTemperature().fCurrentValue <= 45.0))
|
||||
if ((getReturnFlowTemperature().average60s.fValue <= currentControlEntry.fReturnFlowTemperature) && (getChamberTemperature().fCurrentValue <= CHAMPER_TEMPERATURE_THRESHOLD))
|
||||
{
|
||||
ESP_LOGI(TAG, "Return Flow Target Temperature reached: Enable Burner");
|
||||
bHeatingInAction = true;
|
||||
setCirculationPumpState(ENABLED);
|
||||
setBurnerState(ENABLED);
|
||||
setSafetyControlState(ENABLED);
|
||||
i64BurnerEnableTimestamp = esp_timer_get_time();
|
||||
sControlState = CONTROL_HEATING;
|
||||
if (getOutdoorTemperature().average60s.fValue >= OUTDOOR_TEMPERATURE_THRESHOLD)
|
||||
{
|
||||
ESP_LOGI(TAG, "Outdoor temperature too warm: Waiting for winter.");
|
||||
setCirculationPumpState(DISABLED);
|
||||
setBurnerState(DISABLED);
|
||||
setSafetyControlState(DISABLED);
|
||||
sControlState = CONTROL_OUTDOOR_TOO_WARM;
|
||||
}
|
||||
else
|
||||
{
|
||||
ESP_LOGI(TAG, "Return Flow Target Temperature reached: Enable Burner");
|
||||
bHeatingInAction = true;
|
||||
setCirculationPumpState(ENABLED);
|
||||
setBurnerState(ENABLED);
|
||||
setSafetyControlState(ENABLED);
|
||||
i64BurnerEnableTimestamp = esp_timer_get_time();
|
||||
sControlState = CONTROL_HEATING;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user