emsesp / EMS-ESP32

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

Worcestor Comfort II RF Support #138

Closed stewiem2000 closed 1 year ago

stewiem2000 commented 3 years ago

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 commented 3 years ago

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 commented 3 years ago

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 commented 3 years ago

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 commented 3 years ago

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

stewiem2000 commented 3 years ago

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:

-----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 commented 3 years ago

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 commented 3 years ago

Manual:

Modes:

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
MichaelDvP commented 3 years ago

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 commented 3 years ago

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 commented 3 years ago

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 commented 3 years ago

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...?

bed31 commented 2 years ago

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 commented 2 years ago

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

On Sat, 30 Oct 2021 at 17:32, bed31 @.***> wrote:

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: image] https://user-images.githubusercontent.com/33985224/139539274-35e1270a-715f-49ec-80db-72d4d962352c.png

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 https://github.com/emsesp/EMS-ESP32/files/7446988/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.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/emsesp/EMS-ESP32/issues/138#issuecomment-955335007, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJMO6DVSM2TJZKDQI7I4H3UJQMYBANCNFSM5FI4SVVA .

bed31 commented 2 years ago

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 commented 2 years ago

@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 commented 2 years ago

@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 commented 2 years ago

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 commented 2 years ago

@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 commented 2 years ago

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 commented 2 years ago

@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 commented 2 years ago

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

bed31 commented 2 years ago

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