mirror of
https://github.com/Threnklyn/esphome-dev.git
synced 2026-06-05 20:38:27 +02:00
Add demo integration (#2085)
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
#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
|
||||
Reference in New Issue
Block a user