docs: check off set_model_power gap in PID design backlog

Already fixed in 2f2067d (no-op stub on TempControllerBase, 2026-06-25)
but the TODO entry was never marked done.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01F4oEE99rkKVU8L8tkzXWdG
This commit is contained in:
2026-07-11 12:17:13 +02:00
co-authored by Claude Sonnet 5
parent 1cd2f64b43
commit c60fdff74d
+10 -10
View File
@@ -44,16 +44,16 @@ git history for `temp_controller.py`/`temp_controller_smith.py`).
the two-model Smith correction itself still have no dedicated the two-model Smith correction itself still have no dedicated
coverage. This drives a physical heater — worth extending. coverage. This drives a physical heater — worth extending.
- [ ] **`set_model_power` isn't defined on every controller, but - [x] **`set_model_power` isn't defined on every controller, but
`brewpi.py` wires it unconditionally.** `brewpi.py` always does `brewpi.py` wires it unconditionally.** Fixed: `TempControllerBase`
`heater.set_on_changed("power_set", tc.set_model_power)` regardless now has a no-op `set_model_power`/`set_ambient_temperature`/
of `Controller.pid_type`. Only `temp_controller_smith.py` (the Smith `set_model_plant_params` (`temp_controller_base.py:83-90`), so
predictor) defines `set_model_power`; `temp_controller.py` (`"Normal"`) `brewpi.py`'s unconditional `heater.set_on_changed("power_set",
does not, so starting the server with `"pid_type": "Normal"` crashes tc.set_model_power)` no longer crashes for `"pid_type": "Normal"` -
at wiring time with `AttributeError: 'TempController' object has no `temp_controller_smith.py` still overrides `set_model_power` to
attribute 'set_model_power'`. Either add a no-op `set_model_power` to actually feed its internal model. The redundant `hasattr()` guards
`TempControllerBase`, or only wire it when the configured controller at both call sites (`brewpi.py`, `components/sud_forecast.py`) were
actually exposes a model to feed. removed along with it.
- [ ] **Config access is unchecked `dict[key]` everywhere.** - [ ] **Config access is unchecked `dict[key]` everywhere.**
`params['Hold']`, `params['Td']`, etc., throughout, with no schema `params['Hold']`, `params['Td']`, etc., throughout, with no schema