Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Worcestor Comfort II RF Support #138

Closed
stewiem2000 opened this issue Apr 16, 2021 · 22 comments
Closed

Worcestor Comfort II RF Support #138

stewiem2000 opened this issue Apr 16, 2021 · 22 comments
Labels
question Question about something

Comments

@stewiem2000
Copy link

Hi,
I have connected my EMS-ESP (an awesome EMS Bus Gateway Premium II (P2) from @bbqkees!) to my Worcester Bosch Greenstar 36CDi Compact Erp combi boiler with Comfort II RF wireless controller and "CRF200S" remote. I'm running the latest dev firmware, "2.2.2b0" via telnet, "2.2.2-dev(38a443e)" from the web-interface.

The boiler seems to be detected OK (I think, certainly getting sensible values out of it), but the thermostat isn't recognised and I'm not entirely sure about the controller, show devices yields

(1) Boiler: Worcester GBx72/Trendline/Cerapur/Greenstar Si/27i (DeviceID:0x08 ProductID:123, Version:06.02)
 This Boiler will respond to telegram type IDs: 0x10 0x11 0x14 0x15 0x1C 0x18 0x19 0x1A 0x35 0x16 0x33 0x34 0x26 0x2A 0xD1 0xE3 0xE4 0xE5 0xE6 0xE9 0xEA 

(2) Controller: Controller (DeviceID:0x09, ProductID:152, Version:03.01)

(2) Unknown: Worcester unknown (DeviceID:0x18 ProductID:216, Version:01.02)

show ems bus information:

EMS Bus info:
  Tx mode: 1
  Bus protocol: HT3
  #telegrams received: 583
  #read requests sent: 132
  #write requests sent: 0
  #incomplete telegrams: 19
  #tx fails (after 3 retries): 0
  Rx line quality: 100%
  Tx line quality: 100%

From the following log, I'm slightly concerned by the CRC-mismatches, but I can see that dev:0x18 is the thermostat because adjusting its target temperature emits 0x2AF IDs where the third octet (value 0x20) seems to be the call for heat (value 0x21 when wanted, 0x20 when not) and the the last octet (value 0x25) seems to be twice the selected temperature, ie. 0x25 = 37 = 18.0ºC:

000+00:14:57.219 E 58: [telegram] Rx: 0C 2A 00 00 00 00 00 1B 00 00 00 FA 00 00 80 00 00 80 00 80 00 80 00 00 6B (CRC 6B != 62)
000+00:15:00.450 E 59: [telegram] Rx: 88 0B 19 00 80 00 00 DB 80 00 00 00 00 00 00 BC F7 04 3C 8E 00 00 00 04 7E 87 00 55 08 80 00 76 (CRC 76 != B8)
000+00:15:22.821 N 60: [emsesp] Unknown(0x18) -> All(0x00), ?(0x06), data: 15 04 13 10 15 00 04 00
000+00:15:23.442 E 61: [telegram] Rx: 80 E0 FF 09 (CRC 09 != 14)
000+00:15:23.698 N 62: [emsesp] Unknown(0x18) -> All(0x00), ?(0x2A5), data: 00 C1 20 00 00 00 25
000+00:16:03.751 N 63: [emsesp] Unknown(0x18) -> All(0x00), ?(0x2A5), data: 00 C0 20 00 00 00 25
000+00:16:22.717 E 64: [telegram] Rx: 98 00 06 00 15 04 13 10 16 00 04 (CRC 04 != D7)
000+00:16:23.197 N 65: [emsesp] Unknown(0x18) -> All(0x00), ?(0x06), data: 15 04 13 10 16 00 04 00
000+00:16:23.691 E 66: [telegram] Rx: 98 00 FF 00 01 A5 00 C0 20 00 00 00 20 09 (CRC 09 != 1D)
000+00:16:23.899 N 67: [emsesp] Unknown(0x18) -> All(0x00), ?(0x2A5), data: 00 C0 20 00 00 00 25
000+00:17:22.796 N 68: [emsesp] Unknown(0x18) -> All(0x00), ?(0x06), data: 15 04 13 10 17 00 04 00
000+00:17:23.059 E 69: [telegram] Rx: 98 00 FF 00 01 A5 00 C0 20 00 00 00 (CRC 00 != 49)
000+00:17:23.499 N 70: [emsesp] Unknown(0x18) -> All(0x00), ?(0x2A5), data: 00 C0 20 00 00 00 25

I've yet to try sending the boiler commands.

What can I do to help resolve the CRC errors and get my thermostat supported? :)

Thanks in advance!

@MichaelDvP
Copy link
Contributor

The thermostat seems to be compatible with RC100, i've added it to the database, check with new dev.

CRC errors are most common on low buspower. If you are on buspower, maybe the RF-thermostat draws more than wired thermostats. If you have a service-jack, try powering with this (jumper change) or try USB-power (jumper removed).

If crc-errors stays with external power, check the bus connection and cable. Try different bus-connectors and cable length (not less 25 cm).

@stewiem2000
Copy link
Author

Thanks for the quick response! That's certainly picked it up and I can see some values propagating through to Home Assistant! :)

Unfortunately, that's where the joy seems to end :-o

Whilst the "Current room temperature" seems to be reflecting the display, the "Setpoint room temperature" is always 0º. Looking through the code, Thermostat::process_RC300Monitor() seems to be the function used. It even notes that octed-3 can be zero and the description for octet-6 matches what I'm seeing. Indeed, if I add the following to the end of that function, and finally figure out how to get a working build-environment, I do seem to get actual numbers:

if(hc->setpoint_roomTemp == 0.0) {
    changed_ |= telegram->read_value(hc->setpoint_roomTemp, 6, 1); // is * 2, force as single byte
}

I'd ask whether that would be a reasonable patch-request, but having also tried to set a target temperature (via Home-Assistant or 'call thermostat temp 20'), nothing happens (other than appropriate log messages and telegram-tx) — so I wonder if there's something else (perhaps more obvious to you) that mismatches?

As for the CRC-errors: yes, I will check the cable and also try the service-jack tomorrow.

Thanks.

@MichaelDvP
Copy link
Contributor

Seems that this thermostat is not 100% compatible to rc100 (see emsesp/EMS-ESP#249). The check with if(hc->setpoint_roomTemp == 0.0) { is not a good solution, sometimes (summermode, etc.) the setpoint goes to 0 (see emsesp/EMS-ESP#256) and this logic will trigger a changed in every telegram.

The 02A5 for this thermostat is very short, maybe we can use the length for checking. But first we have to check how to set the temperature. Can you log a watch 18 in terminal for more than a minute to see also the 02B9 telegram and others from thermostat. Please also change the setpoint on thermostat while watching to log the change, Post the log here,
Please also post the output of the show command from telnet to see what values are read.

@MichaelDvP
Copy link
Contributor

@stewiem2000 To make the setpoint work for reading and writing we need a feedback from you with the mentioned log.

@stewiem2000
Copy link
Author

My apologies! $DayJob and $Life popped-up; I had also hoped to switch over to the service-jack to gain cleaner logs (fewer invalid-CRC entries). In the mean time, here is the requested show and log. I've rebooted the gateway, let it settle, then poked through the thermostat's modes, capturing approximately a minute's worth of entries between each change.

Show:

EMS-ESP version 2.2.2b0

Boiler: Worcester GBx72/Trendline/Cerapur/Greenstar Si/27i (DeviceID:0x08 ProductID:123, Version:06.02)
  Heating active: off
  Warm water/DHW active: off
  Service code: 
  Service code number: 203
  Last error: EA(229) 08.01.2020 08:23
  Selected flow temperature: 5 °C
  Burner selected max power: 0 %
  Burner current power: 0 %
  Heating pump modulation: 0 %
  Current flow temperature: 36.2 °C
  Return temperature: 34.9 °C
  Max temperature: 36.7 °C
  Gas: off
  Flame current: 0.0 uA
  Heating Pump: off
  Fan: off
  Ignition: off
  Heating activated: on
  Heating temperature setting: 60 °C
  Circuit pump modulation max power: 100 %
  Circuit pump modulation min power: 60 %
  Circuit pump delay time: 3 min
  Burner min period: 5 min
  Burner min power: 0 %
  Burner max power: 100 %
  Temperature hysteresis on: -6 °C
  Temperature hysteresis off: 4 °C
  Burner starts: 48751
  Burner active time: 193 days 21 hours 5 minutes
  Heating active time: 183 days 7 hours 12 minutes
  Boiler total uptime: 1380 days 16 hours 18 minutes
  Maintenance message: -
  Scheduled maintenance: off
  Warm water selected temperature: 51 °C
  Warm water set temperature: 0 °C
  Warm water disinfection temperature: 70 °C
  Warm water type: flow
  Warm water charging type: 3-way valve
  Warm water circulation pump available: off
  Warm water circulation pump freq: 2x3min
  Warm water circulation active: off
  Warm water current temperature (intern): 30.2 °C
  Warm water current tap water flow: 0.0 l/min
  Warm water storage temperature (intern): 30.2 °C
  Warm water activated: on
  Warm water one time charging: off
  Warm water disinfecting: off
  Warm water charging: off
  Warm water recharging: off
  Warm water temperature ok: on
  Warm water active: off
  Warm water heating: on
  Warm water starts: 26830
  Warm water active time: 10 days 13 hours 53 minutes

Thermostat: Worcester CRF200S (DeviceID:0x18 ProductID:216, Version:01.02)
  Time: 13:26:00 26/04/2021
  (hc 1) Setpoint room temperature: 16.5 °C
  (hc 1) Current room temperature: 18.5 °C
  (hc 1) Target flow temperature: 0 °C
  (hc 1) Mode: auto

Controller: Controller (DeviceID:0x09, ProductID:152, Version:03.01)

Log:

  • 0:40 — Mode:Auto, Target: 18ºC, Reading 18.4ºC, Boiler:off
  • 2:11 — Target set to 20ºC, boiler came on
  • 3:36 — Target set to 17ºC, boiler went off
  • 4:33 — Mode changed to Off
  • 5:48 — Mode changed to On (target auto-restored to 20ºC), boiler came on
  • 6:18 - Target set to 16º, boiler went off
  • 7:30 — Mode changed back to Auto
-----8<----- Mode:auto, Target: 18ºC, Reading 18.4º, Boiler:off -----8<-----
000+00:00:40.600 E 31: [telegram] Last Tx Read operation failed after 3 retries. Ignoring request.
000+00:00:41.630 N 32: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 3C 01 A3 09 00 01 03 40 D0 01 63 80 00 01 85 00 00 FF 00 00 01 09 00 00 00
000+00:00:52.154 N 33: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 3C 01 A3 09 00 01 03 40 D0 01 62 80 00 01 85 00 00 FF 00 00 01 09 00 00 00
000+00:00:53.824 E 34: [telegram] Last Tx Read operation failed after 3 retries. Ignoring request.
000+00:00:56.239 N 35: [emsesp] Thermostat(0x18) -> Me(0x0B), RC300Set(0x2B9), data: <empty>
000+00:00:59.974 E 36: [telegram] Last Tx Read operation failed after 3 retries. Ignoring request.
000+00:01:01.679 N 37: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 3C 01 A3 09 00 01 03 40 D0 01 61 80 00 01 85 00 00 FF 00 00 01 09 00 00 00
000+00:01:03.408 N 38: [emsesp] Thermostat(0x18) -> All(0x00), RCTime(0x06), data: 15 04 0D 1A 0F 00 00 00
000+00:01:03.598 N 39: [emsesp] Thermostat(0x18) <- Boiler(0x08), Version(0x02), data: 0A
000+00:01:03.639 N 40: [emsesp] Boiler(0x08) -> Thermostat(0x18), Version(0x02), data: 7B 06 02 00 00 00 00 00 00 0B
000+00:01:03.674 N 41: [emsesp] Thermostat(0x18) -> All(0x00), RC300Monitor(0x2A5), data: 00 B8 21 00 5A 09 25
000+00:01:03.876 N 42: [emsesp] Thermostat(0x18) -> Boiler(0x08), UBASetPoints(0x1A), data: 55 09
000+00:01:14.124 E 43: [telegram] Last Tx Read operation failed after 3 retries. Ignoring request.
000+00:01:26.174 E 44: [telegram] Last Tx Read operation failed after 3 retries. Ignoring request.
000+00:01:28.677 N 45: [emsesp] Thermostat(0x18) -> Me(0x0B), RCErrorMessage(0x12), data: <empty>
000+00:01:30.202 N 46: [emsesp] Thermostat(0x18) -> Me(0x0B), RCError(0xA2), data: <empty>
000+00:01:30.462 N 47: [emsesp] Thermostat(0x18) -> Me(0x0B), RC300WWmode(0x2F5), data: <empty>
000+00:01:30.687 N 48: [emsesp] Thermostat(0x18) -> Me(0x0B), RC300WWtemp(0x31B), data: <empty>
000+00:01:30.962 N 49: [emsesp] Thermostat(0x18) -> Me(0x0B), RC300OutdoorTemp(0x23A), data: <empty>
000+00:01:31.187 N 50: [emsesp] Thermostat(0x18) -> Me(0x0B), RC300Settings(0x240), data: <empty>
000+00:01:31.682 E 51: [telegram] Rx: 88 0B 19 00 80 00 01 AB 80 00 00 00 00 00 00 BE 6D 04 42 90 00 00 00 04 FF 0F 00 55 9F 80 00 9D (CRC 9D != 81)
000+00:01:32.005 E 52: [telegram] Rx: 80 FE 88 00 18 00 3C 01 A2 09 00 01 03 40 D0 01 5D 80 00 01 85 00 00 FF 00 00 01 09 00 00 00 C2 (CRC C2 != 8C)
000+00:01:34.362 N 53: [emsesp] Thermostat(0x18) -> Me(0x0B), RC300WWmode(0x2F5), data: <empty>
000+00:01:34.562 N 54: [emsesp] Thermostat(0x18) -> Me(0x0B), RC300WWtemp(0x31B), data: <empty>
000+00:01:34.888 N 55: [emsesp] Thermostat(0x18) -> Me(0x0B), RC300OutdoorTemp(0x23A), data: <empty>
000+00:01:35.138 N 56: [emsesp] Thermostat(0x18) -> Me(0x0B), RC300Settings(0x240), data: <empty>
000+00:02:02.253 N 57: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 3C 01 A2 09 00 01 03 40 D0 01 5B 80 00 01 84 00 00 FF 00 00 01 09 00 00 00
000+00:02:02.849 E 58: [telegram] Rx: 98 00 06 00 15 04 0D 1A 10 00 00 00 08 09 (CRC 09 != 10)
000+00:02:03.106 N 59: [emsesp] Thermostat(0x18) -> All(0x00), RCTime(0x06), data: 15 04 0D 1A 10 00 00 00
000+00:02:03.301 N 60: [emsesp] Thermostat(0x18) <- Boiler(0x08), Version(0x02), data: 0A
000+00:02:03.339 N 61: [emsesp] Boiler(0x08) -> Thermostat(0x18), Version(0x02), data: 7B 06 02 00 00 00 00 00 00 0B
000+00:02:03.368 E 62: [telegram] Rx: 98 00 FF 00 01 A5 00 B8 21 00 5A 09 (CRC 09 != FC)
000+00:02:04.082 N 63: [emsesp] Thermostat(0x18) -> All(0x00), RC300Monitor(0x2A5), data: 00 B8 21 00 5A 09 25
000+00:02:04.277 N 64: [emsesp] Thermostat(0x18) -> Boiler(0x08), UBAFlags(0x35), data: 01
000+00:02:04.318 N 65: [emsesp] Thermostat(0x18) -> Boiler(0x08), UBASetPoints(0x1A), data: 55 09
000+00:02:04.579 N 66: [emsesp] Thermostat(0x18) -> Me(0x0B), RC300Monitor(0x2A5), data: 00 B8 21 00 5A 09 25
000+00:02:04.814 N 67: [emsesp] Thermostat(0x18) -> Me(0x0B), RC300Set(0x2B9), data: <empty>
000+00:02:05.089 N 68: [emsesp] Thermostat(0x18) -> Me(0x0B), RC300Summer(0x2AF), data: <empty>
000+00:02:05.314 N 69: [emsesp] Thermostat(0x18) -> Me(0x0B), RC300Curves(0x29B), data: <empty>


-----8<----- Target set to 20ºC, boiler came on -----8<-----
000+00:02:11.705 N 70: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 3C 01 A2 09 00 01 03 40 D0 01 5A 80 00 01 84 00 00 FF 00 00 01 09 00 00 00
000+00:02:13.081 N 71: [emsesp] Thermostat(0x18) -> All(0x00), RC300Monitor(0x2A5), data: 00 B8 21 00 5A 64 28
000+00:02:13.275 N 72: [emsesp] Thermostat(0x18) -> Boiler(0x08), UBASetPoints(0x1A), data: 55 64
000+00:02:14.686 N 73: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 3C 01 A2 64 00 01 03 04 D0 01 5A 80 00 01 84 00 00 FF 00 00 01 1B 00 00 00
000+00:02:17.686 N 74: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 3C 01 A2 64 00 01 03 25 D0 01 59 80 00 01 84 00 00 FF 00 00 01 1C 00 00 00
000+00:02:18.686 N 75: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 3C 01 A2 64 00 01 03 2D D0 01 59 80 00 01 84 00 23 FF 00 00 01 1C 00 00 00
000+00:02:19.686 N 76: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 3C 01 A3 64 00 09 03 2D D0 01 59 80 00 01 86 00 AA FF 00 00 01 1C 00 00 00
000+00:02:21.736 N 77: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 3C 01 A4 64 2D 09 03 25 D0 01 59 80 00 01 7D 00 FA FF 00 00 00 C8 00 00 00
000+00:02:25.686 N 78: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 3C 01 B3 64 28 09 03 25 D0 01 59 80 00 01 7F 01 1D FF 00 00 00 C8 00 00 00
000+00:02:26.686 N 79: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 3C 01 B9 64 27 09 03 25 D0 01 59 80 00 01 7C 01 13 FF 00 00 00 C8 00 00 00
000+00:02:28.686 N 80: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 3C 01 C4 64 25 09 03 25 D0 01 58 80 00 01 7A 01 01 FF 00 00 00 C8 00 00 00
000+00:02:31.686 N 81: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 3C 01 CD 64 20 09 03 25 D0 01 58 80 00 01 7B 00 E9 FF 00 00 00 C8 00 00 00
000+00:02:32.735 N 82: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 3C 01 D0 64 20 09 03 25 D0 01 58 80 00 01 7B 00 E1 FF 00 00 00 C8 00 00 00
000+00:02:40.786 N 83: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 3C 01 C9 64 1E 09 03 25 D0 01 57 80 00 01 71 00 CE FF 00 00 00 C8 00 00 00
000+00:02:41.736 N 84: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 3C 01 C6 64 1E 09 03 25 D0 01 57 80 00 01 71 00 CE FF 00 00 00 C8 00 00 00
000+00:02:43.711 N 85: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 3C 01 C1 64 1E 09 03 25 D0 01 57 80 00 01 70 00 CE FF 00 00 00 C8 00 00 00
000+00:02:50.686 N 86: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 3C 01 B7 64 1D 09 03 25 D0 01 56 80 00 01 68 00 D1 FF 00 00 00 C8 00 00 00
000+00:02:51.711 N 87: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 3C 01 B6 64 1E 09 03 25 D0 01 56 80 00 01 68 00 D3 FF 00 00 00 C8 00 00 00
000+00:02:59.761 N 88: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 3C 01 AD 64 1E 09 03 25 D0 01 55 80 00 01 67 00 D8 FF 00 00 00 C8 00 00 00
000+00:03:00.788 E 89: [telegram] Rx: 88 0B 19 00 80 00 01 AB 80 00 00 00 00 54 00 BE 6E 04 42 90 00 00 00 04 D8 0F 00 55 A0 80 00 ED (CRC ED != E0)
000+00:03:01.711 N 90: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 3C 01 AB 64 1E 09 03 25 D0 01 56 80 00 01 67 00 D6 FF 00 00 00 C8 00 00 00
000+00:03:03.311 N 91: [emsesp] Thermostat(0x18) -> All(0x00), RCTime(0x06), data: 15 04 0D 1A 11 00 00 00
000+00:03:03.506 N 92: [emsesp] Thermostat(0x18) <- Boiler(0x08), Version(0x02), data: 0A
000+00:03:03.544 N 93: [emsesp] Boiler(0x08) -> Thermostat(0x18), Version(0x02), data: 7B 06 02 00 00 00 00 00 00 0B
000+00:03:03.805 E 94: [telegram] Rx: 98 00 FF 00 01 A5 00 B8 21 00 10 09 (CRC 09 != B6)
000+00:03:04.438 N 95: [emsesp] Thermostat(0x18) -> All(0x00), RC300Monitor(0x2A5), data: 00 B8 21 00 5A 64 28
000+00:03:04.634 N 96: [emsesp] Thermostat(0x18) -> Boiler(0x08), UBASetPoints(0x1A), data: 55 64
000+00:03:05.134 N 97: [emsesp] Thermostat(0x18) -> Me(0x0B), RC300Monitor(0x2A5), data: 00 B8 21 00 5A 64 28
000+00:03:11.960 N 98: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 3C 01 A5 64 1D 09 03 25 D0 01 55 80 00 01 67 00 DC FF 00 00 00 C8 00 00 00
000+00:03:14.736 N 99: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 3C 01 A3 64 1E 09 03 25 D0 01 54 80 00 01 67 00 DB FF 00 00 00 C8 00 00 00
000+00:03:21.761 N 100: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 3C 01 A2 64 1D 09 03 25 D0 01 54 80 00 01 68 00 D9 FF 00 00 00 C8 00 00 00
000+00:03:32.010 N 101: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 3C 01 A1 64 1D 09 03 25 D0 01 53 80 00 01 6A 00 DB FF 00 00 00 C8 00 00 00


-----8<----- Target set to 17ºC, boiler went off -----8<-----
000+00:03:36.587 N 102: [emsesp] Thermostat(0x18) -> All(0x00), RC300Monitor(0x2A5), data: 00 B8 21 00 5A 64 22
000+00:03:36.788 N 103: [emsesp] Thermostat(0x18) -> Boiler(0x08), UBASetPoints(0x1A), data: 55 64
000+00:03:36.836 N 104: [emsesp] Thermostat(0x18) -> All(0x00), RC300Monitor(0x2A5), data: 00 B8 20 00 00 00 22
000+00:03:37.032 N 105: [emsesp] Thermostat(0x18) -> Boiler(0x08), UBASetPoints(0x1A), data: 00 00
000+00:03:38.710 N 106: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 05 01 A2 00 00 08 02 24 D0 01 53 80 00 01 6C 00 D5 FF 00 00 00 CB 00 00 00
000+00:03:40.735 N 107: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 05 01 A2 00 00 00 02 24 D0 01 53 80 00 01 6D 00 00 FF 00 00 00 CB 00 00 00
000+00:03:46.735 N 108: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 05 01 97 00 00 00 02 24 D0 01 52 80 00 01 6B 00 00 FF 00 00 00 CB 00 00 00
000+00:03:50.810 N 109: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 05 01 8E 00 00 00 02 24 D0 01 51 80 00 01 6B 00 00 FF 00 00 00 CB 00 00 00
000+00:03:51.810 N 110: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 05 01 8C 00 00 00 02 24 D0 01 51 80 00 01 6B 00 00 FF 00 00 00 CB 00 00 00
000+00:03:54.735 N 111: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 05 01 85 00 00 00 02 24 D0 01 51 80 00 01 6C 00 00 FF 00 00 00 CB 00 00 00
000+00:04:01.735 N 112: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 05 01 7E 00 00 00 02 24 D0 01 51 80 00 01 6D 00 00 FF 00 00 00 CB 00 00 00
000+00:04:03.312 E 113: [telegram] Rx: 88 0B 19 00 80 00 01 7E 80 00 00 00 03 40 00 BE 6E 04 42 91 00 00 00 04 F8 10 00 55 A0 80 00 D9 (CRC D9 != 1C)
000+00:04:03.839 N 114: [emsesp] Thermostat(0x18) -> All(0x00), RCTime(0x06), data: 15 04 0D 1A 12 00 00 00
000+00:04:04.029 N 115: [emsesp] Thermostat(0x18) <- Boiler(0x08), Version(0x02), data: 0A
000+00:04:04.069 N 116: [emsesp] Boiler(0x08) -> Thermostat(0x18), Version(0x02), data: 7B 06 02 00 00 00 00 00 00 0B
000+00:04:04.084 E 117: [telegram] Rx: 98 00 FF 00 01 A5 (CRC A5 != 87)
000+00:04:04.915 N 118: [emsesp] Thermostat(0x18) -> All(0x00), RC300Monitor(0x2A5), data: 00 B8 20 00 00 00 22
000+00:04:05.109 N 119: [emsesp] Thermostat(0x18) -> Boiler(0x08), UBAFlags(0x35), data: 01
000+00:04:05.151 N 120: [emsesp] Thermostat(0x18) -> Boiler(0x08), UBASetPoints(0x1A), data: 00 00
000+00:04:06.381 N 121: [emsesp] Thermostat(0x18) -> Me(0x0B), RC300Monitor(0x2A5), data: 00 B8 20 00 00 00 22
000+00:04:06.760 N 122: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 05 01 7B 00 00 00 02 24 D0 01 50 80 00 01 6F 00 00 FF 00 00 00 CB 00 00 00
000+00:04:08.785 N 123: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 05 01 7B 00 00 00 02 20 D0 01 50 80 00 01 6F 00 00 FF 00 00 00 CB 00 00 00
000+00:04:11.735 N 124: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 05 01 7A 00 00 00 02 20 D0 01 50 80 00 01 70 00 00 FF 00 00 00 CB 00 00 00


-----8<----- Mode changed to Off -----8<-----
000+00:04:33.112 N 125: [emsesp] Thermostat(0x18) -> All(0x00), RC300Monitor(0x2A5), data: 00 B8 30 00 00 00 0A
000+00:04:33.308 N 126: [emsesp] Thermostat(0x18) -> Boiler(0x08), UBASetPoints(0x1A), data: 00 00
000+00:04:41.785 N 127: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 05 01 7A 00 00 00 02 20 D0 01 4D 80 00 01 70 00 00 FF 00 00 00 CB 00 00 00
000+00:05:00.362 E 128: [telegram] Rx: 88 0B 19 00 80 00 01 7B 80 00 00 00 02 40 00 BE 6E 04 42 91 00 00 00 04 D8 10 00 55 A0 80 00 A9 (CRC A9 != A4)
000+00:05:02.209 N 129: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 05 01 7A 00 00 00 02 20 D0 01 4C 80 00 01 70 00 00 FF 00 00 00 CB 00 00 00
000+00:05:02.859 N 130: [emsesp] Thermostat(0x18) -> All(0x00), RCTime(0x06), data: 15 04 0D 1A 13 00 00 00
000+00:05:03.050 N 131: [emsesp] Thermostat(0x18) <- Boiler(0x08), Version(0x02), data: 0A
000+00:05:03.069 N 132: [emsesp] Boiler(0x08) -> Thermostat(0x18), Version(0x02), data: 7B 06 02 00 00 00 00 00 00 0B
000+00:05:03.102 N 133: [emsesp] Thermostat(0x18) -> All(0x00), RC300Monitor(0x2A5), data: 00 B8 30 00 00 00 0A
000+00:05:03.297 N 134: [emsesp] Thermostat(0x18) -> Boiler(0x08), UBASetPoints(0x1A), data: 00 00
000+00:05:03.507 N 135: [emsesp] Thermostat(0x18) -> Me(0x0B), RC300Monitor(0x2A5), data: 00 B8 30 00 00 00 0A
000+00:05:11.835 N 136: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 05 01 7A 00 00 00 02 20 D0 01 4B 80 00 01 70 00 00 FF 00 00 00 CB 00 00 00
000+00:05:13.715 N 137: [emsesp] Thermostat(0x18) -> All(0x00), RC300Monitor(0x2A5), data: 00 B9 30 00 00 00 0A
000+00:05:22.109 N 138: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 05 01 79 00 00 00 02 20 D0 01 49 80 00 01 6D 00 00 FF 00 00 00 CB 00 00 00
000+00:05:41.859 N 139: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 05 01 77 00 00 00 02 20 D0 01 48 80 00 01 6C 00 00 FF 00 00 00 CB 00 00 00


-----8<----- Mode changed to On (target auto-restored to 20ºC) -----8<-----
000+00:05:48.535 N 140: [emsesp] Thermostat(0x18) -> All(0x00), RC300Monitor(0x2A5), data: 00 B9 21 00 5A 64 28
000+00:05:48.731 N 141: [emsesp] Thermostat(0x18) -> Boiler(0x08), UBASetPoints(0x1A), data: 55 64
000+00:05:49.759 N 142: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 05 01 77 00 00 01 03 20 D0 01 47 80 00 01 6C 00 00 FF 00 00 00 CB 00 00 00
000+00:05:50.766 N 143: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 3C 01 76 64 00 01 03 24 D0 01 47 80 00 01 6C 00 00 FF 00 00 01 1B 00 00 00
000+00:05:51.767 N 144: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 3C 01 76 64 00 01 03 24 D0 01 47 80 00 01 6B 00 00 FF 00 00 01 1B 00 00 00
000+00:05:53.591 N 145: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 3C 01 76 64 00 01 03 2D D0 01 47 80 00 01 6B 00 59 FF 00 00 01 1C 00 00 00
000+00:05:53.866 N 146: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 3C 01 76 64 00 09 03 2D D0 01 47 80 00 01 6B 00 89 FF 00 00 01 1C 00 00 00
000+00:05:58.816 N 147: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 3C 01 7F 64 2B 09 03 25 D0 01 47 80 00 01 6B 01 2B FF 00 00 00 C8 00 00 00
000+00:05:59.815 N 148: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 3C 01 87 64 2A 09 03 25 D0 01 47 80 00 01 6B 01 29 FF 00 00 00 C8 00 00 00
000+00:06:01.791 N 149: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 3C 01 94 64 27 09 03 25 D0 01 47 80 00 01 6B 01 14 FF 00 00 00 C8 00 00 00
000+00:06:02.892 N 150: [emsesp] Thermostat(0x18) -> All(0x00), RCTime(0x06), data: 15 04 0D 1A 14 00 00 00
000+00:06:03.082 N 151: [emsesp] Thermostat(0x18) <- Boiler(0x08), Version(0x02), data: 0A
000+00:06:03.099 N 152: [emsesp] Boiler(0x08) -> Thermostat(0x18), Version(0x02), data: 7B 06 02 00 00 00 00 00 00 0B
000+00:06:03.134 N 153: [emsesp] Thermostat(0x18) -> All(0x00), RC300Monitor(0x2A5), data: 00 B9 21 00 5A 64 28
000+00:06:03.333 N 154: [emsesp] Thermostat(0x18) -> Boiler(0x08), UBAFlags(0x35), data: 01
000+00:06:03.355 N 155: [emsesp] Thermostat(0x18) -> Boiler(0x08), UBASetPoints(0x1A), data: 55 64
000+00:06:03.441 N 156: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 3C 01 9F 64 26 09 03 25 D0 01 47 80 00 01 6B 01 06 FF 00 00 00 C8 00 00 00
000+00:06:05.591 N 157: [emsesp] Thermostat(0x18) -> Me(0x0B), RC300Monitor(0x2A5), data: 00 B9 21 00 5A 64 28
000+00:06:06.841 N 158: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 3C 01 B0 64 20 09 03 25 D0 01 46 80 00 01 6A 00 E3 FF 00 00 00 C8 00 00 00
000+00:06:09.841 N 159: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 3C 01 B8 64 1D 09 03 25 D0 01 46 80 00 01 6A 00 CF FF 00 00 00 C8 00 00 00
000+00:06:11.865 N 160: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 3C 01 B9 64 1D 09 03 25 D0 01 46 80 00 01 6A 00 D3 FF 00 00 00 C8 00 00 00
000+00:06:14.840 N 161: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 3C 01 B7 64 1D 09 03 25 D0 01 46 80 00 01 68 00 CE FF 00 00 00 C8 00 00 00


-----8<----- Target set to 16º, boiler went off -----8<-----
000+00:06:18.668 N 162: [emsesp] Thermostat(0x18) -> All(0x00), RC300Monitor(0x2A5), data: 00 B9 20 00 00 00 20
000+00:06:18.862 N 163: [emsesp] Thermostat(0x18) -> Boiler(0x08), UBASetPoints(0x1A), data: 00 00
000+00:06:19.816 N 164: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 3C 01 AF 64 1E 08 02 25 D0 01 45 80 00 01 6C 00 D3 FF 00 00 00 CB 00 00 00
000+00:06:20.841 N 165: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 05 01 AE 00 00 08 02 24 D0 01 45 80 00 01 6C 00 78 FF 00 00 00 CB 00 00 00
000+00:06:22.791 N 166: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 05 01 AD 00 00 00 02 24 D0 01 45 80 00 01 6C 00 00 FF 00 00 00 CB 00 00 00
000+00:06:26.840 N 167: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 05 01 A1 00 00 00 02 24 D0 01 45 80 00 01 6A 00 00 FF 00 00 00 CB 00 00 00
000+00:06:29.791 N 168: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 05 01 97 00 00 00 02 24 D0 01 45 80 00 01 6A 00 00 FF 00 00 00 CB 00 00 00
000+00:06:31.790 N 169: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 05 01 91 00 00 00 02 24 D0 01 45 80 00 01 6A 00 00 FF 00 00 00 CB 00 00 00
000+00:06:32.866 N 170: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 05 01 8E 00 00 00 02 24 D0 01 45 80 00 01 68 00 00 FF 00 00 00 CB 00 00 00
000+00:06:36.816 N 171: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 05 01 85 00 00 00 02 24 D0 01 44 80 00 01 68 00 00 FF 00 00 00 CB 00 00 00
000+00:06:41.816 N 172: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 05 01 7E 00 00 00 02 24 D0 01 44 80 00 01 67 00 00 FF 00 00 00 CB 00 00 00
000+00:06:44.790 N 173: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 05 01 7B 00 00 00 02 24 D0 01 44 80 00 01 67 00 00 FF 00 00 00 CB 00 00 00
000+00:06:50.866 N 174: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 05 01 76 00 00 00 02 20 D0 01 44 80 00 01 67 00 00 FF 00 00 00 CB 00 00 00
000+00:06:51.866 N 175: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 05 01 76 00 00 00 02 20 D0 01 44 80 00 01 67 00 00 FF 00 00 00 CB 00 00 00
000+00:06:59.865 N 176: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 05 01 71 00 00 00 02 20 D0 01 43 80 00 01 67 00 00 FF 00 00 00 CB 00 00 00
000+00:07:00.817 E 177: [telegram] Rx: 88 0B 19 00 80 00 01 73 80 00 00 00 03 40 00 BE 6F 04 42 91 00 00 00 04 D8 10 00 55 A1 80 00 87 (CRC 87 != 8A)
000+00:07:02.040 N 178: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 05 01 71 00 00 00 02 20 D0 01 43 80 00 01 67 00 00 FF 00 00 00 CB 00 00 00
000+00:07:03.819 N 179: [emsesp] Thermostat(0x18) -> All(0x00), RCTime(0x06), data: 15 04 0D 1A 15 00 00 00
000+00:07:04.014 N 180: [emsesp] Thermostat(0x18) <- Boiler(0x08), Version(0x02), data: 0A
000+00:07:04.050 N 181: [emsesp] Boiler(0x08) -> Thermostat(0x18), Version(0x02), data: 7B 06 02 00 00 00 00 00 00 0B
000+00:07:04.073 E 182: [telegram] Rx: 98 00 FF 00 01 A5 00 B9 20 00 (CRC 00 != A6)
000+00:07:04.640 N 183: [emsesp] Thermostat(0x18) -> All(0x00), RC300Monitor(0x2A5), data: 00 B9 20 00 00 00 20
000+00:07:04.837 N 184: [emsesp] Thermostat(0x18) -> Boiler(0x08), UBASetPoints(0x1A), data: 00 00
000+00:07:05.786 N 185: [emsesp] Thermostat(0x18) -> Me(0x0B), RC300Monitor(0x2A5), data: 00 B9 20 00 00 00 20
000+00:07:22.390 N 186: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 05 01 71 00 00 00 02 20 D0 01 42 80 00 01 6A 00 00 FF 00 00 00 CB 00 00 00


-----8<----- Mode changed back to Auto -----8<-----
000+00:07:30.815 N 187: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 05 01 73 00 00 00 02 20 D0 01 41 80 00 01 6B 00 00 FF 00 00 00 CB 00 00 00
000+00:07:31.619 N 188: [emsesp] Thermostat(0x18) -> All(0x00), RC300Monitor(0x2A5), data: 00 B9 20 00 00 00 22
000+00:07:31.814 N 189: [emsesp] Thermostat(0x18) -> Boiler(0x08), UBASetPoints(0x1A), data: 00 00
000+00:07:31.890 N 190: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 05 01 73 00 00 00 02 20 D0 01 41 80 00 01 6B 00 00 FF 00 00 00 CB 00 00 00
000+00:07:42.115 N 191: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 05 01 74 00 00 00 02 20 D0 01 40 80 00 01 6C 00 00 FF 00 00 00 CB 00 00 00
000+00:07:50.643 N 192: [emsesp] Thermostat(0x18) -> All(0x00), RC300Monitor(0x2A5), data: 00 B9 20 00 00 00 21
000+00:07:50.839 N 193: [emsesp] Thermostat(0x18) -> Boiler(0x08), UBASetPoints(0x1A), data: 00 00
000+00:08:01.742 E 194: [telegram] Rx: 88 0B 16 00 FF 3C 64 00 04 FA 05 01 03 64 3C 04 00 00 00 00 00 00 00 00 F8 00 00 00 3C 00 1E 4C (CRC 4C != 50)
000+00:08:04.140 N 195: [emsesp] Thermostat(0x18) -> All(0x00), RCTime(0x06), data: 15 04 0D 1A 16 00 00 00
000+00:08:04.331 N 196: [emsesp] Thermostat(0x18) <- Boiler(0x08), Version(0x02), data: 0A
000+00:08:04.348 N 197: [emsesp] Boiler(0x08) -> Thermostat(0x18), Version(0x02), data: 7B 06 02 00 00 00 00 00 00 0B
000+00:08:04.383 N 198: [emsesp] Thermostat(0x18) -> All(0x00), RC300Monitor(0x2A5), data: 00 B9 20 00 00 00 21
000+00:08:04.577 N 199: [emsesp] Thermostat(0x18) -> Boiler(0x08), UBAFlags(0x35), data: 01
000+00:08:04.604 N 200: [emsesp] Thermostat(0x18) -> Boiler(0x08), UBASetPoints(0x1A), data: 00 00
000+00:08:05.313 N 201: [emsesp] Thermostat(0x18) -> Me(0x0B), RC300Monitor(0x2A5), data: 00 B9 20 00 00 00 21
000+00:08:11.890 N 202: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 05 01 74 00 00 00 02 20 D0 01 3F 80 00 01 6A 00 00 FF 00 00 00 CB 00 00 00
000+00:08:29.864 N 203: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 05 01 71 00 00 00 02 20 D0 01 3E 80 00 01 67 00 00 FF 00 00 00 CB 00 00 00
000+00:08:31.839 N 204: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 05 01 71 00 00 00 02 20 D0 01 3C 80 00 01 67 00 00 FF 00 00 00 CB 00 00 00

Thanks.

@MichaelDvP
Copy link
Contributor

Ok, this is a new kind of thermostat, it does not support the telgrams RC300Set(0x2B9), RC300Summer(0x2AF), and RC300Curves(0x29B) Only the RC300Monitor(0x2A5) is used, but with different meaning of the values.

It's only a few bytes: 00 B8 21 00 5A 09 25 where
pos 0/1: current roomtemp in 0.1°C
pos 2 seems to be mode bits, but is unclear
pos 3 ? always 0
pos 4 setpoint flowtemp (5A = 90°C)
pos 5 pump power (0-100%)
pos 6 the setpoint

We have to figure out the mode and mode_type settings:
mode_type seems to be bit 0 with 0-eco(off), 1-comfort(on)
mode is somewhere in bits 4 and 5, but i don't see the logic
0x20- auto (modetype eco)
0x21 - auto (modetype comfort)
0x30 - off (modetype eco)

What modes does the thermostat have? I can not find a manual in web.

For the setpoint can you try if pos 6 is writeable. In telnet
call system send "0B 18 FF 06 01 A5 26"
should set the setpoint roomtemp to 19°C.
If this works we can add it to thermostat-temp-command.

@stewiem2000
Copy link
Author

Manual:

Modes:

  • "On"; permanently try to maintain the current set-point temperature.
  • "Off"; off, but does have frost-protection, so I'd guess essentially uses a set-point of 5ºC or so.
  • "Auto"; follow the programmed in set-points.

Position 6 seems unwritable :( I tried both tx_mode 1 and 2. Same immediate response from the thermostat.

ems-esp:/# call system send "0B 18 FF 06 01 A5 26"
000+02:38:19.433 N 13: [emsesp] Thermostat(0x18) -> Me(0x0B), RC300Monitor(0x2A5), data: 00 B7 20 00 00 00 21
000+02:38:25.835 N 14: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 05 01 30 00 00 00 02 40 D0 00 E2 80 00 01 0E 00 00 FF 00 00 00 CB 00 00 00
000+02:38:36.061 N 15: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 05 01 30 00 00 00 02 40 D0 00 E2 80 00 01 10 00 00 FF 00 00 00 CB 00 00 00
000+02:38:45.510 N 16: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 05 01 30 00 00 00 02 40 D0 00 E2 80 00 01 10 00 00 FF 00 00 00 CB 00 00 00
000+02:38:55.960 N 17: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 05 01 30 00 00 00 02 40 D0 00 E2 80 00 01 10 00 00 FF 00 00 00 CB 00 00 00
000+02:39:01.788 N 18: [emsesp] Thermostat(0x18) -> All(0x00), RCTime(0x06), data: 15 04 0F 1A 35 00 00 00
000+02:39:01.984 N 19: [emsesp] Thermostat(0x18) <- Boiler(0x08), Version(0x02), data: 0A
000+02:39:02.020 N 20: [emsesp] Boiler(0x08) -> Thermostat(0x18), Version(0x02), data: 7B 06 02 00 00 00 00 00 00 0B
000+02:39:02.034 E 21: [telegram] Rx: 98 00 FF 00 01 A5 (CRC A5 != 87)
000+02:39:02.490 N 22: [emsesp] Thermostat(0x18) -> All(0x00), RC300Monitor(0x2A5), data: 00 B7 20 00 00 00 21
000+02:39:02.692 N 23: [emsesp] Thermostat(0x18) -> Boiler(0x08), UBASetPoints(0x1A), data: 00 00
000+02:39:03.506 N 24: [emsesp] Thermostat(0x18) -> Me(0x0B), RC300Monitor(0x2A5), data: 00 B7 20 00 00 00 21
000+02:39:06.035 N 25: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 05 01 30 00 00 00 02 40 D0 00 E2 80 00 01 0E 00 00 FF 00 00 00 CB 00 00 00
000+02:39:15.560 N 26: [emsesp] Boiler(0x08) -> All(0x00), UBAMonitorFast(0x18), data: 05 01 30 00 00 00 02 40 D0 00 E2 80 00 01 0E 00 00 FF 00 00 00 CB 00 00 00

@stewiem2000 stewiem2000 changed the title Worcestor II RF Support Worcestor Comfort II RF Support Apr 26, 2021
@MichaelDvP
Copy link
Contributor

Position 6 seems unwritable

That's sad, but expected. Normally the monitor telegram is not wrtiable and there is a setting-telegram for the parameters, that is published if a parameter changed. But this thermostat only publishes the monitor, seems that there is no way to write the values. I added the known values for this thermostat as special thermostat type. But i don't know what else we can do to write a value.

@proddy, @norberts1 You know more about the different thermostats and telegrams, any idea how to write setpoint?

@stewiem2000
Copy link
Author

I'd hope you wouldn't say that, but it fits. Thanks for adding the values, reporting will still be of some use.

Do I have any other sensible control options, e.g. "unplugging" the thermostat competely and sending the boiler commands directly? Is that considered a Bad Ideaᵀᴹ?

If there's any additional information I can provide, please let me know.

@MichaelDvP
Copy link
Contributor

MichaelDvP commented Apr 28, 2021

Do I have any other sensible control options, e.g. "unplugging" the thermostat competely and sending the boiler commands directly? Is that considered a Bad Ideaᵀᴹ?

Normally it is not the best idea to build a own thermostat logic, the commercial thermostats are very fail-safe and control strategy is a lot of work to rebuild. But your CRF seems very simple and it seems easy to replace it.

What the CRF do is to measure the roomtemp and calfulate to flowtemp and burnpower and send it to the boiler. This is done in only a few telegrams:
Thermostat(0x18) -> All(0x00), RC300Monitor(0x2A5), data: 00 B8 21 00 5A 09 25
The thermostat publishes it's own values only for info.
Thermostat(0x18) -> Boiler(0x08), UBASetPoints(0x1A), data: 55 09
The thermostat sets the boiler flowtemp (85°C) and burnPower (9%).
Thermostat(0x18) -> Boiler(0x08), UBAFlags(0x35), data: 01
The thermostet tells the boiler that warm water is activated.
Also the thermostats do not have different temperatures and mode, it simple switches on or off at programmed times.

That is all i see in this log. There must be also a setting for ww-temperature in telegram 33 or 35.
If you unplug the thermostat you can do this very easy (or better if you also measure outdoor temperature) and calcualte flowtemp, also you can change between different temperatures for day and night, etc. with a bit scripting in home automation system.
You only need the commands boiler selflowtemp x, boiler wwsettemp x.
Only thing is, that we do not have a dedicated command for burnPower for now (but can be added easiely), you have to send by raw system command send "0B 08 1A 01 xx" to change burner power.

The best solution is to buy a (writable) masterthermostat, placed on the boiler and use the CRF as room temperature remote thermostat. I don't know much about the worcester models, but i think it's possible.

@stewiem2000
Copy link
Author

Only thing is, that we do not have a dedicated command for burnPower for now (but can be added easiely), you have to send by raw system command send "0B 08 1A 01 xx" to change burner power.

From further monitoring, it seems the thermostat keeps the same flowtemp (0x55 / 85ºC, or 0x00 when sending "off"), and only modulates the burnPower, so having a dedicated command would certainly aid me replicating its functionality.

The best solution is to buy a (writable) masterthermostat, placed on the boiler and use the CRF as room temperature remote thermostat. I don't know much about the worcester models, but i think it's possible.

On a whim, over the weekend, I acquired a Comfort I RF room thermostat (a CRF100S) with the hope of being able to add it into the system and glean some extra telegrams. Unfortunately, I could not persuade it pair with either/both the CRF200S and/nor the boiler-fitted receiver :(

So it looks like you might be right and I shall consider the options of replacing the thermostat or implementing my own, unless @proddy and/or @norberts1 have any further suggestions...?

@proddy proddy transferred this issue from emsesp/EMS-ESP Oct 4, 2021
@proddy proddy added the question Question about something label Oct 5, 2021
@bed31
Copy link

bed31 commented Oct 30, 2021

Hi, I also have a CRF200S thermostat called RF-NSC on ELM Leblanc branding (https://www.elmleblanc.fr/fr/fr/ocs/elm-leblanc/nsc-rf-878577-p/).
Controller (HT3) and Thermostat (CRF200S) are not recognized even with the last version of EMS-ESP32 3.2.1.
image

In the post it is written We're able to read the mode, current temperature and setpoint temperature but writing is tricky. but i nothing is decoded :(
Is it in a dev version or is there another trick ?
log.txt

What can I proceed to at least control On/Off of heating part of the Thermostat if I can control the thermostat ?
Otherwise how could I replace the thermostat to control boiler ?

Thanks for your help.

@proddy
Copy link
Contributor

proddy commented Oct 30, 2021 via email

@bed31
Copy link

bed31 commented Oct 30, 2021

You could try the latest dev build. No promises though as technically we haven’t supported the crf200. https://emsesp.github.io/docs/#/Supported-EMS-Devices

Thanks for your quick response.
Do you think it will be supported soon ?

regards

@bed31
Copy link

bed31 commented Oct 30, 2021

@proddy
I have test the last version v3.2.2b14 and no change.
Concerning Controller (HT3) is it normal to have nothing also ?
image

I also notice some errors in the console
2021-10-30 18:18:39.856 ERROR 584: [telegram] Last Tx Read operation failed after 3 retries. Ignoring request: 8B 98 FF 00 20 01 A8
Is it an real issue ?

Thx

@proddy
Copy link
Contributor

proddy commented Oct 30, 2021

@bed31 you should be at least able to see the details. Without details we can't help you. Have a look at https://emsesp.github.io/docs/#/Troubleshooting

MichaelDvP added a commit that referenced this issue Oct 30, 2021
@MichaelDvP
Copy link
Contributor

This is really a poor thermostat, not responding to hc2,3,4 telegrams. The error messages should now be fixed (only a few after startup), but it is cosmetic.

@bed31
Copy link

bed31 commented Oct 31, 2021

@bed31 you should be at least able to see the details. Without details we can't help you. Have a look at https://emsesp.github.io/docs/#/Troubleshooting

@proddy Sorry I may did not understand your comment :(
Thermostat is recognized but only the Date (not very useful )
image

Controller is not recognized :
image

Boiler : Ok

In order to start / stop the boiler with an external thermostat, how can i proceed ? Which mqtt command should i send ?

thanks in advance for your help
Eric

@MichaelDvP
Copy link
Contributor

Controller is not recognized :

looks like the controller is recognized. It has no data, but controllers normally do not publish any data. This is ok.

Thermostat is recognized but only the Date (not very useful )

In your log.txt from yesterday (and this is all information from your system we have) this is correct. Your thermostat does not publish more values, we have the time publish

2021-10-30 17:26:34.603 TRACE 2734: [emsesp] Thermostat(0x18) -> All(0x00), RCTime(0x06), data: 15 0A 11 1E 1B 00 05 00

thermostat reading some boiler parameters:

2021-10-30 17:26:34.800 TRACE 2735: [emsesp] Thermostat(0x18) <- Boiler(0x08), Version(0x02), data: 0A
2021-10-30 17:26:34.836 TRACE 2736: [emsesp] Boiler(0x08) -> Thermostat(0x18), Version(0x02), data: 5F 14 0E 00 00 00 00 00 00 00
2021-10-30 17:26:34.855 TRACE 2737: [emsesp] Thermostat(0x18) <- Boiler(0x08), ?(0x04), data: 15
2021-10-30 17:26:34.907 TRACE 2738: [emsesp] Boiler(0x08) -> Thermostat(0x18), ?(0x04), data: 2D 58 00 40 18 1F 64 00 00 78 6C 25 00 00 00 08
2021-10-30 17:26:34.925 TRACE 2739: [emsesp] Thermostat(0x18) <- Boiler(0x08), UBAParameters(0x16), data: 1B
2021-10-30 17:26:34.964 TRACE 2740: [emsesp] Boiler(0x08) -> Thermostat(0x18), UBAParameters(0x16), data: FF 42 2D 00 00 FB 03 01 03 64 0A 04
2021-10-30 17:26:34.981 TRACE 2741: [emsesp] Thermostat(0x18) <- Boiler(0x08), UBAParameterWW(0x33), data: 17
2021-10-30 17:26:35.028 TRACE 2742: [emsesp] Boiler(0x08) -> Thermostat(0x18), UBAParameterWW(0x33), data: 08 FF 39 00 00 1C 00 02 48 00 FF FF

thermostat sets flow temperature setpoint:

2021-10-30 17:26:35.048 TRACE 2743: [emsesp] Thermostat(0x18) -> Boiler(0x08), UBASetPoints(0x1A), data: 00 00

thermostat sets boiler warm water temperature:

2021-10-30 17:27:35.051 TRACE 2830: [emsesp] Thermostat(0x18) -> Boiler(0x08), UBAFlags(0x35), data: 3C (offset 3)

But the thermostat does not publish it's own values like the CRF200S from @stewiem2000. This was this telegram: Thermostat(0x18) -> All(0x00), RC300Monitor(0x2A5), data: 00 B9 20 00 00 00 20. Maybe it's older, i don't know, you have not told us the system information with version info.

@bed31
Copy link

bed31 commented Oct 31, 2021

@MichaelDvP Thank you for all these information.

Maybe it's older, i don't know, you have not told us the system information with version info.
Sorry but what are the information that I could give you ?
The boiler has just been install 3 months ago. It's a ELM Leblanc ODEALIS CONDENS GVT C 24-2M (same as Junkers Cerapur).
The Thermostat is a NSC RF (=CRF200S)
log (1).txt

image

image

@MichaelDvP
Copy link
Contributor

Please post system info and settings, see buttons on the help page:
Screenshot 2021-10-31 at 19-02-55 EMS-ESP

@bed31
Copy link

bed31 commented Oct 31, 2021

Please post system info and settings, see buttons on the help page: ![Screenshot 2021-10-31 at 19-02-55 EMS-ESP]

emsesp_system_info.txt
emsesp_system_settings.txt

@emsesp emsesp locked and limited conversation to collaborators Feb 13, 2023
@proddy proddy converted this issue into a discussion Feb 13, 2023
@proddy proddy reopened this Feb 19, 2023
@proddy proddy converted this issue into a discussion Feb 19, 2023
This issue was closed.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
question Question about something
Projects
None yet
Development

No branches or pull requests

4 participants