Replies: 13 comments 35 replies
-
Beta Was this translation helpful? Give feedback.
-
Very interesting. At a first glance it looks not so bad but I will do a more close look this week and post my curves. Thank you for this |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
The current algorithm is the following:
The other thing is that the offset_ext is calculated as target_temp - external_temp. This seems somehow weird. Each time you change the targe_temp, this will generate a pick of regulation. Moreover, in your case to have something stable and depending mostly on external_temp you need to:
I would like to test these hypothesis if you agree. Should I publish a new pre-version or are you able to change the source code directly ? You just need to see the source code in your /config/custom_components/versatile_thermostat/pi_algorithm.py. I can send you an updated source file to replace the one you have. |
Beta Was this translation helpful? Give feedback.
-
I don't think any algorithm should suppose anything. Speaking in general, there are various things that can cause a difference between target temperature and room temperature (in both directions): Permanent effects:
Medium term effects:
Short term effects:
For the permanent and medium term effects some TRVs provide a configurable offset, e.g.: https://www.evehome.com/en/blog/eve-thermo-temperatur-offset (unfortunately this offset is only configurable when the device joins a non-Apple thread network). If VTherm had a static offset instead of an algo, here's how I would configure it at the moment:
With the parameters you provided the (internal) offset will always be in the range of -0,5 to +0,5°C due to being capped and the (external) offset will in winter be in the range of +0,5° to +1,5. The sum therefor can never be below 0°C in winter and is 2°C at max. But my issue with heating isn't that it's too hot in most rooms, not too cold. I'd need a negative offset in most rooms in spring and autumn. The current parameters make a negative offset mathematically possible. |
Beta Was this translation helpful? Give feedback.
-
ok. I haven't that in mind. I wonder why you said EVE are doing a good job, if there are often too hot. I think this is root cause of the misunderstanding. I always suppose that you EVE TRV was working quite fine and just need a small adjustement. That's why internal offset should be always low for me. Ok, you can have a try with your configuration to see if it resolves your case. This is an interesting set of configuration. I have doubt about this parameter: |
Beta Was this translation helpful? Give feedback.
-
Sorry, that was a misunderstanding. My Eve Thermo are doing a great job at short term regulation (5-30 minutes). But three issues remain with them:
The second and third issues are only noticeable with a room thermometer. The internal TRV thermometer itself cannot sense the heat at the other side of the room. And to solve the first issue a completely static offset is fine (and provided by some TRVs, unfortunately not in Home Assistant).
Yes, thanks. In the past decades I worked on a couple of projects (mostly Ruby, Java, Lua), just not in the past 5 years. And I am not familiar with Python and also not with git, other than simple commits. So for now I might just send you a .py file instead of creating a PR. |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
@jmcollin78 Is By the way, the cycle duration does not show in developer tools state inspector. That is strange, isn't it? |
Beta Was this translation helpful? Give feedback.
-
@jmcollin78 This is what I'm currently using. It's simple and doesn't even consider the outdoor temperature yet (because it might not even be necessary), it's missing all configuration options, it's just a quick hack for myself. It's just for your information what I'm currently considering. I'll show you the generated graphs in a day. Or in case you find the reason for the too many calls of |
Beta Was this translation helpful? Give feedback.
-
@jmcollin78 A quick update: I've been running the 4-timeframe-EMA as replacement for the PI algo. It has some pros and cons, but for a real verdict I need to wait for the outdoor temperature to drop (current highs are in the 12-16°C range) and also for the fix for the too frequent calls to But what I realised is that with TRVs we have two temperatures available, the "internal" at the TRV itself and the room temperature. And the TRV decides the valve opening percentage based on the difference of measured room temperature and target temperature. So when we want to influence the valve opening indirectly, it might be smart to set the target temperature in relation to the TRV-measured temperature ("Is it too cold in the room? Set the target temperature to 1°C more than measured at the TRV"). But I'll have to think about that. So I'm not "done" yet and will get back to you with an update in the next days/weeks, depending on outdoor temperature and the fix for #164 . |
Beta Was this translation helpful? Give feedback.
-
Lets see if we can fine-tune the algorithm introduced in 3.8.0 which can self-regulate the target temperature based on the room temperature. Please post your graphs.
Here are my experiences with a "light" regulation, a 30min cycle, an outdoor temperature of 8-10°C in the past 6 hours and a central gas heater heating 12 radiators with Eve Thermo TRVs. I also use all three presets (boost in the early morning, comfort during the day, eco at night – and the opposite in the bedroom) and a lower temperature for all three presets when noone is at home:
Kitchen:
Here the algo overshoots at 6:00-6:30. The room temperature was already rising, but the offset of the self-regulated was increased to +1,5°C. When at 7:00 the preset switched from boost to comfort, the room temperature was still rising, as the radiators were very warm. In this case it would have been better if the algo would have reduced the offset as soon as the room temperature was rising and was less than 0,5°C below the target temperature.
Bedroom:
Another example of overshooting. At 2:00 the room temperature is only 0,1-0,2°C below the target temperature, but the algo increases the offset (regulated temperature) by 0,5° at 2:30, causing the room temperature to rise more than necessary.
Bathroom:
The radiator in this room is too small for the room. Also it's only warm close to the radiator, but much cooler in the rest of the room. Unfortunately the TRV keeps the valve at 60-80% when the difference between target temp and measured temp at the valve itself is small. What would help is if the TRV would open the valve more, meaning I would need a rather static offset of ~2°C that's permanently added to the target temperature.
By the way, I believe that the algo should penalise too high temperatures. With the gas prices for heating being at 2-3x the multi-year level in Europe, the goal should be to not overheat any room.
In my case my TRVs are doing a pretty good job, if only I could tell them which more-or-less-static calibration offset they should use. I don't want to outsmart my TRVs. Maybe I should increase the minimum cycle duration from 30 minutes to 24 hours so VTherm can calculate a long term offset? The downside is that with a rapid weather change of 10°C in either direction all my rooms will be too hot or cold for a day or two with such a long cycle.
My current suggestion for a calibration offset of the TRVs is in pseudo-code:
And most likely the currently used algorithm can be used to optimise the above suggestion.
I'm looking forward to your experiences and thoughs!
Beta Was this translation helpful? Give feedback.
All reactions