Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Boiler last error code only reported after restart [v3.3.0b8] #214

Closed
giovanne123 opened this issue Nov 20, 2021 · 11 comments
Closed

Boiler last error code only reported after restart [v3.3.0b8] #214

giovanne123 opened this issue Nov 20, 2021 · 11 comments
Labels
enhancement New feature or request
Milestone

Comments

@giovanne123
Copy link

Can it be that within v3.3.0b8 the boiler last error code is not instantly reported?

Saw it in HA when I had an error and in HA the information was not updated.
Had a look to EMS-ESP UI and there it was also not updated.

After a restart of EMS-ESP the new error code was read and could be seen in EMS-ESP UI and in HA.
image

(maybe also for thermostat last error code, but can test because have no error ;-))

@proddy
Copy link
Contributor

proddy commented Nov 20, 2021

there's been quite some discussion about this lately. The error messages are sent on telegrams 0x10, 0x11 or 0xC2 (depending on the boiler model). They are broadcasted periodically, so EMS-ESP is not actively querying these. But I may be wrong. My EMS devices don't support this. @MichaelDvP implemented the logic and is in a better position to answer your question.

@proddy proddy added the question Question about something label Nov 20, 2021
@giovanne123
Copy link
Author

hm, I don't think that a new error is periodically reported. Always waiting long time/days and I only see it after restart of EMS-ESP.
[In the meantime updated to 3.3.0b10]

@pypb
Copy link

pypb commented Mar 30, 2022

I'm seeing this issue as well, with 3.3.1. I've had quite a few error codes on my heat pump lately, due to having emptied and refilled the radiator system. The EMS-ESP never picks up the new error code until restart on my boiler.

It is actually currently showing an error code from two days ago, but looking at the alert history on the heat pump control panel there was an error yesterday while I was air bleeding.

If there is a way to actively query for the error code, perhaps it would be a good idea to do that.

@MichaelDvP
Copy link
Contributor

@giovanne123 , @pypb could you please check what error telegrams are used from your boiler. In terminal use: read 8 10, read 8 11 and read 8 c2.
My boiler uses telegram 10 and 11 and these telegrams are published if an error happens (not periodically). Ems-esp only fetches the telegrams on start and waits for changes. If you both have C2 telegram for the error, we need to fetch this periodically. If you have 10/11 telegrams, different boilers handle this different and we also need to fetch these long telegrams often.
Please check also for thermostat errors read 10 12 and read 10 A2

@pypb
Copy link

pypb commented Mar 30, 2022

@MichaelDvP here you go:

ems-esp:$ read 8 10
001+17:38:51.242 N 0: [emsesp] Boiler(0x08) -> Me(0x0B), UBAErrorMessage1(0x10), data: <empty>

ems-esp:$ read 8 11
001+17:38:59.246 N 1: [emsesp] Boiler(0x08) -> Me(0x0B), UBAErrorMessage2(0x11), data: <empty>

ems-esp:$ read 8 c2
001+17:39:04.996 N 2: [emsesp] Boiler(0x08) -> Me(0x0B), UBAErrorMessage3(0xC2), data: 08 AC 00 0C 11 41 30 31 14 7E 96 03 0F 1D 12 96 03 0F 1D 14 08 AC 00 10 11 41 30
001+17:39:05.247 N 3: [emsesp] Boiler(0x08) -> Me(0x0B), UBAErrorMessage3(0xC2), data: 31 14 A4 96 03 04 1C 3B 96 03 0F 1C 3B 08 AC 00 0C 11 41 30 31 14 7E 96 03 12 19 (offset 27)
001+17:39:05.547 N 4: [emsesp] Boiler(0x08) -> Me(0x0B), UBAErrorMessage3(0xC2), data: 1C 96 03 06 1C 0E 08 AC 00 0C 11 41 30 31 14 7E 96 03 02 15 0A 96 03 04 15 0C 08 (offset 54)
001+17:39:05.772 N 5: [emsesp] Boiler(0x08) -> Me(0x0B), UBAErrorMessage3(0xC2), data: AC 00 0C 11 41 30 31 14 7E 96 03 0B 08 36 96 03 0D 08 00 08 AC 00 0C 11 41 30 31 (offset 81)
001+17:39:06.122 N 6: [emsesp] Boiler(0x08) -> Me(0x0B), UBAErrorMessage3(0xC2), data: 14 7E 96 03 06 01 33 96 03 07 01 2F 08 AC 00 0C 11 41 30 31 14 7E 96 02 17 1C 0F (offset 108)
001+17:39:06.546 N 7: [emsesp] Boiler(0x08) -> Me(0x0B), UBAErrorMessage3(0xC2), data: 96 03 06 01 12 08 AC 00 0C 09 41 30 31 15 93 96 02 12 1C 03 96 02 12 1C 07 08 AC (offset 135)
001+17:39:06.798 N 8: [emsesp] Boiler(0x08) -> Me(0x0B), UBAErrorMessage3(0xC2), data: 00 0C 09 41 30 31 15 93 96 02 11 1C 38 96 02 12 1C 00 08 AC 00 0C 11 41 30 31 14 (offset 162)
001+17:39:07.247 N 9: [emsesp] Boiler(0x08) -> Me(0x0B), UBAErrorMessage3(0xC2), data: 7E 96 02 00 0B 26 96 02 06 0B 01 08 AC 00 10 11 41 30 31 15 4D 96 01 0B 12 1B 96 (offset 189)
001+17:39:07.497 N 10: [emsesp] Boiler(0x08) -> Me(0x0B), UBAErrorMessage3(0xC2), data: 01 0B 12 1C 08 AC 00 0E 11 41 30 31 14 E3 96 01 0B 12 1A 96 01 0B 12 1C 08 AC 00 (offset 216)
001+17:39:07.798 N 11: [emsesp] Boiler(0x08) -> Me(0x0B), UBAErrorMessage3(0xC2), data: 0C 31 48 30 31 15 4C 96 01 0B 12 1A 96 01 0B 12 1C 08 AC 00 0E 11 41 30 31 14 E3 (offset 243)

ems-esp:$ read 10 12
001+17:39:53.192 N 12: [emsesp] Thermostat(0x10) -> Me(0x0B), RCErrorMessage(0x12), data: <empty>

ems-esp:$ read 10 A2
001+17:39:58.592 N 13: [emsesp] Thermostat(0x10) -> Me(0x0B), RCError(0xA2), data: <empty>

@MichaelDvP
Copy link
Contributor

Thanks, so it's the 0xC2, that is not broadcasted, maybe because it is a very long telegram.

@proddy What do you think, set it to fetch? It's a quick solution, but making a lot of bus-traffic.
Or we can try to register the 0xBF actual error message, this is sent on error and on error end, making the logging in 0xC2.
We can add a simple logic to read the errorlog 0xC2 only if we receive a 0xBF:

// 0xBF
void Boiler::process_ErrorMessage(std::shared_ptr<const Telegram> telegram) {
    EMSESP::send_read_request(0xC2, device_id()); // read last errorcode
}

@proddy
Copy link
Contributor

proddy commented Mar 30, 2022

yup, i like that approach

@MichaelDvP
Copy link
Contributor

@pypb If you have sometimes errors, please test this approach, I have the actual dev with this addition here. If it works we can merge to official. My boiler does not have the C2 telegram, I can not test by pulling a sensor or something like that.
If coming from 3.3.x you have to reload the page in browser after update.

@giovanne123
Copy link
Author

currently on v3.3.1b0:

if I'm not too late, the output from my Buderus GB132 EMS:
looks different, or?

ems-esp32:$ read 8 10
047+16:57:46.319 N 0: [emsesp] Boiler(0x08) -> Me(0x0B), UBAErrorMessage1(0x10), data: 31 43 00 D2 96 03 08 0E 26 00 00 00
ems-esp32:$ read 8 11
047+16:58:08.438 N 1: [emsesp] Boiler(0x08) -> Me(0x0B), UBAErrorMessage2(0x11), data: 32 46 01 04 96 02 0D 0D 25 00 00 00
ems-esp32:$ read 8 c2
047+16:58:23.021 N 2: [emsesp] Boiler(0x08) -> Me(0x0B), UBAErrorMessage3(0xC2), data: <empty>
ems-esp32:$ read 10 12
047+16:58:35.900 N 3: [emsesp] Thermostat(0x10) -> Me(0x0B), RCErrorMessage(0x12), data: 41 33 03 30 95 03 11 19 1A 00 01 21 41 31 03 30 94 0A 09 12 18 00 90 11 41 33 03
047+16:58:36.391 N 4: [emsesp] Thermostat(0x10) -> Me(0x0B), RCErrorMessage(0x12), data: 33 03 30 94 0A 09 12 12 00 96 21 41 33 03 30 94 0A 11 11 0C 03 C5 21 (offset 25)
ems-esp32:$ read 10 A2
047+16:58:47.727 N 5: [emsesp] Thermostat(0x10) -> Me(0x0B), RCError(0xA2), data: 00 00 00 00 00 00 00 00 00 00

I will test your approach, but currently the heating/boiler is running very well without errors ;-)

@pypb
Copy link

pypb commented Mar 30, 2022

@pypb If you have sometimes errors, please test this approach, I have the actual dev with this addition here. If it works we can merge to official. My boiler does not have the C2 telegram, I can not test by pulling a sensor or something like that. If coming from 3.3.x you have to reload the page in browser after update.

I've updated and it works as intended. I provoked an error code by cutting power to the outdoor unit and the error code was published to MQTT within a few seconds. When the error cleared that was updated as well.

Nice work! :)

@proddy
Copy link
Contributor

proddy commented Apr 1, 2022

great, closing this issue.

@proddy proddy closed this as completed Apr 1, 2022
@proddy proddy added this to the v3.4 milestone Apr 1, 2022
@proddy proddy added the enhancement New feature or request label Apr 1, 2022
@proddy proddy removed the question Question about something label Feb 19, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants