mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-06 15:59:52 +03:00
RC300 calinttemp and fix some other thermostat values
This commit is contained in:
@@ -522,7 +522,7 @@ void Thermostat::process_RC10Set(std::shared_ptr<const Telegram> telegram) {
|
|||||||
if (hc == nullptr) {
|
if (hc == nullptr) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
has_update(telegram, ibaClockOffset_, 0);
|
has_update(telegram, ibaCalIntTemperature_, 0);
|
||||||
has_update(telegram, backlight_, 1);
|
has_update(telegram, backlight_, 1);
|
||||||
has_update(telegram, wwMode_, 2);
|
has_update(telegram, wwMode_, 2);
|
||||||
has_update(telegram, hc->nighttemp, 3);
|
has_update(telegram, hc->nighttemp, 3);
|
||||||
@@ -1102,6 +1102,7 @@ void Thermostat::process_RC300OutdoorTemp(std::shared_ptr<const Telegram> telegr
|
|||||||
|
|
||||||
// 0x240 RC300 parameter
|
// 0x240 RC300 parameter
|
||||||
void Thermostat::process_RC300Settings(std::shared_ptr<const Telegram> telegram) {
|
void Thermostat::process_RC300Settings(std::shared_ptr<const Telegram> telegram) {
|
||||||
|
has_update(telegram, ibaCalIntTemperature_, 7);
|
||||||
has_update(telegram, ibaDamping_, 8);
|
has_update(telegram, ibaDamping_, 8);
|
||||||
has_enumupdate(telegram, ibaBuildingType_, 9, 1); // 1=light, 2=medium, 3=heavy
|
has_enumupdate(telegram, ibaBuildingType_, 9, 1); // 1=light, 2=medium, 3=heavy
|
||||||
has_update(telegram, ibaMinExtTemperature_, 10);
|
has_update(telegram, ibaMinExtTemperature_, 10);
|
||||||
@@ -1557,6 +1558,8 @@ bool Thermostat::set_calinttemp(const char * value, const int8_t id) {
|
|||||||
write_command(EMS_TYPE_RC30Settings, 1, t, EMS_TYPE_RC30Settings);
|
write_command(EMS_TYPE_RC30Settings, 1, t, EMS_TYPE_RC30Settings);
|
||||||
} else if (model() == EMS_DEVICE_FLAG_RC100H) {
|
} else if (model() == EMS_DEVICE_FLAG_RC100H) {
|
||||||
write_command(0x273, 0, t, 0x273);
|
write_command(0x273, 0, t, 0x273);
|
||||||
|
} else if (model() == EMS_DEVICE_FLAG_RC100 || model() == EMS_DEVICE_FLAG_RC300) {
|
||||||
|
write_command(0x240, 7, t, 0x240);
|
||||||
} else {
|
} else {
|
||||||
write_command(EMS_TYPE_IBASettings, 2, t, EMS_TYPE_IBASettings);
|
write_command(EMS_TYPE_IBASettings, 2, t, EMS_TYPE_IBASettings);
|
||||||
}
|
}
|
||||||
@@ -1564,10 +1567,10 @@ bool Thermostat::set_calinttemp(const char * value, const int8_t id) {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 0xA5 - Set the display settings
|
// 0xA5 - Set the display settings, RC30_N
|
||||||
bool Thermostat::set_display(const char * value, const int8_t id) {
|
bool Thermostat::set_display(const char * value, const int8_t id) {
|
||||||
int ds = 0;
|
uint8_t ds;
|
||||||
if (!Helpers::value2number(value, ds)) {
|
if (!Helpers::value2enum(value, ds, FL_(enum_ibaMainDisplay))) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3382,6 +3385,13 @@ void Thermostat::register_device_values() {
|
|||||||
FL_(dateTime),
|
FL_(dateTime),
|
||||||
DeviceValueUOM::NONE,
|
DeviceValueUOM::NONE,
|
||||||
MAKE_CF_CB(set_datetime));
|
MAKE_CF_CB(set_datetime));
|
||||||
|
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA,
|
||||||
|
&ibaCalIntTemperature_,
|
||||||
|
DeviceValueType::INT,
|
||||||
|
DeviceValueNumOp::DV_NUMOP_DIV10,
|
||||||
|
FL_(ibaCalIntTemperature),
|
||||||
|
DeviceValueUOM::DEGREES_R,
|
||||||
|
MAKE_CF_CB(set_calinttemp));
|
||||||
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA,
|
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA,
|
||||||
&floordrystatus_,
|
&floordrystatus_,
|
||||||
DeviceValueType::ENUM,
|
DeviceValueType::ENUM,
|
||||||
@@ -3506,12 +3516,6 @@ void Thermostat::register_device_values() {
|
|||||||
FL_(ibaLanguage),
|
FL_(ibaLanguage),
|
||||||
DeviceValueUOM::NONE,
|
DeviceValueUOM::NONE,
|
||||||
MAKE_CF_CB(set_language));
|
MAKE_CF_CB(set_language));
|
||||||
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA,
|
|
||||||
&ibaMainDisplay_,
|
|
||||||
DeviceValueType::ENUM,
|
|
||||||
FL_(enum_ibaMainDisplay),
|
|
||||||
FL_(ibaMainDisplay),
|
|
||||||
DeviceValueUOM::NONE);
|
|
||||||
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &backlight_, DeviceValueType::BOOL, FL_(backlight), DeviceValueUOM::NONE, MAKE_CF_CB(set_backlight));
|
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &backlight_, DeviceValueType::BOOL, FL_(backlight), DeviceValueUOM::NONE, MAKE_CF_CB(set_backlight));
|
||||||
register_device_value(
|
register_device_value(
|
||||||
DeviceValueTAG::TAG_DEVICE_DATA, &brightness_, DeviceValueType::INT, FL_(brightness), DeviceValueUOM::NONE, MAKE_CF_CB(set_brightness), -15, 15);
|
DeviceValueTAG::TAG_DEVICE_DATA, &brightness_, DeviceValueType::INT, FL_(brightness), DeviceValueUOM::NONE, MAKE_CF_CB(set_brightness), -15, 15);
|
||||||
@@ -3599,13 +3603,15 @@ void Thermostat::register_device_values() {
|
|||||||
DeviceValueType::ENUM,
|
DeviceValueType::ENUM,
|
||||||
FL_(enum_ibaMainDisplay),
|
FL_(enum_ibaMainDisplay),
|
||||||
FL_(ibaMainDisplay),
|
FL_(ibaMainDisplay),
|
||||||
DeviceValueUOM::NONE);
|
DeviceValueUOM::NONE,
|
||||||
|
MAKE_CF_CB(set_display));
|
||||||
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &ibaLanguage_, DeviceValueType::ENUM, FL_(enum_ibaLanguage), FL_(ibaLanguage), DeviceValueUOM::NONE);
|
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &ibaLanguage_, DeviceValueType::ENUM, FL_(enum_ibaLanguage), FL_(ibaLanguage), DeviceValueUOM::NONE);
|
||||||
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA,
|
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA,
|
||||||
&ibaClockOffset_,
|
&ibaClockOffset_,
|
||||||
DeviceValueType::INT,
|
DeviceValueType::INT,
|
||||||
FL_(ibaClockOffset),
|
FL_(ibaClockOffset),
|
||||||
DeviceValueUOM::SECONDS); // offset (in sec) to clock, 0xff=-1s, 0x02=2s
|
DeviceValueUOM::SECONDS,
|
||||||
|
MAKE_CF_CB(set_clockoffset)); // offset (in sec) to clock, 0xff=-1s, 0x02=2s
|
||||||
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA,
|
register_device_value(DeviceValueTAG::TAG_DEVICE_DATA,
|
||||||
&ibaCalIntTemperature_,
|
&ibaCalIntTemperature_,
|
||||||
DeviceValueType::INT,
|
DeviceValueType::INT,
|
||||||
|
|||||||
Reference in New Issue
Block a user