Files
esphome-dev/esphome/components/fan/fan_traits.h
T
Jim Persson 0bb81e5b2d Add support for controlling fan direction (#1051)
* Fix fan oscillation trait not being used

* Add fan direction support to SpeedFan

* Add fan direction to API

* Add fan direction support to BinaryFan

* Fix CI errors

* Fix python format

* Change some ordering to trigger CI

* Add test for the configuration
2020-06-14 16:54:31 -03:00

33 lines
1.0 KiB
C++

#pragma once
namespace esphome {
namespace fan {
class FanTraits {
public:
FanTraits() = default;
FanTraits(bool oscillation, bool speed, bool direction)
: oscillation_(oscillation), speed_(speed), direction_(direction) {}
/// Return if this fan supports oscillation.
bool supports_oscillation() const { return this->oscillation_; }
/// Set whether this fan supports oscillation.
void set_oscillation(bool oscillation) { this->oscillation_ = oscillation; }
/// Return if this fan supports speed modes.
bool supports_speed() const { return this->speed_; }
/// Set whether this fan supports speed modes.
void set_speed(bool speed) { this->speed_ = speed; }
/// Return if this fan supports changing direction
bool supports_direction() const { return this->direction_; }
/// Set whether this fan supports changing direction
void set_direction(bool direction) { this->direction_ = direction; }
protected:
bool oscillation_{false};
bool speed_{false};
bool direction_{false};
};
} // namespace fan
} // namespace esphome