esphome-electra-ac-ir/components/electra_ac/electra_ac.h

37 lines
827 B
C++

#pragma once
#include "esphome/core/log.h"
#include "esphome/components/climate/climate.h"
#include "esphome/components/sensor/sensor.h"
#include "IRremoteESP8266.h"
#include "IRsend.h"
#include "ir_Electra.h"
namespace esphome {
namespace electra_ac {
const uint8_t ELECTRA_AC_TEMP_MIN = 16; // 16C
const uint8_t ELECTRA_AC_TEMP_MAX = 30; // 32C
class ElectraClimate : public climate::Climate {
public:
ElectraClimate() : climate::Climate() {}
public:
void set_sensor(sensor::Sensor *sensor);
void init(sensor::Sensor *sensor, uint16_t pin);
protected:
IRElectraAc *ac_{nullptr};
sensor::Sensor *sensor_{nullptr};
void setup_ir_cmd();
climate::ClimateTraits traits() override;
void control(const climate::ClimateCall &call) override;
};
} // namespace haier_acyrw02
} // namespace esphome