#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: IRElecrtaAC *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