wrongisthenewright / ebusd-configuration-ariston-bridgenet

Ebusd Configuration file for Ariston/Chaffoteaux/Elco Bridgenet Bus
GNU General Public License v3.0
29 stars 5 forks source link

Support for ELCO Aerotop SPLIT #3

Closed ubettoni closed 1 year ago

ubettoni commented 1 year ago

Hi,

thank you for your great work! I've activated ebusd on my system, an Elco Aerotop Split 11rx ( No hybrid ). I can see a lot of parameter but some are not showing. Particularly i want to read:

In ebusd log I've found:

2022-12-23 16:31:10.942 [update notice] received unknown MS cmd: 1018200006011f021f1e11 / 0407010000
2022-12-23 16:31:11.592 [update notice] received unknown MS cmd: 131e20200dc33ef8c44664cd46036a472201 / 00
2022-12-23 16:31:11.763 [update notice] received unknown MS cmd: 131e20200dce9c78d09c0ad89c00659f6400 / 00
2022-12-23 16:31:11.857 [update notice] received unknown MS cmd: 131e202003d5f000 / 00
2022-12-23 16:31:12.081 [update notice] received unknown MS cmd: 131e20200c0b45001745001a45001ef300 / 00
2022-12-23 16:31:12.447 [update notice] received unknown BC cmd: 13fe20100cc2000100c74b0200c94b0200
2022-12-23 16:31:12.940 [update notice] received unknown BC cmd: 13fe20100c059100000691000007910000
2022-12-23 16:31:13.185 [update notice] received unknown MS cmd: 131e2000086e13ca46cb46d84b / 060f2a0103120f
2022-12-23 16:31:13.582 [update notice] received unknown BC cmd: 10fe20500b55550c0e00000000000000
2022-12-23 16:31:13.924 [update notice] received unknown MS cmd: 131e202006c04600df9c00 / 00
2022-12-23 16:31:14.419 [update notice] received unknown BC cmd: 13fe201010d3460000d7460000da46a000dc46a000
2022-12-23 16:31:14.545 [update notice] received unknown BC cmd: 13fe20100ede46a00060472201006147500000
2022-12-23 16:31:14.632 [update notice] received unknown BC cmd: 10fe20510e030b555555555555555555555555
2022-12-23 16:31:14.750 [update notice] received unknown BC cmd: 13fe20100d6447000000cf9c0000d79c0000
2022-12-23 16:31:15.207 [update notice] received unknown BC cmd: 13fe20100f769e0e0100779e000000649f220100
2022-12-23 16:31:15.250 [update notice] received unknown BC cmd: 13fe20100cd1f20400d2f20300d3f20000
2022-12-23 16:31:15.322 [update notice] received unknown BC cmd: 13fe2010041b450000
2022-12-23 16:31:15.405 [update notice] received unknown BC cmd: 13fe201010c1940200c2940200c3940200c4940200
2022-12-23 16:31:15.555 [update notice] received unknown BC cmd: 13fe20100cc5940200c6940200c7940200
2022-12-23 16:31:15.769 [update notice] received unknown BC cmd: 10fe2038050164060708
2022-12-23 16:31:15.895 [update notice] received unknown BC cmd: 13fe20100f6c96be00006d96be00006e96be0000
2022-12-23 16:31:16.059 [update notice] received unknown BC cmd: 13fe20100f6f96be000061972201006297c80000
2022-12-23 16:31:16.189 [update notice] received unknown BC cmd: 13fe20100f639790010064979001006597900100
2022-12-23 16:31:16.348 [update notice] received unknown BC cmd: 13fe20100a66979001006797900100
2022-12-23 16:31:16.762 [update notice] received unknown MS cmd: 131e2000087217731762476347 / 090f5600aa0100000000
2022-12-23 16:31:16.970 [update notice] received unknown MS cmd: 131e2000027c4f / 03018d00
2022-12-23 16:31:17.125 [update notice] received unknown MS cmd: 131e200006084519450af4 / 0407000000
2022-12-23 16:31:17.570 [update notice] received unknown MS cmd: 131e20200dc33eeec44664cd46036a472201 / 00
2022-12-23 16:31:17.672 [update notice] received unknown BC cmd: 00fe203a011e
2022-12-23 16:31:17.809 [update notice] received unknown MS cmd: 131e20200dce9c78d09c0ad89c00659f6400 / 00
2022-12-23 16:31:17.900 [update notice] received unknown MS cmd: 131e202003d5f000 / 00
2022-12-23 16:31:18.248 [update notice] received unknown MS cmd: 131e20200c0b45001745001a45001ef300 / 00
2022-12-23 16:31:18.597 [update notice] received unknown BC cmd: 13fe20100cc2000100c74b0200c94b0200
2022-12-23 16:31:19.087 [update notice] received unknown BC cmd: 13fe20100c059100000691000007910000
2022-12-23 16:31:19.332 [update notice] received unknown MS cmd: 131e2000086e13ca46cb46d84b / 060f2c0103120f
2022-12-23 16:31:19.467 [update notice] received unknown MS cmd: 101820000818031c1107011403 / 050f00000000
2022-12-23 16:31:19.578 [update notice] received unknown MS cmd: 101820000415031603 / 03030000
2022-12-23 16:31:20.487 [main error] scan config 1e: empty
2022-12-23 16:31:20.647 [update notice] received unknown BC cmd: 10fe20500b55550d0e00000000000000
2022-12-23 16:31:21.604 [update notice] received unknown BC cmd: 10fe20510e030c555555555555555555555555
2022-12-23 16:31:21.684 [update notice] received unknown BC cmd: 10fe20380501640e0708
2022-12-23 16:31:22.485 [update notice] received unknown MS cmd: 131e20200dc33ee8c44664cd46036a472201 / 00
2022-12-23 16:31:22.658 [update notice] received unknown MS cmd: 131e20200dce9c78d09c0ad89c00659f6400 / 00
2022-12-23 16:31:22.753 [update notice] received unknown MS cmd: 131e202003d5f000 / 00
2022-12-23 16:31:22.990 [update notice] received unknown MS cmd: 131e20200c0b45001745001a45001ef300 / 00
2022-12-23 16:31:23.345 [update notice] received unknown BC cmd: 13fe20100cc2000100c74b0200c94b0200
2022-12-23 16:31:23.801 [update notice] received unknown BC cmd: 13fe20100c059100000691000007910000
2022-12-23 16:31:24.067 [update notice] received unknown MS cmd: 131e2000086e13ca46cb46d84b / 060f2a0103120f
2022-12-23 16:31:27.477 [update notice] received unknown MS cmd: 131e20200dc33ee0c44664cd46036a472201 / 00
2022-12-23 16:31:27.585 [update notice] received unknown BC cmd: 10fe20500b55550e0e00000000000000
2022-12-23 16:31:27.719 [update notice] received unknown MS cmd: 131e20200dce9c78d09c0ad89c00659f6400 / 00
2022-12-23 16:31:27.753 [update notice] received unknown BC cmd: 00fe203a011e
2022-12-23 16:31:27.843 [update notice] received unknown MS cmd: 131e202003d5f000 / 00
2022-12-23 16:31:28.046 [update notice] received unknown MS cmd: 131e20200c0b45001745001a45001ef300 / 00
2022-12-23 16:31:28.367 [update notice] received unknown BC cmd: 13fe20100cc2000100c74b0200c94b0200
2022-12-23 16:31:28.590 [update notice] received unknown BC cmd: 10fe20510e030d555555555555555555555555
2022-12-23 16:31:28.873 [update notice] received unknown BC cmd: 13fe20100c059100000691000007910000
2022-12-23 16:31:29.117 [update notice] received unknown MS cmd: 131e2000086e13ca46cb46d84b / 060f2c0103120f
2022-12-23 16:31:29.997 [update notice] received unknown MS cmd: 10182000081503160318031c11 / 050f00000000
2022-12-23 16:31:32.498 [update notice] received unknown MS cmd: 131e20200dc33efac44664cd46036a472201 / 00
2022-12-23 16:31:32.635 [update notice] received unknown MS cmd: 131e20200dce9c78d09c0ad89c00659f6400 / 00
2022-12-23 16:31:32.764 [update notice] received unknown MS cmd: 131e202003d5f000 / 00
2022-12-23 16:31:32.967 [update notice] received unknown MS cmd: 131e20200c0b45001745001a45001ef300 / 00
2022-12-23 16:31:33.322 [update notice] received unknown BC cmd: 13fe20100cc2000100c74b0200c94b0200
2022-12-23 16:31:33.779 [update notice] received unknown BC cmd: 13fe20100c059100000691000007910000
2022-12-23 16:31:33.988 [update notice] received unknown MS cmd: 131e2000086e13ca46cb46d84b / 060f2b0103120f
2022-12-23 16:31:34.488 [update notice] received unknown MS cmd: 1018200006d14006017017 / 050714014502
2022-12-23 16:31:34.598 [update notice] received unknown BC cmd: 10fe20500b55550f0e00000000000000
2022-12-23 16:31:35.053 [update notice] received unknown BC cmd: 13fe2010057647540000
2022-12-23 16:31:35.291 [update notice] received unknown BC cmd: 13fe201010d1940200d2940200d3940200d4940200
2022-12-23 16:31:35.441 [update notice] received unknown BC cmd: 13fe20100cd5940200d6940200d7940200
2022-12-23 16:31:35.597 [update notice] received unknown BC cmd: 10fe20510e030e555555555555555555555555

Can you give me some hints on finding/correcting those value? Thank you

wrongisthenewright commented 1 year ago

Yes that's the idea, but now I think it's not possible without extra-boiler computations.

I also think it's impossible, what I've gathered from the bus is a really complex protocol, the devices continuously talked on the bus with each other passing data and parameters.

From what I have seen, all the registers of the boiler are with read/write access (including the boiler life time field: In case you want to resell your boiler and make it look younger than it is :p). 7647 is no exception to the rule. The tech menu briefly displays the value sent manually on eBus, but the boiler instantly replaces it with an error value indicator, or the real value if the resistor is present.

The boiler continuously try to access/write some data. so the error is normal: probably the boiler cannot follow its protocol and then gives an error. With the connected wired sensor it's the boiler itself to do the calculations. Can you simply connect an external wired sensor to your boiler? It should be simple since is a basic 2 wire cable....

Note: In my house with a water law f(x) = 1.2x + 30°C the temperature calculated by the boiler for 8.6°C outside is 43.6°C instead of 40.32°C according to the function. The room temperature has no influence here, but the value must be weighted already? With a room sensor the calculation is weighted with the factor z1_room_temp_infl between 0 and 20. The curve must be more complex than a simple affine function. More tests should be done with various resistance values.

In my case (Ariston HP) the formula to compute the water temp is really simple (linear), there are online some professional manual showing the algorithm, this is the most complex rule, with external and room temp as input:

Sorry but I had to translate it from an italian manual of an hybrid system, the menu parameter codes could be different.

Tset_term = Tmand_min +SL( Tamb_set –Text)+ SL IA *( Tamb_set – Tamb_mis)+OF Where:

ysard commented 1 year ago

Can you simply connect an external wired sensor to your boiler? It should be simple since is a basic 2 wire cable

yeah this is the idea but the local configuration is not that simple...

(Ariston HP) the formula to compute the water temp is really simple (linear)

My formula above was a total mistake made at too late hours; Indeed the water law/weather compensation formula is by default linear.

f(x) = (-slope*ext_temp+y-intercept) + zone_temp_offset, With a slope of 1.2, the y-intercept is 54.

This gives this table: Ohms ext temp theoric temp measured temp delta
15K 16.2 34.56°C 35°C -0.44 (unreliable because water can't be set below 35°C)
8.6 43.68°C 43.6°C 0.08
-7.6 63.12°C ?
48.5K -8.8 64.56 64.4 0.16
51.85K -9.2 65.04 64.9 0.14
69.5K -14.8 71.76 71.6 0.16

This is for the regulation "Outdoor temp only".

For the regulation "Outdoor and room temp" your formula should be used. Also, the doc says that the room temp influence is available only in this mode.

The boiler should do the computations itself in this mode. But for me It indicates an error because there is no ambient thermostat on the bus and I don't master the handshake procedure to simulate it. It also shows an error if the wired temp probe is disconnected (no surprise here).

Viessman boilers have an even more complex formula with calculations based on the average temp on the last minutes: https://blog.elyotherm.fr/2013/08/reglage-optimisation-courbe-de-chauffe.html

wrongisthenewright commented 1 year ago

Can you simply connect an external wired sensor to your boiler? It should be simple since is a basic 2 wire cable

yeah this is the idea but the local configuration is not that simple...

I though that the external probe is a simple NTC, so once you find the correct resistance you should be able to activate the climatic auto setting (water flow temp as function of the external temp).

you can also try to emulate the room temperature probe, my z1 room temp code is 7118 and these are the only messages that included this code:

70fe2000027118 = 1 sensys broadcast a request for 7118 70fe200f057118d10000 = 9 sensys broadcast the value of 7118 (200f as a response to request) 13fe2000087118721873187418 = 1 energy mgr ask the room temp for z1,2,3,4 7ffe2000027118 = 7 7f (I think it's the wifi gateway) asks for room temp 70fe2020047118d000 = 38: sensys z1_room_temp_bcast sensys broadcast the value of 7118 (2020 as a cast of setting)

as you can see are all broadcasted messages so it seems there's no device that explicitly ask for the room temp by a direct query, only 13 (my energy manager) and 70 (remote control user interface). If you can find a way to publish regularly (I think at least once a minute) the last message you can try to see if the boiler get the correct value and allow you to use the mode.

hope it helps.

ysard commented 1 year ago

I hope this discussion will be useful to people looking for information on these boilers and save them some research time.

Hardware reversing including specs for the thermistor that I found are here.

13fe2000087118721873187418 = 1 energy mgr ask the room temp for z1,2,3,4

You translate the 2000 request as a request for data from the main device. I think that it is rather a publication of its features that can be queried by another device. Indeed in this type of request I find the id 7647 which as I have demonstrated is not writable.

I still confess that I don't understand the difference between the 2001, 2010 and 200f commands.

as you can see are all broadcasted messages so it seems there's no device that explicitly ask for the room temp by a direct query,

You're right, I haven't seen any transmitted packets that aren't broadcast at the moment.

The 2010 and 2020 commands carry data that is only useful to the devices that might use them.

If you can find a way to publish regularly

In fact, just a simple script which uses ebusctl and have access to the outdoor temperature, can set the target temp via one of the exposed formulas above.

I set up the mqtt integration for Home Assistant for this. It's very overrated for the task but has the merit to present nice graphics and to allow a total control of all the options of the machine (read/write). The code is published on my repository. A few more commits to make a compatible csv (and a pending issue on ebusd) and the project will be finished.

wrongisthenewright commented 1 year ago

I hope this discussion will be useful to people looking for information on these boilers and save them some research time.

Yes, but I'd like it was a discussion and not an issue on my CSV, but I'll have to cope :)

Hardware reversing including specs for the thermistor that I found are here.

great job!

You translate the 2000 request as a request for data from the main device. I think that it is rather a publication of its features that can be queried by another device.

I don't think so: If i need to read some parameter that's not broadcasted on the bus I can directly ask for it as:

ebusd ebusctl grab result all | grep 40d2

40d2 is the diverter valve in my type of boiler - a Genus - the command it gave no result because the data is not traveling on the bus, I think is read explicitly only by the remote controller in tech menu, but if I send the query

ebusd ebusctl hex 3c20000240d2
0301b007

3c it's my boiler pcb slave address, I get the result, so I'm almost certain 2000 is a query command, if the dest address is fe (broadcast) I interpret it as a query to any device that has that parameter

I still confess that I don't understand the difference between the 2001, 2010 and 200f commands.

I'm still struggling but atm this is my best guess at the meanings:

<!DOCTYPE html>

PBSB | Ariston -- | -- 2000 | get setpoints 2001 | get params 2002 | get faults 200E | return params 2070 | cast time 2038 | bus controls 2034 | bus reset 0704 | Identification(Ebus) 2031 | master device identificator bcasts 203A | request slave device 2020 | cast setpoints(?) 2010 | cast parameters(?) 200f | retutn setpoints 2051 | bus discovery(?) 203b | request slave device (?) 2004 | error detection/disappearance

The 2010 and 2020 commands carry data that is only useful to the devices that might use them.

I think 2010 and 2020 are used to set parameters/configurations as they're used moslty (always??) in master/master messages

ysard commented 1 year ago

Yes we could open a discussion for this :p

You translate the 2000 request as a request for data from the main device. I think that it is rather a publication of its features that can be queried by another device.

I don't think so: If i need to read some parameter that's not broadcasted on the bus I can directly ask for it as

Yes you can but changing the diverter valve status is not a "common feature" that can be modified from something other than a tech menu. It seems that broadcast packets without data are for "common features" only.

I see a pattern for 2010: It may be for values that should not be modified by a device and that should be accepted by another. i.e calculated/measured/status values (current temp measured, boiler status, settings change counter, computed target temp, heat request status). 2020 may be for values that can be modified on the device and accepted by another.

2031 is still totally unknown except the slave addr present in a byte.

2051 is the broadcast for timer programming, 100% sure, it's reversed and explained on my readme.

wrongisthenewright commented 1 year ago

Yes you can but changing the diverter valve status is not a "common feature" that can be modified from something other than a tech menu. It seems that broadcast packets without data are for "common features" only.

I'll look into it

I see a pattern for 2010: It may be for values that should not be modified by a device and that should be accepted by another. i.e calculated/measured/status values (current temp measured, boiler status, settings change counter, computed target temp, heat request status). 2020 may be for values that can be modified on the device and accepted by another.

Same as above, bot now it isn't my priority.

I've got (I think) the same adapter you're using, I've now ordered a second one as a backup and to be able to install newer firmware, I've got too much errors writing on the bus, I'll check the causes but if I discover that they are not electrical (tension loss, or rong cables) I 've seen you developed a fork of the firmware that reduces the load on the microprocessor and, most importantly form me, your version reduces the latency on the bus, can you drop me an email ( isthenewrightwrong AT gmail )? I'd like some info on how to flash it when the new pcb arrives.

TY in advance

ysard commented 1 year ago

Currently I have an ESP soldered directly to the ON/OFF thermostat that I had in my home. It's a fast, functional, inexpensive and reliable assembly that has been working for 1 month, but I would not recommend it : you have to solder properly, make sure you have a stable 3.3V power supply and a common ground plane. The warranty may also be a problem if modifications are visible. But on the idea the firmware is the one for the adapter: https://github.com/danielkucera/ebus-adapter

I have pull-requests to integrate my code to his project: https://github.com/danielkucera/esp8266-arduino-ebus

The 2 codes are strictly compatible with the hardware he designed. The flash procedure is the same as his via platformio:

pio run -e esp12e-ota -t upload

If you have any question, just open an issue on my fork, I'll try to answer it as soon as possible ;)

wrongisthenewright commented 1 year ago

hi I've just received and installed a new version of the adapter, now is hw v 4.1 and probably it has the newer firmware, with this I've seen a sharp decrease of signal loss messages (with the old I had at lead 100+ events/day) and the arbitration lost errors also have become very less frequent. I'll monitor the situation in the next weeks. I've never developped for arduino/ESP so I'm a bit afraid to make a mistake and brick the adapter.

I'm also planning to update a new version of the CSV file with some codes I recently discovered.

these may be applyiable also to your env:

Menu - Hybrid System - Energy Tariffs - Some include write commands

r,energymgr,gas_electric_min_cost_ratio,Hybrid minimum gas to electric cost ratio,,18,2000,cc28,,s,UCH,10 r,energymgr,gas_electric_max_cost_ratio,Hybrid maximum gas to electric cost ratio,,18,2000,cb28,,s,UCH,10 r,energymgr,gas_electric_energy_ratio,Hybrid gas vs electric energy ratio,,18,2000,682b,,s,UIN r,energymgr,gas_cost,Hybrid system gas cost €c-kwh,,18,2000,642b,,s,UIN,10,c€ w,energymgr,gas_cost,Hybrid system gas cost €c-kwh,,18,2020,642b,,s,UIN,10,c€ r,energymgr,electric_cost,Hybrid system electric cost €c-kwh,,18,2000,652b,,s,UIN,10,c€ w,energymgr,electric_cost,Hybrid system electric cost €c-kwh,,18,2020,652b,,s,UIN,10,c€ r,energymgr,pv_electric_cost,Hybrid system PV electric cost €c-kwh,,18,2000,662b,,s,UIN,10,c€ w,energymgr,pv_electric_cost,Hybrid system PV electric cost €c-kwh,,18,2020,662b,,s,UIN,10,c€ r,energymgr,ext_boiler_heat_efficiency,Hybrid external boiler heating eff,,18,2000,782d,,s,UIN,10 r,energymgr,ext_boiler_dhw_efficiency,Hybrid external boiler DHW eff,,18,2000,762e,,s,UIN,10

Gas/Energy related metric, seems the actual boiler gas flow, to be

confirmed r,boiler,gas_flow,Gas Flow,,3c,2000,4013,,s,IGN:1,,,,,,D2B,10,m³/h

Regards!

Il giorno gio 26 gen 2023 alle ore 19:03 ysard @.***> ha scritto:

Currently I have an ESP soldered directly to the ON/OFF thermostat that I had in my home. It's a fast, functional, inexpensive and reliable assembly that has been working for 1 month, but I would not recommend it : you have to solder properly, make sure you have a stable 3.3V power supply and a common ground plane. The warranty may also be a problem if modifications are visible. But on the idea the firmware is the one for the adapter: https://github.com/danielkucera/ebus-adapter

I have pull-requests to integrate my code to his project: https://github.com/danielkucera/esp8266-arduino-ebus

The 2 codes are strictly compatible with the hardware he designed. The flash procedure is the same as his via platformio:

pio run -e esp12e-ota -t upload

If you have any question, just open an issue on my fork, I'll try to answer it as soon as possible ;)

— Reply to this email directly, view it on GitHub https://github.com/wrongisthenewright/ebusd-configuration-ariston-bridgenet/issues/3#issuecomment-1405391914, or unsubscribe https://github.com/notifications/unsubscribe-auth/AKBJF262JSMERO6Z4KU3QLDWUK35PANCNFSM6AAAAAATH3RXVQ . You are receiving this because you were assigned.Message ID: <wrongisthenewright/ebusd-configuration-ariston-bridgenet/issues/3/1405391914 @github.com>

ysard commented 1 year ago

If OTA update doesn't work, there is always a method to flash the controller. It's not so easy to brick it;

Gas/Energy related metric, seems the actual boiler gas flow, to be confirmed

r,boiler,gas_flow,Gas Flow,,3c,2000,4013,,s,IGN:1,,,,,,D2B,10,m³/h

No, it seems to be the fan speed (tech menu 822 for me). The value is between ~60 and 20 rpm. It can be controlled manually from the tech menu 860/862. Until now, I still don't know how to get the gas consumption...

wrongisthenewright commented 1 year ago

TY I'll check if I can confirm your suspicion about the fan speed.

Regards

On Mon, Jan 30, 2023, 18:21 ysard @.***> wrote:

If OTA update doesn't work, there is always a method to flash the controller. It's not so easy to brick it;

Gas/Energy related metric, seems the actual boiler gas flow, to be

confirmed r,boiler,gas_flow,Gas Flow,,3c,2000,4013,,s,IGN:1,,,,,,D2B,10,m³/h

No, it seems to be the fan speed (tech menu 822 for me). The value is between ~60 and 20 rpm. It can be controlled manually from the tech menu 860/862. Until now, I still don't know how to get the gas consumption...

— Reply to this email directly, view it on GitHub https://github.com/wrongisthenewright/ebusd-configuration-ariston-bridgenet/issues/3#issuecomment-1409018570, or unsubscribe https://github.com/notifications/unsubscribe-auth/AKBJF24K63ADIAQ6ITCAXKLWU72CJANCNFSM6AAAAAATH3RXVQ . You are receiving this because you were assigned.Message ID: <wrongisthenewright/ebusd-configuration-ariston-bridgenet/issues/3/1409018570 @github.com>

wrongisthenewright commented 1 year ago

I'm closing this issue as it seems there are no further new codes pertaining ELCO brand HP, In the last CSV release I've added the 3 lines discovered.