diff --git a/CHANGELOG_LATEST.md b/CHANGELOG_LATEST.md
index 9a09f3428..d25e66f90 100644
--- a/CHANGELOG_LATEST.md
+++ b/CHANGELOG_LATEST.md
@@ -42,6 +42,8 @@ This release is based on the latest Espressif/Arduino core version 3. It brings
- HTTP client could write past a fixed 64 byte buffer when a URL had a hostname of 64 characters or more, could busy-spin for the whole read budget if the socket reported bytes it wouldn't return, and buffered responses without any size limit
- the "Ethernet clock mode (GPIO16/17) conflicts with PSRAM" error was never logged because Ethernet had already been skipped by the time the check ran
- heat limit entities (`maxheatcomp`, `maxheatheat`, `dhw.maxheat`) read as unknown on heat pumps with an auxiliary heater larger than 9 kW - `enum_maxHeat` was missing the 12 kW and 15 kW steps
+- add 0kW to heat limits [#3262](https://github.com/emsesp/EMS-ESP32/issues/3262), [#3265](https://github.com/emsesp/EMS-ESP32/issues/3265)
+- show temperature value for sensor 0x40 [#3272](https://github.com/emsesp/EMS-ESP32/issues/3272)
- no EMS bus on custom boards whose interface relies on a pull-up on the Rx line. The newer ESP-IDF no longer enables the internal pull-up on the UART Rx pin, so it is now set explicitly as it was in 3.8 [#3258](https://github.com/emsesp/EMS-ESP32/discussions/3258)
## Changed
diff --git a/docs/Modbus-Entity-Registers.md b/docs/Modbus-Entity-Registers.md
index ce2905541..61f4c2cad 100644
--- a/docs/Modbus-Entity-Registers.md
+++ b/docs/Modbus-Entity-Registers.md
@@ -223,11 +223,11 @@ uint8
uint8
| dhw.ecoplusoff | eco+ switch off | uint8 (>=48<=63) | C | true | DHW | 20 | 1 | 1 |
uint8
-| dhw.comfdiff | comfort diff | uint8 (>=4<=15) | K | true | DHW | 21 | 1 | 1 |
+| dhw.comfdiff | comfort diff | uint8 (>=6<=18) | K | true | DHW | 21 | 1 | 1 |
uint8
-| dhw.ecodiff | eco diff | uint8 (>=4<=15) | K | true | DHW | 22 | 1 | 1 |
+| dhw.ecodiff | eco diff | uint8 (>=6<=18) | K | true | DHW | 22 | 1 | 1 |
uint8
-| dhw.ecoplusdiff | eco+ diff | uint8 (>=4<=15) | K | true | DHW | 23 | 1 | 1 |
+| dhw.ecoplusdiff | eco+ diff | uint8 (>=6<=15) | K | true | DHW | 23 | 1 | 1 |
uint8
| dhw.comfstop | comfort stop temp | uint8 (>=0<=0) | C | true | DHW | 24 | 1 | 1 |
uint8
@@ -3721,11 +3721,11 @@ uint8
uint8
| dhw.ecoplusoff | eco+ switch off | uint8 (>=48<=63) | C | true | DHW | 20 | 1 | 1 |
uint8
-| dhw.comfdiff | comfort diff | uint8 (>=4<=15) | K | true | DHW | 21 | 1 | 1 |
+| dhw.comfdiff | comfort diff | uint8 (>=6<=18) | K | true | DHW | 21 | 1 | 1 |
uint8
-| dhw.ecodiff | eco diff | uint8 (>=4<=15) | K | true | DHW | 22 | 1 | 1 |
+| dhw.ecodiff | eco diff | uint8 (>=6<=18) | K | true | DHW | 22 | 1 | 1 |
uint8
-| dhw.ecoplusdiff | eco+ diff | uint8 (>=4<=15) | K | true | DHW | 23 | 1 | 1 |
+| dhw.ecoplusdiff | eco+ diff | uint8 (>=6<=15) | K | true | DHW | 23 | 1 | 1 |
uint8
| dhw.comfstop | comfort stop temp | uint8 (>=0<=0) | C | true | DHW | 24 | 1 | 1 |
uint8
@@ -3999,11 +3999,11 @@ uint8
uint8
| dhw.ecoplusoff | eco+ switch off | uint8 (>=48<=63) | C | true | DHW | 20 | 1 | 1 |
uint8
-| dhw.comfdiff | comfort diff | uint8 (>=4<=15) | K | true | DHW | 21 | 1 | 1 |
+| dhw.comfdiff | comfort diff | uint8 (>=6<=18) | K | true | DHW | 21 | 1 | 1 |
uint8
-| dhw.ecodiff | eco diff | uint8 (>=4<=15) | K | true | DHW | 22 | 1 | 1 |
+| dhw.ecodiff | eco diff | uint8 (>=6<=18) | K | true | DHW | 22 | 1 | 1 |
uint8
-| dhw.ecoplusdiff | eco+ diff | uint8 (>=4<=15) | K | true | DHW | 23 | 1 | 1 |
+| dhw.ecoplusdiff | eco+ diff | uint8 (>=6<=15) | K | true | DHW | 23 | 1 | 1 |
uint8
| dhw.comfstop | comfort stop temp | uint8 (>=0<=0) | C | true | DHW | 24 | 1 | 1 |
uint8
diff --git a/docs/dump_entities.csv b/docs/dump_entities.csv
index e3150436c..a6e59358d 100644
--- a/docs/dump_entities.csv
+++ b/docs/dump_entities.csv
@@ -128,7 +128,7 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/
"CS5800i, CS6800i, WLW176i, WLW186i",boiler,8,hpin4opt,input 4 options,string (>=0<=0), ,true,sensor.boiler_input_4_options,sensor.boiler_hpin4opt,6,0,1,209,8
"CS5800i, CS6800i, WLW176i, WLW186i",boiler,8,maxheatcomp,heat limit compressor,enum [0 kW\|3 kW\|6 kW\|9 kW] (>=0<=0), ,true,select.boiler_heat_limit_compressor,select.boiler_maxheatcomp,6,0,1,217,1
"CS5800i, CS6800i, WLW176i, WLW186i",boiler,8,maxheatheat,heat limit heating,enum [3 kW\|6 kW\|9 kW] (>=0<=0), ,true,select.boiler_heat_limit_heating,select.boiler_maxheatheat,6,0,1,218,1
-"CS5800i, CS6800i, WLW176i, WLW186i",boiler,8,dhw.maxheat,heat limit,enum [3 kW\|6 kW\|9 kW] (>=0<=0), ,true,select.boiler_dhw_heat_limit,select.boiler_dhw_maxheat,6,9,1,14,1
+"CS5800i, CS6800i, WLW176i, WLW186i",boiler,8,dhw.maxheat,heat limit,enum [0 kW\|3 kW\|6 kW\|9 kW] (>=0<=0), ,true,select.boiler_dhw_heat_limit,select.boiler_dhw_maxheat,6,9,1,14,1
"CS5800i, CS6800i, WLW176i, WLW186i",boiler,8,auxheatersource,aux heater source,enum [not installed\|electric heater\|exclusive\|parallel\|hybrid] (>=0<=0), ,true,select.boiler_aux_heater_source,select.boiler_auxheatersource,6,0,1,219,1
"CS5800i, CS6800i, WLW176i, WLW186i",boiler,8,pvcooling,cooling only with PV,boolean (>=0<=0), ,true,switch.boiler_cooling_only_with_PV,switch.boiler_pvcooling,6,0,1,220,1
"CS5800i, CS6800i, WLW176i, WLW186i",boiler,8,auxheateronly,aux heater only,boolean (>=0<=0), ,true,switch.boiler_aux_heater_only,switch.boiler_auxheateronly,6,0,1,221,1
@@ -172,9 +172,9 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/
"CS5800i, CS6800i, WLW176i, WLW186i",boiler,8,dhw.comfoff,comfort switch off,uint8 (>=15<=65),C,true,number.boiler_dhw_comfort_switch_off,number.boiler_dhw_comfoff,6,9,1,18,1
"CS5800i, CS6800i, WLW176i, WLW186i",boiler,8,dhw.ecooff,eco switch off,uint8 (>=15<=65),C,true,number.boiler_dhw_eco_switch_off,number.boiler_dhw_ecooff,6,9,1,19,1
"CS5800i, CS6800i, WLW176i, WLW186i",boiler,8,dhw.ecoplusoff,eco+ switch off,uint8 (>=48<=63),C,true,number.boiler_dhw_eco+_switch_off,number.boiler_dhw_ecoplusoff,6,9,1,20,1
-"CS5800i, CS6800i, WLW176i, WLW186i",boiler,8,dhw.comfdiff,comfort diff,uint8 (>=4<=15),K,true,number.boiler_dhw_comfort_diff,number.boiler_dhw_comfdiff,6,9,1,21,1
-"CS5800i, CS6800i, WLW176i, WLW186i",boiler,8,dhw.ecodiff,eco diff,uint8 (>=4<=15),K,true,number.boiler_dhw_eco_diff,number.boiler_dhw_ecodiff,6,9,1,22,1
-"CS5800i, CS6800i, WLW176i, WLW186i",boiler,8,dhw.ecoplusdiff,eco+ diff,uint8 (>=4<=15),K,true,number.boiler_dhw_eco+_diff,number.boiler_dhw_ecoplusdiff,6,9,1,23,1
+"CS5800i, CS6800i, WLW176i, WLW186i",boiler,8,dhw.comfdiff,comfort diff,uint8 (>=6<=18),K,true,number.boiler_dhw_comfort_diff,number.boiler_dhw_comfdiff,6,9,1,21,1
+"CS5800i, CS6800i, WLW176i, WLW186i",boiler,8,dhw.ecodiff,eco diff,uint8 (>=6<=18),K,true,number.boiler_dhw_eco_diff,number.boiler_dhw_ecodiff,6,9,1,22,1
+"CS5800i, CS6800i, WLW176i, WLW186i",boiler,8,dhw.ecoplusdiff,eco+ diff,uint8 (>=6<=15),K,true,number.boiler_dhw_eco+_diff,number.boiler_dhw_ecoplusdiff,6,9,1,23,1
"CS5800i, CS6800i, WLW176i, WLW186i",boiler,8,dhw.comfstop,comfort stop temp,uint8 (>=0<=0),C,true,number.boiler_dhw_comfort_stop_temp,number.boiler_dhw_comfstop,6,9,1,24,1
"CS5800i, CS6800i, WLW176i, WLW186i",boiler,8,dhw.ecostop,eco stop temp,uint8 (>=0<=0),C,true,number.boiler_dhw_eco_stop_temp,number.boiler_dhw_ecostop,6,9,1,25,1
"CS5800i, CS6800i, WLW176i, WLW186i",boiler,8,dhw.ecoplusstop,eco+ stop temp,uint8 (>=0<=0),C,true,number.boiler_dhw_eco+_stop_temp,number.boiler_dhw_ecoplusstop,6,9,1,26,1
@@ -2813,9 +2813,9 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/
"Enviline, Compress 6000AW, Hybrid 3000-7000iAW, SupraEco/Geo 5xx, WLW196i/WSW196i",boiler,172,dhw.comfoff,comfort switch off,uint8 (>=15<=65),C,true,number.boiler_dhw_comfort_switch_off,number.boiler_dhw_comfoff,6,9,1,18,1
"Enviline, Compress 6000AW, Hybrid 3000-7000iAW, SupraEco/Geo 5xx, WLW196i/WSW196i",boiler,172,dhw.ecooff,eco switch off,uint8 (>=15<=65),C,true,number.boiler_dhw_eco_switch_off,number.boiler_dhw_ecooff,6,9,1,19,1
"Enviline, Compress 6000AW, Hybrid 3000-7000iAW, SupraEco/Geo 5xx, WLW196i/WSW196i",boiler,172,dhw.ecoplusoff,eco+ switch off,uint8 (>=48<=63),C,true,number.boiler_dhw_eco+_switch_off,number.boiler_dhw_ecoplusoff,6,9,1,20,1
-"Enviline, Compress 6000AW, Hybrid 3000-7000iAW, SupraEco/Geo 5xx, WLW196i/WSW196i",boiler,172,dhw.comfdiff,comfort diff,uint8 (>=4<=15),K,true,number.boiler_dhw_comfort_diff,number.boiler_dhw_comfdiff,6,9,1,21,1
-"Enviline, Compress 6000AW, Hybrid 3000-7000iAW, SupraEco/Geo 5xx, WLW196i/WSW196i",boiler,172,dhw.ecodiff,eco diff,uint8 (>=4<=15),K,true,number.boiler_dhw_eco_diff,number.boiler_dhw_ecodiff,6,9,1,22,1
-"Enviline, Compress 6000AW, Hybrid 3000-7000iAW, SupraEco/Geo 5xx, WLW196i/WSW196i",boiler,172,dhw.ecoplusdiff,eco+ diff,uint8 (>=4<=15),K,true,number.boiler_dhw_eco+_diff,number.boiler_dhw_ecoplusdiff,6,9,1,23,1
+"Enviline, Compress 6000AW, Hybrid 3000-7000iAW, SupraEco/Geo 5xx, WLW196i/WSW196i",boiler,172,dhw.comfdiff,comfort diff,uint8 (>=6<=18),K,true,number.boiler_dhw_comfort_diff,number.boiler_dhw_comfdiff,6,9,1,21,1
+"Enviline, Compress 6000AW, Hybrid 3000-7000iAW, SupraEco/Geo 5xx, WLW196i/WSW196i",boiler,172,dhw.ecodiff,eco diff,uint8 (>=6<=18),K,true,number.boiler_dhw_eco_diff,number.boiler_dhw_ecodiff,6,9,1,22,1
+"Enviline, Compress 6000AW, Hybrid 3000-7000iAW, SupraEco/Geo 5xx, WLW196i/WSW196i",boiler,172,dhw.ecoplusdiff,eco+ diff,uint8 (>=6<=15),K,true,number.boiler_dhw_eco+_diff,number.boiler_dhw_ecoplusdiff,6,9,1,23,1
"Enviline, Compress 6000AW, Hybrid 3000-7000iAW, SupraEco/Geo 5xx, WLW196i/WSW196i",boiler,172,dhw.comfstop,comfort stop temp,uint8 (>=0<=0),C,true,number.boiler_dhw_comfort_stop_temp,number.boiler_dhw_comfstop,6,9,1,24,1
"Enviline, Compress 6000AW, Hybrid 3000-7000iAW, SupraEco/Geo 5xx, WLW196i/WSW196i",boiler,172,dhw.ecostop,eco stop temp,uint8 (>=0<=0),C,true,number.boiler_dhw_eco_stop_temp,number.boiler_dhw_ecostop,6,9,1,25,1
"Enviline, Compress 6000AW, Hybrid 3000-7000iAW, SupraEco/Geo 5xx, WLW196i/WSW196i",boiler,172,dhw.ecoplusstop,eco+ stop temp,uint8 (>=0<=0),C,true,number.boiler_dhw_eco+_stop_temp,number.boiler_dhw_ecoplusstop,6,9,1,26,1
@@ -3034,9 +3034,9 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/
"Geo 5xx",boiler,173,dhw.comfoff,comfort switch off,uint8 (>=15<=65),C,true,number.boiler_dhw_comfort_switch_off,number.boiler_dhw_comfoff,6,9,1,18,1
"Geo 5xx",boiler,173,dhw.ecooff,eco switch off,uint8 (>=15<=65),C,true,number.boiler_dhw_eco_switch_off,number.boiler_dhw_ecooff,6,9,1,19,1
"Geo 5xx",boiler,173,dhw.ecoplusoff,eco+ switch off,uint8 (>=48<=63),C,true,number.boiler_dhw_eco+_switch_off,number.boiler_dhw_ecoplusoff,6,9,1,20,1
-"Geo 5xx",boiler,173,dhw.comfdiff,comfort diff,uint8 (>=4<=15),K,true,number.boiler_dhw_comfort_diff,number.boiler_dhw_comfdiff,6,9,1,21,1
-"Geo 5xx",boiler,173,dhw.ecodiff,eco diff,uint8 (>=4<=15),K,true,number.boiler_dhw_eco_diff,number.boiler_dhw_ecodiff,6,9,1,22,1
-"Geo 5xx",boiler,173,dhw.ecoplusdiff,eco+ diff,uint8 (>=4<=15),K,true,number.boiler_dhw_eco+_diff,number.boiler_dhw_ecoplusdiff,6,9,1,23,1
+"Geo 5xx",boiler,173,dhw.comfdiff,comfort diff,uint8 (>=6<=18),K,true,number.boiler_dhw_comfort_diff,number.boiler_dhw_comfdiff,6,9,1,21,1
+"Geo 5xx",boiler,173,dhw.ecodiff,eco diff,uint8 (>=6<=18),K,true,number.boiler_dhw_eco_diff,number.boiler_dhw_ecodiff,6,9,1,22,1
+"Geo 5xx",boiler,173,dhw.ecoplusdiff,eco+ diff,uint8 (>=6<=15),K,true,number.boiler_dhw_eco+_diff,number.boiler_dhw_ecoplusdiff,6,9,1,23,1
"Geo 5xx",boiler,173,dhw.comfstop,comfort stop temp,uint8 (>=0<=0),C,true,number.boiler_dhw_comfort_stop_temp,number.boiler_dhw_comfstop,6,9,1,24,1
"Geo 5xx",boiler,173,dhw.ecostop,eco stop temp,uint8 (>=0<=0),C,true,number.boiler_dhw_eco_stop_temp,number.boiler_dhw_ecostop,6,9,1,25,1
"Geo 5xx",boiler,173,dhw.ecoplusstop,eco+ stop temp,uint8 (>=0<=0),C,true,number.boiler_dhw_eco+_stop_temp,number.boiler_dhw_ecoplusstop,6,9,1,26,1
diff --git a/interface/src/app/settings/ApplicationSettings.tsx b/interface/src/app/settings/ApplicationSettings.tsx
index 84f790fc8..cb3ff1333 100644
--- a/interface/src/app/settings/ApplicationSettings.tsx
+++ b/interface/src/app/settings/ApplicationSettings.tsx
@@ -846,6 +846,7 @@ const ApplicationSettings = () => {
sx={{ width: '15ch' }}
select
>
+ {data.developer_mode && }
diff --git a/src/core/led.cpp b/src/core/led.cpp
index abf649756..cbe068c3a 100644
--- a/src/core/led.cpp
+++ b/src/core/led.cpp
@@ -31,17 +31,17 @@ namespace rgb_led {
namespace {
-// durations in 100 ns ticks
-constexpr uint16_t T0H = 3; // 300 ns
-constexpr uint16_t T0L = 9; // 900 ns
-constexpr uint16_t T1H = 8; // 800 ns
-constexpr uint16_t T1L = 6; // 600 ns
+// durations in 12.5 ns ticks
+constexpr uint16_t T0H = 3.5 * 8; // 350 ns
+constexpr uint16_t T0L = 9 * 8; // 900 ns
+constexpr uint16_t T1H = 8 * 8; // 800 ns
+constexpr uint16_t T1L = 6 * 8; // 600 ns
// rmt_data_t.val layout: duration0:15, level0:1, duration1:15, level1:1 (high then low)
constexpr uint32_t SYMBOL_0 = T0H | (1UL << 15) | (static_cast(T0L) << 16);
constexpr uint32_t SYMBOL_1 = T1H | (1UL << 15) | (static_cast(T1L) << 16);
-constexpr uint32_t RMT_FREQ_HZ = 10000000; // 10 MHz
+constexpr uint32_t RMT_FREQ_HZ = 80000000; // 80 MHz
constexpr uint32_t RESET_US = 300;
constexpr uint8_t NO_PIN = 0xFF;
constexpr uint8_t MAX_PINS = 2; // status LED + an RGB analog sensor; the ESP32-C3 only has 2 RMT TX channels
diff --git a/src/core/system.cpp b/src/core/system.cpp
index 2d8eb1aba..887a2e239 100644
--- a/src/core/system.cpp
+++ b/src/core/system.cpp
@@ -3767,9 +3767,14 @@ void System::remove_optional_gpio(uint8_t pin) {
// set unused gpios to default state input high-Z
void System::reset_unused_gpios() {
+#if CONFIG_IDF_TARGET_ESP32
+constexpr uint8_t tx0 = 1; // don't change tx0 pin
+#else
+constexpr uint8_t tx0 = 255; // no valid pin, chips have native USB, tx0 not connected to transceiver
+#endif
for (const auto & pin : valid_system_gpios_) {
auto it = std::find_if(used_gpios_.begin(), used_gpios_.end(), [pin](const GpioUsage & usage) { return usage.pin == pin; });
- if (it == used_gpios_.end()) {
+ if (it == used_gpios_.end() && pin != tx0) {
LOG_DEBUG("reset pin %d", pin);
pinMode(pin, INPUT);
}
diff --git a/src/devices/boiler.cpp b/src/devices/boiler.cpp
index 9f71c9e8a..029ac0d6d 100644
--- a/src/devices/boiler.cpp
+++ b/src/devices/boiler.cpp
@@ -726,7 +726,7 @@ Boiler::Boiler(uint8_t device_type, int8_t device_id, uint8_t product_id, const
register_device_value(DeviceValueTAG::TAG_DHW1,
&maxHeatDhw_,
DeviceValueType::ENUM,
- FL_(enum_maxHeat2),
+ FL_(enum_maxHeat1),
FL_(maxHeatDhw),
DeviceValueUOM::NONE,
MAKE_CF_CB(set_maxHeatDhw));
@@ -994,16 +994,16 @@ Boiler::Boiler(uint8_t device_type, int8_t device_id, uint8_t product_id, const
48,
63);
register_device_value(
- DeviceValueTAG::TAG_DHW1, &wwComfDiffTemp_, DeviceValueType::UINT8, FL_(wwComfDiffTemp), DeviceValueUOM::K, MAKE_CF_CB(set_wwComfDiffTemp), 4, 15);
+ DeviceValueTAG::TAG_DHW1, &wwComfDiffTemp_, DeviceValueType::UINT8, FL_(wwComfDiffTemp), DeviceValueUOM::K, MAKE_CF_CB(set_wwComfDiffTemp), 6, 18);
register_device_value(
- DeviceValueTAG::TAG_DHW1, &wwEcoDiffTemp_, DeviceValueType::UINT8, FL_(wwEcoDiffTemp), DeviceValueUOM::K, MAKE_CF_CB(set_wwEcoDiffTemp), 4, 15);
+ DeviceValueTAG::TAG_DHW1, &wwEcoDiffTemp_, DeviceValueType::UINT8, FL_(wwEcoDiffTemp), DeviceValueUOM::K, MAKE_CF_CB(set_wwEcoDiffTemp), 6, 18);
register_device_value(DeviceValueTAG::TAG_DHW1,
&wwEcoPlusDiffTemp_,
DeviceValueType::UINT8,
FL_(wwEcoPlusDiffTemp),
DeviceValueUOM::K,
MAKE_CF_CB(set_wwEcoPlusDiffTemp),
- 4,
+ 6,
15);
register_device_value(DeviceValueTAG::TAG_DHW1,
&wwComfStopTemp_,
@@ -1873,7 +1873,7 @@ void Boiler::process_HpHeaterConfig(const std::shared_ptr & tele
if (model() == EMSdevice::EMS_DEVICE_FLAG_CS6800) {
has_enumupdate(telegram, maxHeatComp_, 2, {0, 2, 4, 5});
has_enumupdate(telegram, maxHeatHeat_, 3, {2, 4, 5});
- has_enumupdate(telegram, maxHeatDhw_, 4, {2, 4, 5});
+ has_enumupdate(telegram, maxHeatDhw_, 4, {0, 2, 4, 5});
return;
}
has_update(telegram, maxHeatComp_, 2);
@@ -3238,7 +3238,7 @@ bool Boiler::set_HpInLogic(const char * value, const int8_t id) {
bool Boiler::set_maxHeat(const char * value, const int8_t id) {
uint8_t v;
if (model() == EMSdevice::EMS_DEVICE_FLAG_CS6800) {
- if (id == 0) {
+ if (id == 2 || id == 4) { // maxHeatComp, maxHeatDhw
if (!Helpers::value2enum(value, v, FL_(enum_maxHeat1), {0, 2, 4, 5})) {
return false;
}
diff --git a/src/devices/thermostat.cpp b/src/devices/thermostat.cpp
index d10e8dc70..eacbc6220 100644
--- a/src/devices/thermostat.cpp
+++ b/src/devices/thermostat.cpp
@@ -35,6 +35,7 @@ Thermostat::Thermostat(uint8_t device_type, uint8_t device_id, uint8_t product_i
// RF remote sensor seen at 0x40, maybe this is also for different hc with id 0x40 - 0x47? emsesp.cpp maps only 0x40
if (device_id >= 0x40 && device_id <= 0x47) {
register_telegram_type(0x0435, "RFTemp", false, MAKE_PF_CB(process_RemoteTemp));
+ register_device_values();
return;
}
// remote thermostats with humidity: RC100H remote, each thermostat is for one hc