Comments (10)
Hello, please test the v2022.1.0 that includes optional settings to force PID off mode while in boost preset and define different on/off cycle durations for PID off mode.
from hasmartthermostat.
Hello, I don't understand how a lower cycle duration would help reducing the overshoot while in PID Off mode, as the heater will remain on till the measured temperature exceeds the set point + hot tolerance.
With PID set to off, there is no modulation at all.
Could you please show an example of the behaviors with the three modes (generic/10s, PID/15mn, PID off/15mn) ?
Thanks
from hasmartthermostat.
👋 Hi! Even though the target temperature reaches actual temperature + 0.1 degrees (hot/cold tolerance) , the heater wil not turn off until min_cycle_duration is reached. One scenario would be this:
So it runs the entire cycle of 15 minutes even though I don't want it to.
The generic_thermostat with min_cycle_duration of 10 seconds would turn it off 10 seconds after actual temp > target temp + tolerance.
from hasmartthermostat.
OK, understand.
But the goal of the min_cycle_duration is to:
- Protect the boiler, avoiding short cycles than can damage the injection and ignition system
- Ensure good efficiency of the boiler as it may require several minutes to produce some heat.
So, reducing the delay to 10 seconds, these two objectives won't be met.
If your heating system is fast enough, you should reduce the min_cycle_duration but keep it for all conditions.
from hasmartthermostat.
I've been using generic_thermostat for 2 years now and it's been working great with these settings with almost no overshoots, the downside being however, that I had to manually adjust it to low power to slow it down for mild winters, 10 seconds min_cycle_durations being ideal (radiators still gowing to 40 °C even at minimum power). Now, I can increase the power so it reaches the target temperature faster in certain conditions, having PID slowing it down before reaching the target temp and 15 mis cycle is almost perfect (I still need to tinker a bit with the PID).
However, there are several scenarios in which I would like to use the "PID off" with schedules and automations (eg when it's not so cold outside, or when the boiler is preparing hot water etc - I'd rather not go into much details) but the 15 min cycle is really a problem for me in these cases and distinct cycles for both PID modes would help very much in automating the system for both very cold and mild winters.
Anyway, I know that there are other important things that need time and work but maybe you would consider this. Thanks again for everything.
from hasmartthermostat.
But 10 seconds is very short, it may damage your boiler. How long does it take for your heating system in PID off mode for the temperature to start to rise after the heater is switched on at 100% ? If it's fast like 5 minutes you may set the minimum duration to this, it should have limited impact on the PID, as the integral will in the end force a minimum heating duration.
from hasmartthermostat.
We could stretch this discussion forever, so, disregarding all actual scenarios and parameter values, the component would greatly benefit from adding this to its already great flexibility and versatility. The more usage scenarios it can cover, the better. The component has tremendous potential of helping users get the most out of their setups. More features and settings are always better than less. I would like to pitch more ideas and proposals, if that's ok with you. Thanks again!
from hasmartthermostat.
I'm OK with new ideas, I'm discussing about it to be sure to understand the purpose of the request. Regarding this one, setting short min cycle duration for PID off seems to be the opposite of what should be done, IMHO.
When considering PID, higher switching frequency (shorter PWM period) and wider modulation range (capability to make very short to very long ON pulses, reaching 0% and 100%) give better control accuracy. The PID will look at the temperature variation, will compute a ON time and a OFF time, and finally switch ON and OFF the heater accordingly even if temperature didn't move in between. That's PID regulation.
But short ON pulses may not be compatible with all heating systems: if PID says 1 minute ON but boiler needs 5 minutes for the water to be hot in the pipes, the boiler will run for nothing. That's the purpose of adding the min_cycle_duration, but it will degrade the performance of the PID by limiting the modulation range (the minimum ON pulse width may be clamped to 5%, 10% or 30% depending on min cycle duration and PWM period, and the maximum ON pulse width would be 95%, 90% or 70%).
When in PID OFF mode, the min_cycle_duration should normally be useless, as the heater will remain ON until the temperature reaches the target + tolerance, so the boiler will have time to warm up the water, as the thermostat won't see the temperature increase if the water remains cold.
As far as I understand your request, you rather need a way to force the heater ON or OFF manually or by an automation without respecting the min cycle duration. Am I wrong ?
This could be done by a service, using the internal force_on and force_off variables.
from hasmartthermostat.
I appreciate the info and I totally agree and understand! PID is a totally different beast and that in PID OFF mode, the min_cycle_duration should normally be useless, however, even though the "pid_mode" is set to off, the heater actually won't turn off unless the actual "on time" is at least equal to the min_cycle_duration (I believe this is why), thus causing unwanted "on" time and temperature overshoots in specific situations. That's why the "generic_thermostat" had it set to 10 seconds. I don't want to force anything on or off manually. The comment and graph I posted earlier generically illustrates the situation. I'm sorry I don't have any graphs of my old "generic_thermostat" data to better illustrate the situation.
So, actually, what I would like, if it's possible, is to be able to set an extra parameter in the config (something like "pid_off_min_cycle_duration") to be used instead of the "min_cycle_duration" only if "pid_mode" is off. The feature request would be better described simply as being able to set in the config a different min_cycle_duration parameter for when "pid_mode" is off.
The logic would be something like:
if "pid_mode=auto" then cycle_on_parameter=min_cycle_duration
else
if "pid_mode = off" then cycle_parameter=pid_off_min_cycle_duration
Thanks again.
from hasmartthermostat.
Thanks so much!
Boost PID off is a great feature. 👍🏻
from hasmartthermostat.
Related Issues (20)
- Integral spike after thermostat being disabled for a while HOT 1
- KD spiking due to erratic temperature sensors
- Boost mode enhancement
- Compensate for other heat sources (instantly, without integral resettling) HOT 2
- Thermostat resetting to minimum value
- Cant update PID values HOT 5
- Restart autotune.
- pid_p pid_d HOT 3
- Handling of heater control device connectivity issues - Heater controller stays on HOT 2
- Strange behavior with 2024.1 ha HOT 2
- Keep_alive not working HOT 2
- Parameters cannot be changed retrospectively (away_temp, sleep_temp; home_temp; eco_Themp) HOT 5
- HA 2024.2 log warning HOT 1
- If 'ke' is in use make it possible to let 'i'<0 HOT 2
- All entities are unavailable after update HOT 4
- pwm timeout boiler run
- Feature request - Multiple heater entities HOT 2
- specific configuration seems to be ignored HOT 2
- thermostat in off mode still controlls devices HOT 1
- Deprecation warning HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hasmartthermostat.