diff --git a/components/pid/temp_controller_base.py b/components/pid/temp_controller_base.py index 0be2f7f..24daade 100644 --- a/components/pid/temp_controller_base.py +++ b/components/pid/temp_controller_base.py @@ -4,7 +4,14 @@ import enum DEFAULT_THRESHOLDS = { "HoldHeat": 1.0, - "HoldCool": 0.1, + # HoldCool used to be 0.1 ("eagerly give up and coast" made sense back + # when COOL meant nothing more than going idle - it's an active state + # with its own PID now, so a threshold this tight relative to a real + # heater's discrete power steps/sensor noise causes the system to + # chatter in and out of it every tick, resetting both pid_hold's and + # pid_cool's integrators each time and never letting either actually + # converge. Symmetric with the others instead. + "HoldCool": 1.0, "HeatHold": 1.0, "HeatCool": 1.0, "CoolHold": 1.0, diff --git a/config.json.templ b/config.json.templ index 15430d1..8167304 100644 --- a/config.json.templ +++ b/config.json.templ @@ -30,7 +30,7 @@ }, "Thresholds": { "HoldHeat": 1.0, - "HoldCool": 0.1, + "HoldCool": 1.0, "HeatHold": 1.0, "HeatCool": 1.0, "CoolHold": 1.0,