Skip to content
This repository has been archived by the owner on Oct 4, 2021. It is now read-only.

Wrong and random values from Boiler #23

Closed
darookee opened this issue Jan 2, 2019 · 116 comments
Closed

Wrong and random values from Boiler #23

darookee opened this issue Jan 2, 2019 · 116 comments
Labels
bug Something isn't working

Comments

@darookee
Copy link

darookee commented Jan 2, 2019

Bug description
I get unrealistic and seemingly random values from the boiler.

Here a few examples:

(16:08:29)   Return temperature: 67.0 C
...
(16:08:29)   Flame current: 5.8 uA
(16:08:29)   System pressure: 1.1 bar
(16:08:29)   Current System Service Code: =H
(16:08:29)   Outside temperature: 4.4 C
(16:08:29)   Boiler temperature: ? C
(16:08:29)   Pump modulation: 85 %
---
(16:08:46)   Return temperature: 12.8 C
...
(16:08:46)   Flame current: 12.8 uA
(16:08:46)   System pressure: 0.0 bar
(16:08:46)   Current System Service Code:
(16:08:46)   Outside temperature: 4.4 C
(16:08:46)   Boiler temperature: ? C
(16:08:46)   Pump modulation: 85 %
---
(16:10:13)   Return temperature: 1.7 C
...
(16:10:13)   Flame current: -1664.0 uA
(16:10:13)   System pressure: 12.8 bar
(16:10:13)   Current System Service Code:
(16:10:13)   Outside temperature: 4.4 C
(16:10:13)   Boiler temperature: ? C
(16:10:13)   Pump modulation: 85 %

Device information
I use a Buderus Logamax plus GB192-25 and the integrated thermostat. Here are a few 0x19 and 0x18 I got:

Boiler -> all, type 0x18 telegram: 08 00 18 00 54 03 1F 64 00 00 01 64 40 80 00 02 5F 02 DC 00 00 0B 30 41 01 31 00 01 00 00 00 (CRC=7F, #data=27)
Boiler -> all, type 0x18 telegram: 08 00 18 1B 00 00 00 00 00 00 00 00 00 00 00 (CRC=BF, #data=11)
Boiler -> all, type 0x18 telegram: 08 00 18 00 54 03 1F 64 00 00 01 44 40 80 00 02 5F 02 DB 00 00 0B 30 41 01 31 00 01 00 00 00 (CRC=BC, #data=27)
Boiler -> all, type 0x18 telegram: 08 00 18 1B 00 00 00 00 00 00 00 00 00 00 00 (CRC=BF, #data=11)
Boiler -> all, type 0x19 telegram: 08 00 19 00 00 2C 80 00 80 00 00 00 00 00 00 1E 8E 01 14 E1 00 00 00 00 B5 81 00 0C CF 80 00 (CRC=AC, #data=27)
Boiler -> all, type 0x1C telegram: 08 00 1C 00 92 06 0F 05 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (CRC=1B, #data=25)
@darookee darookee added the bug Something isn't working label Jan 2, 2019
@proddy
Copy link
Collaborator

proddy commented Jan 2, 2019

Looks like with your boiler it broadcasts sometimes with an offset. The 4th byte is the offset which I assumed is 0 always for broadcast but I also see '1B' too. I'll modify the code. Please see if that helped.

@darookee
Copy link
Author

darookee commented Jan 2, 2019

After flashing 1.2.1 I don't get any values at all as the boiler is not detected. Can I force it somehow? I tried pressing D but this gives the following:

l 4
System Logging set to Verbose
(00:06:18) 0x10 -> 0x08, type 0x23 telegram: 10 08 23 00 38 64 64 (CRC=33), #data=3
D
(00:06:19) 0x08 -> all, type 0x18 telegram: 08 00 18 00 38 02 41 64 0B 09 01 25 40 80 00 02 73 01 A1 00 30 0D 2D 48 00 C8 00 02 18 00 00 (CRC=65), #data=27

Thermostat set to disabled
Boiler set to disabled
Scanning EMS bus for devices. This may take a few seconds.
Boiler not initialized, queuing the read request.
Requesting type Version(0x02) from dest 0x08
Boiler not initialized, queuing the read request.
Requesting type Version(0x02) from dest 0x08
Boiler not initialized, queuing the read request.
Requesting type Version(0x02) from dest 0x09
Boiler not initialized, queuing the read request.
Requesting type Version(0x02) from dest 0x21
Boiler not initialized, queuing the read request.
Requesting type Version(0x02) from dest 0x11
Boiler not initialized, queuing the read request.
Requesting type Version(0x02) from dest 0x10
Boiler not initialized, queuing the read request.
Requesting type Version(0x02) from dest 0x17
Boiler not initialized, queuing the read request.
Requesting type Version(0x02) from dest 0x10
Boiler not initialized, queuing the read request.
Requesting type Version(0x02) from dest 0x10
Boiler not initialized, queuing the read request.
Requesting type Version(0x02) from dest 0x18
(00:06:19) 0x08 -> all, type 0x18 telegram: 08 00 18 1B 00 00 00 00 00 00 00 00 00 00 00 (CRC=BF), #data=11
(00:06:19) 0x10 -> all, type 0x06 telegram: 10 00 06 00 13 01 16 02 08 29 02 00 10 FF 00 (CRC=C2), #data=11
(00:06:19) 0x08 -> all, type 0x2A telegram: 08 00 2A 00 00 00 00 00 00 00 00 00 93 00 93 80 00 00 80 00 80 00 80 00 00 (CRC=82), #data=21
(00:06:20) 0x08 -> all, type 0x34 telegram: 08 00 34 00 3C 02 73 02 73 A1 00 01 03 00 00 5F 88 00 11 C7 00 80 00 (CRC=0A), #data=19
(00:06:20) 0x08 -> all, type 0x18 telegram: 08 00 18 00 38 02 42 64 0B 09 01 25 40 80 00 02 73 01 A1 00 2E 0D 2D 48 00 C8 00 02 18 00 00 (CRC=C0), #data=27
(00:06:20) 0x08 -> all, type 0x18 telegram: 08 00 18 1B 00 00 00 00 00 00 00 00 00 00 00 (CRC=BF), #data=11
(00:06:22) 0x08 -> all, type 0x18 telegram: 08 00 18 00 38 02 42 64 0B 09 01 25 40 80 00 02 73 01 A1 00 2F 0E 2D 48 00 C8 00 02 18 00 00 (CRC=F2), #data=27
(00:06:22) 0x08 -> all, type 0x18 telegram: 08 00 18 1B 00 00 00 00 00 00 00 00 00 00 00 (CRC=BF), #data=11
(00:06:22) Sending read of type 0x02 to 0x08: telegram: 0B 88 02 00 63 (CRC=FF), #data=1
(00:06:22) 0x08 -> all, type 0x07 telegram: 08 00 07 00 0B 01 00 00 00 00 00 00 00 00 00 00 00 (CRC=F6), #data=13
(00:06:23) Sending read of type 0x02 to 0x08: telegram: 0B 88 02 00 63 (CRC=FF), #data=1
(00:06:23) 0x10 -> 0x08, type 0x1A telegram: 10 08 1A 00 38 64 64 (CRC=88), #data=3
(00:06:23) 0x10 -> all, type 0xFF telegram: 10 00 FF 00 01 67 00 00 (CRC=AB), #data=4
(00:06:23) 0x10 -> all, type 0xFF telegram: 10 00 FF 00 02 1D 00 00 0A 07 (CRC=02), #data=6
(00:06:23) 0x08 -> all, type 0x18 telegram: 08 00 18 00 38 02 43 64 0B 09 01 25 40 80 00 02 73 01 A1 00 2F 0E 2D 48 00 C8 00 02 18 00 00 (CRC=A5), #data=27
(00:06:23) 0x08 -> all, type 0x18 telegram: 08 00 18 1B 00 00 00 00 00 00 00 00 00 00 00 (CRC=BF), #data=11
(00:06:24) 0x08 -> all, type 0x18 telegram: 08 00 18 00 38 02 43 64 0B 09 01 25 40 80 00 02 73 01 A1 00 30 0E 2D 48 00 C8 00 02 18 00 00 (CRC=9D), #data=27
(00:06:24) Sending read of type 0x02 to 0x08: telegram: 0B 88 02 00 63 (CRC=FF), #data=1
(00:06:24) 0x08 -> all, type 0x18 telegram: 08 00 18 1B 00 00 00 00 00 00 00 00 00 00 00 (CRC=BF), #data=11

@proddy
Copy link
Collaborator

proddy commented Jan 2, 2019

That is strange. I'll modify the logging slightly and check it in tonight. Then please send this 'r 0b 88 02 00 63' which will return the version from the boiler.

@darookee
Copy link
Author

darookee commented Jan 3, 2019

After updating I sent the raw telegram, here is the log output:

r 0b 88 02 00 63
(00:01:08) Sending read of type 0x18 to 0x00: telegram: 0B 80 18 00 63 (CRC=D7), #data=1
(00:01:08) Sending read of type 0x18 to 0x00: telegram: 0B 80 18 00 63 (CRC=D7), #data=1
(00:01:08) 0x08 -> all, type 0x18 telegram: 08 00 18 00 54 03 3E 64 34 0A 11 65 40 80 00 02 51 02 D4 00 FF 0B 3D 48 00 C9 00 03 18 00 00 (CRC=FC), #data=27
(00:01:09) 0x08 -> all, type 0x18 telegram: 08 00 18 1B 00 00 00 00 00 00 00 00 00 00 00 (CRC=BF), #data=11
(00:01:09) 0x08 -> all, type 0x2A telegram: 08 00 2A 00 00 00 00 00 00 00 00 01 57 01 58 80 00 00 80 00 80 00 80 00 00 (CRC=93), #data=21
(00:01:09) Sending read of type 0x19 to 0x00: telegram: 0B 80 19 00 63 (CRC=D3), #data=1
(00:01:09) 0x08 -> all, type 0x34 telegram: 08 00 34 00 3C 02 51 02 51 89 00 01 03 00 00 5F C2 00 11 D2 00 80 00 (CRC=35), #data=19
(00:01:10) 0x08 -> all, type 0x07 telegram: 08 00 07 00 0B 01 00 00 00 00 00 00 00 00 00 00 00 (CRC=F6), #data=13
(00:01:10) 0x08 -> all, type 0x18 telegram: 08 00 18 00 54 03 3F 64 34 0A 11 65 40 80 00 02 52 02 D5 01 00 0B 3D 48 00 C9 00 03 18 00 00 (CRC=2C), #data=27
(00:01:10) 0x08 -> all, type 0x18 telegram: 08 00 18 1B 00 00 00 00 00 00 00 00 00 00 00 (CRC=BF), #data=11
(00:01:10) Sending read of type 0x19 to 0x00: telegram: 0B 80 19 00 63 (CRC=D3), #data=1
(00:01:11) Sending read of type 0x33 to 0x00: telegram: 0B 80 33 00 63 (CRC=7B), #data=1
(00:01:11) Sending read of type 0x33 to 0x00: telegram: 0B 80 33 00 63 (CRC=7B), #data=1
(00:01:12) Sending read of type 0x14 to 0x00: telegram: 0B 80 14 00 63 (CRC=E7), #data=1
(00:01:12) Sending read of type 0x14 to 0x00: telegram: 0B 80 14 00 63 (CRC=E7), #data=1
(00:01:13) Sending raw telegram: 0B 88 02 00 63 (CRC=FF), #data=1
(00:01:14) 0x08 -> all, type 0x07 telegram: 08 00 07 00 03 01 00 00 00 00 00 00 00 00 00 00 00 (CRC=DA), #data=13
(00:01:17) 0x08 -> all, type 0x18 telegram: 08 00 18 00 54 03 48 64 34 0A 11 65 40 80 00 02 52 02 DC 00 FD 0B 3D 48 00 C9 00 03 18 00 00 (CRC=EA), #data=27
(00:01:17) 0x08 -> all, type 0x18 telegram: 08 00 18 1B 00 00 00 00 00 00 00 00 00 00 00 (CRC=BF), #data=11
(00:01:18) 0x08 -> all, type 0x18 telegram: 08 00 18 00 54 03 4A 64 34 0A 11 65 40 80 00 02 53 02 DC 00 FF 0B 3D 48 00 C9 00 03 18 00 00 (CRC=9A), #data=27
(00:01:18) 0x08 -> all, type 0x18 telegram: 08 00 18 1B 00 00 00 00 00 00 00 00 00 00 00 (CRC=BF), #data=11
(00:01:18) 0x08 -> all, type 0x19 telegram: 08 00 19 00 00 19 80 00 80 00 00 00 00 55 00 1E D9 01 18 D2 00 00 00 00 B9 10 00 0D 07 80 00 (CRC=FA), #data=27
(00:01:19) 0x08 -> all, type 0x1C telegram: 08 00 1C 00 92 06 0F 05 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (CRC=1B), #data=25
(00:01:19) 0x08 -> all, type 0x2A telegram: 08 00 2A 00 00 00 00 00 00 00 00 01 57 01 56 80 00 00 80 00 80 00 80 00 00 (CRC=D9), #data=21
(00:01:19) 0x08 -> all, type 0x34 telegram: 08 00 34 00 3C 02 53 02 53 89 00 01 03 00 00 5F C2 00 11 D2 00 80 00 (CRC=A9), #data=19
(00:01:20) 0x08 -> all, type 0x07 telegram: 08 00 07 00 03 01 00 00 00 00 00 00 00 00 00 00 00 (CRC=DA), #data=13

I was not sure which lines were in response of the version request... :-|

@proddy
Copy link
Collaborator

proddy commented Jan 3, 2019

Can you try again with my latest version, 1.2.3

@darookee
Copy link
Author

darookee commented Jan 3, 2019

Sure:

l 4
System Logging set to Verbose
(00:00:32) 0x08 -> all, type 0x18 telegram: 08 00 18 00 54 02 DB 64 64 0A 11 65 40 80 00 02 1D 02 5D 01 55 0B 3D 48 00 C9 00 03 18 00 00 (CRC=9B), #data=27
(00:00:33) 0x08 -> all, type 0x18 telegram: 08 00 18 1B 00 00 00 00 00 00 00 00 00 00 00 (CRC=BF), #data=11
r 0b 88 02 00 63
(00:00:36) 0x08 -> all, type 0x18 telegram: 08 00 18 00 54 02 E6 64 64 0A 11 65 40 80 00 02 1D 02 65 01 55 0B 3D 48 00 C9 00 03 18 00 00 (CRC=D0), #data=27
(00:00:37) 0x08 -> all, type 0x18 telegram: 08 00 18 1B 00 00 00 00 00 00 00 00 00 00 00 (CRC=BF), #data=11
(00:00:37) Sending raw telegram: 0B 88 02 00 63 (CRC=FF), #data=1
(00:00:37) 0x08 -> all, type 0x19 telegram: 08 00 19 00 00 19 80 00 80 00 00 00 00 55 00 1E DF 01 19 0A 00 00 00 00 B9 44 00 0D 0C 80 00 (CRC=A2), #data=27
(00:00:37) 0x08 -> all, type 0x1C telegram: 08 00 1C 00 92 06 0F 05 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (CRC=1B), #data=25
(00:00:38) 0x08 -> all, type 0x2A telegram: 08 00 2A 00 00 00 00 00 00 00 00 02 39 02 39 80 00 00 80 00 80 00 80 00 00 (CRC=27), #data=21
(00:00:38) 0x08 -> all, type 0x34 telegram: 08 00 34 00 3C 02 1D 02 1D 89 00 01 03 00 00 5F C6 00 11 D3 00 80 00 (CRC=65), #data=19
(00:00:38) 0x08 -> all, type 0x07 telegram: 08 00 07 00 0B 01 00 00 00 00 00 00 00 00 00 00 00 (CRC=F6), #data=13
(00:00:38) 0x10 -> 0x08, type 0x23 telegram: 10 08 23 00 3A 64 00 (CRC=5F), #data=3
(00:00:38) 0x08 -> all, type 0x18 telegram: 08 00 18 00 54 02 EB 64 64 0A 11 65 40 80 00 02 1D 02 6A 01 54 0B 3D 48 00 C9 00 03 18 00 00 (CRC=94), #data=27
(00:00:39) 0x08 -> all, type 0x18 telegram: 08 00 18 1B 00 00 00 00 00 00 00 00 00 00 00 (CRC=BF), #data=11
(00:00:39) 0x08 -> all, type 0x07 telegram: 08 00 07 00 03 01 00 00 00 00 00 00 00 00 00 00 00 (CRC=DA), #data=13
(00:00:39) 0x08 -> all, type 0x18 telegram: 08 00 18 00 54 02 EF 64 64 0A 11 65 40 80 00 02 1D 02 6D 01 54 0B 3D 48 00 C9 00 03 18 00 00 (CRC=45), #data=27
(00:00:40) 0x08 -> all, type 0x18 telegram: 08 00 18 1B 00 00 00 00 00 00 00 00 00 00 00 (CRC=BF), #data=11
(00:00:43) 0x08 -> all, type 0x18 telegram: 08 00 18 00 54 02 FA 64 64 0A 11 65 40 80 00 02 1D 02 75 01 54 0B 3D 48 00 C9 00 03 18 00 00 (CRC=2E), #data=27
(00:00:44) 0x08 -> all, type 0x18 telegram: 08 00 18 1B 00 00 00 00 00 00 00 00 00 00 00 (CRC=BF), #data=11

@darookee
Copy link
Author

darookee commented Jan 3, 2019

I just saw that I can define the boiler type in my_config.h and tried that. Now I get the correct values :-)

  Selected flow temperature: 57 C
  Current flow temperature: 40.9 C
  Return temperature: 29.6 C

Just the thermostat seems to have troubles, the time is correct, but it does not display any of the other values. I'm not sure if I have an RC35, though. I just 'assumed' by reading the EMS wiki and knowing that I can set 'holiday mode', which seems to be a feature available only on the RC35...

Thermostat stats:
  Thermostat type: RC35 (or compatible [TypeID 0x10] Product ID:86
  Thermostat time is 15:38:07 3/1/2019
  Setpoint room temperature: ? C
  Current room temperature: ? C
  Mode is set to ?

@proddy
Copy link
Collaborator

proddy commented Jan 3, 2019

great. I added that feature for you, and others that will have the same problem until I've built up a library of EMS devices. I'm sure it must be published somewhere on the internet, just haven't found it yet so its all trial and error. So looks like you have an RC35 compatible, but they do differ between Budrus, Nefit, Sieger, Bosch etc. Can you do a 't 2' which will tell you the firmware version? Your thermostat may respond to different heating circuits. Then do a 't 41' (for an RC30) and a 't 3e' (for a RC35)

@darookee
Copy link
Author

darookee commented Jan 3, 2019

t 2:

t 2
Requesting type Version(0x02) from dest 0x10
(01:50:29) Thermostat -> all, type 0xFF telegram: 10 00 FF 0F 01 A5 02 D8 (CRC=A4), #data=4
(01:50:29) Thermostat -> all, type 0xFF telegram: 10 00 FF 0D 01 A5 01 6F (CRC=35), #data=4
(01:50:31) Sending read of type 0x02 to 0x10: telegram: 0B 90 02 00 63 (CRC=3F), #data=1
(01:50:31) Boiler -> all, type 0x07 telegram: 08 00 07 00 0B 01 00 00 00 00 00 00 00 00 00 00 00 (CRC=F6), #data=13
(01:50:31) Sending read of type 0x02 to 0x10: telegram: 0B 90 02 00 63 (CRC=3F), #data=1
(01:50:33) Boiler -> all, type 0x07 telegram: 08 00 07 00 03 01 00 00 00 00 00 00 00 00 00 00 00 (CRC=DA), #data=13
(01:50:33) Thermostat -> Boiler, type 0x23 telegram: 10 08 23 00 39 64 64 (CRC=37), #data=3

t 3e:

Requesting type RC35StatusMessage(0x3E) from dest 0x10
(01:51:06) Sending read of type 0x3E to 0x10: telegram: 0B 90 3E 00 63 (CRC=CF), #data=1
Calling schedule fetch of values from EMS devices..
Requesting type RC35StatusMessage(0x3E) from dest 0x10
Requesting type RC35Set(0x3D) from dest 0x10
Requesting type RCTime(0x06) from dest 0x10
Requesting type UBAMonitorFast(0x18) from dest 0x08
Requesting type UBAMonitorSlow(0x19) from dest 0x08
Requesting type UBAParameterWW(0x33) from dest 0x08
Requesting type UBATotalUptimeMessage(0x14) from dest 0x08
(01:51:06) Boiler -> all, type 0x07 telegram: 08 00 07 00 0B 01 00 00 00 00 00 00 00 00 00 00 00 (CRC=F6), #data=13
(01:51:06) Sending read of type 0x3E to 0x10: telegram: 0B 90 3E 00 63 (CRC=CF), #data=1
(01:51:07) Thermostat -> Boiler, type 0x1A telegram: 10 08 1A 00 39 64 64 (CRC=8C), #data=3
<--- UBASetPoints(0x1A) received
 SetPoint=57, hk_power=100 ww_power=100
(01:51:07) Thermostat -> all, type 0xFF telegram: 10 00 FF 00 01 67 00 00 (CRC=AB), #data=4
(01:51:07) Thermostat -> all, type 0xFF telegram: 10 00 FF 00 02 1D 00 00 0A 07 (CRC=02), #data=6
(01:51:07) Sending read of type 0x3E to 0x10: telegram: 0B 90 3E 00 63 (CRC=CF), #data=1
(01:51:08) Sending read of type 0x3D to 0x10: telegram: 0B 90 3D 00 63 (CRC=C3), #data=1
(01:51:08) Sending read of type 0x3D to 0x10: telegram: 0B 90 3D 00 63 (CRC=C3), #data=1
(01:51:09) Sending read of type 0x06 to 0x10: telegram: 0B 90 06 00 63 (CRC=2F), #data=1
(01:51:09) Sending read of type 0x06 to 0x10: telegram: 0B 90 06 00 63 (CRC=2F), #data=1
(01:51:10) Sending read of type 0x18 to 0x08: telegram: 0B 88 18 00 63 (CRC=97), #data=1
(01:51:10) Sending read of type 0x18 to 0x08: telegram: 0B 88 18 00 63 (CRC=97), #data=1
(01:51:10) Sending read of type 0x19 to 0x08: telegram: 0B 88 19 00 63 (CRC=93), #data=1
(01:51:11) Thermostat -> all, type 0x06 telegram: 10 00 06 00 13 01 11 03 26 2F 03 00 10 FF 00 (CRC=BE), #data=11
<--- RCTime(0x06) received
(01:51:11) Sending read of type 0x19 to 0x08: telegram: 0B 88 19 00 63 (CRC=93), #data=1
(01:51:12) Sending read of type 0x33 to 0x08: telegram: 0B 88 33 00 63 (CRC=3B), #data=1
(01:51:12) Sending read of type 0x33 to 0x08: telegram: 0B 88 33 00 63 (CRC=3B), #data=1
(01:51:12) Sending read of type 0x14 to 0x08: telegram: 0B 88 14 00 63 (CRC=A7), #data=1
(01:51:13) Sending read of type 0x14 to 0x08: telegram: 0B 88 14 00 63 (CRC=A7), #data=1
(01:51:14) Corrupt telegram: telegram: 0B 08 00 18 00 39 02 4E 64 0B 09 01 25 40 80 00 02 7C 01 97 00 31 0D 2D 48 00 C8 00 02 18 00 00 (CRC=55), #data=28
(01:51:14) Boiler -> all, type 0x18 telegram: 08 00 18 1B 00 00 00 00 00 00 00 00 00 00 00 (CRC=BF), #data=11

t 41:

Requesting type RC30StatusMessage(0x41) from dest 0x10
(01:51:55) Boiler -> all, type 0x2A telegram: 08 00 2A 00 00 00 00 00 00 00 00 00 93 00 93 80 00 00 80 00 80 00 80 00 00 (CRC=82), #data=21
(01:51:55) Boiler -> all, type 0x34 telegram: 08 00 34 00 3C 02 7B 02 7C A1 00 01 03 00 00 5F D7 00 11 D6 00 80 00 (CRC=A4), #data=19
<--- UBAMonitorWWMessage(0x34) received
(01:51:55) Boiler -> all, type 0x07 telegram: 08 00 07 00 03 01 00 00 00 00 00 00 00 00 00 00 00 (CRC=DA), #data=13
(01:51:56) Sending read of type 0x41 to 0x10: telegram: 0B 90 41 00 63 (CRC=2A), #data=1
(01:51:57) Sending read of type 0x41 to 0x10: telegram: 0B 90 41 00 63 (CRC=2A), #data=1
(01:51:57) Boiler -> all, type 0x07 telegram: 08 00 07 00 0B 01 00 00 00 00 00 00 00 00 00 00 00 (CRC=F6), #data=13
(01:51:58) Boiler -> all, type 0x07 telegram: 08 00 07 00 03 01 00 00 00 00 00 00 00 00 00 00 00 (CRC=DA), #data=13
(01:52:01) 0x09 -> Boiler, type 0x1A telegram: 09 08 1A 00 00 00 00 (CRC=D2), #data=3
(01:52:01) 0x09 -> Boiler, type 0x23 telegram: 09 08 23 00 00 00 00 (CRC=69), #data=3
(01:52:02) Thermostat -> Boiler, type 0x35 telegram: 10 08 35 00 11 11 (CRC=30), #data=2
(01:52:04) Boiler -> all, type 0x18 telegram: 08 00 18 00 39 02 57 64 0B 09 01 25 40 80 00 02 7B 01 97 00 2F 0E 2D 48 00 C8 00 02 18 00 00 (CRC=ED), #data=27
<--- UBAMonitorFast(0x18) received
(01:52:04) Boiler -> all, type 0x18 telegram: 08 00 18 1B 00 00 00 00 00 00 00 00 00 00 00 (CRC=BF), #data=11
<--- UBAMonitorFast(0x18) received
(01:52:04) Boiler -> all, type 0x2A telegram: 08 00 2A 00 00 00 00 00 00 00 00 00 93 00 92 80 00 00 80 00 80 00 80 00 00 (CRC=E6), #data=21
(01:52:04) Boiler -> all, type 0x34 telegram: 08 00 34 00 3C 02 7B 02 7B A1 00 01 03 00 00 5F D7 00 11 D6 00 80 00 (CRC=C6), #data=19
<--- UBAMonitorWWMessage(0x34) received
Publishing boiler data via MQTT
Calling schedule fetch of values from EMS devices..
Requesting type RC35StatusMessage(0x3E) from dest 0x10
Requesting type RC35Set(0x3D) from dest 0x10
Requesting type RCTime(0x06) from dest 0x10
Requesting type UBAMonitorFast(0x18) from dest 0x08
Requesting type UBAMonitorSlow(0x19) from dest 0x08
Requesting type UBAParameterWW(0x33) from dest 0x08
Requesting type UBATotalUptimeMessage(0x14) from dest 0x08
(01:52:06) Sending read of type 0x3E to 0x10: telegram: 0B 90 3E 00 63 (CRC=CF), #data=1
(01:52:06) Boiler -> all, type 0x07 telegram: 08 00 07 00 0B 01 00 00 00 00 00 00 00 00 00 00 00 (CRC=F6), #data=13
(01:52:07) Sending read of type 0x3E to 0x10: telegram: 0B 90 3E 00 63 (CRC=CF), #data=1
(01:52:07) Sending read of type 0x3D to 0x10: telegram: 0B 90 3D 00 63 (CRC=C3), #data=1
l (01:52:08) Sending read of type 0x3D to 0x10: telegram: 0B 90 3D 00 63 (CRC=C3), #data=1

@darookee
Copy link
Author

darookee commented Jan 3, 2019

I just noticed that tap water and central heating show up as off, which they are not. Or would this just be on when it is heating up?

  Hot tap water is off
  Central Heating is off

@proddy
Copy link
Collaborator

proddy commented Jan 3, 2019 via email

@darookee
Copy link
Author

darookee commented Jan 3, 2019

The results of U 0

System Logging set to Thermostat only
Doing a deep scan on all message types to the thermometer start at 0x%. Reboot ESP when finished.
> Scanning thermostat message type #0x00..
> Scanning thermostat message type #0x01..
> Scanning thermostat message type #0x02..
> Scanning thermostat message type #0x03..
> Scanning thermostat message type #0x04..
> Scanning thermostat message type #0x05..
> Scanning thermostat message type #0x06..
> Scanning thermostat message type #0x07..
> Scanning thermostat message type #0x08..
> Scanning thermostat message type #0x09..
(00:00:49) Thermostat -> Boiler, type 0x1A telegram: 10 08 1A 00 39 64 64 (CRC=8C), #data=3
 SetPoint=57, hk_power=100 ww_power=100
(00:00:49) Thermostat -> all, type 0xFF telegram: 10 00 FF 00 01 67 00 00 (CRC=AB), #data=4
(00:00:49) Thermostat -> all, type 0xFF telegram: 10 00 FF 00 02 1D 00 00 0A 07 (CRC=02), #data=6
> Scanning thermostat message type #0x0A..
> Scanning thermostat message type #0x0B..
> Scanning thermostat message type #0x0C..
> Scanning thermostat message type #0x0D..
> Scanning thermostat message type #0x0E..
> Scanning thermostat message type #0x0F..
> Scanning thermostat message type #0x10..
> Scanning thermostat message type #0x11..
> Scanning thermostat message type #0x12..
> Scanning thermostat message type #0x13..
> Scanning thermostat message type #0x14..
> Scanning thermostat message type #0x15..
> Scanning thermostat message type #0x16..
> Scanning thermostat message type #0x17..
> Scanning thermostat message type #0x18..
> Scanning thermostat message type #0x19..
> Scanning thermostat message type #0x1A..
> Scanning thermostat message type #0x1B..
> Scanning thermostat message type #0x1C..
(00:01:08) Thermostat -> all, type 0xFF telegram: 10 00 FF 08 01 A5 01 18 03 03 01 01 18 03 2F (CRC=20), #data=11
> Scanning thermostat message type #0x1D..
> Scanning thermostat message type #0x1E..
> Scanning thermostat message type #0x1F..
> Scanning thermostat message type #0x20..
(00:01:11) Thermostat -> all, type 0x06 telegram: 10 00 06 00 13 01 13 03 05 0B 03 00 10 FF 00 (CRC=60), #data=11
> Scanning thermostat message type #0x21..
> Scanning thermostat message type #0x22..
> Scanning thermostat message type #0x23..
> Scanning thermostat message type #0x24..
> Scanning thermostat message type #0x25..
> Scanning thermostat message type #0x26..
> Scanning thermostat message type #0x27..
> Scanning thermostat message type #0x28..
> Scanning thermostat message type #0x29..
> Scanning thermostat message type #0x2A..
> Scanning thermostat message type #0x2B..
> Scanning thermostat message type #0x2C..
> Scanning thermostat message type #0x2D..
> Scanning thermostat message type #0x2E..
> Scanning thermostat message type #0x2F..
> Scanning thermostat message type #0x30..
> Scanning thermostat message type #0x31..
> Scanning thermostat message type #0x32..
> Scanning thermostat message type #0x33..
> Scanning thermostat message type #0x34..
> Scanning thermostat message type #0x35..
(00:01:33) Thermostat -> Boiler, type 0x23 telegram: 10 08 23 00 39 64 64 (CRC=37), #data=3
> Scanning thermostat message type #0x36..
> Scanning thermostat message type #0x37..
> Scanning thermostat message type #0x38..
> Scanning thermostat message type #0x39..
> Scanning thermostat message type #0x3A..
(00:01:38) Thermostat -> all, type 0xFF telegram: 10 00 FF 02 01 A5 02 (CRC=56), #data=3
> Scanning thermostat message type #0x3B..
> Scanning thermostat message type #0x3C..
> Scanning thermostat message type #0x3D..
(00:01:40) Thermostat -> Boiler, type 0x1A telegram: 10 08 1A 00 39 64 00 (CRC=E8), #data=3
 SetPoint=57, hk_power=100 ww_power=0
(00:01:40) Thermostat -> Boiler, type 0x23 telegram: 10 08 23 00 39 64 00 (CRC=53), #data=3
> Scanning thermostat message type #0x3E..
> Scanning thermostat message type #0x3F..
> Scanning thermostat message type #0x40..
> Scanning thermostat message type #0x41..
> Scanning thermostat message type #0x42..
> Scanning thermostat message type #0x43..
> Scanning thermostat message type #0x44..
> Scanning thermostat message type #0x45..
> Scanning thermostat message type #0x46..
> Scanning thermostat message type #0x47..
> Scanning thermostat message type #0x48..
> Scanning thermostat message type #0x49..
(00:01:53) Thermostat -> Boiler, type 0x35 telegram: 10 08 35 00 11 11 (CRC=30), #data=2
> Scanning thermostat message type #0x4A..
> Scanning thermostat message type #0x4B..
> Scanning thermostat message type #0x4C..
> Scanning thermostat message type #0x4D..
> Scanning thermostat message type #0x4E..
> Scanning thermostat message type #0x4F..
> Scanning thermostat message type #0x50..
> Scanning thermostat message type #0x51..
(00:02:01) Thermostat -> all, type 0xFF telegram: 10 00 FF 0F 01 A5 03 30 (CRC=4E), #data=4
> Scanning thermostat message type #0x52..
(00:02:01) Thermostat -> all, type 0xFF telegram: 10 00 FF 0D 01 A5 01 17 (CRC=4D), #data=4
> Scanning thermostat message type #0x53..
> Scanning thermostat message type #0x54..
> Scanning thermostat message type #0x55..
> Scanning thermostat message type #0x56..
> Scanning thermostat message type #0x57..
> Scanning thermostat message type #0x58..
> Scanning thermostat message type #0x59..
(00:02:09) Thermostat -> Boiler, type 0x1A telegram: 10 08 1A 00 39 64 00 (CRC=E8), #data=3
 SetPoint=57, hk_power=100 ww_power=0
(00:02:09) Thermostat -> all, type 0xFF telegram: 10 00 FF 00 01 67 00 00 (CRC=AB), #data=4
(00:02:09) Thermostat -> all, type 0xFF telegram: 10 00 FF 00 01 A5 80 00 02 2A 39 00 2A 1E 01 17 03 03 01 01 17 03 30 00 00 11 01 03 FF FF 00 (CRC=36), #data=27
> Scanning thermostat message type #0x5A..
(00:02:10) Thermostat -> all, type 0xFF telegram: 10 00 FF 19 01 A5 06 04 00 00 00 00 FF 64 4B 00 3C 01 FF 01 02 (CRC=93), #data=17
(00:02:10) Thermostat -> all, type 0xFF telegram: 10 00 FF 00 02 1D 00 00 0A 07 (CRC=02), #data=6
> Scanning thermostat message type #0x5B..
> Scanning thermostat message type #0x5C..
> Scanning thermostat message type #0x5D..
(00:02:13) Thermostat -> all, type 0x06 telegram: 10 00 06 00 13 01 13 03 06 0D 03 00 10 FF 00 (CRC=60), #data=11
> Scanning thermostat message type #0x5E..
> Scanning thermostat message type #0x5F..
> Scanning thermostat message type #0x60..
> Scanning thermostat message type #0x61..
> Scanning thermostat message type #0x62..
> Scanning thermostat message type #0x63..
> Scanning thermostat message type #0x64..
> Scanning thermostat message type #0x65..
> Scanning thermostat message type #0x66..
> Scanning thermostat message type #0x67..
> Scanning thermostat message type #0x68..
> Scanning thermostat message type #0x69..
> Scanning thermostat message type #0x6A..
> Scanning thermostat message type #0x6B..
> Scanning thermostat message type #0x6C..
> Scanning thermostat message type #0x6D..
> Scanning thermostat message type #0x6E..
> Scanning thermostat message type #0x6F..
> Scanning thermostat message type #0x70..
> Scanning thermostat message type #0x71..
(00:02:33) Thermostat -> Boiler, type 0x23 telegram: 10 08 23 00 39 64 00 (CRC=53), #data=3
> Scanning thermostat message type #0x72..
> Scanning thermostat message type #0x73..
> Scanning thermostat message type #0x74..
> Scanning thermostat message type #0x75..
> Scanning thermostat message type #0x76..
> Scanning thermostat message type #0x77..
> Scanning thermostat message type #0x78..
> Scanning thermostat message type #0x79..
> Scanning thermostat message type #0x7A..
> Scanning thermostat message type #0x7B..
> Scanning thermostat message type #0x7C..
> Scanning thermostat message type #0x7D..
> Scanning thermostat message type #0x7E..
> Scanning thermostat message type #0x7F..
> Scanning thermostat message type #0x80..
> Scanning thermostat message type #0x81..
> Scanning thermostat message type #0x82..
> Scanning thermostat message type #0x83..
> Scanning thermostat message type #0x84..
> Scanning thermostat message type #0x85..
> Scanning thermostat message type #0x86..
> Scanning thermostat message type #0x87..
> Scanning thermostat message type #0x88..
> Scanning thermostat message type #0x89..
> Scanning thermostat message type #0x8A..
> Scanning thermostat message type #0x8B..
> Scanning thermostat message type #0x8C..
> Scanning thermostat message type #0x8D..
> Scanning thermostat message type #0x8E..
> Scanning thermostat message type #0x8F..
> Scanning thermostat message type #0x90..
> Scanning thermostat message type #0x91..
> Scanning thermostat message type #0x92..
(00:03:06) Thermostat -> all, type 0xFF telegram: 10 00 FF 0D 01 A5 01 16 03 31 (CRC=1E), #data=6
> Scanning thermostat message type #0x93..
> Scanning thermostat message type #0x94..
> Scanning thermostat message type #0x95..
> Scanning thermostat message type #0x96..
> Scanning thermostat message type #0x97..
> Scanning thermostat message type #0x98..
> Scanning thermostat message type #0x99..
> Scanning thermostat message type #0x9A..
(00:03:14) Thermostat -> all, type 0x06 telegram: 10 00 06 00 13 01 13 03 07 0E 03 00 10 FF 00 (CRC=40), #data=11
> Scanning thermostat message type #0x9B..
> Scanning thermostat message type #0x9C..
> Scanning thermostat message type #0x9D..
> Scanning thermostat message type #0x9E..
> Scanning thermostat message type #0x9F..
> Scanning thermostat message type #0xA0..
> Scanning thermostat message type #0xA1..
> Scanning thermostat message type #0xA2..
> Scanning thermostat message type #0xA3..
> Scanning thermostat message type #0xA4..
> Scanning thermostat message type #0xA5..
> Scanning thermostat message type #0xA6..
> Scanning thermostat message type #0xA7..
(00:03:27) Thermostat -> Boiler, type 0x1A telegram: 10 08 1A 00 39 64 00 (CRC=E8), #data=3
 SetPoint=57, hk_power=100 ww_power=0
(00:03:27) Thermostat -> all, type 0xFF telegram: 10 00 FF 00 01 67 00 00 (CRC=AB), #data=4
(00:03:27) Thermostat -> all, type 0xFF telegram: 10 00 FF 00 02 1D 00 00 0A 07 (CRC=02), #data=6
> Scanning thermostat message type #0xA8..
> Scanning thermostat message type #0xA9..
> Scanning thermostat message type #0xAA..
(00:03:30) Thermostat -> all, type 0xBF telegram: 10 00 BF 00 10 9E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (CRC=71), #data=24
> Scanning thermostat message type #0xAB..
> Scanning thermostat message type #0xAC..
> Scanning thermostat message type #0xAD..
> Scanning thermostat message type #0xAE..
(00:03:34) Thermostat -> Boiler, type 0x23 telegram: 10 08 23 00 39 64 00 (CRC=53), #data=3
> Scanning thermostat message type #0xAF..
> Scanning thermostat message type #0xB0..
> Scanning thermostat message type #0xB1..
> Scanning thermostat message type #0xB2..
> Scanning thermostat message type #0xB3..
> Scanning thermostat message type #0xB4..
> Scanning thermostat message type #0xB5..
> Scanning thermostat message type #0xB6..
> Scanning thermostat message type #0xB7..
(00:03:43) Thermostat -> all, type 0xA2 telegram: 10 00 A2 00 00 00 00 00 00 (CRC=CA), #data=5
> Scanning thermostat message type #0xB8..
> Scanning thermostat message type #0xB9..
> Scanning thermostat message type #0xBA..
> Scanning thermostat message type #0xBB..
> Scanning thermostat message type #0xBC..
> Scanning thermostat message type #0xBD..
> Scanning thermostat message type #0xBE..
> Scanning thermostat message type #0xBF..
> Scanning thermostat message type #0xC0..
> Scanning thermostat message type #0xC1..
> Scanning thermostat message type #0xC2..
(00:03:53) Thermostat -> Boiler, type 0x35 telegram: 10 08 35 00 11 11 (CRC=30), #data=2
> Scanning thermostat message type #0xC3..
> Scanning thermostat message type #0xC4..
> Scanning thermostat message type #0xC5..
> Scanning thermostat message type #0xC6..
> Scanning thermostat message type #0xC7..
> Scanning thermostat message type #0xC8..
> Scanning thermostat message type #0xC9..
> Scanning thermostat message type #0xCA..
> Scanning thermostat message type #0xCB..
> Scanning thermostat message type #0xCC..
> Scanning thermostat message type #0xCD..
> Scanning thermostat message type #0xCE..
(00:04:06) Thermostat -> all, type 0xFF telegram: 10 00 FF 0D 01 A5 01 15 03 32 (CRC=11), #data=6
> Scanning thermostat message type #0xCF..
> Scanning thermostat message type #0xD0..
> Scanning thermostat message type #0xD1..
> Scanning thermostat message type #0xD2..
> Scanning thermostat message type #0xD3..
> Scanning thermostat message type #0xD4..
> Scanning thermostat message type #0xD5..
> Scanning thermostat message type #0xD6..
> Scanning thermostat message type #0xD7..
> Scanning thermostat message type #0xD8..
(00:04:15) Thermostat -> all, type 0x06 telegram: 10 00 06 00 13 01 13 03 08 0F 03 00 10 FF 00 (CRC=8B), #data=11
> Scanning thermostat message type #0xD9..
> Scanning thermostat message type #0xDA..
> Scanning thermostat message type #0xDB..
> Scanning thermostat message type #0xDC..
> Scanning thermostat message type #0xDD..
> Scanning thermostat message type #0xDE..
> Scanning thermostat message type #0xDF..
> Scanning thermostat message type #0xE0..
> Scanning thermostat message type #0xE1..
> Scanning thermostat message type #0xE2..
> Scanning thermostat message type #0xE3..
> Scanning thermostat message type #0xE4..
> Scanning thermostat message type #0xE5..
> Scanning thermostat message type #0xE6..
> Scanning thermostat message type #0xE7..
> Scanning thermostat message type #0xE8..
> Scanning thermostat message type #0xE9..
> Scanning thermostat message type #0xEA..
(00:04:34) Thermostat -> Boiler, type 0x23 telegram: 10 08 23 00 39 64 00 (CRC=53), #data=3
> Scanning thermostat message type #0xEB..
> Scanning thermostat message type #0xEC..
> Scanning thermostat message type #0xED..
> Scanning thermostat message type #0xEE..
> Scanning thermostat message type #0xEF..
> Scanning thermostat message type #0xF0..
> Scanning thermostat message type #0xF1..
> Scanning thermostat message type #0xF2..
> Scanning thermostat message type #0xF3..
> Scanning thermostat message type #0xF4..
> Scanning thermostat message type #0xF5..
> Scanning thermostat message type #0xF6..
> Scanning thermostat message type #0xF7..
(00:04:47) Thermostat -> Boiler, type 0x1A telegram: 10 08 1A 00 39 64 00 (CRC=E8), #data=3
 SetPoint=57, hk_power=100 ww_power=0
(00:04:47) Thermostat -> all, type 0xFF telegram: 10 00 FF 00 01 67 00 00 (CRC=AB), #data=4
(00:04:47) Thermostat -> all, type 0xFF telegram: 10 00 FF 00 01 A5 80 00 02 2A 39 00 2A 1E 01 15 03 03 01 01 15 03 32 00 00 11 01 03 FF FF 00 (CRC=94), #data=27
> Scanning thermostat message type #0xF8..
(00:04:47) Thermostat -> all, type 0xFF telegram: 10 00 FF 19 01 A5 06 04 00 00 00 00 FF 64 4B 00 3C 01 FF 01 02 (CRC=93), #data=17
(00:04:48) Thermostat -> all, type 0xFF telegram: 10 00 FF 00 02 1D 00 00 0A 07 (CRC=02), #data=6
> Scanning thermostat message type #0xF9..
> Scanning thermostat message type #0xFA..
> Scanning thermostat message type #0xFB..
> Scanning thermostat message type #0xFC..
> Scanning thermostat message type #0xFD..
> Scanning thermostat message type #0xFE..
> Scanning thermostat message type #0xFF..
> Scanning thermostat message type #0x00..

I didn't look at the code to see how the on and off state of tapwater and heating active is determined, sorry. It makes sense now... :-)

The boiler is the Buderus Logamax plus GB192-25 iW and the thermostat is the one that comes integrated in the front lid. I found a sticker in there that said 'BC30', maybe that is relevant...?

@darookee
Copy link
Author

darookee commented Jan 3, 2019

Looking at the Buderus page it seems the thermostat is the RC310...

@proddy
Copy link
Collaborator

proddy commented Jan 3, 2019

ok, we're getting closer. From the U dump it shows that the thermostat is not listening to any of the Tx messages we sent. Just did a quick look at the boiler and I have a feeling it uses the EMS Plus type of telegram packages, which my code doesn't support - but should be fun to decipher. I'll think about some tests you can run.

@proddy
Copy link
Collaborator

proddy commented Jan 4, 2019

Can you set logging to basic 'l 2' and do a 't 2'. I'd like to see the firmware version.

I can see that your thermostat is using EMS Plus (https://emswiki.thefischer.net/doku.php?id=wiki:ems:plus-telegramme) since the 3rd byte is FF.

So to support EMS+ we would need to test for the 3rd byte being >F0 and then taking the type from bytes 4&5. Everything shifts across by two bytes. It'll be a lot of trial and error and not something I can code without having a physical device.

@darookee
Copy link
Author

darookee commented Jan 4, 2019

t 2 seems to do nothing

l 2
System Logging set to Basic
t 2
Requesting type Version(0x02) from dest 0x10
<--- UBAMonitorFast(0x18) received
<--- UBAMonitorFast(0x18) received
<--- UBAMonitorFast(0x18) received
<--- UBAMonitorFast(0x18) received
<--- UBAMonitorWWMessage(0x34) received
<--- UBAMonitorFast(0x18) received
<--- UBAMonitorFast(0x18) received

When using verbose logging I get this. It looks like the thermostat doesn't respond at all

l 4
System Logging set to Verbose
t 2
Requesting type Version(0x02) from dest 0x10
(00:06:05) Sending read of type 0x02 to 0x10: telegram: 0B 90 02 00 63 (CRC=3F), #data=1
(00:06:05) Boiler -> all, type 0x07 telegram: 08 00 07 00 0B 01 00 00 00 00 00 00 00 00 00 00 00 (CRC=F6), #data=13
(00:06:06) Boiler -> all, type 0x07 telegram: 08 00 07 00 03 01 00 00 00 00 00 00 00 00 00 00 00 (CRC=DA), #data=13
Publishing boiler data via MQTT
Calling scheduled data refresh from EMS devices..
Requesting type RC35StatusMessage(0x3E) from dest 0x10
Requesting type RC35Set(0x3D) from dest 0x10
Requesting type RCTime(0x06) from dest 0x10
Requesting type UBAMonitorFast(0x18) from dest 0x08
Requesting type UBAMonitorSlow(0x19) from dest 0x08
Requesting type UBAParameterWW(0x33) from dest 0x08
Requesting type UBATotalUptimeMessage(0x14) from dest 0x08
(00:06:06) Boiler -> all, type 0x18 telegram: 08 00 18 00 54 02 D9 64 64 0A 11 65 40 80 00 02 18 02 55 01 55 0B 3D 48 00 C9 00 03 18 00 00 (CRC=57), #data=27
<--- UBAMonitorFast(0x18) received
(00:06:06) Boiler -> all, type 0x18 telegram: 08 00 18 1B 00 00 00 00 00 00 00 00 00 00 00 (CRC=BF), #data=11
<--- UBAMonitorFast(0x18) received
(00:06:07) Boiler -> all, type 0x2A telegram: 08 00 2A 00 00 00 00 00 00 00 00 02 39 02 3A 80 00 00 80 00 80 00 80 00 00 (CRC=8B), #data=21
(00:06:07) Boiler -> all, type 0x34 telegram: 08 00 34 00 3C 02 18 02 18 89 00 01 03 00 00 60 4F 00 11 E9 00 80 00 (CRC=34), #data=19
<--- UBAMonitorWWMessage(0x34) received
(00:06:07) Boiler -> all, type 0x18 telegram: 08 00 18 00 54 02 DC 64 64 0A 11 65 40 80 00 02 18 02 57 01 53 0B 3D 48 00 C9 00 03 18 00 00 (CRC=0F), #data=27
<--- UBAMonitorFast(0x18) received
(00:06:07) Boiler -> all, type 0x18 telegram: 08 00 18 1B 00 00 00 00 00 00 00 00 00 00 00 (CRC=BF), #data=11
<--- UBAMonitorFast(0x18) received
(00:06:09) Sending read of type 0x3E to 0x10: telegram: 0B 90 3E 00 63 (CRC=CF), #data=1
(00:06:09) Boiler -> all, type 0x07 telegram: 08 00 07 00 0B 01 00 00 00 00 00 00 00 00 00 00 00 (CRC=F6), #data=13
(00:06:09) Sending read of type 0x3E to 0x10: telegram: 0B 90 3E 00 63 (CRC=CF), #data=1
(00:06:10) Sending read of type 0x3D to 0x10: telegram: 0B 90 3D 00 63 (CRC=C3), #data=1
(00:06:10) Sending read of type 0x3D to 0x10: telegram: 0B 90 3D 00 63 (CRC=C3), #data=1
(00:06:10) Boiler -> all, type 0x18 telegram: 08 00 18 00 54 02 E6 64 64 0A 11 65 40 80 00 02 18 02 5F 01 52 0B 3D 48 00 C9 00 03 18 00 00 (CRC=74), #data=27
<--- UBAMonitorFast(0x18) received
(00:06:11) Boiler -> all, type 0x18 telegram: 08 00 18 1B 00 00 00 00 00 00 00 00 00 00 00 (CRC=BF), #data=11
<--- UBAMonitorFast(0x18) received
(00:06:11) Sending read of type 0x06 to 0x10: telegram: 0B 90 06 00 63 (CRC=2F), #data=1
(00:06:11) 0x09 -> Boiler, type 0x2A telegram: 09 88 2A 14 01 (CRC=35), #data=1
(00:06:11) Boiler -> 0x09, type 0x2A telegram: 08 09 2A 14 00 (CRC=48), #data=1
(00:06:11) Sending read of type 0x06 to 0x10: telegram: 0B 90 06 00 63 (CRC=2F), #data=1
(00:06:12) Sending read of type 0x18 to 0x08: telegram: 0B 88 18 00 63 (CRC=97), #data=1
(00:06:12) Sending read of type 0x18 to 0x08: telegram: 0B 88 18 00 63 (CRC=97), #data=1
(00:06:13) Sending read of type 0x19 to 0x08: telegram: 0B 88 19 00 63 (CRC=93), #data=1
(00:06:13) Boiler -> all, type 0x18 telegram: 08 00 18 00 54 02 EE 64 64 0A 11 65 40 80 00 02 18 02 65 01 54 0C 3D 48 00 C9 00 03 18 00 00 (CRC=EE), #data=27
<--- UBAMonitorFast(0x18) received

For now the information I get from the boiler is probably all I need, as the thermostat is basically just the input device for the boiler, directly attached to it. But if I can help in any way just tell me what I can do :-)
If it helps, I have a spare 'internet-connection-gateway'-thing that came with the boiler, not sure if that uses EMS+, though...

@darookee darookee closed this as completed Jan 4, 2019
@darookee
Copy link
Author

darookee commented Jan 5, 2019

I was just wondering if it could be a hardware problem, maybe my Tx line is not working properly? Looking at my logs and logs from other tickets it seems like I don't get responses, only broadcasts

Requesting type Version(0x02) from dest 0x08
(23:23:16) Sending read of type 0x14 to 0x08: telegram: 0B 88 14 00 63 (CRC=A7), #data=1
(23:23:16) Sending read of type 0x02 to 0x08: telegram: 0B 88 02 00 63 (CRC=FF), #data=1
(23:23:16) Sending read of type 0x02 to 0x08: telegram: 0B 88 02 00 63 (CRC=FF), #data=1
(23:23:17) Boiler -> all, type 0x07 telegram: 08 00 07 00 03 01 00 00 00 00 00 00 00 00 00 00 00 (CRC=DA), #data=13
(23:23:22) Boiler -> all, type 0x18 telegram: 08 00 18 00 30 01 EA 64 0B 09 01 25 40 80 00 02 79 01 11 00 34 0D 2D 48 00 C8 00 02 18 00 00 (CRC=9A), #data=27
<--- UBAMonitorFast(0x18) received
(23:23:22) Boiler -> all, type 0x18 telegram: 08 00 18 1B 00 00 00 00 00 00 00 00 00 00 00 (CRC=BF), #data=11
<--- UBAMonitorFast(0x18) received
(23:23:22) Boiler -> all, type 0x2A telegram: 08 00 2A 00 00 00 00 00 00 00 00 00 93 00 93 80 00 00 80 00 80 00 80 00 00 (CRC=82), #data=21
(23:23:22) Boiler -> all, type 0x34 telegram: 08 00 34 00 3C 02 79 02 79 A1 00 01 03 00 00 60 BD 00 11 FE 00 80 00 (CRC=7E), #data=19
<--- UBAMonitorWWMessage(0x34) received
(23:23:23) Boiler -> all, type 0x18 telegram: 08 00 18 00 30 01 EB 64 0B 09 01 25 40 80 00 02 79 01 11 00 35 0D 2D 48 00 C8 00 02 18 00 00 (CRC=A9), #data=27
<--- UBAMonitorFast(0x18) received
(23:23:23) Boiler -> all, type 0x18 telegram: 08 00 18 1B 00 00 00 00 00 00 00 00 00 00 00 (CRC=BF), #data=11
<--- UBAMonitorFast(0x18) received

I tried various requests but never noticed anything that looked like a direct response...

@proddy
Copy link
Collaborator

proddy commented Jan 5, 2019

did you build the circuit yourself or using a pre-fab one like one from bbqkees? Since it recognizes your boiler you should be able to send it Tx packages, but again this is the most complex piece of the code (and circuit) and hard to calibrate the timings. So if you do a 'b 2' and in verbose logging what does it come back with?

@darookee
Copy link
Author

darookee commented Jan 6, 2019

I bought a board from bbqkees, but I had to remove the pin headers to fit it in the enclosure I wanted to use, so I might have messed something up there. I'm going to check that tomorrow. I tried b 2 with verbose logging:

(04:01:30) 0x09 -> Boiler, type 0x1A telegram: 09 08 1A 00 00 00 00 (CRC=D2), #data=3
(04:01:30) 0x09 -> Boiler, type 0x23 telegram: 09 08 23 00 00 00 00 (CRC=69), #data=3
(04:01:31) Thermostat -> all, type 0x06 telegram: 10 00 06 00 13 01 14 06 01 24 06 00 10 FF 00 (CRC=49), #data=11
<--- RCTime(0x06) received
(04:01:32) Boiler -> all, type 0x18 telegram: 08 00 18 00 54 03 64 64 0B 0A 11 E5 40 80 00 02 31 02 F8 00 41 0B 3D 48 00 C9 00 03 18 00 00 (CRC=AF), #data=27
<--- UBAMonitorFast(0x18) received
(04:01:33) Boiler -> all, type 0x18 telegram: 08 00 18 1B 00 00 00 00 00 00 00 00 00 00 00 (CRC=BF), #data=11
<--- UBAMonitorFast(0x18) received
b 2
Requesting type Version(0x02) from dest 0x08
(04:01:35) Boiler -> all, type 0x18 telegram: 08 00 18 00 54 03 61 64 0B 0A 11 E5 40 80 00 02 32 02 F7 00 40 0B 3D 48 00 C9 00 03 18 00 00 (CRC=5B), #data=27
<--- UBAMonitorFast(0x18) received
(04:01:36) Boiler -> all, type 0x18 telegram: 08 00 18 1B 00 00 00 00 00 00 00 00 00 00 00 (CRC=BF), #data=11
<--- UBAMonitorFast(0x18) received
(04:01:36) Boiler -> all, type 0x2A telegram: 08 00 2A 00 00 00 00 00 00 00 00 00 93 00 92 80 00 00 80 00 80 00 80 00 00 (CRC=E6), #data=21
(04:01:36) Boiler -> all, type 0x34 telegram: 08 00 34 00 3C 02 31 02 32 89 00 05 03 00 00 61 57 00 12 17 00 80 00 (CRC=41), #data=19
<--- UBAMonitorWWMessage(0x34) received
(04:01:37) Sending read of type 0x02 to 0x08: telegram: 0B 88 02 00 63 (CRC=FF), #data=1
(04:01:37) Boiler -> all, type 0x07 telegram: 08 00 07 00 0B 01 00 00 00 00 00 00 00 00 00 00 00 (CRC=F6), #data=13
(04:01:38) Sending read of type 0x02 to 0x08: telegram: 0B 88 02 00 63 (CRC=FF), #data=1
(04:01:39) Boiler -> all, type 0x07 telegram: 08 00 07 00 03 01 00 00 00 00 00 00 00 00 00 00 00 (CRC=DA), #data=13
(04:01:40) Boiler -> all, type 0x18 telegram: 08 00 18 00 54 03 5A 64 0B 0A 11 E5 40 80 00 02 33 02 F5 00 3E 0B 3D 48 00 C9 00 03 18 00 00 (CRC=0A), #data=27
<--- UBAMonitorFast(0x18) received
(04:01:41) Boiler -> all, type 0x18 telegram: 08 00 18 1B 00 00 00 00 00 00 00 00 00 00 00 (CRC=BF), #data=11
<--- UBAMonitorFast(0x18) received

It does not seem to be responding... I'll check the Tx line and test again... :-/

@proddy
Copy link
Collaborator

proddy commented Jan 6, 2019 via email

@darookee
Copy link
Author

I finally got around to checking the board with an arduino uno and it works (I used the sketch from bbqkees to request 0x02 from the boiler and it got a correct response). I'm now going to check the ESP when I have a bit more time.

@proddy
Copy link
Collaborator

proddy commented Jan 10, 2019 via email

@darookee
Copy link
Author

I changed my ESP from a d1_mini to a witty cloud and the problem still persists. I used this sketch from bbqkees to check the EMS converter is working. I noticed that you are using #define EMSUART_BAUD 9600 and #define EMS_TX_BRK_WAIT 2070, wheres the sketch I tried uses 9700 baud, and delay(2). I already changed the baud rate, but that didn't make it work, then I changed 2070 to 2000 and it didn't change anything either

(00:01:40) Sending raw telegram: 0B 88 02 00 63 (CRC=FF), #data=1
(00:01:41) Thermostat -> Boiler, type 0x1A telegram: 10 08 1A 00 38 64 64 (CRC=88), #data=3
<--- UBASetPoints(0x1A) received
 SetPoint=56, hk_power=100 ww_power=100
(00:01:41) Thermostat -> all, type 0xFF telegram: 10 00 FF 00 01 67 00 00 (CRC=AB), #data=4
(00:01:41) Thermostat -> all, type 0xFF telegram: 10 00 FF 00 02 1D 00 00 0A 07 (CRC=02), #data=6
(00:01:42) Boiler -> all, type 0x18 telegram: 08 00 18 00 38 02 30 64 12 09 01 25 40 80 00 02 7B 01 D3 00 70 0E 2D 48 00 C8 00 02 18 00 00 (CRC=01), #data=27
<--- UBAMonitorFast(0x18) received
(00:01:42) Boiler -> all, type 0x18 telegram: 08 00 18 1B 00 00 00 00 00 00 00 00 00 00 00 (CRC=BF), #data=11
<--- UBAMonitorFast(0x18) received
(00:01:44) Boiler -> all, type 0x18 telegram: 08 00 18 00 38 02 30 64 12 09 01 25 40 80 00 02 7B 01 D3 00 70 0E 2D 48 00 C8 00 02 18 00 00 (CRC=01), #data=27
<--- UBAMonitorFast(0x18) received
(00:01:44) Boiler -> all, type 0x18 telegram: 08 00 18 1B 00 00 00 00 00 00 00 00 00 00 00 (CRC=BF), #data=11
<--- UBAMonitorFast(0x18) received
(00:01:44) Boiler -> all, type 0x2A telegram: 08 00 2A 00 00 00 00 00 00 00 00 00 B5 00 B5 80 00 00 80 00 80 00 80 00 00 (CRC=42), #data=21
(00:01:44) Boiler -> all, type 0x34 telegram: 08 00 34 00 3C 02 7B 02 7B A1 00 01 03 00 00 63 A1 00 12 78 00 80 00 (CRC=50), #data=19
<--- UBAMonitorWWMessage(0x34) received
(00:01:48) Boiler -> all, type 0x18 telegram: 08 00 18 00 38 02 28 64 12 09 01 25 40 80 00 02 7B 01 D3 00 71 0E 2D 48 00 C8 00 02 18 00 00 (CRC=E2), #data=27
<--- UBAMonitorFast(0x18) received
(00:01:48) Boiler -> all, type 0x18 telegram: 08 00 18 1B 00 00 00 00 00 00 00 00 00 00 00 (CRC=BF), #data=11
<--- UBAMonitorFast(0x18) received
(00:01:49) Boiler -> all, type 0x18 telegram: 08 00 18 00 38 02 28 64 12 09 01 25 40 80 00 02 7B 01 D3 00 71 0D 2D 48 00 C8 00 02 18 00 00 (CRC=B4), #data=27
<--- UBAMonitorFast(0x18) received
(00:01:49) Boiler -> all, type 0x18 telegram: 08 00 18 1B 00 00 00 00 00 00 00 00 00 00 00 (CRC=BF), #data=11
<--- UBAMonitorFast(0x18) received
(00:01:53) Thermostat -> all, type 0x06 telegram: 10 00 06 00 13 01 0A 0B 28 05 04 00 10 FF 00 (CRC=56), #data=11
<--- RCTime(0x06) received
(00:01:54) Boiler -> all, type 0x18 telegram: 08 00 18 00 38 02 28 64 12 09 01 25 40 80 00 02 7B 01 D3 00 71 0D 2D 48 00 C8 00 02 18 00 00 (CRC=B4), #data=27
<--- UBAMonitorFast(0x18) received
(00:01:54) Boiler -> all, type 0x18 telegram: 08 00 18 1B 00 00 00 00 00 00 00 00 00 00 00 (CRC=BF), #data=11
<--- UBAMonitorFast(0x18) received
(00:01:54) Thermostat -> all, type 0xFF telegram: 10 00 FF 08 01 A5 03 11 03 03 01 03 11 01 36 (CRC=DF), #data=11
(00:01:54) Boiler -> all, type 0x2A telegram: 08 00 2A 00 00 00 00 00 00 00 00 00 B6 00 B5 80 00 00 80 00 80 00 80 00 00 (CRC=C0), #data=21
(00:01:54) Boiler -> all, type 0x34 telegram: 08 00 34 00 3C 02 7B 02 7B A1 00 01 03 00 00 63 A1 00 12 78 00 80 00 (CRC=50), #data=19
<--- UBAMonitorWWMessage(0x34) received
(00:01:56) Boiler -> all, type 0x18 telegram: 08 00 18 00 38 02 30 64 12 09 01 25 40 80 00 02 7B 01 D3 00 71 0D 2D 48 00 C8 00 02 18 00 00 (CRC=33), #data=27

What should I do now? Further reduce the delay value?

@muanton
Copy link

muanton commented Jan 11, 2019

Logamax plus GB192-25 is the latest generation boiler and it uses EMS Plus. I have the older one which is EMS. Just recently I needed to add a new thermostat to the system and Bosch engineer told me that new thermostats are not compatible with the old bus, so needed to buy old RC10.

@darookee
Copy link
Author

It is using EMS Plus, but it seems that it is largely compatible with 'old' EMS. At least I get readable data, thanks to @proddy, and also when using the test sketch from bbqkees, which also did send a request and got a response from the boiler. I would not be surprised if the actual Bosch thermostats would refuse to talk to 'old' devices so they can sell new stuff... ;-)

@proddy
Copy link
Collaborator

proddy commented Jan 11, 2019

yes, as I said your thermostat uses EMS Plus which isn't implemented so you will not be able to read or write to the built in RC310. But you should be able to request commands from the boiler, like "boiler read 18" should come back with something. Please try that to verify the circuit & ESP is working.

Adding EMS Plus is possible if more people want this and I get some help. It's uncharted territory.

@darookee
Copy link
Author

I received my Arduino Mega today and tried again with the example sketch from bbqkees. I just modified the requested data from 0x18 to 0x02 and here is the result.

Boiler

EMS bus request started.
Do request
Received a dataframe!
Correct frametype received.
-----Datagram----- BYTES=17
HEX: 0x8 0xB 0x2 0x0 0xD0 0x1 0x4 0x0 0x0 0x0 0x0 0x0 0x0 0x3 0x28 0x0 0xF4
-----End of Datagram-----
Do request
Received a dataframe!
Correct frametype received.
-----Datagram----- BYTES=17
HEX: 0x8 0xB 0x2 0x0 0xD0 0x1 0x4 0x0 0x0 0x0 0x0 0x0 0x0 0x3 0x28 0x0 0xF4
-----End of Datagram-----

Thermostat

EMS bus request started.
Do request
Received a dataframe!
Correct frametype received.
-----Datagram----- BYTES=16
HEX: 0x10 0xB 0x2 0x0 0x9E 0x12 0x3 0x0 0xFF 0x0 0x0 0x0 0x0 0x9A 0x0 0x65
-----End of Datagram-----

So the circut is working, I should be able to send and receive from both, the boiler and the thermostat, and it should respond, at least to the 0x02 request, which it unfortunately does not using EMS-ESP. What can I do now? :-)

@proddy
Copy link
Collaborator

proddy commented Mar 28, 2019

Unfortunately adding the delay to the Tx on my setup (older non-EMS+ boiler) causes the send packages to fail most of the time. Perhaps the trick is to time the ms between each Poll from the bus master and use this as the heartbeat.

@proddy
Copy link
Collaborator

proddy commented Apr 3, 2019

@kwertie01 which version of bbqkees' board are you using? It could be the circuit has slightly changed due to some component swaps and the resistors used to level the bus take longer.

@kwertie01
Copy link

I'm using v0.9 of the 'bbqkees' board and bought it including the Wemos.
image
I haven't focused yet on the level converter board (the electronics) but first on the software in the Wemos because I also did a test using an Arduino Mega with the Create EMSBusSimpleRegisterReadRequest.ino code and that worked fine with the 'bbqkees' board.

By the Way: The delay I added is also present in the EMSBusSimpleRegisterReadRequest.ino code from 'bbqkees'. See the line with delay(3); below in he code.

// Send a data frame to the bus in EMS format

void sendBuffer(char * xmitBuffer, int len){
  char j;
  for(j=0;j<len-1;j++){                                   
    nefitSerial1.write(xmitBuffer[j]);
    delay(3);
  }
  nefitSerial1.writeEOF();
  delay(2);
  nefitSerial1.flush();
}

I didn't spend time looking at the code for a while. First I want to understand the EMS protocol better. I'm playing around with my logic Analyzer making recordings of the EMS bus using Sigrok PulseView. To display the EMS information better I'm working on a EMS Protocol Decoder for Sigrok. It will take some time because It's the first time for me that I programming in Python.

@proddy
Copy link
Collaborator

proddy commented Apr 6, 2019

in the latest dev i capture the poll time. would be interesting to see if the new UBA masters have a faster acknowledge time.

@proddy
Copy link
Collaborator

proddy commented Apr 14, 2019

implemented set tx_delay to turn on/off the delay in the Tx transmission so firmware works for everyone. It's in the 1.7.0 dev branch. If someone can verify it works then I'll push to Master, thanks

@darookee
Copy link
Author

darookee commented Apr 15, 2019

I tried to flash the dev branch but it seemed that flashing was not successfull. I could connect via telnet but did not receive any information; commands were sent but did not receive an answer. After checking out master and flashing again it is working again. I'll try again later today, though...
I tried again just now, after updating the platformio libraries. It's working now when setting the tx_delay to on :-)

@proddy
Copy link
Collaborator

proddy commented Apr 15, 2019

great! thanks @darookee for checking

@kwertie01
Copy link

Sorry for the late reaction but I was outside the country for a while.
I flashed the dev version 1.7.0b5 into the Wemos and tested it last night. With the set tx_delay to on I see that transmitting is working.
Still I see some Corrupt telegrams and Write command failed from host randomly in the logging. I will look into this but I don't think this should hold back the release of 1.7.0 from dev to master.
I looked also at the poll time. If I refresh the information by typing info several times, I see that the poll time is fluctuating between 5 ms and 30ms.

@proddy
Copy link
Collaborator

proddy commented Apr 16, 2019

thanks @kwertie01 . I noticed the poll jumps between 3 and 20 too on my system. I'll think about how best to approach that.

@proddy
Copy link
Collaborator

proddy commented Apr 18, 2019

closing this issue

@proddy
Copy link
Collaborator

proddy commented May 27, 2019

@darookee @kwertie01 would you guys mind testing the latest dev build. It has some new Tx logic, so please test reading and writing in tx_mode 2. thanks

@darookee
Copy link
Author

I just tried these and they all did something:

*  boiler wwtemp <degrees>                      set boiler warm water temperature
*  boiler flowtemp <degrees>                    set boiler flow temperature
*  boiler comfort <hot | eco | intelligent>     set boiler warm water comfort setting

boiler tapwater <on|off> did not change anything but maybe the boiler does not support it. Here is the log:

Setting boiler warm tap water on
(00:06:59.122) Boiler -> all, type 0x18 telegram: 08 00 18 1B 00 00 00 00 00 00 00 00 00 00 00 (CRC=BF) #data=11
<--- UBAMonitorFast(0x18)
(00:06:59.333) Boiler -> all, type 0x2A telegram: 08 00 2A 00 00 00 00 00 00 00 00 01 2C 00 00 80 00 00 80 00 80 00 80 00 00 (CRC=21) #data=21
(00:06:59.581) Boiler -> all, type 0x34 telegram: 08 00 34 00 3C 02 71 02 71 A1 00 01 03 00 00 AA 9E 00 1E 20 00 80 00 (CRC=02) #data=19
<--- UBAMonitorWWMessage(0x34)
(00:07:00.889) Boiler -> all, type 0x18 telegram: 08 00 18 00 25 02 59 64 00 01 01 20 40 80 00 02 71 01 FA 00 00 0F 30 59 00 CC 00 00 00 00 00 (CRC=6D) #data=27
<--- UBAMonitorFast(0x18)
(00:07:01.097) Boiler -> all, type 0x18 telegram: 08 00 18 1B 00 00 00 00 00 00 00 00 00 00 00 (CRC=BF) #data=11
<--- UBAMonitorFast(0x18)
(00:07:01.932) Sending write of type 0x1D to 0x08: telegram: 0B 08 1D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (CRC=DE)
(00:07:02.049) Boiler -> all, type 0x07 telegram: 08 00 07 00 0B 01 00 00 00 00 00 00 00 00 00 00 00 (CRC=F6) #data=13
(00:07:02.307) Sending validate of type 0x1D to 0x08: telegram: 0B 88 1D 00 01 (CRC=E1)
Write to 0x08 was successful
Requesting type (0x1D) from dest 0x08
(00:07:02.582) Sending read of type 0x1D to 0x08: telegram: 0B 88 1D 00 20 (CRC=C0)
(00:07:02.639) Boiler -> me, type 0x1D telegram: 08 0B 1D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (CRC=C6) #data=27

@kwertie01
Copy link

@darookee I wrote my findings to issue #103
And just to let you know: boiler tapwater on/off is also not working for me. I can turn off the 3-way valve but not enable it. (Reset from Testmode type 0x1D is not working for me.) I try to look into this later and maybe make a separate issue and not to mix up with this topic.

@proddy
Copy link
Collaborator

proddy commented May 28, 2019

thanks @darookee for checking. Please log a new issue for the 3-way valve. I'll also check the code and try it at home next week when I'm back from travels.

@proddy
Copy link
Collaborator

proddy commented May 28, 2019

@darookee I found the bug with the tap water. doing a quick fix now

@proddy proddy reopened this May 28, 2019
@proddy proddy closed this as completed May 28, 2019
@darookee
Copy link
Author

I tried the latest dev branch, tapwater still says 'off'. But I'm not even sure what this should show for my boiler. Which information is beeing read to display this? I have 'Warm water activated' 'on' and I'm not sure my boiler can distinguish between tapwater and warm water...?

@proddy
Copy link
Collaborator

proddy commented Jun 9, 2019

From the boiler, I fetch both the Hot tap water: on/off and Central heating on/off. On my boiler this is shown as a tap icon or a radiator icon for example. Note this is different to the tapwater logic which basically switches off the feeding hot water into the tap water which I use to send blasts of cold water to a running shower as a sort of alarm.

What are you trying to do and what exactly is not working?

@proddy proddy reopened this Jun 10, 2019
@darookee
Copy link
Author

Hi! Sorry for the delay and the confusion.
I didn't know what 'Hot Tap Water' and 'Central Heating' were refering to, as they are both shown as 'off', but I certainly have hot water in the house ;-) Since I didn't know what it was I thought it is something my boiler does not do. 'Warm Water activated' is shown as 'on' after all.
But after your explanation it seems that the reading is not correct. It should be on, I have these icons, too, and they show 'on' and 'eco':

IMG_20190614_203203

Another thing that is not showing correctly is 'Warm Water current tap water flow', and this also seems to be the reason 'Hot tap water' is off, as this seems to use that value to determine it's state. If it helps, my 0x34 message looks like this:
Boiler -> all, type 0x34 telegram: 08 00 34 00 3C 02 6A 02 6A A1 00 01 03 00 00 B3 69 00 1F 81 00 80 00 (CRC=A8) #data=19

@proddy
Copy link
Collaborator

proddy commented Jun 17, 2019

@darookee the logic used for "tap water on/off" is wwCurFlow !=0 and burnGas = on. The wwCurFlow comes from 0x34 at byte 9 which has a value 0x00, hence its always off. The code is in ems.cpp in the function _checkActive()

The logic for heating on/off is similar and checks the flow temperature from telegram 0x18 is higher than a value of 70.

So, can you run the hot tap and do a few scans on 0x34 and 0x18 telegrams via a log v and boiler read 34 and boiler read 18. Perhaps your boiler works differently.

@darookee
Copy link
Author

I finally got the time to try it.

Water off:

(02:46:52.134) Sending read of type 0x34 to 0x08: telegram: 0B 88 34 00 20 (CRC=64) #data=2
(02:46:52.183) Boiler -> me, type 0x34 telegram: 08 0B 34 00 3C 02 0F 02 0F 81 00 01 03 00 00 B7 1B 00 20 0F 00 80 00 (CRC=BE) #data=19
(02:46:52.434) Sending read of type 0x18 to 0x08: telegram: 0B 88 18 00 20 (CRC=D4) #data=2
(02:46:52.491) Boiler -> me, type 0x18 telegram: 08 0B 18 00 05 02 69 00 00 00 00 00 40 80 00 02 0F 01 7A 00 00 0E 30 48 00 CB 00 00 00 00 00 (CRC=C6) #data=27

Water just turned on:

(02:47:35.409) Sending read of type 0x34 to 0x08: telegram: 0B 88 34 00 20 (CRC=64) #data=2
(02:47:35.458) Boiler -> me, type 0x34 telegram: 08 0B 34 00 3C 02 0E 02 0E 81 00 05 03 00 00 B7 1B 00 20 0F 00 80 00 (CRC=FB) #data=19
(02:47:35.709) Sending read of type 0x18 to 0x08: telegram: 0B 88 18 00 20 (CRC=D4) #data=2
(02:47:35.766) Boiler -> me, type 0x18 telegram: 08 0B 18 00 05 02 68 00 00 00 00 80 40 80 00 02 0E 01 79 00 00 0E 30 48 00 CB 00 00 00 00 00 (CRC=40) #data=27

Water on for about 1 Minute:

(02:47:55.084) Sending read of type 0x34 to 0x08: telegram: 0B 88 34 00 20 (CRC=64) #data=2
(02:47:55.133) Boiler -> me, type 0x34 telegram: 08 0B 34 00 3C 02 0D 02 0D 81 00 05 03 00 00 B7 1B 00 20 0F 00 80 00 (CRC=29) #data=19
(02:47:55.434) Sending read of type 0x18 to 0x08: telegram: 0B 88 18 00 20 (CRC=D4) #data=2
(02:47:55.491) Boiler -> me, type 0x18 telegram: 08 0B 18 00 05 02 68 00 00 00 00 80 40 80 00 02 0D 01 79 00 00 0E 30 48 00 CB 00 00 00 00 00 (CRC=7A) #data=27
<--- UBAMonitorFast(0x18)
(02:47:55.566) Boiler -> all, type 0x18 telegram: 08 00 18 00 05 02 68 00 00 00 00 80 40 80 00 02 0D 01 79 00 00 0E 30 48 00 CB 00 00 00 00 00 (CRC=84) #data=27
<--- UBAMonitorFast(0x18)
(02:47:55.849) Boiler -> all, type 0x18 telegram: 08 00 18 1B 00 00 00 00 00 00 00 00 00 00 00 (CRC=BF) #data=11

Water just turned off again:

(02:48:25.109) Sending read of type 0x34 to 0x08: telegram: 0B 88 34 00 20 (CRC=64) #data=2
(02:48:25.158) Boiler -> me, type 0x34 telegram: 08 0B 34 00 3C 02 09 02 09 81 00 05 03 00 00 B7 1B 00 20 0F 00 80 00 (CRC=08) #data=19
(02:48:25.459) Sending read of type 0x18 to 0x08: telegram: 0B 88 18 00 20 (CRC=D4) #data=2
(02:48:25.516) Boiler -> me, type 0x18 telegram: 08 0B 18 00 05 02 67 00 00 00 00 80 40 80 00 02 09 01 78 00 00 0E 30 48 00 CB 00 00 00 00 00 (CRC=9D) #data=27
<--- UBAMonitorFast(0x18)
(02:48:25.591) Boiler -> all, type 0x18 telegram: 08 00 18 00 05 02 67 00 00 00 00 80 40 80 00 02 09 01 78 00 00 0E 30 48 00 CB 00 00 00 00 00 (CRC=63) #data=27
<--- UBAMonitorFast(0x18)
(02:48:25.874) Boiler -> all, type 0x18 telegram: 08 00 18 1B 00 00 00 00 00 00 00 00 00 00 00 (CRC=BF) #data=11

I left the two 0x18 from the scheduled read in, but just in the last two entries, because I didn't see them in the first ones :-|

I hope this helps?

@proddy
Copy link
Collaborator

proddy commented Jun 25, 2019

Thanks, it helps. I've attached my diagnosis. Looks like the selected flow temp and current water flow are not in the positions they should be. It would be good to compare your Buderus Logamax plus GB192-25 against other Logamax plus boilers and compare.

issue 23.txt

@proddy
Copy link
Collaborator

proddy commented Jul 26, 2019

we'll open a new issue for this. The original bug about random values from the boiler 7 months ago has been resolved :-)

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

7 participants