1
0
mirror of https://github.com/esphome/esphome.git synced 2025-02-24 22:08:17 +00:00
2021-07-29 11:50:55 +02:00

55 lines
1.1 KiB
C++

#pragma once
#include "esphome/core/component.h"
#include "esphome/components/fan/fan_state.h"
namespace esphome {
namespace demo {
enum class DemoFanType {
TYPE_1,
TYPE_2,
TYPE_3,
TYPE_4,
};
class DemoFan : public Component {
public:
void set_type(DemoFanType type) { type_ = type; }
void set_fan(fan::FanState *fan) { fan_ = fan; }
void setup() override {
fan::FanTraits traits{};
// oscillation
// speed
// direction
// speed_count
switch (type_) {
case DemoFanType::TYPE_1:
break;
case DemoFanType::TYPE_2:
traits.set_oscillation(true);
break;
case DemoFanType::TYPE_3:
traits.set_direction(true);
traits.set_speed(true);
traits.set_supported_speed_count(5);
break;
case DemoFanType::TYPE_4:
traits.set_direction(true);
traits.set_speed(true);
traits.set_supported_speed_count(100);
traits.set_oscillation(true);
break;
}
this->fan_->set_traits(traits);
}
fan::FanState *fan_;
DemoFanType type_;
};
} // namespace demo
} // namespace esphome