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

Support writing to Buderus RC200 thermostat #434

Closed
fupe opened this issue Jul 24, 2020 · 9 comments
Closed

Support writing to Buderus RC200 thermostat #434

fupe opened this issue Jul 24, 2020 · 9 comments
Labels
question Further information is requested

Comments

@fupe
Copy link

fupe commented Jul 24, 2020

Hi,
is it possible add write temperature to Buderus rc200 thermostat?
my configuration
EMS-ESP version 1.9.6b0

These 3 were recognized by EMS-ESP:
Boiler: Buderus GBx72/Nefit Trendline/Junkers Cerapur/Worcester Greenstar Si/27i (DeviceID: 0x08, ProductID: 123, Version: 06.08)
Controller: BC25 Base Controller (DeviceID: 0x09, ProductID: 125, Version: 03.03)
Thermostat: Buderus RC200/Bosch CW100/Junkers CW100 (DeviceID: 0x18, ProductID: 157, Version: 41.08)

and part of log

info

EMS-ESP system status:
  System logging set to None
  LED: on, Listen mode: off
  Boiler: enabled, Thermostat: enabled, Solar Module: disabled, Mixing Module: disabled
  Shower Timer: disabled, Shower Alert: disabled
  Saved known device IDs: none

EMS Bus status:
  Bus is connected, protocol: Buderus
  Rx: # successful read requests=559, # CRC errors=0
  Tx: Last poll=4.660 seconds ago, # successful write requests=0

Boiler data:
  Boiler: Buderus GBx72/Nefit Trendline/Junkers Cerapur/Worcester Greenstar Si/27i (DeviceID: 0x08, ProductID: 123, Version: 06.08)
  Hot tap water: off
  Central heating: off
  Warm Water activated: on
  Warm Water circulation pump available: off
  Warm Water circulation pump type: 3-way pump
  Warm Water circulation pump freq: 2x3min
  Warm Water comfort setting: Hot
  Warm Water selected temperature: 60 C
  Warm Water desinfection temperature: 70 C
  Warm Water circulation active: off
  Warm Water set temperature: 10 C
  Warm Water current temperature: 58.9 C
  Warm water temperature (intern): ? C
  Warm water temperature (extern): 58.9 C
  Warm Water current temperature (extern): 58.9 C
  Warm Water current tap water flow: 0.0 l/min
  Warm Water # starts: 1203 times
  Warm Water active time: 15 days 10 hours 0 minutes
  Warm Water 3-way valve: off
  Selected flow temperature: 5 C
  Current flow temperature: 30.5 C
  Max boiler temperature: ? C
  Return temperature: ? C
  Gas: off
  Warm water mode: off
  Boiler pump: off
  Fan: off
  Ignition: off
  Circulation pump: off
  Burner selected max power: 0 %
  Burner current power: 0 %
  Flame current: 0.0 uA
  System pressure: ? bar
  System service code: 0H (203)
  Heating temperature setting on the boiler: 68 C
  Boiler circuit pump modulation max power: 100 %
  Boiler circuit pump modulation min power: 10 %
  Outside temperature: --3276.-8 C
  Exhaust temperature: ? C
  Pump modulation: 0 %
  Burner # starts: 4026 times
  Total burner operating time: 66 days 3 hours 0 minutes
  Total heat operating time: 50 days 17 hours 0 minutes
  Total UBA working time: 359 days 3 hours 0 minutes

Thermostat data:
  Thermostat: Buderus RC200/Bosch CW100/Junkers CW100 (DeviceID: 0x18, ProductID: 157, Version: 41.08)
  Thermostat time is 23:15:17 24/07/2020
  Heating Circuit 1
   Current room temperature: 24.8 C
   Setpoint room temperature: 19.0 C
   Mode is set to day

log v

System Logging set to Verbose
(01:27:11.607) Sending read of type 0x06 to 0x18, telegram: 0B 98 06 00 20
(01:27:11.684) Thermostat -> Me, RCTime(0x06), telegram: 18 0B 06 00 14 07 17 18 0F 15 04 01 18 FF 00 (#data=11)
(01:27:11.732) Boiler -> All, UBADevices(0x07), telegram: 08 00 07 00 0B 00 01 00 00 00 00 00 00 00 00 00 00 (#data=13)
(01:27:12.055) Sending read of type 0x18 to 0x08, telegram: 0B 88 18 00 20
(01:27:12.144) Boiler -> Me, UBAMonitorFast(0x18), telegram: 08 0B 18 00 05 01 31 00 00 00 00 00 40 80 00 02 4D 80 00 00 00 FF 30 48 00 CB 00 00 00 (#data=25)
(01:27:12.454) Sending read of type 0x19 to 0x08, telegram: 0B 88 19 00 20
(01:27:12.538) Boiler -> Me, UBAMonitorSlow(0x19), telegram: 08 0B 19 00 80 00 80 00 80 00 00 00 00 00 00 0F BA 01 73 F4 00 00 00 01 1D 3C 00 0B 07 80 00 (#data=27)
(01:27:12.977) Sending read of type 0x33 to 0x08, telegram: 0B 88 33 00 20
(01:27:13.028) Boiler -> Me, UBAParameterWW(0x33), telegram: 08 0B 33 00 08 FF 3C FB 00 28 00 02 46 00 FF FF 00 (#data=13)
(01:27:13.351) Sending read of type 0x16 to 0x08, telegram: 0B 88 16 00 20
(01:27:13.443) Boiler -> Me, UBAParametersMessage(0x16), telegram: 08 0B 16 00 00 44 64 00 06 FA 0A 01 02 64 0A 00 00 00 00 00 00 00 00 00 00 00 00 00 28 00 3C (#data=27)
(01:27:13.700) Sending read of type 0x14 to 0x08, telegram: 0B 88 14 00 20
(01:27:13.767) Boiler -> Me, UBATotalUptimeMessage(0x14), telegram: 08 0B 14 00 07 E4 15 (#data=3)
(01:27:14.830) Boiler -> All, UBADevices(0x07), telegram: 08 00 07 00 03 00 01 00 00 00 00 00 00 00 00 00 00 (#data=13)
(01:27:16.076) Boiler -> All, UBAMonitorFast(0x18), telegram: 08 00 18 00 05 01 31 00 00 00 00 00 40 80 00 02 4D 80 00 00 00 FF 30 48 00 CB 00 00 00 (#data=25)
(01:27:16.359) Boiler -> All, MC10Status(0x2A), telegram: 08 00 2A 00 00 00 00 00 00 00 00 01 67 00 00 80 00 00 80 00 80 00 80 00 04 (#data=21)
(01:27:16.591) Boiler -> All, UBAMonitorWWMessage(0x34), telegram: 08 00 34 00 0A 02 4D 02 4D 20 00 00 03 00 00 56 B8 00 04 B3 00 80 00 (#data=19)
(01:27:16.841) Thermostat -> Boiler, Type(0x23), telegram: 18 08 23 00 00 00 00 (#data=3)
thermostat read 65

Requesting type (0x65) from dest 0x18
Publishing MQTT data for: boiler
(01:27:20.529) Sending read of type 0x65 to 0x18, telegram: 0B 98 65 00 20
(01:27:20.566) Thermostat -> Me, telegram: 18 0B 65 00
(01:27:20.618) Boiler -> All, UBADevices(0x07), telegram: 08 00 07 00 0B 00 01 00 00 00 00 00 00 00 00 00 00 (#data=13)
(01:27:21.593) Boiler -> All, UBADevices(0x07), telegram: 08 00 07 00 03 00 01 00 00 00 00 00 00 00 00 00 00 (#data=13)
(01:27:24.493) Thermostat -> Boiler, UBASetPoints(0x1A), telegram: 18 08 1A 00 00 00 00 (#data=3)
(01:27:24.610) Thermostat -> All, RCPLUSStatusMessage_HC1(0x01A5), telegram: 18 00 FF 00 01 A5 00 F8 21 26 00 00 26 2C 01 EF 01 01 03 01 EF 00 87 00 00 11 01 04 (#data=22)
(01:27:24.863) Thermostat -> All, RCPLUSStatusMessage_HC1(0x01A5), telegram: 18 00 FF 16 01 A5 09 AF 00 00 07 00 00 00 00 00 00 4B 00 3C 01 FF 00 02 (#data=18)
(01:27:25.250) Thermostat -> All, Type(0x021D), telegram: 18 00 FF 00 02 1D 00 00 08 07 (#data=4)
(01:27:26.060) Boiler -> All, UBAMonitorFast(0x18), telegram: 08 00 18 00 05 01 31 00 00 00 00 00 40 80 00 02 4D 80 00 00 00 FF 30 48 00 CB 00 00 00 (#data=25)
(01:27:26.352) Boiler -> All, MC10Status(0x2A), telegram: 08 00 2A 00 00 00 00 00 00 00 00 01 67 00 00 80 00 00 80 00 80 00 80 00 04 (#data=21)
(01:27:26.672) Boiler -> All, UBAMonitorWWMessage(0x34), telegram: 08 00 34 00 0A 02 4D 02 4D 20 00 00 03 00 00 56 B8 00 04 B3 00 80 00 (#data=19)
Publishing MQTT data for: thermostat boiler
(01:27:36.019) Boiler -> All, UBAMonitorWWMessage(0x34), telegram: 08 00 34 00 0A 02 4D 02 4D 20 00 00 03 00 00 56 B8 00 04 B3 00 80 00 (#data=19)
(01:27:36.229) Boiler -> All, UBAMonitorWWMessage(0x34), telegram: 08 00 34 00 0A 02 4D 02 4D 20 00 00 03 00 00 56 B8 00 04 B3 00 80 00 (#data=19)
(01:27:36.522) Boiler -> All, UBADevices(0x07), telegram: 08 00 07 00 03 00 01 00 00 00 00 00 00 00 00 00 00 (#data=13)
(01:27:36.825) Boiler -> All, UBAMonitorFast(0x18), telegram: 08 00 18 00 05 01 31 00 00 00 00 00 40 80 00 02 4D 80 00 00 00 FF 30 48 00 CB 00 00 00 (#data=25)
(01:27:37.062) Boiler -> All, UBAMonitorSlow(0x19), telegram: 08 00 19 00 80 00 80 00 80 00 00 00 00 00 00 0F BA 01 73 F4 00 00 00 01 1D 3C 00 0B 07 80 00 (#data=27)
(01:27:37.466) Boiler -> All, UBAMaintenanceStatusMessage(0x1C), telegram: 08 00 1C 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 (#data=25)
(01:27:37.692) Boiler -> All, MC10Status(0x2A), telegram: 08 00 2A 00 00 00 00 00 00 00 00 01 67 00 00 80 00 00 80 00 80 00 80 00 04 (#data=21)
Publishing MQTT data for: boiler
(01:27:46.017) Boiler -> All, MC10Status(0x2A), telegram: 08 00 2A 00 00 00 00 00 00 00 00 01 67 00 00 80 00 00 80 00 80 00 80 00 04 (#data=21)
(01:27:46.311) Boiler -> All, UBAMonitorWWMessage(0x34), telegram: 08 00 34 00 0A 02 4D 02 4D 20 00 00 03 00 00 56 B8 00 04 B3 00 80 00 (#data=19)
(01:27:46.531) Boiler -> All, UBAMonitorFast(0x18), telegram: 08 00 18 00 05 01 31 00 00 00 00 00 40 80 00 02 4D 80 00 00 00 FF 30 48 00 CB 00 00 00 (#data=25)
Publishing MQTT data for: boiler
(01:27:53.038) Thermostat -> All, RCPLUSStatusMessage_HC1(0x01A5), telegram: 18 00 FF 0D 01 A5 01 EE 00 88 (#data=4)
(01:27:56.011) Boiler -> All, UBAMonitorFast(0x18), telegram: 08 00 18 00 05 01 31 00 00 00 00 00 40 80 00 02 4D 80 00 00 00 FF 30 48 00 CB 00 00 00 (#data=25)
(01:27:56.260) Boiler -> All, MC10Status(0x2A), telegram: 08 00 2A 00 00 00 00 00 00 00 00 01 67 00 00 80 00 00 80 00 80 00 80 00 04 (#data=21)
(01:27:56.567) Boiler -> All, UBAMonitorWWMessage(0x34), telegram: 08 00 34 00 0A 02 4D 02 4D 20 00 00 03 00 00 56 B8 00 04 B3 00 80 00 (#data=19)
Publishing MQTT data for: thermostat boiler
(01:28:05.996) Boiler -> All, UBAMonitorWWMessage(0x34), telegram: 08 00 34 00 0A 02 4D 02 4D 20 00 00 03 00 00 56 B8 00 04 B3 00 80 00 (#data=19)
(01:28:06.258) Boiler -> All, UBAMonitorFast(0x18), telegram: 08 00 18 00 05 01 31 00 00 00 00 00 40 80 00 02 4D 80 00 00 00 FF 30 48 00 CB 00 00 00 (#data=25)
(01:28:06.552) Boiler -> All, MC10Status(0x2A), telegram: 08 00 2A 00 00 00 00 00 00 00 00 01 67 00 00 80 00 00 80 00 80 00 80 00 04 (#data=21)
(01:28:07.411) Thermostat -> All, RCTime(0x06), telegram: 18 00 06 00 14 07 17 18 10 11 04 01 18 FF 00 (#data=11)
Fetching data from EMS devices
Requesting type RCTime(0x06) from dest 0x18
Requesting type UBAMonitorFast(0x18) from dest 0x08
Requesting type UBAMonitorSlow(0x19) from dest 0x08
Requesting type UBAParameterWW(0x33) from dest 0x08
Requesting type UBAParametersMessage(0x16) from dest 0x08
Requesting type UBATotalUptimeMessage(0x14) from dest 0x08
Publishing MQTT data for: boiler
(01:28:12.018) Sending read of type 0x06 to 0x18, telegram: 0B 98 06 00 20
(01:28:12.096) Thermostat -> Me, RCTime(0x06), telegram: 18 0B 06 00 14 07 17 18 10 15 04 01 18 FF 00 (#data=11)
(01:28:12.260) Boiler -> All, UBADevices(0x07), telegram: 08 00 07 00 0B 00 01 00 00 00 00 00 00 00 00 00 00 (#data=13)
(01:28:12.443) Sending read of type 0x18 to 0x08, telegram: 0B 88 18 00 20
(01:28:12.541) Boiler -> Me, UBAMonitorFast(0x18), telegram: 08 0B 18 00 05 01 31 00 00 00 00 00 40 80 00 02 4D 80 00 00 00 FF 30 48 00 CB 00 00 00 (#data=25)
(01:28:12.841) Sending read of type 0x19 to 0x08, telegram: 0B 88 19 00 20
(01:28:12.931) Boiler -> Me, UBAMonitorSlow(0x19), telegram: 08 0B 19 00 80 00 80 00 80 00 00 00 00 00 00 0F BA 01 73 F4 00 00 00 01 1D 3C 00 0B 07 80 00 (#data=27)
thermostat read 6f(01:28:13.266) Sending read of type 0x33 to 0x08, telegram: 0B 88 33 00 20
(01:28:13.332) Boiler -> Me, UBAParameterWW(0x33), telegram: 08 0B 33 00 08 FF 3C FB 00 28 00 02 46 00 FF FF 00 (#data=13)
(01:28:13.588) Sending read of type 0x16 to 0x08, telegram: 0B 88 16 00 20
(01:28:13.680) Boiler -> Me, UBAParametersMessage(0x16), telegram: 08 0B 16 00 00 44 64 00 06 FA 0A 01 02 64 0A 00 00 00 00 00 00 00 00 00 00 00 00 00 28 00 3C (#data=27)
(01:28:14.087) Sending read of type 0x14 to 0x08, telegram: 0B 88 14 00 20
(01:28:14.154) Boiler -> Me, UBATotalUptimeMessage(0x14), telegram: 08 0B 14 00 07 E4 16 (#data=3)
(01:28:15.286) Boiler -> All, UBADevices(0x07), telegram: 08 00 07 00 03 00 01 00 00 00 00 00 00 00 00 00 00 (#data=13)


Requesting type JunkersStatusMessage_HC1(0x6F) from dest 0x18
(01:28:15.939) Boiler -> All, UBAMonitorFast(0x18), telegram: 08 00 18 00 05 01 31 00 00 00 00 00 40 80 00 02 4D 80 00 00 00 FF 30 48 00 CB 00 00 00 (#data=25)
(01:28:16.223) Boiler -> All, MC10Status(0x2A), telegram: 08 00 2A 00 00 00 00 00 00 00 00 01 67 00 00 80 00 00 80 00 80 00 80 00 04 (#data=21)
(01:28:16.470) Boiler -> All, UBAMonitorWWMessage(0x34), telegram: 08 00 34 00 0A 02 4D 02 4D 20 00 00 03 00 00 56 B8 00 04 B3 00 80 00 (#data=19)
(01:28:17.003) Sending read of type 0x6F to 0x18, telegram: 0B 98 6F 00 20
(01:28:17.034) Thermostat -> Me, telegram: 18 0B 6F 00
(01:28:17.105) Boiler -> All, UBADevices(0x07), telegram: 08 00 07 00 0B 00 01 00 00 00 00 00 00 00 00 00 00 (#data=13)
(01:28:17.335) Thermostat -> Boiler, Type(0x23), telegram: 18 08 23 00 00 00 00 (#data=3)
(01:28:18.104) Boiler -> All, UBADevices(0x07), telegram: 08 00 07 00 03 00 01 00 00 00 00 00 00 00 00 00 00 (#data=13)
Publishing MQTT data for: boiler
(01:28:24.281) Thermostat -> Boiler, UBASetPoints(0x1A), telegram: 18 08 1A 00 00 00 00 (#data=3)
(01:28:24.399) Thermostat -> All, RCPLUSStatusMessage_HC1(0x01A5), telegram: 18 00 FF 00 01 A5 00 F8 21 26 00 00 26 2C 01 EE 01 01 03 01 EE 00 88 00 00 11 01 04 (#data=22)
(01:28:24.652) Thermostat -> All, RCPLUSStatusMessage_HC1(0x01A5), telegram: 18 00 FF 16 01 A5 09 AF 00 00 07 00 00 00 00 00 00 4B 00 3C 01 FF 00 02 (#data=18)
(01:28:25.038) Thermostat -> All, Type(0x021D), telegram: 18 00 FF 00 02 1D 00 00 08 07 (#data=4)
(01:28:25.958) Boiler -> All, UBAMonitorFast(0x18), telegram: 08 00 18 00 05 01 31 00 00 00 00 00 40 80 00 02 4D 80 00 00 00 FF 30 48 00 CB 00 00 00 (#data=25)
(01:28:26.290) Boiler -> All, MC10Status(0x2A), telegram: 08 00 2A 00 00 00 00 00 00 00 00 01 67 00 00 80 00 00 80 00 80 00 80 00 04 (#data=21)
(01:28:26.499) Boiler -> All, UBAMonitorWWMessage(0x34), telegram: 08 00 34 00 0A 02 4D 02 4D 20 00 00 03 00 00 56 B8 00 04 B3 00 80 00 (#data=19)
Publishing MQTT data for: thermostat boiler
(01:28:35.944) Boiler -> All, UBAMonitorWWMessage(0x34), telegram: 08 00 34 00 0A 02 4D 02 4D 20 00 00 03 00 00 56 B8 00 04 B3 00 80 00 (#data=19)
(01:28:36.268) Boiler -> All, UBADevices(0x07), telegram: 08 00 07 00 03 00 01 00 00 00 00 00 00 00 00 00 00 (#data=13)
(01:28:36.500) Boiler -> All, UBAMonitorFast(0x18), telegram: 08 00 18 00 05 01 31 00 00 00 00 00 40 80 00 02 4D 80 00 00 00 FF 30 48 00 CB 00 00 00 (#data=25)
(01:28:36.875) Boiler -> All, UBAMonitorSlow(0x19), telegram: 08 00 19 00 80 00 80 00 80 00 00 00 00 00 00 0F BA 01 73 F4 00 00 00 01 1D 3C 00 0B 07 80 00 (#data=27)
(01:28:37.114) Boiler -> All, UBAMaintenanceStatusMessage(0x1C), telegram: 08 00 1C 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 (#data=25)
(01:28:37.356) Boiler -> All, MC10Status(0x2A), telegram: 08 00 2A 00 00 00 00 00 00 00 00 01 67 00 00 80 00 00 80 00 80 00 80 00 04 (#data=21)
Publishing MQTT data for: boiler
(01:28:40.312) Thermostat -> All, Type(0xA2), telegram: 18 00 A2 00 00 00 00 00 00 (#data=5)
(01:28:45.841) Boiler -> All, MC10Status(0x2A), telegram: 08 00 2A 00 00 00 00 00 00 00 00 01 67 00 00 80 00 00 80 00 80 00 80 00 04 (#data=21)
(01:28:46.063) Boiler -> All, UBAMonitorWWMessage(0x34), telegram: 08 00 34 00 0A 02 4D 02 4D 20 00 00 03 00 00 56 B8 00 04 B3 00 80 00 (#data=19)
(01:28:46.335) Boiler -> All, UBAMonitorFast(0x18), telegram: 08 00 18 00 05 01 31 00 00 00 00 00 40 80 00 02 4D 80 00 00 00 FF 30 48 00 CB 00 00 00 (#data=25)
Publishing MQTT data for: boiler
(01:28:53.044) Thermostat -> All, RCPLUSStatusMessage_HC1(0x01A5), telegram: 18 00 FF 08 01 A5 01 ED 01 01 03 01 ED 00 89 (#data=9)
(01:28:54.310) Thermostat -> Boiler, UBAFlags(0x35), telegram: 18 08 35 00 01 01 (#data=2)
(01:28:55.854) Boiler -> All, UBAMonitorFast(0x18), telegram: 08 00 18 00 05 01 31 00 00 00 00 00 40 80 00 02 4D 80 00 00 00 FF 30 48 00 CB 00 00 00 (#data=25)
(01:28:56.159) Boiler -> All, MC10Status(0x2A), telegram: 08 00 2A 00 00 00 00 00 00 00 00 01 67 00 00 80 00 00 80 00 80 00 80 00 04 (#data=21)
(01:28:56.380) Boiler -> All, UBAMonitorWWMessage(0x34), telegram: 08 00 34 00 0A 02 4D 02 4D 20 00 00 03 00 00 56 B8 00 04 B3 00 80 00 (#data=19)
Publishing MQTT data for: thermostat boiler
lo(01:29:05.841) Boiler -> All, UBAMonitorWWMessage(0x34), telegram: 08 00 34 00 0A 02 4D 02 4D 20 00 00 03 00 00 56 B8 00 04 B3 00 80 00 (#data=19)
g(01:29:06.157) Boiler -> All, UBAMonitorFast(0x18), telegram: 08 00 18 00 05 01 31 00 00 00 00 00 40 80 00 02 4D 80 00 00 00 FF 30 48 00 CB 00 00 00 (#data=25)
(01:29:06.377) Boiler -> All, MC10Status(0x2A), telegram: 08 00 2A 00 00 00 00 00 00 00 00 01 67 00 00 80 00 00 80 00 80 00 80 00 04 (#data=21)
 n

System Logging set to None

thanks Martin

@proddy
Copy link
Collaborator

proddy commented Jul 25, 2020

Hi @fupe , although I have tested it the latest version 2.0 should support reading and writing to your RC200 as it uses the same telegram set as the RC100 and RC300. Version 2.0 is still in development, but pretty stable. You can either download, build and upload yourself or grab the pre-built binary. Note however that it's not yet backward compatible with 1.9.x yet so you will need to re-enter all your settings (wifi, mqtt, etc) manually via the web or the new telnet console. You'll find all the info at https://github.com/proddy/EMS-ESP/blob/v2/README.md

@proddy proddy added the question Further information is requested label Jul 25, 2020
@proddy proddy closed this as completed Jul 31, 2020
@fupe
Copy link
Author

fupe commented Jul 31, 2020 via email

@proddy
Copy link
Collaborator

proddy commented Jul 31, 2020

great!

@MichaelDvP
Copy link
Collaborator

MichaelDvP commented Aug 2, 2020

@proddy seems you closed to fast and fail to see that there are 2 issues left.

  1. the thermostat is the only thermostat, but uses device_id 0x18. It is not recognized as master.
  2. he can't get into thermostat context because there is no master-thermostat, but to set the master he has to enter the context.

(now we have the case mentioned here)

Quick solution is allow all thermostats as master, not only 0x10 and 0x17. This will make the system of @fupe useable.
But if someone uses more RC200 for different hc we need to have hc2 type-id matched to 0x19, hc3 typ_id to 0x1A, etc. and only the fist one of these controllers is used for DHW-settings.

@MichaelDvP MichaelDvP reopened this Aug 2, 2020
@proddy
Copy link
Collaborator

proddy commented Aug 2, 2020

oh dear, I overlooked that. I'll have a think about the options.

@MichaelDvP
Copy link
Collaborator

A possible patch for the problem with multible hc and RC200 at 0x18.. is:

  • Modify emsdevices.h to
    inline uint8_t device_id(uint8_t hc = 0) const {
        if (((device_id_ & 0x7F) >= 0x18) && ((device_id_ & 0x7F) <= 0x1B)) {
            return ((device_id_ & 0x80) + 0x18 + hc);
        }
        return device_id_;
    }

and add optional hc to write_command (also in emsdevices.cpp with call of device_id(hc))

    void write_command(const uint16_t type_id, const uint8_t offset, uint8_t * message_data, const uint8_t message_length, const uint16_t validate_typeid, const uint8_t hc = 0);
    void write_command(const uint16_t type_id, const uint8_t offset, const uint8_t value, const uint16_t validate_typeid, const uint8_t hc = 0);
    void write_command(const uint16_t type_id, const uint8_t offset, const uint8_t value, const uint8_t hc = 0);

and for RC100-300 in thermostat add the hc.

Then the first of the 0x18.. thermostats is registered as master with 4 hc, the others are not writeable, but writing to a hc will automatically address the right controller.

@proddy
Copy link
Collaborator

proddy commented Aug 3, 2020

that would work. I'll add it to the new branch.

@fupe
Copy link
Author

fupe commented Aug 4, 2020 via email

@fupe
Copy link
Author

fupe commented Aug 10, 2020 via email

@proddy proddy closed this as completed Aug 11, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

3 participants