esphome / esphome/feature-requests

Add option to stop the integral term from updating when the climate is set to OFF

Open
#1,615 4 comments 2 reactions 0 assignees View on GitHub
component: pid
Dominant language
No language data
Stars
450
Forks
29
PR merge metrics
No merged PRs in 30d

Description

**Describe the problem you have/What new integration you would like**
Actually, the integral term continues to evaluate even if the thermostat is OFF.
This will make the integral to saturate at `min_integral` or `max_integral`.
For a very slow system, it can take a while (10-12h) for the integral to find it's balance point.
I would see a new optional configuration variable like `keep_integral_when_off: true` (or something similar) so it's not a breaking change.

**Please describe your use case for this integration and alternatives you've tried:**
I am using the PID for a radiant heating floor which has a very long time constant. To meet my electricity provider's need, I lower my consuption at peak hours by putting the thermostat to OFF. When the peak period is over, I set it back to heat. At that point, the integral term is very high so it the temperature overshoots a good amount instead of just starting back from where it was and adjust as needed.

**Additional context**
Somewhat similar to https://github.com/esphome/feature-requests/issues/945

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by locating the PID climate integration and the code path that updates the integral term while the thermostat is OFF. Check how climate configuration options are declared, then verify that the new option preserves the integral during OFF periods without changing the default behavior and that heating resumes from the expected integral value.

Written by the indexing model from the issue text.

Assessment

Domain
embedded-iot
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.