mirror of
https://github.com/esphome/esphome.git
synced 2024-12-22 05:24:53 +01:00
Climate IR LG -keep previous temp and fan if swing (#1556)
Swing IR command does not carry CLIMATE_FAN or TEMP within itself, so previous states sould be kept. Tested with actual LG IR remote controller.
This commit is contained in:
parent
3d0310d0e0
commit
92b36720b6
1 changed files with 15 additions and 15 deletions
|
@ -139,24 +139,24 @@ bool LgIrClimate::on_receive(remote_base::RemoteReceiveData data) {
|
||||||
} else {
|
} else {
|
||||||
this->mode = climate::CLIMATE_MODE_COOL;
|
this->mode = climate::CLIMATE_MODE_COOL;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// Temperature
|
// Temperature
|
||||||
if (this->mode == climate::CLIMATE_MODE_COOL)
|
if (this->mode == climate::CLIMATE_MODE_COOL)
|
||||||
this->target_temperature = ((remote_state & TEMP_MASK) >> TEMP_SHIFT) + 15;
|
this->target_temperature = ((remote_state & TEMP_MASK) >> TEMP_SHIFT) + 15;
|
||||||
|
|
||||||
// Fan Speed
|
// Fan Speed
|
||||||
if (this->mode == climate::CLIMATE_MODE_AUTO) {
|
if (this->mode == climate::CLIMATE_MODE_AUTO) {
|
||||||
this->fan_mode = climate::CLIMATE_FAN_AUTO;
|
|
||||||
} else if (this->mode == climate::CLIMATE_MODE_COOL || this->mode == climate::CLIMATE_MODE_DRY) {
|
|
||||||
if ((remote_state & FAN_MASK) == FAN_AUTO)
|
|
||||||
this->fan_mode = climate::CLIMATE_FAN_AUTO;
|
this->fan_mode = climate::CLIMATE_FAN_AUTO;
|
||||||
else if ((remote_state & FAN_MASK) == FAN_MIN)
|
} else if (this->mode == climate::CLIMATE_MODE_COOL || this->mode == climate::CLIMATE_MODE_DRY) {
|
||||||
this->fan_mode = climate::CLIMATE_FAN_LOW;
|
if ((remote_state & FAN_MASK) == FAN_AUTO)
|
||||||
else if ((remote_state & FAN_MASK) == FAN_MED)
|
this->fan_mode = climate::CLIMATE_FAN_AUTO;
|
||||||
this->fan_mode = climate::CLIMATE_FAN_MEDIUM;
|
else if ((remote_state & FAN_MASK) == FAN_MIN)
|
||||||
else if ((remote_state & FAN_MASK) == FAN_MAX)
|
this->fan_mode = climate::CLIMATE_FAN_LOW;
|
||||||
this->fan_mode = climate::CLIMATE_FAN_HIGH;
|
else if ((remote_state & FAN_MASK) == FAN_MED)
|
||||||
|
this->fan_mode = climate::CLIMATE_FAN_MEDIUM;
|
||||||
|
else if ((remote_state & FAN_MASK) == FAN_MAX)
|
||||||
|
this->fan_mode = climate::CLIMATE_FAN_HIGH;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
this->publish_state();
|
this->publish_state();
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue