From 7d61c0bf98b4acd1a1f9f628f6330f73d32533a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B8=D1=85=D0=B0=D0=B8=D0=BB=20=D0=A1=D0=BE=D0=BB?= =?UTF-8?q?=D0=BE=D0=B2=D1=8C=D0=B5=D0=B2?= Date: Mon, 1 Apr 2024 01:30:20 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9A=D0=BE=D1=80=D0=BE=D1=87=D0=B5-=20=D1=8F?= =?UTF-8?q?=20=D0=B2=D0=B7=D1=8F=D0=BB=20=D0=B8=20=D0=B2=D1=81=D0=B5=20?= =?UTF-8?q?=D0=BF=D0=B5=D1=80=D0=B5=D0=B4=D0=B5=D0=BB=D0=B0=D0=BB.=20?= =?UTF-8?q?=D0=A1=D0=BA=D0=BE=D1=80=D0=BE=D1=81=D1=82=D1=8C=20=D0=BD=D0=B0?= =?UTF-8?q?=D1=81=D1=8B=D1=89=D0=B5=D0=BD=D0=B8=D1=8F=20=D1=81=D0=B5=D1=80?= =?UTF-8?q?=D0=B4=D0=B5=D1=87=D0=BD=D0=B8=D0=BA=D0=B0=20=D0=BB=D0=B5=D0=B3?= =?UTF-8?q?=D1=87=D0=B5=20=D0=BF=D0=BE=D1=81=D1=87=D0=B8=D1=82=D0=B0=D1=82?= =?UTF-8?q?=D1=8C...?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/tclac/tclac.cpp | 23 +++++++++++------------ components/tclac/tclac.h | 6 +++--- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/components/tclac/tclac.cpp b/components/tclac/tclac.cpp index 13d5542..c7e6408 100644 --- a/components/tclac/tclac.cpp +++ b/components/tclac/tclac.cpp @@ -32,7 +32,15 @@ ClimateTraits tclacClimate::traits() { // climate::CLIMATE_FAN_FOCUS, // ||||| // climate::CLIMATE_FAN_DIFFUSE // POWER [7] // }); + + traits.set_supported_modes(this->supported_modes_); + traits.set_supported_fan_modes(this->supported_fan_modes_); + traits.set_supported_swing_modes(this->supported_swing_modes_); + traits.add_supported_fan_mode(climate::CLIMATE_FAN_AUTO); // Автоматический режим вентилятора доступен всегда + traits.add_supported_swing_mode(climate::CLIMATE_SWING_OFF); // Выключенный режим качания заслонок доступен всегда + traits.add_supported_mode(climate::CLIMATE_MODE_OFF); // Выключенный режим кондиционера доступен всегда + traits.add_supported_mode(climate::CLIMATE_MODE_AUTO); // Автоматический режим кондиционера тоже traits.set_visual_min_temperature(MIN_SET_TEMPERATURE); traits.set_visual_max_temperature(MAX_SET_TEMPERATURE); @@ -624,10 +632,7 @@ void tclacClimate::set_vertical_swing_direction(VerticalSwingDirection direction } void tclacClimate::set_supported_modes(const std::set &modes) { - auto traits_ = climate::ClimateTraits(); - this->traits_.set_supported_modes(modes); - this->traits_.add_supported_mode(climate::CLIMATE_MODE_OFF); // Выключенный режим доступен всегда - this->traits_.add_supported_mode(climate::CLIMATE_MODE_AUTO); // Автоматический режим тоже + this->supported_modes_ = modes; } void tclacClimate::set_horizontal_swing_direction(HorizontalSwingDirection direction) { @@ -635,19 +640,13 @@ void tclacClimate::set_horizontal_swing_direction(HorizontalSwingDirection direc } void tclacClimate::set_supported_fan_modes(const std::set &modes){ - auto traits_ = climate::ClimateTraits(); - this->traits_.set_supported_fan_modes(modes); - this->traits_.add_supported_fan_mode(climate::CLIMATE_FAN_AUTO); // Автоматический режим доступен всегда + this->supported_fan_modes_ = modes; } void tclacClimate::set_supported_swing_modes(const std::set &modes) { - auto traits_ = climate::ClimateTraits(); - this->traits_.set_supported_swing_modes(modes); - this->traits_.add_supported_swing_mode(climate::CLIMATE_SWING_OFF); // Выключенный режим доступен всегда + this->supported_swing_modes_ = modes; } - - // Заготовки функций запроса состояния, может пригодиться в будущем, если делать обратную связь. Очень не хочется, будет очень костыльно. //bool tclacClimate::get_beeper_state() const { return this->beeper_status_; } diff --git a/components/tclac/tclac.h b/components/tclac/tclac.h index a07f178..f2318d7 100644 --- a/components/tclac/tclac.h +++ b/components/tclac/tclac.h @@ -143,16 +143,16 @@ class tclacClimate : public climate::Climate, public esphome::uart::UARTDevice, void set_supported_fan_modes(const std::set &modes); void set_supported_swing_modes(const std::set &modes); - protected: GPIOPin *rx_led_pin_; GPIOPin *tx_led_pin_; ClimateTraits traits() override; -// std::set supported_modes_{}; + std::set supported_modes_{}; AirflowVerticalDirection vertical_direction_; + std::set supported_fan_modes_{}; AirflowHorizontalDirection horizontal_direction_; VerticalSwingDirection vertical_swing_direction_; -// std::set supported_swing_modes_{}; + std::set supported_swing_modes_{}; HorizontalSwingDirection horizontal_swing_direction_; };