Page 1 of 1
Override Maximum modulation
Posted: Thu Oct 26, 2023 2:49 pm
by Sobbingmagician
Hi all,
Since a couple of months im using the OTGW monitor to understand and to optimise my boiler.
I was playing around with the Max Modulation, trying to set it to 70% (MM=70). I have a Remeha Tzerra (classic/old) and an EvoHome thermostate. As i understand they both support MSG14 / MM setting. Both should be capable of modulating.
In the log I see it tries to change the MM to 70, but somehow immediately overwrites to 0. It used to be 100, but since i tried to change it, it seems stuck at 0.
- Screenshot log.jpg (167.23 KiB) Viewed 2648 times
I do see 70 in the statistics overview, but not in het top quick overview:
- Screenshot statistics.jpg (244.34 KiB) Viewed 2648 times
What am i missing?
Kind regards, Remco
Re: Override Maximum modulation
Posted: Thu Oct 26, 2023 10:12 pm
by hvxl
You have to understand the
meaning of the report prefixes. With that information the 4 reports show the following sequence of messages:
Code: Select all
Thermostat OTGW Boiler
|----- T100E0000 ---->| |
| |----- R900E4600 ---->|
| |<---- B500E4600 -----|
|<---- AD00E0000 -----|
- The thermostat requests a max relative modulation level of 0%.
- The OTGW changes that to 70% before it sends it to the boiler.
- The boiler acknowledges the request for 70% from the OTGW.
- The OTGW acknowledges the request for 0% to the thermostat.
So nothing overwrites it to 0. With the MM=70 command you instructed the OTGW to modify the max relative modulation level to 70%. The log shows that it is doing exactly that.
You mention that "it used to be 100", but that's inaccurate. Thermostats send different values for max relative modulation level at different times, depending on their control algorithm. Most thermostats will only send 100% when they want temperature controlled heating, and 0% otherwise (no heating or capacity controlled heating). The MM command is intended for use in your own control mechanism. Simply setting it to a fixed value is unlikely to produce good results, especially during capacity controlled heating (low load control), which is used when not much energy needs to be pumped into the house. In that situation, the thermostat will normally set max relative modulation to 0% and control setpoint to the max CH water setpoint (49 degrees in your case). It expects that combination of parameters will cause the boiler to run at its minimum capacity. But because you have overridden the max relative modulation, it wil actually run the boiler at quite a high capacity. This will cause overshoot and burn much more gas than desired.
You can return control about the max relative modulation back to the thermostat by running the MM=T command.
There is something wrong with your status summary display. The values shown should always match the value in the matching row of the statistics table, because they both show the value of the same variables. Not only is there a mismatch for max relative modulation, also the return water temperature is different. Do the values in the summary area ever change? Can you try to restart otmonitor? Does that synchronize the two again? What version of otmonitor are you using?
Re: Override Maximum modulation
Posted: Mon Oct 30, 2023 5:27 pm
by Sobbingmagician
Thank you hvxl for your extensive answer. That really helps to understand the data.
I think i misinterpreted Max Modulation. I assumed i could set/limit the maximum capacity of the boiler and that it was a fixed setting, so something like the CH max water setpoint.
I've improved the isolation of my home and expect my 10+ years old boiler is now over-dimensioned. So the idea was to enforce the boiler to operate on 70% of its capacity. I assumed the 'Relative Modulation' was the actual modulation and the 'Max Relative Modulation' was the upper boundary setting for the boiler. I have now reset the Max Modulation using MM=T. The boiler btw still overshoots the 49 degrees by 10-30 but that might be normal behaviour?
The values in the status Summary display seem to be updating, but i have restarted the OT Monitor to see if everything remains in sync. Where can i check the version? In the About Opentherm Monitor is states version 6.4 I've bought the monitor in sept '22 via Nodo and never updated the firmware.
Not sure about the 100%. Maybe it was the frozen Summary display, but since the reset the value is back to 100 in the statistics tab, but still 0 in the Summary. (and as you can see based on the other values, the boiler is idle, so no need for 100%).
- Statistics.jpg (226.81 KiB) Viewed 2550 times
In the graph I see it's been 100% for the last 3 hours (screenshot @16:19h).
- Graph.jpg (211.83 KiB) Viewed 2550 times
Re: Override Maximum modulation
Posted: Mon Oct 30, 2023 8:48 pm
by pbrouwer
I also ran into an issue with setting the max modulation level. Partly this was due to the same interpretation of the messages as Remco.
- modulation_message.png (61.47 KiB) Viewed 2550 times
Unfortunately home-assistant (HA) tends to record two of these messages as coming from the boiler, which should be only the third message (ack from the boiler that the new level = 30% was set). Below the output to Home assistant, visualized in grafana. The HA sensor that is shown is
"sensor.slave_max_relative_modulation_boiler_otgw"
- homeassistant_output.png (14.55 KiB) Viewed 2550 times
However the problem I remain with is that the heatpump (techneco elga) does not abide to the new setting. Relative modulation exceeds 30% when the heatpump is on.
- Relative_modulation.png (47.63 KiB) Viewed 2550 times
Any idea which settings or lack of settings can cause this?
Anyone has had success with controlling the modulation on a heatpump?
Re: Override Maximum modulation
Posted: Tue Oct 31, 2023 1:50 pm
by hvxl
Sobbingmagician wrote: ↑Mon Oct 30, 2023 5:27 pm
I've improved the isolation of my home and expect my 10+ years old boiler is now over-dimensioned. So the idea was to enforce the boiler to operate on 70% of its capacity. I assumed the 'Relative Modulation' was the actual modulation and the 'Max Relative Modulation' was the upper boundary setting for the boiler. I have now reset the Max Modulation using MM=T. The boiler btw still overshoots the 49 degrees by 10-30 but that might be normal behaviour?
The values in the status Summary display seem to be updating, but i have restarted the OT Monitor to see if everything remains in sync. Where can i check the version? In the About Opentherm Monitor is states version 6.4 I've bought the monitor in sept '22 via Nodo and never updated the firmware.
Not sure about the 100%. Maybe it was the frozen Summary display, but since the reset the value is back to 100 in the statistics tab, but still 0 in the Summary. (and as you can see based on the other values, the boiler is idle, so no need for 100%).
In the graph I see it's been 100% for the last 3 hours (screenshot @16:19h).
The Max relative modulation is one of parameters the thermostat uses to control the boiler. It is a dynamic parameter, unlike the Max CH setpoint, for example.
Most boilers nowadays are over-dimensioned. You can check the current maximum capacity via message ID 15, if your boiler supports that. Limiting the maximum capacity of the boiler can usually be done via the control panel. Some boilers may use a less than obvious setting for that, though. With Remeha boilers you tend to have to change the fan speed setting to change the maximum capacity. In the installation manual there are graphs for how the two relate. For the Tzerra M 28c Plus, for example, the maximum capacity is 24kW (4700 rpm), but the factory setting is 20kW (3900 rpm). If you want 70% of the factory setting (14kW), you would set P17 to 28 (2800 rpm).
OTmonitor will request the version of the firmware when it first connects. But if you missed it, you can request it again using the PR=A command.
In your pictures I see 100% for Max relative modulation level both in the statistics tab and the summary area. So that now works correctly. When there is no heating request, the Max relative modulation setting is irrelevant. So 100% is fine.
Re: Override Maximum modulation
Posted: Tue Oct 31, 2023 2:02 pm
by hvxl
pbrouwer wrote: ↑Mon Oct 30, 2023 8:48 pm
Unfortunately home-assistant (HA) tends to record two of these messages as coming from the boiler, which should be only the third message (ack from the boiler that the new level = 30% was set). Below the output to Home assistant, visualized in grafana. The HA sensor that is shown is
"sensor.slave_max_relative_modulation_boiler_otgw"
However the problem I remain with is that the heatpump (techneco elga) does not abide to the new setting. Relative modulation exceeds 30% when the heatpump is on.
I am not familiar with HA, but clearly the OTGW integration has some issues. I also cannot make out the max modulation line in your second graph. So I suggest to take HA out of the equation when investigating. It only complicates things. Just use OTmonitor. It was developed for this purpose. I admit the graphs may not look as fancy. But fancy graphs are for managers. To investigate an issue it's much more important to have accurate data.
Re: Override Maximum modulation
Posted: Tue Oct 31, 2023 6:16 pm
by Sobbingmagician
First of all, you are of course right about the MM is 100 in the summary. So it is in sync
Now knowing the Max Relative Modulation and the Relative Modulation are both dynamic values, it makes me wonder what they are and what the difference is. I've read some OpenTherm documentation, but could not find a clear explanation. Monitoring my MM, it seems to be jumping back and forth from 0 to 100. If you have a useful reference, i'd appreciate it, but I assume these values are okay.
I've found the kW/RPM graphs in the Remeha documentation; thanks to your example, that makes sense now! As i understand the OpenTherm documentation correctly, my current factory setting is 2900 rpm and the minimum modulation is 23% of that factory setting.
- Boiler capacity.png (216 KiB) Viewed 2486 times
The remaining question is, how to change the P17 setting with the OTmonitor app (if possible). I've tried to extract it from otgw.tclcode.com but could not come to a conclusion.
The firmware i'm using is 6.1 and i see 6.5 is available on the website, so i will update to the latest version.
Re: Override Maximum modulation
Posted: Tue Oct 31, 2023 10:48 pm
by hvxl
Max relative modulation (message ID 14) is sent by the thermostat to the boiler, indicating the modulation range the boiler is allowed to use. Relative modulation (message ID 17) is the actual modulation the boiler uses at a certain moment. It should be within the range specified by the thermostat.
Max relative modulation should not be jumping. But it may be changing. I started writing up a story to try and explain it all. It's not finished yet, but you can have a look at the
work in progress. Let me know if there are areas that need more explanation.
Your understanding of the boiler capacity is not entirely accurate. Using RPMs to specify the boiler capacity is a Remeha quirk. The high byte of Message ID 15 is (should be) in kW. So your boiler says it is set to 29kW, which may actually correspond to 5000 RPM. Have a look at your P17 setting. I expect it won't be 29. That you haven't changed it doesn't mean it's the factory setting. The person who installed the boiler may have changed it.
The maximum boiler capacity is normally calculated during installation of the boiler, based on the heat loss from the house at an outside temperature of -10 (or -7) degrees. This is a reasonably fixed number, so there is no need to be able to change it using an opentherm message. Of course, when the insulation of the house is improved, the heat loss decreases and the maximum boiler capacity can be lowered. But this will have to be done via the control panel of the boiler.
Re: Override Maximum modulation
Posted: Wed Nov 01, 2023 7:02 pm
by Sobbingmagician
Interesting, i will look into your work in progress. Thanks for sharing!
Below the graphs for Max Modulation and Modulation. My gas usage is showing my floor heating is constantly using some gas during the day, the MM is most of the time either 0 or 100, the Modulation is almost always 0 (except for DHW in the morning). It seems to be time to invest in a new boiler with a much lower capacity. I will use this winter to further test and investigate and decide next year.
- MM.jpg (60.58 KiB) Viewed 2404 times
I've found the type of my Remeha, it's the Tzerra M 39c Plus CW5. According to the documentation it has a 35,7 kW max capacity, 30 kW factory set. The minimum modulation is 8,5kW which is about 23%, so could explain the '23' part in MsgID=15.
According to the documentation, P17 can only be read/set by special Remeha software (Recom). The Tzerra Plus has no physical buttons or display to read or change settings, so i cannot check the current capacity setting. Too bad it cannot be set via opentherm.
Thank you for your help and answering all my questions!
Re: Override Maximum modulation
Posted: Wed Nov 01, 2023 11:41 pm
by hvxl
According to the manual it can also be read/set using a suitable controller. The equipment matrix reveals that the Tzerra M and the Tzerra Plus both have 45 transparent slave parameters (TSPs). I'm guessing that the Tzerra M Plus will also have 45 TSPs. Those would then be numbered 0 through 44. The list of boiler settings also happens to go up to 44. That would be an amazing coincidence if they are completely unrelated.
So there may be a way to change the setting with the OTGW after all! Let's start with dumping the TSPs to see if they provide a reasonable match with the parameters in the Tzerra manual. You can dump the parameters using the PM=10 command. That will first get the number of TSPs, followed by querying each TSP in turn. After some time, you should have them all in your log.
Re: Override Maximum modulation
Posted: Thu Nov 02, 2023 1:27 pm
by Sobbingmagician
That would be great, i'm very curious if i can further optimise the boiler by lowering the capacity.
The (cleaned up) logging result of PM=10
Code: Select all
10:01:19.093455 Command: PM=10
10:01:19.141427 PM: 10
10:01:30.415700 R000A0000 Read-Data Number of TSPs (MsgID=10): 0
10:01:30.567484 BC00A2D00 Read-Ack Number of TSPs (MsgID=10): 45
10:02:20.644243 R800B0000 Read-Data TSP setting (MsgID=11): 0 0
10:02:20.759024 BE00B0000 Data-Inv TSP setting (MsgID=11): 0 0
10:02:26.059656 R000B0100 Read-Data TSP setting (MsgID=11): 1 0
10:02:26.162692 BC00B0150 Read-Ack TSP setting (MsgID=11): 1 80
10:03:20.618260 R000B0200 Read-Data TSP setting (MsgID=11): 2 0
10:03:20.701979 BC00B023C Read-Ack TSP setting (MsgID=11): 2 60
10:04:24.798466 R800B0300 Read-Data TSP setting (MsgID=11): 3 0
10:04:24.946001 BC00B0301 Read-Ack TSP setting (MsgID=11): 3 1
10:05:25.137329 R000B0400 Read-Data TSP setting (MsgID=11): 4 0
10:05:25.288121 B400B0402 Read-Ack TSP setting (MsgID=11): 4 2
10:06:25.095877 R800B0500 Read-Data TSP setting (MsgID=11): 5 0
10:07:22.373041 R800B0600 Read-Data TSP setting (MsgID=11): 6 0
10:07:22.471960 B400B06FF Read-Ack TSP setting (MsgID=11): 6 255
10:09:27.585351 R800B0900 Read-Data TSP setting (MsgID=11): 9 0
10:09:27.672222 B400B09FF Read-Ack TSP setting (MsgID=11): 9 255
10:10:26.992709 R800B0A00 Read-Data TSP setting (MsgID=11): 10 0
10:10:27.100270 B400B0AFF Read-Ack TSP setting (MsgID=11): 10 255
10:11:24.273782 R000B0B00 Read-Data TSP setting (MsgID=11): 11 0
10:11:24.361616 BC00B0BFF Read-Ack TSP setting (MsgID=11): 11 255
10:12:24.686774 R800B0C00 Read-Data TSP setting (MsgID=11): 12 0
10:12:24.784498 B400B0CFF Read-Ack TSP setting (MsgID=11): 12 255
10:12:38.691033 R000B0D00 Read-Data TSP setting (MsgID=11): 13 0
10:12:38.794170 BC00B0DFF Read-Ack TSP setting (MsgID=11): 13 255
10:13:25.173134 R000B0E00 Read-Data TSP setting (MsgID=11): 14 0
10:13:25.326741 BC00B0EFF Read-Ack TSP setting (MsgID=11): 14 255
10:14:25.869453 B400B0FFF Read-Ack TSP setting (MsgID=11): 15 255
10:15:28.889572 R000B1000 Read-Data TSP setting (MsgID=11): 16 0
10:15:29.013460 BC00B10FF Read-Ack TSP setting (MsgID=11): 16 255
10:16:26.152441 R800B1100 Read-Data TSP setting (MsgID=11): 17 0
10:16:26.258980 B400B113C Read-Ack TSP setting (MsgID=11): 17 60
10:17:26.620277 R800B1200 Read-Data TSP setting (MsgID=11): 18 0
10:17:26.715643 B400B124E Read-Ack TSP setting (MsgID=11): 18 78
10:17:42.831425 R000B1300 Read-Data TSP setting (MsgID=11): 19 0
10:17:42.919202 BC00B130F Read-Ack TSP setting (MsgID=11): 19 15
10:18:31.369423 R800B1400 Read-Data TSP setting (MsgID=11): 20 0
10:18:31.454605 B400B143C Read-Ack TSP setting (MsgID=11): 20 60
10:19:27.511327 R000B1500 Read-Data TSP setting (MsgID=11): 21 0
10:19:27.590739 BC00B151E Read-Ack TSP setting (MsgID=11): 21 30
10:20:27.955718 R000B1600 Read-Data TSP setting (MsgID=11): 22 0
10:20:28.039630 BC00B16FF Read-Ack TSP setting (MsgID=11): 22 255
10:21:28.440570 R800B1700 Read-Data TSP setting (MsgID=11): 23 0
10:22:28.914208 R800B1800 Read-Data TSP setting (MsgID=11): 24 0
10:22:29.010753 BC00B1823 Read-Ack TSP setting (MsgID=11): 24 35
10:22:52.109460 R000B1900 Read-Data TSP setting (MsgID=11): 25 0
10:22:52.227132 BC00B1914 Read-Ack TSP setting (MsgID=11): 25 20
10:23:29.388199 R000B1A00 Read-Data TSP setting (MsgID=11): 26 0
10:23:29.476811 BC00B1A14 Read-Ack TSP setting (MsgID=11): 26 20
10:24:29.850571 R800B1B00 Read-Data TSP setting (MsgID=11): 27 0
10:24:29.994983 BC00B1BF1 Read-Ack TSP setting (MsgID=11): 27 241
10:25:30.333519 R000B1C00 Read-Data TSP setting (MsgID=11): 28 0
10:25:30.438349 BC00B1C03 Read-Ack TSP setting (MsgID=11): 28 3
10:26:30.287401 R800B1D00 Read-Data TSP setting (MsgID=11): 29 0
10:26:30.380810 B400B1D0A Read-Ack TSP setting (MsgID=11): 29 10
10:27:30.798671 R800B1E00 Read-Data TSP setting (MsgID=11): 30 0
10:27:30.923859 B400B1EF6 Read-Ack TSP setting (MsgID=11): 30 246
10:28:34.511557 R000B2000 Read-Data TSP setting (MsgID=11): 32 0
10:28:34.669036 BC00B200F Read-Ack TSP setting (MsgID=11): 32 15
10:30:32.246199 R800B2200 Read-Data TSP setting (MsgID=11): 34 0
10:30:32.362926 B400B2200 Read-Ack TSP setting (MsgID=11): 34 0
10:31:32.751184 R000B2300 Read-Data TSP setting (MsgID=11): 35 0
10:31:32.896853 BC00B2300 Read-Ack TSP setting (MsgID=11): 35 0
I've cut off the logging a little early (patience...
), so my log is missing the last ~10 TSP's, but it includes 17 which could be the setting needed. The numbers seem to match the Remeha documentation, e.g.:
P1 is the CH setting which is by default 80degrees (i've changed it with the OTmonitor to 50, but that seems not reflected in this report)
P2 is the SWW which is 60
P4 is the ECO mode which is by default 2 =depending on regulator (i've changed it with the OTmonitor to 1=ECO, but that seems not reflected in this report)
...
P17 is the capacity, which could be 60 (6000RPM). Does that make sense?
- Capacity.png (96.52 KiB) Viewed 2370 times
M = Maximum, F = Factory setting, R = RPM
Re: Override Maximum modulation
Posted: Thu Nov 02, 2023 2:50 pm
by hvxl
This is an exiting find. There are a few more TSPs missing from your cleaned up log. But those that are there appear to match the documented parameters almost perfectly. The parameters start at 1 and so it makes sense that TSP 0 returns a Data-Invalid response. Undocumented (unused) parameters return 255. The only discrepancy I found was P32. The factory setting is 20, but the TSP reports 15. However, that is still a valid number for that parameter. Perhaps it was changed by the installer. Or maybe it depends on one of the dials on the boiler.
TSP 17 reports 60, which according to the graph should equal 30kW, but MsgID 15 says 29. Maybe that's just a rounding issue. So you can try setting TSP 17 to 50, for example (with command TP=11:17=50) That should then be reflected in MsgID 15 changing to 25 28 or thereabouts. As you indicated you were aiming for 70% of the factory setting, that would correspond to TSP 17 = 42 and MsgID 15 reporting 21 33.
The TP command was added in firmware version 6.2. So be sure to update your 6.1 firmware before trying this.
I would very much like to see a log of you making the change to make sure everything works as I expect. My own boiler has no TSPs, so my implementation of the TP command was purely theoretical. I have not had feedback from anyone using it.
Re: Override Maximum modulation
Posted: Thu Nov 02, 2023 3:47 pm
by Sobbingmagician
It seems to be working!
Code: Select all
13:03:37.208919 PR: A=OpenTherm Gateway 6.5
13:09:34.065110 Command: TP=11:17=50
13:09:34.163882 00000000/00000000,10.00,00000011/00000011,0.00,0.00,0.00,0/0,20.00,0.00,0.00,0.00,0.00,20.00,53.86,0.00,0.00,52.89,0.00,0,60/40,0/0,60.00,TP: 11:17=50
13:11:03.831159 R900B1132 Write-Data TSP setting (MsgID=11): 17 50
13:11:03.968520 B500B1132 Write-Ack TSP setting (MsgID=11): 17 50
13:17:02.453357 T800FFE00 Read-Data Boiler capacity and modulation limits (MsgID=15): 254 0
13:17:02.543165 B400F181C Read-Ack Boiler capacity and modulation limits (MsgID=15): 24 28
If you want to see more logging, let me know!
For completeness purposes, this is the Statistics tab showing both the TSP setting value and the Boiler capacity value:
- Changed boiler capacity.jpg (174.27 KiB) Viewed 2336 times
I shall monitor the impact on my gas usage and add the conclusion in a couple of days.
p.s. The "Boiler capacity and modulation limits (MsgID=15)" was initially not in the Statistics tab, but it suddenly appeared. Is there a command to force add/update this attribute in the Statistics tab, in case it will disappear again in the future?
Re: Override Maximum modulation
Posted: Thu Nov 02, 2023 4:38 pm
by hvxl
Very nice!
Only messages that are exchanged appear in the statistics tab. It seems that your thermostat doesn't normally request MsgID 15, judging by the interval value. But the log shows that it did at 13:17:02 for some reason. Maybe you navigated to a menu that triggered this.
If you want to periodically read some information from the boiler that your thermostat doesn't (usually) request, use the AA command. If you only want to get it once, use the PM command.
Re: Override Maximum modulation
Posted: Tue Nov 21, 2023 9:21 pm
by Sobbingmagician
As promised, an update of my findings on changing the capacity of my Remeha Tzerra Plus boiler.
After lowering to 70% I did not notice much effect, so i further lowered to around 40%. The most noticeable effect is that the modulation (on average) seems a bit higher. I assume that, as the max is lower, the relative modulation is higher.
My house is still warm and comfortable with that 40% capacity limit and 45 degrees max DHW. My conclusion is that i can replace my current 30kW for a smaller (more important; lower minimum modulation, because thats currently 8,5kW) in the future. Maybe even a hybrid or full electric.
Thanks again for your help hvxl, it was a fun and interesting investigation!