41 lines
1.0 KiB
C++
41 lines
1.0 KiB
C++
#pragma once
|
|
|
|
#include "esphome/core/component.h"
|
|
#include "esphome/core/defines.h"
|
|
#include "esphome/core/hal.h"
|
|
#include "esphome/components/bedjet/bedjet_child.h"
|
|
#include "esphome/components/bedjet/bedjet_codec.h"
|
|
#include "esphome/components/bedjet/bedjet_hub.h"
|
|
#include "esphome/components/fan/fan.h"
|
|
|
|
#ifdef USE_ESP32
|
|
|
|
namespace esphome {
|
|
namespace bedjet {
|
|
|
|
class BedJetFan : public fan::Fan, public BedJetClient, public PollingComponent {
|
|
public:
|
|
void update() override;
|
|
void dump_config() override;
|
|
float get_setup_priority() const override { return setup_priority::AFTER_WIFI; }
|
|
|
|
/* BedJetClient status update */
|
|
void on_status(const BedjetStatusPacket *data) override;
|
|
void on_bedjet_state(bool is_ready) override{};
|
|
std::string describe() override;
|
|
|
|
fan::FanTraits get_traits() override { return fan::FanTraits(false, true, false, BEDJET_FAN_SPEED_COUNT); }
|
|
|
|
protected:
|
|
void control(const fan::FanCall &call) override;
|
|
|
|
private:
|
|
void reset_state_();
|
|
bool update_status_();
|
|
};
|
|
|
|
} // namespace bedjet
|
|
} // namespace esphome
|
|
|
|
#endif
|