Chicco550 Posted November 19, 2024 Posted November 19, 2024 I think my post might be unnecessary since, in my opinion, this is a serious issue with the Shelly app. Is it really not possible to set the thermostat hysteresis below 0.5 degrees? For digital thermostats, the hysteresis is 0.2 degrees, while for analog ones, it’s 0.4. It seems odd to me that Shelly hasn’t addressed this, especially considering that for a radiant floor heating system, a 1-degree difference is quite significant. Particularly since radiant floor heating takes many hours to heat up. Am I missing something? Quote Translate Revert translation? English (American) French German Italian Polish Portuguese (European) Spanish
wooly Posted November 19, 2024 Posted November 19, 2024 you believe too much on apps. 1 Quote Translate Revert translation? English (American) French German Italian Polish Portuguese (European) Spanish
ERR Posted November 21, 2024 Posted November 21, 2024 I have come across the exact same problem. A workaround or some other solution would be very welcome! Quote Translate Revert translation? English (American) French German Italian Polish Portuguese (European) Spanish
Chicco550 Posted November 24, 2024 Author Posted November 24, 2024 I solved it by creating 2 Scenes. One turns on and one turns off. Maybe inconvenient to adjust. But at least I could set the same temperature to turn off and to turn on Quote Translate Revert translation? English (American) French German Italian Polish Portuguese (European) Spanish
Arctic Posted January 18 Posted January 18 Two scenes can do it, but it is not good that Shelly restricts the thermostat like that. Not everyone is starting and stopping heatpumps etc. for me it’s just a underfloor heating circulation pump and a hysteresis of 0 would be fine. Quote Translate Revert translation? English (American) French German Italian Polish Portuguese (European) Spanish
Stelvio Rosset Posted March 30 Posted March 30 Hi, I would like to get back on that as I fully support the hysteresis of min 0.5 in the Thermostat makes no sense for some systems. I post below some picture of the BLU H&T temperature sensor wave controlling connected to the thermostat for a floor electric heating. The variance is too big, the set temperature is 15C, and the over/under shooting is reaching 16C max and 14.5C min. I would keep asking Shelly to allow even a 0C or 0.1C hysteresis to allow using the ON/OFF thermostat in high inertia heating systems. Actually I send a proposal request to Shelly to implement a simple PID control with advance parameter on Kp, Ki, Kd and PWM period, giving to the advance user the possibility to tune the PID base on its own system. I feel this would be beneficial for many of us. Stelvio Quote Translate Revert translation? English (American) French German Italian Polish Portuguese (European) Spanish
arisoft Posted March 30 Posted March 30 (edited) 10 minutes ago, Stelvio Rosset said: Actually I send a proposal request to Shelly to implement a simple PID control with advance parameter on Kp, Ki, Kd and PWM period, giving to the advance user the possibility to tune the PID base on its own system. I feel this would be beneficial for many of us. What prevents you to add PID-controller in your Shelly? It is availabe for any Pro and Gen3 devices. Edited March 30 by arisoft Quote Translate Revert translation? English (American) French German Italian Polish Portuguese (European) Spanish
If_then_else Posted March 30 Posted March 30 2 hours ago, arisoft said: What prevents you to add PID-controller in your Shelly? It is availabe for any Pro and Gen3 devices. Can you provide the script for the Shelly PID controller? I'd like to compare it with my PID script solution. Quote Translate Revert translation? English (American) French German Italian Polish Portuguese (European) Spanish
Stelvio Rosset Posted March 30 Posted March 30 Hi, guessing a PID controller would be interesting for a number of people, would be possible to create a Project or a specific group discussion for that? At least some guidelines, scripts, etc.. Quote Translate Revert translation? English (American) French German Italian Polish Portuguese (European) Spanish
arisoft Posted March 30 Posted March 30 (edited) 3 hours ago, If_then_else said: Can you provide the script for the Shelly PID controller? The PID-controller script that I am using, is a piece of larger control script for a heating mixer. The PID controller part is about a dozen code lines. The same you can get from Wikipedia: https://en.wikipedia.org/wiki/Proportional–integral–derivative_controller#Pseudocode 2 hours ago, Stelvio Rosset said: would be possible to create a Project or a specific group discussion for that? I guess it is possible. Meanwhile, we can discuss it here under "thermostat and hysteresis"´. Most questions are answered in the Wikipedia article I linked. The rest is hard work as @If_then_else just presented. It is good to understand that the controller is basically very simple but adjusting it for optimal results is a time consuming project. Edited March 30 by arisoft 1 Quote Translate Revert translation? English (American) French German Italian Polish Portuguese (European) Spanish
tvbshelly Posted March 30 Posted March 30 45 minutes ago, arisoft said: The PID controller part is about a dozen code lines What's stopping you from posting it here? The Wiki article only contains pseudo code, your code would be real Shelly script code and would help many here 😉 1 Quote Translate Revert translation? English (American) French German Italian Polish Portuguese (European) Spanish
arisoft Posted March 30 Posted March 30 9 minutes ago, tvbshelly said: The Wiki article only contains pseudo code, your code would be real Shelly script code and would help many here 😉 I don't think so. It is made for a single purpose. ChatGPT will give you a script if you want to translate the pseudo code to javascipt 😆 1 Quote Translate Revert translation? English (American) French German Italian Polish Portuguese (European) Spanish
tvbshelly Posted March 30 Posted March 30 Why should I ask ChatGPT? You said you already have code ... I don't understand why you're making such a big deal about posting this 🤷♂️ 1 Quote Translate Revert translation? English (American) French German Italian Polish Portuguese (European) Spanish
arisoft Posted March 30 Posted March 30 By the way. A P-controller (Means PID without I and D) should be good enough for many cases. For example, floor heating. Run the script, for exampe, once in an hour and depending on the outside temperature put the heating on for X seconds. The formula for X is (target_inside_temperature - outside_temperature) * coeffient, where the coeffient is a constant value you need to find by trial and error. Quote Translate Revert translation? English (American) French German Italian Polish Portuguese (European) Spanish
Stelvio Rosset Posted March 30 Posted March 30 Hi, as high level concept I do not disagree with you, losing sure the advantage of Ki and Kd in terms of speed and prediction. On your consideration of the external temperature, I feel the controller, even when proportional, should always calculate (current_temperature- set_temperature) * Kp, where Kp depends on the external temperature (in our region for example in winter we can have -30C, and in spring / autumn 0-10C range, and this impact on the system inertia). What I am interesting to hear is for example: 1) Temperature sample time (every how many minutes to get the current temperature); 2) Calculation time (this is the speed of our system, every how many minutes to recalculate the formula Kp * (current_temperature- set_temperature) 3) PWM period (important to preserve the reliability of relay, having max 100K cycles guarantee) On the other hand I understood you have already a script to share, and maybe you have already the answers to all the above consideration. I am happy to hear and learn as I am looking for a good solution. Quote Translate Revert translation? English (American) French German Italian Polish Portuguese (European) Spanish
arisoft Posted March 30 Posted March 30 (edited) 1 hour ago, Stelvio Rosset said: I feel the controller, even when proportional, should always calculate (current_temperature- set_temperature) * Kp, where Kp depends on the external temperature It is the defacto way to measure outside temperature because it is the primary cause for heating. If you have only room temperature sensor then you need at least PI controller. It will keep the average temperature as targeted. D coeffient is the hardest to adjust correctly. I tends to cause oscillation. Similar as a thermostat with hysteresis. 1 hour ago, Stelvio Rosset said: 1) Temperature sample time (every how many minutes to get the current temperature); My PID solution samples at every 5 seconds. The time delay from adjustment to visible change is about 60 seconds. If you are heating floor, there is no change in several minutes. Once per hour may work properly. I guess that there is no "optimum". 1 hour ago, Stelvio Rosset said: 2) Calculation time (this is the speed of our system, every how many minutes to recalculate the formula Kp * (current_temperature- set_temperature) Usually calculation happens in every cycle. When heating a floor, it is not practical to heat few seconds and then wait few seconds. At least few minutes per cycle. Depending on the control element, mechanic relay or solid state relay are different things in this case. 1 hour ago, Stelvio Rosset said: 3) PWM period (important to preserve the reliability of relay, having max 100K cycles guarantee) My boiler works with 15 min periods using P-type control approach. This is due to measuring period of electricity and used for balansing. Mechanical relay in use. 1 hour ago, Stelvio Rosset said: On the other hand I understood you have already a script to share No, I don't have a script to share. Unless your application is suitable for it. Are you controlling a mixer in a hydraulic central heating with a two way motor actuator? Edited March 30 by arisoft Quote Translate Revert translation? English (American) French German Italian Polish Portuguese (European) Spanish
Stelvio Rosset Posted March 30 Posted March 30 Hi, you are right, I do not have the same system to control, and I respect the fact you share or not any script, I am ok with that. 10 / 15 mins is the PWM period time I had in mind as well, I am with you. So, every PWM cycle (10/15 mins) you calculate the (current_t - set_t) * P and lunch the PWM with re-tuned duty cycle. I guess you make the recalculation (and re-tune the PWM) also in case the use change the set_t. What is a bit unclear to me is how you recalibrate the parameter based on the external temperature (yes, I have a BLU HT also outside), I though depending to the external temperature you would change the P (because the inertia of the system change) or? Thanks for your sharing. Quote Translate Revert translation? English (American) French German Italian Polish Portuguese (European) Spanish
arisoft Posted March 30 Posted March 30 (edited) 13 minutes ago, Stelvio Rosset said: So, every PWM cycle (10/15 mins) you calculate the (current_t - set_t) * P and lunch the PWM with re-tuned duty cycle. I guess you make the recalculation (and re-tune the PWM) also in case the use change the set_t. In many cases, the PWM cycle can be, for example, 10 minutes. If you need 50% power, then it is 300 seconds on from 600 available seconds in 10 minutes period. This goes with one command in Shelly relay and do not melt relays. With a solid state relay you could use much sorter period, for example, one minute. Then 50% would be only 30 seconds on in 60 available seconds in one minute. Edited March 30 by arisoft Quote Translate Revert translation? English (American) French German Italian Polish Portuguese (European) Spanish
arisoft Posted March 30 Posted March 30 (edited) 14 minutes ago, Stelvio Rosset said: What is a bit unclear to me is how you recalibrate the parameter based on the external temperature (yes, I have a BLU HT also outside), I though depending to the external temperature you would change the P (because the inertia of the system change) or? Thanks for your sharing. It can be done only by trial and error. The coeffient is related to the k-value of the building. If you know the k-value then, in theory, you could calculate the coeffient needed if you know the power of the heater. https://en.wikipedia.org/wiki/Thermal_conductivity_and_resistivity It is also possible to add room temperature error component to this formula for fine tuning. Edited March 30 by arisoft Quote Translate Revert translation? English (American) French German Italian Polish Portuguese (European) Spanish
Stelvio Rosset Posted March 30 Posted March 30 OK, thanks for now. I will reflect a bit a check the interesting wikipedia link you indicated. Quote Translate Revert translation? English (American) French German Italian Polish Portuguese (European) Spanish
arisoft Posted March 30 Posted March 30 8 minutes ago, Stelvio Rosset said: OK, thanks for now. I will reflect a bit a check the interesting wikipedia link you indicated. Here is a better link because I found that k-value has been replaced with u-value for buildings. https://en.wikipedia.org/wiki/Thermal_transmittance Quote Translate Revert translation? English (American) French German Italian Polish Portuguese (European) Spanish
Javier Arboleda Posted April 12 Posted April 12 On 11/19/2024 at 11:53 AM, Chicco550 said: I think my post might be unnecessary since, in my opinion, this is a serious issue with the Shelly app. Is it really not possible to set the thermostat hysteresis below 0.5 degrees? For digital thermostats, the hysteresis is 0.2 degrees, while for analog ones, it’s 0.4. It seems odd to me that Shelly hasn’t addressed this, especially considering that for a radiant floor heating system, a 1-degree difference is quite significant. Particularly since radiant floor heating takes many hours to heat up. Am I missing something? I found an easy shortcut to improve hysteresis and get smaller steps on temp setting. I adjusted thermostats to Farenheit. As app allows 0.5 degree hysteresis for both C or F degrees, when using F minimum hysteresis of 0.5F becomes equivalent to 0.28C. Similarly, for temp setting minimum step of 1F equals 0.55 C. Hope this is helpful. Javier Arboleda Madrid, Spain Quote Translate Revert translation? English (American) French German Italian Polish Portuguese (European) Spanish
prpr Posted April 13 Posted April 13 Shelly really needs to get rid of all these ridiculous artificial arbitrary limits across their various pieces of kit and software. 3 Quote Translate Revert translation? English (American) French German Italian Polish Portuguese (European) Spanish
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.