ebusd-configuration icon indicating copy to clipboard operation
ebusd-configuration copied to clipboard

Vaillant 'ecoTec pro' current heating power

Open Erbit opened this issue 7 years ago • 46 comments

The problem has already been discussed but the topic was closed a year ago probably without a solution -> https://github.com/john30/ebusd-configuration/issues/36

I can't read the PartloadHwcKW registry and many others.

/usr/bin/ebusctl read -s 10 -c bai PartloadHwcKW
ERR: invalid position in decode

I have configuration files in the "ebusd-2.1.x/en/" version.

/usr/bin/ebusctl info
version: ebusd 3.0pre.bbc4d04
signal: acquired
symbol rate: 61
max symbol rate: 129
min arbitration micros: 723
max arbitration micros: 908
min symbol latency: 5
max symbol latency: 12
reconnects: 0
masters: 3
messages: 455
conditional: 3
poll: 0
update: 11
address 03: master #11
address 08: slave #11, scanned "MF=Vaillant;ID=BAI00;SW=0604;HW=5502", loaded "vaillant/bai.308523.inc", "vaillant/08.bai.csv"
address 10: master #2
address 15: slave #2, scanned "MF=Vaillant;ID=47000;SW=0420;HW=1403", loaded "vaillant/15.470.csv"
address 31: master #8, ebusd
address 36: slave #8, ebusd

What can I do to read this and other registers?

Erbit avatar Jan 07 '18 13:01 Erbit

@Erbit my solution is to read ModulationTempDesired which is % of maximum heating power and multiply by known maximum heating power (14.4kW in my case). The value is valid with regards to heating when heating circuit vent is active, which is Status01=2

andig avatar Jan 07 '18 16:01 andig

@andig Thank you. I solve it the same way. Registers that I do not read are more, this one is just an example. I've read your posts, I know you have a similar problem. If I knew how to help, I would read these registers and send them to John.

Sorry for my English.

Erbit avatar Jan 07 '18 17:01 Erbit

@andig

Full success ! ! !

I changed the original line from the bai.308523.inc file to the line from the bai.0010015600.inc file. Line content: r;wi,,PartloadHcKW,d.00 Heizungsteillast,,,,"6C00",,,power,,,Heizungsteillast

After restarting ebusd, I have this effect;)

/usr/bin/ebusctl read -c bai PartloadHcKW
19

This is the correct value. I'm going to look for the other 26 registers. I will start with the file bai.0010015600.inc

Erbit avatar Jan 07 '18 20:01 Erbit

Interesting, will test this. What‘s your exact ecotec plus model?

Viele Grüße, Andreas

Am 07.01.2018 um 21:07 schrieb Erbit [email protected]:

@andig

Full success ! ! !

I changed the original line from the bai.308523.inc file to the line from the bai.0010015600.inc file. Line content: r;wi,,PartloadHcKW,d.00 Heizungsteillast,,,,"6C00",,,power,,,Heizungsteillast

After restarting ebusd, I have this effect;) ` /usr/bin/ebusctl read -c bai PartloadHcKW

19 ` This is the correct value. I'm going to look for the other 26 registers. I will start with the file bai.0010015600.inc

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

andig avatar Jan 07 '18 21:01 andig

I was wrong. It should be ecoTEC pro model VCW PL 226 / 5-3, catalog number 0010011710. Other registers from this file do not match but I will look in other files.

Regards Robert

Erbit avatar Jan 07 '18 21:01 Erbit

@Erbit did you find any other matching registers that I should try, too?

andig avatar Mar 07 '18 10:03 andig

I checked everything. I have found nothing more.

Erbit avatar Mar 07 '18 16:03 Erbit

@john30 for my ecoTECplus I can confirm @Erbit s finding:

address 08: slave #11, scanned "MF=Vaillant;ID=BAI00;SW=0609;HW=5502", loaded "vaillant/bai.308523.inc", "vaillant/08.bai.csv"

redefining PartloadHcKW

#r;wi,,PartloadHcKW,d.00 Heizungsteillast,,,,"0704",,,power,,,Heizungsteillast
r;wi,,PartloadHcKW,d.00 Heizungsteillast,,,,"6C00",,,power,,,Heizungsteillast

gives the correct result:

pi@ebus2:~ $ ebusctl r -V PartloadHcKW
bai PartloadHcKW power=10 kW [Heizungsteillast]

It seems this is true for HW=5502 devices. Would it be possible to develop a small .inc file that only redefines this single message instead of repeating everything else in the fallback?

I've also noticed that

[PROD='0010004276';'0010004277';'0010004279';'0010004280';'0010004281';'0010004282';'0010004283';'0010004285';'0010004286';'0010004288';'0010004289';'0010004290';'0010004291';'0010004292';'0010004336';'0010004337';'0010004338';'0010004339';'0010004340';'0010005466';'0010005467';'0010005468';'0010005469';'0010010392';'0010010393';'0010010394';'0010010400';'0020051714';'0020051715';'0020051716';'0020051717';'174']!load,bai.308523.inc,,,
[HW=7401]!load,bai.308523.inc,,,
!load,bai.308523.inc,,,

Seems redudant as in the end the fallback is always loaded if nothing else matches. Could these additional PROD and HW defines be removed?

@Erbit I've not found a suitable define for PartloadHwcKW- did you find anything?

andig avatar Mar 11 '18 17:03 andig

I have not found.

Erbit avatar Mar 11 '18 19:03 Erbit

@andig the fallbacks are there in order to document which product IDs are assigned to which file, so I'd rather keep them. overriding another definition is not possible, so this is no option.

john30 avatar Mar 14 '18 06:03 john30

Also worka on VC 256/5-7 ecotec exclusive

mozzarelka avatar Mar 22 '18 07:03 mozzarelka

@mozzarelka could you post your scan results? Is my assumption correct that this works specifically for HW=5502 devices?

andig avatar Mar 22 '18 08:03 andig

overriding another definition is not possible, so this is no option.

@john30 that means whenever there is a hw-specific csv improvement like in this case the entire bai file need be replicated and only smaller parts adjusted. If future improvements to the generic/fallback bai csv are made these would need to be carries over to all cloned files for maximum functionality.

This sounds prone to errors. Would it make sense to add an "override" capability to csv definitions as enhancement to change only specific message definitions? I'm thinking of something like:

# type (r[1-9];w;u),circuit,name,[comment],[QQ]
#,BAI00,generic file for all BAI types,,
*[PROD],scan,id,,product
*[HW],scan,,,HW
...
[HW=8701]!load,bai.0020066007.inc,,,
[HW=7401]!load,bai.308523.inc,,,
!load,bai.308523.inc,,,
[HW=5502]!load,bai.5502.inc,,,
!include,hcmode.inc,,,

or

# type (r[1-9];w;u),circuit,name,[comment],[QQ]
#,BAI00,generic file for 5502 BAI types,,
*[PROD],scan,id,,product
*[HW],scan,,,HW
!load,bai.308523.inc,,,
#r;wi,,PartloadHcKW,d.00 Heizungsteillast,,,,"0704",,,power,,,Heizungsteillast
r;wi,,PartloadHcKW,d.00 Heizungsteillast,,,,"6C00",,,power,,,Heizungsteillast

andig avatar Mar 22 '18 09:03 andig

@andig Got different HW But for me it shows maximum power for heating, not current power. I can see different modulation values but PartloadHcKw shows only one.


 scan result                                       
08;Vaillant;BAI00;0603;9102;21;17;34;0010018461;0001;005061;N0               
15;Vaillant;B7V00;0422;5503;21;17;25;0020197207;0082;007449;N4               
                                                
pi@raspberrypi:~ $ ebusctl info                                              
version: ebusd 3.0pre.bbc4d04                                                
update check: version 3.1 available, broadcast.csv: different version availab
le, memory.csv: different version available, vaillant/bai.308523.inc: differe
nt version available, vaillant/broadcast.csv: different version available, va
illant/errors.inc: different version available, vaillant/general.csv: differe
nt version availa                                                            
signal: acquired                                                             
symbol rate: 24                                                              
max symbol rate: 151                                                         
min arbitration micros: 23                                                   
max arbitration micros: 389                                                  
min symbol latency: 4                                                        
max symbol latency: 37                                                       
reconnects: 0                                                                
masters: 3                                                                   
messages: 555                                                                
conditional: 3                                                               
poll: 0                                                                      
update: 9                                                                    
address 03: master #11                                                       
address 08: slave #11, scanned "MF=Vaillant;ID=BAI00;SW=0603;HW=9102", loaded
 "vaillant/bai.308523.inc", "vaillant/08.bai.csv"                            
address 10: master #2                                                        
address 15: slave #2, scanned "MF=Vaillant;ID=B7V00;SW=0422;HW=5503", loaded 
"vaillant/15.b7v.csv"                                                        
address 31: master #8, ebusd                                                 
address 36: slave #8, ebusd ```

mozzarelka avatar Mar 22 '18 19:03 mozzarelka

no, you'd rather have a common .inc for stuff that a certain HW versions supports independent of other criteria and in there include e.g. SW specific parts

john30 avatar Mar 30 '18 07:03 john30

But for me it shows maximum power for heating, not current power.

@mozzarelka I can confirm that. Appears correct as this is exactly what d.00 does on the BAI.

@Erbit see #107 and #108 which can help you with reading registers.

This issue could be closed?

andig avatar Oct 28 '18 11:10 andig

I own Vaillant ecoTEC plus VU INT IV 246/5-5 H (0010021961) scanned as "MF=Vaillant;ID=BAI00;SW=0104;HW=7803" and for me it reads:

PartloadHcKW 20
ModulationTempDesired 16.6

with loaded "vaillant/bai.0010015600.inc". I guess 20kW is the max power in my case. Any help here?

andr2000 avatar Jan 02 '19 08:01 andr2000

I guess 20kW is the max power in my case.

Indeed, it is "Max" power. But it's worth mentioning that you can change it in installers menu on your boiler. If your house isnt big enough and your boiler doesnt use all its power, its worth lowering it.

Dinth avatar Jan 02 '19 08:01 Dinth

Ah, then:

  1. The question still remains why in my case it doesn't show current power as others see (I guess)
  2. If ModulationTempDesired is % of PartloadHcKW then probably it is worth renaming this parameter to something more appropriate?

But it's worth mentioning that you can change it in installers menu on your boiler. If your house isnt big enough and your boiler doesnt use all its power, its worth lowering it.

Shouldn't the boiler have room for regulation, e.g. I would expect that even if I have Max set to 20kW the boiler shouldn't consume more power if it is not needed?

andr2000 avatar Jan 02 '19 08:01 andr2000

Cross-posted:

PartloadHcKW: the name is misleading- this is the MAX power the BAI might use (d.00). ModulationTempDesired: also misleading. This is the percentage of the NOMINAL power that the BAI has that IS being used.

Example for my BAI:

  • PartloadHcKW 6: 6kW max power out of 14.6kW
  • ModulationTempDesired 19: 19% out of 14.6 is 2.77kW which is the minimal power

andig avatar Jan 02 '19 08:01 andig

@andig so, I cannot simply put CurrentPower = PartloadHcKW * ModulationTempDesired / 100% because PartloadHcKW is set in the corresponding menu and can be less then 100% of the power of the boiler. Is this understanding correct?

andr2000 avatar Jan 02 '19 08:01 andr2000

PartloadHcKW: the name is misleading- this is the MAX power the BAI might use (d.00).

Not really, because this Max power is actually called Partload in the boilers manual & installer menu

ModulationTempDesired

Indeed, this could potentially be called ModulationPowerDesired or ModulationPartloadDesired

I cannot simply put CurrentPower = PartloadHcKW * ModulationTempDesired / 100% because PartloadHcKW is set in the corresponding menu and can be less then 100%

Indeed it is, but that doesnt make a difference. CurrentPower in this equation will still be current power of your boiler.

Shouldn't the boiler have room for regulation, e.g. I would expect that even if I have Max set to 20kW the boiler shouldn't consume more power if it is not needed? Im not a gas engineer so my answer here is a pure guess, but i assume that the boiler heats up water in pulses of PartloadHc power and can only regulate power "on the fly" by changing the width of those pulses (this would explain use of "modulation" word). And then, the installer can change PartloadHc instead.

I read somewhere that boilers are more efficient when providing for example 50% of power if they do it by pulses of full power (one minute of full power, one minute of pause), than if they try to provide constant 50% of power

Dinth avatar Jan 02 '19 09:01 Dinth

Not really, because this Max power is actually called Partload in the boilers manual & installer menu

Maybe, but if it implies partial load then its really a max limit and not a current partial load. Not ebusd's fault ;)

Indeed, this could potentially be called ModulationPowerDesired or ModulationPartloadDesired

Rather ModulationPercent as its neither a power nor depends on PartLoad?

I cannot simply put CurrentPower = PartloadHcKW * ModulationTempDesired / 100% because PartloadHcKW is set in the corresponding menu and can be less then 100%

Indeed it is, but that doesnt make a difference. CurrentPower in this equation will still be current power of your boiler.

I need to disagree:

CurrentPower = BoilerNominalMaxPower * ModulationTempDesired / 100%

...it does not depend on PartloadHcKW at least on my BAI

andig avatar Jan 02 '19 09:01 andig

Rather ModulationPercent as its neither a power nor depends on PartLoad?

It doesnt depend to PartLoad but its a modulation (percentage) of Partload

I need to disagree: CurrentPower = BoilerNominalMaxPower * ModulationTempDesired / 100% ..it does not depend on PartloadHcKW at least on my BAI

Sorry, but Im not really following. Let's say that you've got a 25kW boiler with PartLoad set to 15kW by the installer (because power of all your radiators + other heat loses equals 15kW, so there was no point of setting PartLoad higher) and let's say that it's running at 100% at the moment.

CurrentPower = BoilerNominalMaxPower * ModulationTempDesired / 100%

Will give you: 25kW = 25kW * 100 / 100%

CurrentPower = PartloadHcKW * ModulationTempDesired / 100%

While this will give you: 15kW = 15kW * 100 / 100% and 15kW is the correct amount of it's current heating power.

Dinth avatar Jan 02 '19 10:01 Dinth

Let's say that you've got a 25kW boiler with PartLoad set to 15kW by the installer (because power of all your radiators + other heat loses equals 15kW, so there was no point of setting PartLoad higher) and let's say that it's running at 100% at the moment.

My BAI can't do that. ModulationTempDesired will only go up to 15/25=60% in your example. That's why I've said that current power calculation doesn't depend on PartLoad.

PartLoad is the upper kWh limit for current power while ModulationTempDesired is the current percentage value of current power.

Added example

For my 14.6kWh BAI, limited to 10kWh, that means that ModulationTempDesired 19% (which is the lower end of the modulation range) amounts to 14.6 (not 10) x 19% = 2.77 kWh. Regardless how I set PartLoad the lowest modulation limit is always reached when ModulationTempDesired = 19%, after that the BAI can only turn off (and does).

andig avatar Jan 02 '19 10:01 andig

PartLoad is the upper kWh limit for current power while ModulationTempDesired is the current percentage value of current power.

Hmmm, that's a very interesting find. I need to check my BAI again, but im pretty sure that its behaviour is different. This would be another case of completely different behaviour between same ebus commands on different BAIs. That's shocking, i wonder how Vaillant software engineers can keep up with it (after all, VRCs can control different BAIs)

Dinth avatar Jan 02 '19 10:01 Dinth

Let's say that you've got a 25kW boiler with PartLoad set to 15kW by the installer (because power of all your radiators + other heat loses equals 15kW, so there was no point of setting PartLoad higher) and let's say that it's running at 100% at the moment.

Hmm, i just saw my boilers ModulationTempDesired going up to 89% (its rare, but that's because my house is very well insulated). PartLoadHcKW is set to 12kW and boilers max power is 25kW. Ebus protocol is soo messy o.O

Dinth avatar Jan 05 '19 20:01 Dinth

Mine does too, but not for heating, only for hot water- partloadhc only applies to heating. Maybe it was that or your boiler is just different from mine ;)

Am 05.01.2019 um 21:48 schrieb Michal [email protected]:

Let's say that you've got a 25kW boiler with PartLoad set to 15kW by the installer (because power of all your radiators + other heat loses equals 15kW, so there was no point of setting PartLoad higher) and let's say that it's running at 100% at the moment.

Hmm, i just saw my boilers ModulationTempDesired going up to 89% (its rare, but that's because my house is very well insulated). PartLoadHcKW is set to 12kW and boilers max power is 25kW. Ebus protocol is soo messy o.O

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

andig avatar Jan 05 '19 21:01 andig

Talked to a Vaillant local representative wrt PartLoadHcKW and they say that lowering this value doesn't really help as if the boiler runs, for example, at 20% of PartLoadHcKW_100% then lowering PartLoadHcKW to 50% will not make the boiler consume less gas or work more efficiently. This value just limits the maximum value the boiler can use when there is a call for heat. Say, if you request for 12kW from the boiler which PartLoadHcKW is set to 10kW then the boiler will only let you run at its "local" maximum set, e.g. 10kW

andr2000 avatar Jan 15 '19 08:01 andr2000

That's an interesting point of view, although i heard that limiting boilers output power is pretty common here in the UK, as apparently it conserves power. Common sense tells me that there's no point of having boiler run @ 25kW in my house, if radiators can only radiate up to 10kW.

@andig: right, i didnt take the HW circuit into account, i will need to check it again.

Dinth avatar Jan 15 '19 10:01 Dinth