Вот это должно решить проблему с выключением кондиционера при смене настроек после перезагрузки модуля
This commit is contained in:
@@ -111,7 +111,7 @@ void tclacClimate::readData() {
|
|||||||
|
|
||||||
if (dataRX[MODE_POS] & ( 1 << 4)) {
|
if (dataRX[MODE_POS] & ( 1 << 4)) {
|
||||||
// Если кондиционер включен, то разбираем данные для отображения
|
// Если кондиционер включен, то разбираем данные для отображения
|
||||||
ESP_LOGD("TCL", "AC is on");
|
// ESP_LOGD("TCL", "AC is on");
|
||||||
uint8_t modeswitch = MODE_MASK & dataRX[MODE_POS];
|
uint8_t modeswitch = MODE_MASK & dataRX[MODE_POS];
|
||||||
uint8_t fanspeedswitch = FAN_SPEED_MASK & dataRX[FAN_SPEED_POS];
|
uint8_t fanspeedswitch = FAN_SPEED_MASK & dataRX[FAN_SPEED_POS];
|
||||||
uint8_t swingmodeswitch = SWING_MODE_MASK & dataRX[SWING_POS];
|
uint8_t swingmodeswitch = SWING_MODE_MASK & dataRX[SWING_POS];
|
||||||
@@ -242,6 +242,7 @@ void tclacClimate::control(const ClimateCall &call) {
|
|||||||
target_temperature_set = 31-(int)target_temperature;
|
target_temperature_set = 31-(int)target_temperature;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
is_call_control = true;
|
||||||
takeControl();
|
takeControl();
|
||||||
allow_take_control = true;
|
allow_take_control = true;
|
||||||
}
|
}
|
||||||
@@ -258,6 +259,14 @@ void tclacClimate::takeControl() {
|
|||||||
dataTX[32] = 0b00000000;
|
dataTX[32] = 0b00000000;
|
||||||
dataTX[33] = 0b00000000;
|
dataTX[33] = 0b00000000;
|
||||||
|
|
||||||
|
if (is_call_control != true){
|
||||||
|
switch_climate_mode = mode;
|
||||||
|
switch_preset = preset.value();
|
||||||
|
switch_fan_mode = fan_mode.value();
|
||||||
|
switch_swing_mode = swing_mode;
|
||||||
|
target_temperature_set = 31-(int)target_temperature;
|
||||||
|
}
|
||||||
|
|
||||||
// Включаем или отключаем пищалку в зависимости от переключателя в настройках
|
// Включаем или отключаем пищалку в зависимости от переключателя в настройках
|
||||||
if (beeper_status_){
|
if (beeper_status_){
|
||||||
ESP_LOGD("TCL", "Beep mode ON");
|
ESP_LOGD("TCL", "Beep mode ON");
|
||||||
@@ -546,6 +555,7 @@ void tclacClimate::takeControl() {
|
|||||||
dataTX[37] = tclacClimate::getChecksum(dataTX, sizeof(dataTX));
|
dataTX[37] = tclacClimate::getChecksum(dataTX, sizeof(dataTX));
|
||||||
|
|
||||||
tclacClimate::sendData(dataTX, sizeof(dataTX));
|
tclacClimate::sendData(dataTX, sizeof(dataTX));
|
||||||
|
allow_take_control = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Отправка данных в кондиционер
|
// Отправка данных в кондиционер
|
||||||
|
|||||||
Reference in New Issue
Block a user