mirror of
https://github.com/Threnklyn/esphome-dev.git
synced 2026-05-31 10:08:27 +02:00
Fix an Issue with IR Remote Climate and Whirlpool protocol toggle (#5447)
Co-authored-by: Clyde Stubbs <2366188+clydebarrow@users.noreply.github.com> Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
This commit is contained in:
@@ -33,6 +33,7 @@ const uint8_t WHIRLPOOL_SWING_MASK = 128;
|
||||
const uint8_t WHIRLPOOL_POWER = 0x04;
|
||||
|
||||
void WhirlpoolClimate::transmit_state() {
|
||||
this->last_transmit_time_ = millis(); // setting the time of the last transmission.
|
||||
uint8_t remote_state[WHIRLPOOL_STATE_LENGTH] = {0};
|
||||
remote_state[0] = 0x83;
|
||||
remote_state[1] = 0x06;
|
||||
@@ -149,6 +150,12 @@ void WhirlpoolClimate::transmit_state() {
|
||||
}
|
||||
|
||||
bool WhirlpoolClimate::on_receive(remote_base::RemoteReceiveData data) {
|
||||
// Check if the esp isn't currently transmitting.
|
||||
if (millis() - this->last_transmit_time_ < 500) {
|
||||
ESP_LOGV(TAG, "Blocked receive because of current trasmittion");
|
||||
return false;
|
||||
}
|
||||
|
||||
// Validate header
|
||||
if (!data.expect_item(WHIRLPOOL_HEADER_MARK, WHIRLPOOL_HEADER_SPACE)) {
|
||||
ESP_LOGV(TAG, "Header fail");
|
||||
|
||||
Reference in New Issue
Block a user