emsesp / EMS-ESP32

ESP32 firmware to read and control EMS and Heatronic compatible equipment such as boilers, thermostats, solar modules, and heat pumps
https://emsesp.github.io/docs
GNU Lesser General Public License v3.0
617 stars 104 forks source link

Worcester-Bosch Greenstar weather compensation support #1642

Closed V4ler1an closed 7 months ago

V4ler1an commented 8 months ago

I have a Greenstar 4000 system boiler model: GR4700iW S - 15 NG that has been fitted with the official Worcester outdoor weather sensor kit (part #: 7716192764): https://www.amazon.co.uk/Worcester-7716192764-Greenstar-Outdoor-Weather/dp/B07H63CKPZ

I have an E32 v2 (Wi-Fi + Ethernet v2) EMS-Bus Gateway hooked up through the service jack with 69 entities published to Home Assistant through MQTT. However.... the boiler service menu offers the following controls to manage the weather compensation features but these are not currently supported by the gateway's ESP firmware:

Enable / Disable Heating Curve Increase / Decrease Curve Base Temp Increase / Decrease Curve End Temp

Could I have these added to the firmware asap? Syslog trace attached recording the following changes I made to these settings on the boiler system menu soon after 13:53

Many thanks! log.txt

MichaelDvP commented 8 months ago

OK on/off is telegram 28 offset 0, data 0xFF/0x00

2024-02-27 13:53:29.998 TRACE 208891: [emsesp] controller(0x09) -W-> boiler(0x08), ?(0x28), data: 00
2024-02-27 13:53:42.505 TRACE 208918: [emsesp] controller(0x09) -W-> boiler(0x08), ?(0x28), data: FF

but heating curve seems to be absolute values, in offset 1/2, base 42°C, end 52°C.

2024-02-27 13:53:55.253 TRACE 208934: [emsesp] controller(0x09) -W-> boiler(0x08), ?(0x28), data: 2A (offset 2)
2024-02-27 13:53:55.325 TRACE 208935: [emsesp] boiler(0x08) -B-> All(0x00), ?(0x28), data: 32 2A (offset 1)
2024-02-27 13:54:06.794 TRACE 208942: [emsesp] controller(0x09) -W-> boiler(0x08), ?(0x28), data: 34 (offset 1)

Can you check the full telegram by telnet read 8 28, there are some other infos, i think it's 7 bytes long: 2024-02-27 13:53:42.571 TRACE 208919: [emsesp] boiler(0x08) -B-> All(0x00), ?(0xF7), data: 28 00 00 3F

MichaelDvP commented 8 months ago

For first test try with custom entities and test values and writing: grafik

grafik

grafik

V4ler1an commented 8 months ago

Thanks Michael: log - telnet.txt

V4ler1an commented 8 months ago

To my untrained eye, the custom entities appear to be working as expected when tested via HA. Boiler flow temps look to be reacting correctly. Boiler LCD confirms curve is being enabled / disabled and the base and end temps are updating.

V4ler1an commented 8 months ago

Just to clarify, the telnet log I provided was taken while changing the settings using the new HA custom entities. Were you preferring that I make the test changes via the boiler LCD control panel or does it not matter?

MichaelDvP commented 8 months ago

Yes, i can see it in the log, looks godd, we can add the entities, but i want you to type in telnet the command read 8 28 This should give the whole telegram back, not only offsets 0-2.

V4ler1an commented 8 months ago

Does this give you what you are looking for?

ems-esp:$ log all Log level: ALL 000+01:06:17.748 T 127: [emsesp] boiler(0x08) -B-> All(0x00), UBAMonitorFastPlus(0xE4), data: 10 20 2D 2D 00 C8 2C 01 C5 64 10 03 06 01 D2 00 00 80 00 00 61 1C 03 01 C5 00 00 000+01:06:17.925 T 128: [emsesp] boiler(0x08) -B-> All(0x00), UBAMonitorFastPlus(0xE4), data: 00 00 00 00 FE 10 64 (offset 35) 000+01:06:18.114 T 129: [emsesp] boiler(0x08) -B-> All(0x00), UBAMonitorSlowPlus2(0xE3), data: 01 00 00 00 00 00 00 00 00 00 00 01 C5 10 64 2C 00 00 00 00 000+01:06:18.329 T 130: [emsesp] boiler(0x08) -B-> All(0x00), UBAMonitorWWPlus(0xE9), data: 05 80 00 80 00 00 00 00 00 46 3C 00 00 02 00 00 00 00 00 00 00 00 00 05 02 00 ems-esp:$ read 8 28 000+01:06:18.754 T 131: [emsesp] Me(0x0B) -R-> boiler(0x08), ?(0x28), length: 0x1B 000+01:06:18.768 N 132: [emsesp] boiler(0x08) -W-> Me(0x0B), ?(0x28), data: 00 3C 32 10 00 05 000+01:06:27.750 T 133: [emsesp] boiler(0x08) -B-> All(0x00), UBAMonitorFastPlus(0xE4), data: 10 20 2D 2D 00 C8 2C 01 C5 64 0F 03 06 01 D3 00 00 80 00 00 61 1C 03 01 C5 00 00 000+01:06:27.927 T 134: [emsesp] boiler(0x08) -B-> All(0x00), UBAMonitorFastPlus(0xE4), data: 00 00 00 00 FE 0F 64 (offset 35) 000+01:06:28.116 T 135: [emsesp] boiler(0x08) -B-> All(0x00), UBAMonitorSlowPlus2(0xE3), data: 01 00 00 00 00 00 00 00 00 00 00 01 C5 0F 64 2C 00 00 00 00 000+01:06:28.360 T 136: [emsesp] boiler(0x08) -B-> All(0x00), UBAMonitorWWPlus(0xE9), data: 05 80 00 80 00 00 00 00 00 46 3C 00 00 02 00 00 00 00 00 00 00 00 00 05 02 00 000+01:06:29.170 T 137: [emsesp] boiler(0x08) -B-> All(0x00), UBAMonitorFastPlus(0xE4), data: 01 C4 (offset 23) ems-esp:$ log off Log level: OFF ems-esp:$

MichaelDvP commented 8 months ago

Thanks, [emsesp] boiler(0x08) -W-> Me(0x0B), ?(0x28), data: 00 3C 32 10 00 05 3 other parameters with value 16, 0 and 5, any idea what is it? I've added the on/base/end to my dev, please check, if ok i'll make a PR. https://github.com/MichaelDvP/EMS-ESP32/releases/tag/latest

V4ler1an commented 8 months ago

I've had a look over the changes although don't know the value of my checking the release, i'm certainly no dev :) But the custom entities I have seem to work and i'll continue testing / checking them in my environment and be sure to make you aware of any problems I encounter.

In regards to those values. It's a bit hard to know, can you give me any more context? Looking at the entity values being reported in HA nothing has a value of 16 (currently), loads of things are on 0 and only 'Burner min period' is 5 and 'Dhw set temperature' is 5 deg C.

MichaelDvP commented 8 months ago

But the custom entities I have seem to work and i'll continue testing

The custom entities are for first testing, they have some overhead and it's better to integrate the entities if all is ok. So try my build and if it works you can remove the customs.

In regards to those values. It's a bit hard to know, can you give me any more context?

The telegram from boiler contains 6 values, we know the first three, on/off, base and end, the next three have values 16, 0 ,and 5. Is there anything in the boiler control panel regarding curve that have these values, than we can add them too. A heating curve normally have for start and end values (which are flowtemps) a corresponding outdoor temperature, Maybe startemp is the required flowtemp at outdoor 16 degrees (offset 3) , endtemp is reached at 0 degrees (offset 4). Dont know, just thinking...

V4ler1an commented 8 months ago

There are three other settings within the 'Heating Curve' service sub-menu. Presumably all become availble once the outdoor weather sensor is fitted to the boiler. Perhaps it would be good to add these also? Their values match those you provided:

Summer Mode: 16 Prost Prot.: 0 Frost temp. limit: 5

image

V4ler1an commented 8 months ago

I'll hold on until we have all 6 settings in your build if that's ok. Let me know when you're ready, or do you need another trace with these other three settings?

MichaelDvP commented 8 months ago

Ok, please test https://github.com/MichaelDvP/EMS-ESP32/releases/tag/latest I think the nofrost-mode (frost prot) is a switch with on=0xFF, off=0. (named "nofrost mode" because most thermostats use this name, but Bosch rename entities often for different brands/models/software versions, we can't include all names, you can change in customizations)

V4ler1an commented 8 months ago

Yes it's a boolean, i'll test later today. Here's the section for the heating curve menu in the GR4700iW S installer's manual: image

MichaelDvP commented 8 months ago

Thanks, i've added the limits.

V4ler1an commented 8 months ago

After getting the new controls added to a dashboard card and tidied up, I noticed a 7th 'Reset' entity included along with the curve controls. Curious as to if and when it might be used and where it belongs.

I've done a quick sanity check and the curve enables / disables, base / end temps change ok. To do a more thorough test I really need to build these entities into a new weather comp automation. Am I advsied to wait for the final release before doing this do you think? Also, how do I subscribe for notifications on the new releases? Thanks.

image

MichaelDvP commented 8 months ago

The reset is from #1605, PR #1626 in the official dev.

Also, how do I subscribe for notifications on the new releases?

Don't know, proddy announces them on discord.

proddy commented 8 months ago

you can also watch GitHub:

image

V4ler1an commented 8 months ago

Perfect, thanks.