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 PERIODIC_INTERVAL 1U // run control loop every 1sec
|
||||||
|
|
||||||
#define RETURN_FLOW_TEMPERATURE_LOWER_LIMIT_DAY 30.0
|
#define RETURN_FLOW_TEMPERATURE_LOWER_LIMIT_DAY 30.0f
|
||||||
#define RETURN_FLOW_TEMPERATURE_LOWER_LIMIT_NIGHT 25.0
|
#define RETURN_FLOW_TEMPERATURE_LOWER_LIMIT_NIGHT 25.0f
|
||||||
#define CHAMPER_TEMPERATURE_TARGET 80.0
|
#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
|
#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";
|
static const char *TAG = "smart-oil-heater-control-system-control";
|
||||||
@ -132,15 +134,26 @@ void taskControl(void *pvParameters)
|
|||||||
|
|
||||||
if ((bHeatingInAction == false) && (bBurnerFaultDetected == false))
|
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");
|
if (getOutdoorTemperature().average60s.fValue >= OUTDOOR_TEMPERATURE_THRESHOLD)
|
||||||
bHeatingInAction = true;
|
{
|
||||||
setCirculationPumpState(ENABLED);
|
ESP_LOGI(TAG, "Outdoor temperature too warm: Waiting for winter.");
|
||||||
setBurnerState(ENABLED);
|
setCirculationPumpState(DISABLED);
|
||||||
setSafetyControlState(ENABLED);
|
setBurnerState(DISABLED);
|
||||||
i64BurnerEnableTimestamp = esp_timer_get_time();
|
setSafetyControlState(DISABLED);
|
||||||
sControlState = CONTROL_HEATING;
|
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
|
else
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user