mirror of
https://github.com/esphome/esphome.git
synced 2024-12-22 13:34:54 +01:00
Fix fan speed restore issue on boot (#1867)
This commit is contained in:
parent
b0533db2eb
commit
1be106c0b5
5 changed files with 14 additions and 3 deletions
|
@ -55,7 +55,10 @@ void BinaryFan::loop() {
|
|||
ESP_LOGD(TAG, "Setting reverse direction: %s", ONOFF(enable));
|
||||
}
|
||||
}
|
||||
float BinaryFan::get_setup_priority() const { return setup_priority::DATA; }
|
||||
|
||||
// We need a higher priority than the FanState component to make sure that the traits are set
|
||||
// when that component sets itself up.
|
||||
float BinaryFan::get_setup_priority() const { return fan_->get_setup_priority() + 1.0f; }
|
||||
|
||||
} // namespace binary
|
||||
} // namespace esphome
|
||||
|
|
|
@ -39,7 +39,7 @@ void FanState::setup() {
|
|||
call.set_direction(recovered.direction);
|
||||
call.perform();
|
||||
}
|
||||
float FanState::get_setup_priority() const { return setup_priority::HARDWARE - 1.0f; }
|
||||
float FanState::get_setup_priority() const { return setup_priority::DATA - 1.0f; }
|
||||
uint32_t FanState::hash_base() { return 418001110UL; }
|
||||
|
||||
void FanStateCall::perform() const {
|
||||
|
|
|
@ -56,7 +56,10 @@ void SpeedFan::loop() {
|
|||
ESP_LOGD(TAG, "Setting reverse direction: %s", ONOFF(enable));
|
||||
}
|
||||
}
|
||||
float SpeedFan::get_setup_priority() const { return setup_priority::DATA; }
|
||||
|
||||
// We need a higher priority than the FanState component to make sure that the traits are set
|
||||
// when that component sets itself up.
|
||||
float SpeedFan::get_setup_priority() const { return fan_->get_setup_priority() + 1.0f; }
|
||||
|
||||
} // namespace speed
|
||||
} // namespace esphome
|
||||
|
|
|
@ -84,5 +84,9 @@ void TuyaFan::write_state() {
|
|||
}
|
||||
}
|
||||
|
||||
// We need a higher priority than the FanState component to make sure that the traits are set
|
||||
// when that component sets itself up.
|
||||
float TuyaFan::get_setup_priority() const { return fan_->get_setup_priority() + 1.0f; }
|
||||
|
||||
} // namespace tuya
|
||||
} // namespace esphome
|
||||
|
|
|
@ -11,6 +11,7 @@ class TuyaFan : public Component {
|
|||
public:
|
||||
TuyaFan(Tuya *parent, fan::FanState *fan, int speed_count) : parent_(parent), fan_(fan), speed_count_(speed_count) {}
|
||||
void setup() override;
|
||||
float get_setup_priority() const override;
|
||||
void dump_config() override;
|
||||
void set_speed_id(uint8_t speed_id) { this->speed_id_ = speed_id; }
|
||||
void set_switch_id(uint8_t switch_id) { this->switch_id_ = switch_id; }
|
||||
|
|
Loading…
Reference in a new issue