Closed OlliHein closed 2 years ago
Please go to help-page and download the debug info (not settings/customizations), and post it here. We need the product-id and telegrams. The log shows 3 telegrams from device 0x60. 0x054D seems to be Temperatures
00F5 00F7 8000 00D5 010F 01E5 8000 01DD 0000 8000
24.5 24.7 21.3 27.1 48.5 47.7
0x054E could be a status message, all valves off: 00 00 00 00 00 00
0x0550 could be settings: 00 FF 00 FF FF 00 0D 00 01 00 00 00 00 01 03 01 00 03 00 2D 19 C8 02 94 00 00 FF FF
For the temperatures note the temperatures shown in thermostat monitor screen and in terminal type read 60 54d
For the status telegrams you can use disgnostic menu, switch valves and check if and how telegram 0x54e changes.
For settings you have to change every setting for AM200 on the thermostat and check what changes in telegram 0x550.
With all this info we can add values/settings to emsesp.
@proddy : What device type? It is a special case of additional heating device, or in pos 10, as boiler replacement. I think best to add it as boiler and check for device-id 0x60? Like 0x70... for cascaded boilers.
PS: @proddy Could you make the debug info on help page with a large button? Nobody uses it. And maybe move the settings/customization-download to system->upload (rename tab to up/download) to avoid confusion on the help page?
@proddy : What device type? It is a special case of additional heating device, or in pos 10, as boiler replacement. I think best to add it as boiler and check for device-id 0x60? Like 0x70... for cascaded boilers.
Agree, let's add it to boiler
PS: @proddy Could you make the debug info on help page with a large button? Nobody uses it. And maybe move the settings/customization-download to system->upload (rename tab to up/download) to avoid confusion on the help page?
Both good ideas. I'll try and think of a name for the up/download tab
@MichaelDvP At first I attached debug info file. You are right, it is hard to find. BTW: I also put it into a zip file because .json is not supported as an attachment here ;)
Tomorrow I will investigate more time to find out values and status informations as you descibed. Thanks for such fast support ;)
BTW: I also put it into a zip file because .json is not supported as an attachment here ;)
Good point, we should rename to emsesp_info.json.txt
.
@MichaelDvP Here are the temperature definitions:
[telegram] Rx: 60 00 FF 00 04 4D 0103 0108 8000 00C6 0127 0205 8000 0200 0000 8000 6C
TB4 TR2 TA1 TR1 TB1 TB2* TB3
There are two 0x8000 I do not have connected. Should be TF1 and T1 *TB2 should be between TB1 and TB3 but it is also not connected in my installation
Pump detection is following in % (I used 0x55 to test)
[telegram] Rx: 60 00 FF 00 04 4E 55 01 C6
PR1
[emsesp] No telegram type handler found for ID 0x54E (src 0x60)
Values of valves are not so easy to detect. I can only set On or Off in test mode. AM200 will adjust to any valve position depending on temperatures.
Let us start with temperatures and pump. What do you think?
Ok, first test here: https://github.com/MichaelDvP/EMS-ESP32/releases We can do some iterations and renames and if all works i'll do a PR.
Wow, that's fast. I will try it. ;)
@MichaelDvP: I uploaded EMS-ESP version 3.4.2b3 but there is no change. Device is still "unknown" and no sensors detected.
From: MichaelDvP @.> Sent: Monday, July 18, 2022 8:14:02 PM To: emsesp/EMS-ESP32 @.> Cc: OlliHein @.>; Author @.> Subject: Re: [emsesp/EMS-ESP32] Add Buderus AM200 Support (Issue #573)
Ok, first test here: https://github.com/MichaelDvP/EMS-ESP32/releases We can do some iterations and renames and if all works i'll do a PR.
— Reply to this email directly, view it on GitHubhttps://github.com/emsesp/EMS-ESP32/issues/573#issuecomment-1188022407, or unsubscribehttps://github.com/notifications/unsubscribe-auth/A2C5WZ6GACPGJA2LYFZCVILVUWNGVANCNFSM53YSD72A. You are receiving this because you authored the thread.Message ID: @.***>
Ups, forgot that boilers have a special handling when detecting. Hopefully it works now.
Great, It works and I can read temperatures. I will try to check pump and values later. Where did you get the informations about valves?
Current device Data:
The MQTT topics are not unique:
I think it must be:
@MichaelDvP Can you check it please - thanks ;)
@OlliHein did you mark all those entries as favourites via the Customization page, or could this possibly be a new undiscovered bug?
I mark all needed entries as favourites and enable it for MQTT. I have curflowtemp twice in both boilers available but with different temperature values
@MichaelDvP I think the parent topic must be another one. The AM200 items are located at the default boiler not to the new alternative one.
The valves are not correct at the moment, i expect them in telegram 54E like pump in offset 0, and read offset 1,2,3 as bool. But i think some are mixing valves an use percent-states. You have to ckeck the right values/positions.
The flow temp is TB4/TR2, the en-manual says "system flow temp" and "system return temp", i thought it is the same as main boiler curflowtemp, but it seems they are different. I'll rename and take the names from the manual.
For mqtt it we can use a tag "hsa" (heating source alternative) like cascaded boilers (hs1-hs16) and heating circuits (hc1-hc4). This shows as json-nest in "boiler"-topic, or, if you choose non-nested format, as extra "boiler_hsa"-topic.
If it helps we can add the input to names i.e. "system flow temperature (TB4)", and/or use the input as mqtt-shortname: "tb4" instead of "sysflowtemp"?
I thought telegram 550 is settings, but it is broadcasted (uncommon for settings) and there are some values in manual like "set temp return" (65°C), "Set flow temp AHS" (75°C) ,etc i can not see. Try in terminal read 60 54F
, maybe there are some values. (try also 551).
I've updated my build.
TB4 and TR2 are the temperatures to control the VB1 valve as puffer bypass. TB4 should be the same as "system return temp".
The mqtt tag "hsa" is a good seperator to make the mqtt topic unique. See picture from mqtt explorer with the new EMS-ESP version you created. It works fine:
If it helps we can add the input to names i.e. "system flow temperature (TB4)", and/or use the input as mqtt-shortname: "tb4" instead of "sysflowtemp"? -> I think it is not nessessary
The valves are not correct at the moment, i expect them in telegram 54E like pump in offset 0, and read offset 1,2,3 as bool. But i think some are mixing valves an use percent-states. You have to ckeck the right values/positions. -> ok, I will check it next weekend
I thought telegram 550 is settings, but it is broadcasted (uncommon for settings) and there are some values in manual like "set temp return" (65°C), "Set flow temp AHS" (75°C) ,etc i can not see. Try in terminal read 60 54F, maybe there are some values. (try also 551). -> also next weekend
@MichaelDvP Currently it is hard to find out changes of status information in logfile. You already have a great method to post status information with MQTT available in EMS-ESP. I mean it should be easy to write telegram data from bus depending of the devices (i.e. 0x60) to MQTT as a topic. The value should be the hex stream. If we have this, it will be easy to change data on a terminal and I can be seen directly as changes in MQTT explorer. Wat do you think?
Emsesp has already a lot of tools to examine the bus, remember that emsesp is based on reverse engineering the bus.
Best to do from terminal with watch
and read
commands.
watch
affects also syslog and weblog and can also be set by API or mqtt.
If you like to read a specific telegram via mqtt, use topic system
with payload {"cmd":"send","data":"0B E0 FF 00 1B 04 4E"}
(same as read 60 54E
or call system send "0B E0 FF 1B 04 4E"
in terminal) and look at the topic response
in your mqtt-broker.
Yes, you are right, I hat to read documentation first. The terminal watch is a good way to examine bus data. I will try it this weekend. Send you an update if I have the missing data / information's.
@MichaelDvP Here are the values of both valves:
I set buffer bypass (VB1) to off in diagnostic menu:
000+21:20:58.702 N 362: [emsesp] Thermostat(0x10) -> Boiler(0x60), ?(0x054F), data: 00 (offset 3)
000+21:21:14.321 N 363: [emsesp] Thermostat(0x10) <- Boiler(0x60), ?(0x054F), length: 0x01 (offset 3)
000+21:21:14.342 N 364: [emsesp] Boiler(0x60) -> Thermostat(0x10), ?(0x054F), data: 00 (offset 3)
000+21:21:25.569 N 366: [emsesp] Boiler(0x60) -> All(0x00), AmTemperatures(0x054D), data: 00 F1 00 F4 80 00 00 DD 01 0C 01 CF 80 00 01 C4 00 00 80 00
000+21:21:25.771 N 367: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 00 00 00 00 00 00
000+21:21:26.454 N 368: [emsesp] Boiler(0x60) -> All(0x00), AmSettings(0x0550), data: 00 FF FF FF FF FF FF 00 02 00 00 00 00 00 03 00 00 03 00 2D 19 C8 02 94 00
000+21:21:26.654 N 369: [emsesp] Boiler(0x60) -> All(0x00), AmSettings(0x0550), data: 00 FF FF (offset 25)
I set buffer bypass (VB1) to open in diagnostic menu:
000+21:12:14.200 N 170: [emsesp] Thermostat(0x10) -> Boiler(0x60), ?(0x054F), data: 01 (offset 3)
000+21:12:15.413 N 171: [emsesp] Boiler(0x60) -> All(0x00), ?(0x054F), data: 01 (offset 3)
000+21:12:15.598 N 172: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 08 (offset 1)
000+21:12:17.514 N 173: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 03 (offset 5)
000+21:12:18.562 N 174: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 04 (offset 5)
000+21:12:20.153 N 176: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 06 (offset 5)
000+21:12:22.421 N 177: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 08 (offset 5)
000+21:12:24.176 N 178: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 0B (offset 5)
000+21:12:25.241 N 179: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 00 08 00 00 00 0C
000+21:12:25.486 N 180: [emsesp] Boiler(0x60) -> All(0x00), AmTemperatures(0x054D), data: 00 F1 00 F4 80 00 00 DD 01 0D 01 CF 80 00 01 C4 00 00 80 00
000+21:12:27.739 N 181: [emsesp] Boiler(0x60) -> All(0x00), AmSettings(0x0550), data: 00 FF FF FF FF FF FF 00 02 00 00 00 00 00 03 00 00 03 00 2D 19 C8 02 94 00
000+21:12:27.928 N 182: [emsesp] Boiler(0x60) -> All(0x00), AmSettings(0x0550), data: 00 FF FF (offset 25)
000+21:12:30.398 N 183: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 11 (offset 5)
000+21:12:32.761 N 184: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 13 (offset 5)
000+21:12:33.841 N 185: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 15 (offset 5)
000+21:12:35.862 N 187: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 17 (offset 5)
000+21:12:37.037 N 188: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 18 (offset 5)
000+21:12:37.896 N 189: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 19 (offset 5)
000+21:12:39.455 N 190: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 1B (offset 5)
000+21:12:41.199 N 191: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 1D (offset 5)
000+21:12:43.027 N 192: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 1F (offset 5)
000+21:12:44.426 N 193: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 21 (offset 5)
000+21:12:45.839 N 194: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 22 (offset 5)
000+21:12:47.296 N 195: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 24 (offset 5)
000+21:12:48.461 N 196: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 25 (offset 5)
000+21:12:49.649 N 197: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 26 (offset 5)
000+21:12:51.107 N 198: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 29 (offset 5)
000+21:12:51.884 N 199: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 29 (offset 5)
000+21:12:53.466 N 200: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 2B (offset 5)
000+21:12:55.201 N 201: [emsesp] Thermostat(0x10) <- Boiler(0x60), ?(0xF9), length: 0x11
000+21:12:55.275 N 202: [emsesp] Boiler(0x60) -> Thermostat(0x10), ?(0xF9), data: FF 04 4F 03 47 00 00 00 00 00 00 00 00 00 07 00 02 00 07 00 01
000+21:12:55.549 N 203: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 2D (offset 5)
000+21:12:55.732 N 204: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 2D (offset 5)
000+21:12:56.675 N 205: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 2E (offset 5)
000+21:12:59.593 N 206: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 31 (offset 5)
000+21:13:01.183 N 207: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 34 (offset 5)
000+21:13:02.016 N 208: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 34 (offset 5)
I set buffer bypass (VB1) to close in diagnostic menu:
000+21:13:46.792 N 245: [emsesp] Thermostat(0x10) -> Boiler(0x60), ?(0x054F), data: 02 (offset 3)
000+21:13:47.463 N 246: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 62 (offset 5)
000+21:13:47.652 N 247: [emsesp] Boiler(0x60) -> All(0x00), ?(0x054F), data: 02 (offset 3)
000+21:13:48.648 N 248: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 10 (offset 1)
000+21:13:48.832 N 249: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 61 (offset 5)
000+21:13:50.598 N 250: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 5F (offset 5)
000+21:13:51.758 N 251: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 5E (offset 5)
000+21:13:53.519 N 252: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 5C (offset 5)
000+21:13:54.376 N 253: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 5B (offset 5)
000+21:13:56.145 N 254: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 58 (offset 5)
000+21:13:57.061 N 255: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 58 (offset 5)
000+21:13:59.195 N 256: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 55 (offset 5)
000+21:14:01.203 N 257: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 53 (offset 5)
000+21:14:01.899 N 258: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 53 (offset 5)
000+21:14:03.126 N 259: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 51 (offset 5)
000+21:14:04.365 N 260: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 50 (offset 5)
000+21:14:05.649 N 261: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 4E (offset 5)
000+21:14:07.439 N 262: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 4C (offset 5)
000+21:14:08.144 N 263: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 4B (offset 5)
000+21:14:10.687 N 264: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 49 (offset 5)
000+21:14:12.074 N 265: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 48 (offset 5)
000+21:14:13.405 N 266: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 46 (offset 5)
000+21:14:15.831 N 267: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 43 (offset 5)
000+21:14:17.788 N 268: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 41 (offset 5)
000+21:14:19.995 N 270: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 3F (offset 5)
000+21:14:22.348 N 271: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 3C (offset 5)
000+21:14:24.283 N 272: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 39 (offset 5)
000+21:14:25.381 N 274: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 00 10 00 00 00 38
000+21:14:25.627 N 275: [emsesp] Boiler(0x60) -> All(0x00), AmTemperatures(0x054D), data: 00 F1 00 F4 80 00 00 DD 01 0D 01 CF 80 00 01 C4 00 00 80 00
000+21:14:27.830 N 276: [emsesp] Boiler(0x60) -> All(0x00), AmSettings(0x0550), data: 00 FF FF FF FF FF FF 00 02 00 00 00 00 00 03 00 00 03 00 2D 19 C8 02 94 00
000+21:14:28.025 N 277: [emsesp] Boiler(0x60) -> All(0x00), AmSettings(0x0550), data: 00 FF FF (offset 25)
000+21:14:29.175 N 278: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 34 (offset 5)
000+21:14:31.164 N 279: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 32 (offset 5)
I set AVE Valve (VR1) off in diagnostic menu
000+21:17:10.061 N 326: [emsesp] Thermostat(0x10) -> Boiler(0x60), ?(0x054F), data: 00 (offset 2)
000+21:17:25.209 N 328: [emsesp] Thermostat(0x10) <- Boiler(0x60), ?(0x054F), length: 0x01 (offset 2)
000+21:17:25.230 N 329: [emsesp] Boiler(0x60) -> Thermostat(0x10), ?(0x054F), data: 00 (offset 2)
000+21:17:25.734 N 330: [emsesp] Boiler(0x60) -> All(0x00), AmTemperatures(0x054D), data: 00 F1 00 F4 80 00 00 DD 01 0D 01 CF 80 00 01 C4 00 00 80 00
000+21:17:25.933 N 331: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 00 10 00 00 00 00
000+21:17:27.975 N 332: [emsesp] Boiler(0x60) -> All(0x00), AmSettings(0x0550), data: 00 FF FF FF FF FF FF 00 02 00 00 00 00 00 03 00 00 03 00 2D 19 C8 02 94 00
000+21:17:28.164 N 333: [emsesp] Boiler(0x60) -> All(0x00), AmSettings(0x0550), data: 00 FF FF (offset 25)
000+21:17:42.355 N 334: [emsesp] Boiler(0x60) -> All(0x00), ErrorMessage(0xBF), data: 60 E4 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
I set AVE Valve (VR1) open in diagnostic menu
000+21:22:48.534 N 376: [emsesp] Thermostat(0x10) -> Boiler(0x60), ?(0x054F), data: 01 (offset 2)
000+21:22:49.257 N 377: [emsesp] Boiler(0x60) -> All(0x00), ?(0x054F), data: 01 (offset 2)
000+21:22:50.286 N 378: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 02 (offset 1)
000+21:22:50.468 N 379: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 02 (offset 4)
000+21:22:51.676 N 380: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 03 (offset 4)
000+21:22:53.115 N 381: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 05 (offset 4)
000+21:22:54.195 N 382: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 06 (offset 4)
000+21:22:55.587 N 383: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 07 (offset 4)
000+21:22:56.548 N 384: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 08 (offset 4)
000+21:22:58.741 N 385: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 0B (offset 4)
000+21:22:59.470 N 386: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 0C (offset 4)
000+21:23:00.265 N 387: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 0D (offset 4)
000+21:23:02.017 N 388: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 0E (offset 4)
000+21:23:02.727 N 389: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 0F (offset 4)
000+21:23:04.648 N 390: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 11 (offset 4)
000+21:23:05.463 N 391: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 12 (offset 4)
000+21:23:06.927 N 392: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 13 (offset 4)
000+21:23:07.821 N 393: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 15 (offset 4)
000+21:23:09.374 N 394: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 17 (offset 4)
000+21:23:10.605 N 395: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 18 (offset 4)
000+21:23:12.038 N 396: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 19 (offset 4)
000+21:23:13.815 N 397: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 1B (offset 4)
000+21:23:13.998 N 398: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 1B (offset 4)
000+21:23:16.679 N 399: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 1F (offset 4)
000+21:23:19.018 N 400: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 21 (offset 4)
000+21:23:21.550 E 401: [telegram] Last Tx Read operation failed after 3 retries. Ignoring request: 0B 88 14 00 1B
000+21:23:22.001 N 402: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 24 (offset 4)
000+21:23:23.067 N 403: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 26 (offset 4)
000+21:23:24.964 N 404: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 27 (offset 4)
000+21:23:25.195 N 405: [emsesp] Boiler(0x60) -> All(0x00), AmTemperatures(0x054D), data: 00 F1 00 F4 80 00 00 DD 01 0C 01 CF 80 00 01 C4 00 00 80 00
000+21:23:25.995 N 406: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 00 02 00 00 29 00
000+21:23:26.264 N 407: [emsesp] Boiler(0x60) -> All(0x00), AmSettings(0x0550), data: 00 FF FF FF FF FF FF 00 02 00 00 00 00 00 03 00 00 03 00 2D 19 C8 02 94 00
000+21:23:27.024 N 408: [emsesp] Boiler(0x60) -> All(0x00), AmSettings(0x0550), data: 00 FF FF (offset 25)
000+21:23:27.206 N 409: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 2B (offset 4)
000+21:23:29.392 N 410: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 2D (offset 4)
000+21:23:29.575 N 411: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 2D (offset 4)
000+21:23:30.651 N 412: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 2E (offset 4)
000+21:23:32.673 N 413: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 30 (offset 4)
000+21:23:33.734 N 414: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 31 (offset 4)
000+21:23:36.290 N 415: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 35 (offset 4)
000+21:23:38.909 N 416: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 37 (offset 4)
000+21:23:39.711 E 417: [telegram] Last Tx Read operation failed after 3 retries. Ignoring request: 0B 88 26 00 1B
000+21:23:40.238 N 418: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 39 (offset 4)
000+21:23:41.191 N 419: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 3A (offset 4)
000+21:23:42.164 N 420: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 3B (offset 4)
000+21:23:43.676 N 421: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 3D (offset 4)
000+21:23:45.744 N 422: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 3F (offset 4)
000+21:23:46.891 N 423: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 40 (offset 4)
I set AVE Valve (VR1) close in diagnostic menu
000+21:24:15.890 N 445: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 60 (offset 4)
000+21:24:16.632 N 446: [emsesp] Thermostat(0x10) -> Boiler(0x60), ?(0x054F), data: 02 (offset 2)
000+21:24:18.011 N 447: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 60 (offset 4)
000+21:24:18.194 N 448: [emsesp] Boiler(0x60) -> All(0x00), ?(0x054F), data: 02 (offset 2)
000+21:24:18.379 N 449: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 04 (offset 1)
000+21:24:19.674 N 450: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 5E (offset 4)
000+21:24:20.762 N 451: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 5D (offset 4)
000+21:24:21.903 N 453: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 5C (offset 4)
000+21:24:23.824 N 454: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 59 (offset 4)
000+21:24:24.905 N 455: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 58 (offset 4)
000+21:24:25.142 N 456: [emsesp] Boiler(0x60) -> All(0x00), AmTemperatures(0x054D), data: 00 F1 00 F4 80 00 00 DD 01 0C 01 CF 80 00 01 C4 00 00 80 00
000+21:24:26.256 N 457: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 00 04 00 00 56 00
000+21:24:26.530 N 458: [emsesp] Boiler(0x60) -> All(0x00), AmSettings(0x0550), data: 00 FF FF FF FF FF FF 00 02 00 00 00 00 00 03 00 00 03 00 2D 19 C8 02 94 00
000+21:24:27.534 N 459: [emsesp] Boiler(0x60) -> All(0x00), AmSettings(0x0550), data: 00 FF FF (offset 25)
000+21:24:27.723 N 460: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 55 (offset 4)
000+21:24:29.081 N 461: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 53 (offset 4)
000+21:24:30.983 N 462: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 52 (offset 4)
000+21:24:31.997 N 463: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 51 (offset 4)
000+21:24:33.025 N 465: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 4E (offset 4)
000+21:24:34.781 N 466: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 4D (offset 4)
000+21:24:35.822 N 467: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 4C (offset 4)
000+21:24:38.593 N 468: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 49 (offset 4)
000+21:24:41.144 N 469: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 45 (offset 4)
000+21:24:42.285 N 470: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 44 (offset 4)
000+21:24:44.293 N 472: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 42 (offset 4)
000+21:24:45.188 N 473: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 41 (offset 4)
000+21:24:46.163 N 474: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 40 (offset 4)
000+21:24:48.540 N 475: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 3E (offset 4)
000+21:24:52.252 N 476: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 39 (offset 4)
000+21:24:53.751 N 477: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 38 (offset 4)
000+21:24:55.097 N 478: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 36 (offset 4)
000+21:24:57.914 N 479: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 34 (offset 4)
000+21:24:59.021 N 480: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 33 (offset 4)
000+21:25:00.413 N 481: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 30 (offset 4)
000+21:25:02.039 N 482: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 2E (offset 4)
000+21:25:02.858 N 483: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 2E (offset 4)
000+21:25:04.887 N 484: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 2C (offset 4)
000+21:25:05.075 N 485: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 2B (offset 4)
000+21:25:06.929 N 486: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 2A (offset 4)
000+21:25:08.554 N 487: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 27 (offset 4)
000+21:25:09.486 N 488: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 26 (offset 4)
000+21:25:10.376 N 489: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 25 (offset 4)
000+21:25:11.946 N 490: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 24 (offset 4)
000+21:25:12.762 N 491: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 23 (offset 4)
000+21:25:14.220 N 492: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 21 (offset 4)
000+21:25:15.625 N 493: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 20 (offset 4)
000+21:25:18.595 N 494: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 1C (offset 4)
000+21:25:19.888 N 495: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 1B (offset 4)
000+21:25:20.948 N 496: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 1A (offset 4)
000+21:25:22.047 N 497: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 18 (offset 4)
000+21:25:23.003 N 499: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 18 (offset 4)
000+21:25:24.201 N 500: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 16 (offset 4)
000+21:25:25.373 N 501: [emsesp] Boiler(0x60) -> All(0x00), AmTemperatures(0x054D), data: 00 F1 00 F4 80 00 00 DD 01 0C 01 CF 80 00 01 C4 00 00 80 00
000+21:25:25.573 N 502: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 00 04 00 00 15 00
000+21:25:26.430 N 503: [emsesp] Boiler(0x60) -> All(0x00), AmSettings(0x0550), data: 00 FF FF FF FF FF FF 00 02 00 00 00 00 00 03 00 00 03 00 2D 19 C8 02 94 00
000+21:25:26.626 N 504: [emsesp] Boiler(0x60) -> All(0x00), AmSettings(0x0550), data: 00 FF FF (offset 25)
000+21:25:28.173 N 505: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 11 (offset 4)
000+21:25:29.969 N 506: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 10 (offset 4)
000+21:25:30.958 N 508: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 0F (offset 4)
000+21:25:31.998 N 509: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 0E (offset 4)
000+21:25:33.919 N 510: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 0C (offset 4)
000+21:25:34.981 N 511: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 0B (offset 4)
000+21:25:37.293 N 513: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 07 (offset 4)
000+21:25:39.872 N 514: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 05 (offset 4)
000+21:25:41.038 N 515: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 03 (offset 4)
000+21:25:42.008 N 516: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 03 (offset 4)
000+21:25:43.921 N 518: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 01 (offset 4)
000+21:25:44.778 N 519: [emsesp] Boiler(0x60) -> All(0x00), AmStatus(0x054E), data: 00 (offset 4)
Thx, so we have a telgram 0x54F for settings, please use read 60 54F
to get the whole telegram.
In statusMessage 0x54E we have now in offset: 0: pumpMod (percent) 1: bitfield: 01-pump on, 02 -VR1 opening, 04-VR1 closing, 08-VB1 opening, 10-VB1 closing 4: VR1 percent open 5: VB1 percent open message 0x54E is only 6 bytes long, so only offsets 2/3 missing, i think for VR2 and OA
and in 0x54F commands for 2: VR1: 0-stop, 1-open, 2-close 3: VB1: 0-stop, 1-open. 2-close
I think the main information to show in ems-esp are the percent values for pump and valves. Is it usefull also to add entities for opening/closing and pump on/off? Is there a usecase for setting the valves via ems-esp? I think in normal operation the valves are set by module depending on temperature settings and manual setting will be overwritten. For tweaking the heating it is imo more usefull to find and manipulate the values of "set return temp", "boiler release wait time" and "Hyst".
Is it usefull also to add entities for opening/closing and pump on/off?
I think also the percent values are enought. 0=close; >1-99 = opening; 100=open For the pump is also clear 0=off; >1 - 100 = running
Is there a usecase for setting the valves via ems-esp?
I don't think so and I do not need it, AM200 should control valves.
Did you add the new valves informations to the new boiler device? I miss the data in last update v3.4.2b4? There are also entries of:
Did you add the new valves informations to the new boiler device? I miss the data in last update v3.4.2b4?
I have not updated yet, i'm waiting for the complete 54F telegram.
There are also entries of: collector shutdown cyl heated
Strange, these are from solar class, don't know howthey came to boiler, maybe something from browser cache?
@MichaelDvP here are the state settings from telegram 54F:
ems-esp:$ read 60 54f
001+00:49:45.584 I 2: [emsesp] Boiler(0x60) -> Me(0x0B), ?(0x054F), data: 08 00 00 00 00 00 00
AA BB CC DD EE FF GG
ems-esp:$ read 60 54f AA=AHS return pump in % BB= CC=AHS mixer return rise: off(00), open(01), closed(02) DD=Mixer buffer bypass: of(00), open(01), closed(02) EE= FF= GG=Boiler blocking: 0ff(0),On(01)
and there is another telegram 54C for configuration settings:
000+22:36:33.419 N 63: [emsesp] Me(0x0B) <- Boiler(0x60), ?(0x054C), length: 0x20
000+22:36:33.534 I 64: [emsesp] Boiler(0x60) -> Me(0x0B), ?(0x054C), data: 00 01 01 00 01 00 41 4B 00 5A 00 5A 00 01 05 3C 00 00 5A 00 01 23 00
BB FF JJ DD CC GG II KK AA PP MM NN LL EE
AA=Alternate heat source activation: No(00),Yes(01) BB=Relay output config: Aus(00)/Keelbypass(01) CC=Buffer primary pump->Config pump: No(00),Yes(01)
Buffer primary pump (PR1) DD=Output for pump: On/Off(00),PWM(01),PWM invers(02) EE=Min output pump (%)
Mixer return AHS (VR1) FF=AHS return temp rise: No(00),Yes(01) GG=Set temp return (°C) HH=Mixer run time (s)
Buffer II=Set flow temp AHS (°C) JJ=Puffer bypass: No(00), Mischer(01), Ventil(02) KK=Bypass mixer run time: [time] (s) LL=Konfig WW-Speicher Monovalent(01), Bivalent(02)
Blocking mode MM=Config htg. blocking mode: No(00),Automatic(01),Always block02) NN=Config of block terminal: NO(00), NC(01) OO=Hyst. for bolier block (K) PP=Boiler release wait time
Have fun implementing it ;)
Strange, these are from solar class, don't know howthey came to boiler, maybe something from browser cache? Yes, you are right it was the cache :(
Nice findings, good work. So 54F is only testing mode and 54C are settings. It will take some days to implement all with commands. Im missing the positions of HH (maybe one of th 5A in offset 11 or 18) and OO (default is 5 deg, so i think offset 14). The mixer runtime default in manual is 120s in range 0..600, there must be a factor, or it is a 16 bit value: KK pos 8/9 and HH pos 10,11? Your setting is 90s (5A) for HH and KK, right?
First implementation with the mentioned assumptions is on my GH. Please check.
Hi @MichaelDvP , Sorry for the delay, I was bussy this week. I forgot to write positions for HH and OO Here are a corrected output of values:
Boiler(0x60) -> Me(0x0B), ?(0x054C), data: 00 01 01 00 01 00 41 4B 00 5A 00 5A 00 01 05 3C 00 00 5A 00 01 23 00
BB FF JJ DD CC GG II HA HH KK AA OO PP MM NN LL EE
KK pos 8/9 and HH pos 10,11? Your setting is 90s (5A) for HH and KK, right?
-> I corrected settings of HH, KK and OO. I did a mistake. Yes, my setting of (HH and KK) are both 90s
I updated my ems-esp with new version and it look nice with your current implementation ;)
HA HH
00 5A = 90s
01 30 = 304s
01 CC = 460s
02 55 = 597s
Let us coninue - thx
KK pos 8/9 and HH pos 10,11? Your setting is 90s (5A) for HH and KK, right?
Now you have marked HH to (8/)9 and KK to (10/)11, Check which is first.
Yes KK is pos 8/9 and HH is pos 10/11 I cheked it twice. It was a mistake in my first documentation. My settings are 90s (5A) for HH and KK
@MichaelDvP I updated following post with lager data to show the overflow of a 255s value https://github.com/emsesp/EMS-ESP32/issues/573#issuecomment-1205458141
@MichaelDvP Do you have enough information to bring AM200 running? If you need more data I can update you.
@OlliHein I've merged Michael's AM200 additions to the latest dev branch/release.
Requirement: Im using GB172 together with SM200, RC310 and AM200. Currently AM200 is not available and cannot be detected.
System: EMS-ESP Version: v3.4.1 Device (Platform / SDK): ESP32 / v3.3.5-1-g85c43024c Heap (Free / Max Alloc): 118.816 / 62.172 bytes Flash Chip (Size / Speed): 4.194.304 bytes / 40 MHz File System (Used / Total): 20.480 / 327.680 bytes (307.200 bytes free)
Devices and Sensors: Type;Description;;Entries Boiler;GBx72/Trendline/Cerapur/Greenstar Si/27i;67 Thermostat;RC300/RC310/Moduline 3000/1010H/CW400/Sense II;34 Solar;SM200/MS200;42 Gateway;KM200/MB LAN 2;0 Unknown;unknown;0 Sensors;Attached EMS-ESP Sensors;0
As you can see there is an unknown device detected, should be AM200
Environment: Im using picture 23 from Buderus "Installation instructions for contractors". If you need PDF, I can give you a attachment. But I think you already have it or can download it. As you can see in picture 23 I am using following sensors, pumps and valves: Sensors: TA1, TR1, TR2, TB4, TB1, TB3 Valves: VR1, VB1 Pump: PR1
I can give you all the data and values of the running system to better identify the devices.
At first I attached the current logfile of EMS-PSP32: log_AM200.txt
with more data: log2_AM200.txt
and also picture 23 from Buderus installation guide:
Hope that will you give a first overview of my running system.
It will be great if AM200 can be integrated in your system, thanks for dooing that ;)
Thanks Oliver