ESPHome 2025.12.0-dev
Loading...
Searching...
No Matches
esphome::climate::ClimateTraits Class Reference

#include <climate_traits.h>

Public Member Functions

uint32_t get_feature_flags () const
 Get/set feature flags (see ClimateFeatures enum in climate_mode.h)
 
void add_feature_flags (uint32_t feature_flags)
 
void clear_feature_flags (uint32_t feature_flags)
 
bool has_feature_flags (uint32_t feature_flags) const
 
void set_feature_flags (uint32_t feature_flags)
 
 ESPDEPRECATED ("This method is deprecated, use get_feature_flags() instead", "2025.11.0") bool get_supports_current_temperature() const
 
 ESPDEPRECATED ("This method is deprecated, use add_feature_flags() instead", "2025.11.0") void set_supports_current_temperature(bool supports_current_temperature)
 
 ESPDEPRECATED ("This method is deprecated, use get_feature_flags() instead", "2025.11.0") bool get_supports_current_humidity() const
 
 ESPDEPRECATED ("This method is deprecated, use add_feature_flags() instead", "2025.11.0") void set_supports_current_humidity(bool supports_current_humidity)
 
 ESPDEPRECATED ("This method is deprecated, use get_feature_flags() instead", "2025.11.0") bool get_supports_two_point_target_temperature() const
 
 ESPDEPRECATED ("This method is deprecated, use add_feature_flags() instead", "2025.11.0") void set_supports_two_point_target_temperature(bool supports_two_point_target_temperature)
 
 ESPDEPRECATED ("This method is deprecated, use get_feature_flags() instead", "2025.11.0") bool get_supports_target_humidity() const
 
 ESPDEPRECATED ("This method is deprecated, use add_feature_flags() instead", "2025.11.0") void set_supports_target_humidity(bool supports_target_humidity)
 
 ESPDEPRECATED ("This method is deprecated, use get_feature_flags() instead", "2025.11.0") bool get_supports_action() const
 
 ESPDEPRECATED ("This method is deprecated, use add_feature_flags() instead", "2025.11.0") void set_supports_action(bool supports_action)
 
void set_supported_modes (ClimateModeMask modes)
 
void add_supported_mode (ClimateMode mode)
 
bool supports_mode (ClimateMode mode) const
 
const ClimateModeMaskget_supported_modes () const
 
void set_supported_fan_modes (ClimateFanModeMask modes)
 
void add_supported_fan_mode (ClimateFanMode mode)
 
bool supports_fan_mode (ClimateFanMode fan_mode) const
 
bool get_supports_fan_modes () const
 
const ClimateFanModeMaskget_supported_fan_modes () const
 
void set_supported_custom_fan_modes (std::initializer_list< const char * > modes)
 
void set_supported_custom_fan_modes (const std::vector< const char * > &modes)
 
template<size_t N>
void set_supported_custom_fan_modes (const char *const (&modes)[N])
 
void set_supported_custom_fan_modes (const std::vector< std::string > &modes)=delete
 
void set_supported_custom_fan_modes (std::initializer_list< std::string > modes)=delete
 
const std::vector< const char * > & get_supported_custom_fan_modes () const
 
bool supports_custom_fan_mode (const char *custom_fan_mode) const
 
bool supports_custom_fan_mode (const std::string &custom_fan_mode) const
 
void set_supported_presets (ClimatePresetMask presets)
 
void add_supported_preset (ClimatePreset preset)
 
bool supports_preset (ClimatePreset preset) const
 
bool get_supports_presets () const
 
const ClimatePresetMaskget_supported_presets () const
 
void set_supported_custom_presets (std::initializer_list< const char * > presets)
 
void set_supported_custom_presets (const std::vector< const char * > &presets)
 
template<size_t N>
void set_supported_custom_presets (const char *const (&presets)[N])
 
void set_supported_custom_presets (const std::vector< std::string > &presets)=delete
 
void set_supported_custom_presets (std::initializer_list< std::string > presets)=delete
 
const std::vector< const char * > & get_supported_custom_presets () const
 
bool supports_custom_preset (const char *custom_preset) const
 
bool supports_custom_preset (const std::string &custom_preset) const
 
void set_supported_swing_modes (ClimateSwingModeMask modes)
 
void add_supported_swing_mode (ClimateSwingMode mode)
 
bool supports_swing_mode (ClimateSwingMode swing_mode) const
 
bool get_supports_swing_modes () const
 
const ClimateSwingModeMaskget_supported_swing_modes () const
 
float get_visual_min_temperature () const
 
void set_visual_min_temperature (float visual_min_temperature)
 
float get_visual_max_temperature () const
 
void set_visual_max_temperature (float visual_max_temperature)
 
float get_visual_target_temperature_step () const
 
float get_visual_current_temperature_step () const
 
void set_visual_target_temperature_step (float temperature_step)
 
void set_visual_current_temperature_step (float temperature_step)
 
void set_visual_temperature_step (float temperature_step)
 
int8_t get_target_temperature_accuracy_decimals () const
 
int8_t get_current_temperature_accuracy_decimals () const
 
float get_visual_min_humidity () const
 
void set_visual_min_humidity (float visual_min_humidity)
 
float get_visual_max_humidity () const
 
void set_visual_max_humidity (float visual_max_humidity)
 

Protected Member Functions

void set_mode_support_ (climate::ClimateMode mode, bool supported)
 
void set_fan_mode_support_ (climate::ClimateFanMode mode, bool supported)
 
void set_swing_mode_support_ (climate::ClimateSwingMode mode, bool supported)
 
const char * find_custom_fan_mode_ (const char *custom_fan_mode) const
 Find and return the matching custom fan mode pointer from supported modes, or nullptr if not found This is protected as it's an implementation detail - use Climate::find_custom_fan_mode_() instead.
 
const char * find_custom_preset_ (const char *custom_preset) const
 Find and return the matching custom preset pointer from supported presets, or nullptr if not found This is protected as it's an implementation detail - use Climate::find_custom_preset_() instead.
 

Protected Attributes

uint32_t feature_flags_ {0}
 
float visual_min_temperature_ {10}
 
float visual_max_temperature_ {30}
 
float visual_target_temperature_step_ {0.1}
 
float visual_current_temperature_step_ {0.1}
 
float visual_min_humidity_ {30}
 
float visual_max_humidity_ {99}
 
climate::ClimateModeMask supported_modes_ {climate::CLIMATE_MODE_OFF}
 
climate::ClimateFanModeMask supported_fan_modes_
 
climate::ClimateSwingModeMask supported_swing_modes_
 
climate::ClimatePresetMask supported_presets_
 
std::vector< const char * > supported_custom_fan_modes_
 Custom mode storage using const char* pointers to eliminate std::string overhead.
 
std::vector< const char * > supported_custom_presets_
 

Detailed Description

Definition at line 70 of file climate_traits.h.

Member Function Documentation

◆ add_feature_flags()

void esphome::climate::ClimateTraits::add_feature_flags ( uint32_t feature_flags)
inline

Definition at line 76 of file climate_traits.h.

◆ add_supported_fan_mode()

void esphome::climate::ClimateTraits::add_supported_fan_mode ( ClimateFanMode mode)
inline

Definition at line 144 of file climate_traits.h.

◆ add_supported_mode()

void esphome::climate::ClimateTraits::add_supported_mode ( ClimateMode mode)
inline

Definition at line 139 of file climate_traits.h.

◆ add_supported_preset()

void esphome::climate::ClimateTraits::add_supported_preset ( ClimatePreset preset)
inline

Definition at line 174 of file climate_traits.h.

◆ add_supported_swing_mode()

void esphome::climate::ClimateTraits::add_supported_swing_mode ( ClimateSwingMode mode)
inline

Definition at line 202 of file climate_traits.h.

◆ clear_feature_flags()

void esphome::climate::ClimateTraits::clear_feature_flags ( uint32_t feature_flags)
inline

Definition at line 77 of file climate_traits.h.

◆ ESPDEPRECATED() [1/10]

esphome::climate::ClimateTraits::ESPDEPRECATED ( "This method is deprecated,
use add_feature_flags() instead" ,
"2025.11.0"  )
inline

Definition at line 129 of file climate_traits.h.

◆ ESPDEPRECATED() [2/10]

esphome::climate::ClimateTraits::ESPDEPRECATED ( "This method is deprecated,
use add_feature_flags() instead" ,
"2025.11.0"  )
inline

Definition at line 95 of file climate_traits.h.

◆ ESPDEPRECATED() [3/10]

esphome::climate::ClimateTraits::ESPDEPRECATED ( "This method is deprecated,
use add_feature_flags() instead" ,
"2025.11.0"  )
inline

Definition at line 85 of file climate_traits.h.

◆ ESPDEPRECATED() [4/10]

esphome::climate::ClimateTraits::ESPDEPRECATED ( "This method is deprecated,
use add_feature_flags() instead" ,
"2025.11.0"  )
inline

Definition at line 119 of file climate_traits.h.

◆ ESPDEPRECATED() [5/10]

esphome::climate::ClimateTraits::ESPDEPRECATED ( "This method is deprecated,
use add_feature_flags() instead" ,
"2025.11.0"  )
inline

Definition at line 107 of file climate_traits.h.

◆ ESPDEPRECATED() [6/10]

esphome::climate::ClimateTraits::ESPDEPRECATED ( "This method is deprecated,
use get_feature_flags() instead" ,
"2025.11.0"  ) const
inline

Definition at line 127 of file climate_traits.h.

◆ ESPDEPRECATED() [7/10]

esphome::climate::ClimateTraits::ESPDEPRECATED ( "This method is deprecated,
use get_feature_flags() instead" ,
"2025.11.0"  ) const
inline

Definition at line 93 of file climate_traits.h.

◆ ESPDEPRECATED() [8/10]

esphome::climate::ClimateTraits::ESPDEPRECATED ( "This method is deprecated,
use get_feature_flags() instead" ,
"2025.11.0"  ) const
inline

Definition at line 81 of file climate_traits.h.

◆ ESPDEPRECATED() [9/10]

esphome::climate::ClimateTraits::ESPDEPRECATED ( "This method is deprecated,
use get_feature_flags() instead" ,
"2025.11.0"  ) const
inline

Definition at line 117 of file climate_traits.h.

◆ ESPDEPRECATED() [10/10]

esphome::climate::ClimateTraits::ESPDEPRECATED ( "This method is deprecated,
use get_feature_flags() instead" ,
"2025.11.0"  ) const
inline

Definition at line 103 of file climate_traits.h.

◆ find_custom_fan_mode_()

const char * esphome::climate::ClimateTraits::find_custom_fan_mode_ ( const char * custom_fan_mode) const
inlineprotected

Find and return the matching custom fan mode pointer from supported modes, or nullptr if not found This is protected as it's an implementation detail - use Climate::find_custom_fan_mode_() instead.

Definition at line 260 of file climate_traits.h.

◆ find_custom_preset_()

const char * esphome::climate::ClimateTraits::find_custom_preset_ ( const char * custom_preset) const
inlineprotected

Find and return the matching custom preset pointer from supported presets, or nullptr if not found This is protected as it's an implementation detail - use Climate::find_custom_preset_() instead.

Definition at line 266 of file climate_traits.h.

◆ get_current_temperature_accuracy_decimals()

int8_t esphome::climate::ClimateTraits::get_current_temperature_accuracy_decimals ( ) const

Definition at line 10 of file climate_traits.cpp.

◆ get_feature_flags()

uint32_t esphome::climate::ClimateTraits::get_feature_flags ( ) const
inline

Get/set feature flags (see ClimateFeatures enum in climate_mode.h)

Definition at line 75 of file climate_traits.h.

◆ get_supported_custom_fan_modes()

const std::vector< const char * > & esphome::climate::ClimateTraits::get_supported_custom_fan_modes ( ) const
inline

Definition at line 165 of file climate_traits.h.

◆ get_supported_custom_presets()

const std::vector< const char * > & esphome::climate::ClimateTraits::get_supported_custom_presets ( ) const
inline

Definition at line 193 of file climate_traits.h.

◆ get_supported_fan_modes()

const ClimateFanModeMask & esphome::climate::ClimateTraits::get_supported_fan_modes ( ) const
inline

Definition at line 149 of file climate_traits.h.

◆ get_supported_modes()

const ClimateModeMask & esphome::climate::ClimateTraits::get_supported_modes ( ) const
inline

Definition at line 141 of file climate_traits.h.

◆ get_supported_presets()

const ClimatePresetMask & esphome::climate::ClimateTraits::get_supported_presets ( ) const
inline

Definition at line 177 of file climate_traits.h.

◆ get_supported_swing_modes()

const ClimateSwingModeMask & esphome::climate::ClimateTraits::get_supported_swing_modes ( ) const
inline

Definition at line 205 of file climate_traits.h.

◆ get_supports_fan_modes()

bool esphome::climate::ClimateTraits::get_supports_fan_modes ( ) const
inline

Definition at line 146 of file climate_traits.h.

◆ get_supports_presets()

bool esphome::climate::ClimateTraits::get_supports_presets ( ) const
inline

Definition at line 176 of file climate_traits.h.

◆ get_supports_swing_modes()

bool esphome::climate::ClimateTraits::get_supports_swing_modes ( ) const
inline

Definition at line 204 of file climate_traits.h.

◆ get_target_temperature_accuracy_decimals()

int8_t esphome::climate::ClimateTraits::get_target_temperature_accuracy_decimals ( ) const

Definition at line 6 of file climate_traits.cpp.

◆ get_visual_current_temperature_step()

float esphome::climate::ClimateTraits::get_visual_current_temperature_step ( ) const
inline

Definition at line 216 of file climate_traits.h.

◆ get_visual_max_humidity()

float esphome::climate::ClimateTraits::get_visual_max_humidity ( ) const
inline

Definition at line 232 of file climate_traits.h.

◆ get_visual_max_temperature()

float esphome::climate::ClimateTraits::get_visual_max_temperature ( ) const
inline

Definition at line 211 of file climate_traits.h.

◆ get_visual_min_humidity()

float esphome::climate::ClimateTraits::get_visual_min_humidity ( ) const
inline

Definition at line 230 of file climate_traits.h.

◆ get_visual_min_temperature()

float esphome::climate::ClimateTraits::get_visual_min_temperature ( ) const
inline

Definition at line 207 of file climate_traits.h.

◆ get_visual_target_temperature_step()

float esphome::climate::ClimateTraits::get_visual_target_temperature_step ( ) const
inline

Definition at line 215 of file climate_traits.h.

◆ has_feature_flags()

bool esphome::climate::ClimateTraits::has_feature_flags ( uint32_t feature_flags) const
inline

Definition at line 78 of file climate_traits.h.

◆ set_fan_mode_support_()

void esphome::climate::ClimateTraits::set_fan_mode_support_ ( climate::ClimateFanMode mode,
bool supported )
inlineprotected

Definition at line 243 of file climate_traits.h.

◆ set_feature_flags()

void esphome::climate::ClimateTraits::set_feature_flags ( uint32_t feature_flags)
inline

Definition at line 79 of file climate_traits.h.

◆ set_mode_support_()

void esphome::climate::ClimateTraits::set_mode_support_ ( climate::ClimateMode mode,
bool supported )
inlineprotected

Definition at line 236 of file climate_traits.h.

◆ set_supported_custom_fan_modes() [1/5]

template<size_t N>
void esphome::climate::ClimateTraits::set_supported_custom_fan_modes ( const char *const (&) modes[N])
inline

Definition at line 157 of file climate_traits.h.

◆ set_supported_custom_fan_modes() [2/5]

void esphome::climate::ClimateTraits::set_supported_custom_fan_modes ( const std::vector< const char * > & modes)
inline

Definition at line 154 of file climate_traits.h.

◆ set_supported_custom_fan_modes() [3/5]

void esphome::climate::ClimateTraits::set_supported_custom_fan_modes ( const std::vector< std::string > & modes)
delete

◆ set_supported_custom_fan_modes() [4/5]

void esphome::climate::ClimateTraits::set_supported_custom_fan_modes ( std::initializer_list< const char * > modes)
inline

Definition at line 151 of file climate_traits.h.

◆ set_supported_custom_fan_modes() [5/5]

void esphome::climate::ClimateTraits::set_supported_custom_fan_modes ( std::initializer_list< std::string > modes)
delete

◆ set_supported_custom_presets() [1/5]

template<size_t N>
void esphome::climate::ClimateTraits::set_supported_custom_presets ( const char *const (&) presets[N])
inline

Definition at line 185 of file climate_traits.h.

◆ set_supported_custom_presets() [2/5]

void esphome::climate::ClimateTraits::set_supported_custom_presets ( const std::vector< const char * > & presets)
inline

Definition at line 182 of file climate_traits.h.

◆ set_supported_custom_presets() [3/5]

void esphome::climate::ClimateTraits::set_supported_custom_presets ( const std::vector< std::string > & presets)
delete

◆ set_supported_custom_presets() [4/5]

void esphome::climate::ClimateTraits::set_supported_custom_presets ( std::initializer_list< const char * > presets)
inline

Definition at line 179 of file climate_traits.h.

◆ set_supported_custom_presets() [5/5]

void esphome::climate::ClimateTraits::set_supported_custom_presets ( std::initializer_list< std::string > presets)
delete

◆ set_supported_fan_modes()

void esphome::climate::ClimateTraits::set_supported_fan_modes ( ClimateFanModeMask modes)
inline

Definition at line 143 of file climate_traits.h.

◆ set_supported_modes()

void esphome::climate::ClimateTraits::set_supported_modes ( ClimateModeMask modes)
inline

Definition at line 138 of file climate_traits.h.

◆ set_supported_presets()

void esphome::climate::ClimateTraits::set_supported_presets ( ClimatePresetMask presets)
inline

Definition at line 173 of file climate_traits.h.

◆ set_supported_swing_modes()

void esphome::climate::ClimateTraits::set_supported_swing_modes ( ClimateSwingModeMask modes)
inline

Definition at line 201 of file climate_traits.h.

◆ set_swing_mode_support_()

void esphome::climate::ClimateTraits::set_swing_mode_support_ ( climate::ClimateSwingMode mode,
bool supported )
inlineprotected

Definition at line 250 of file climate_traits.h.

◆ set_visual_current_temperature_step()

void esphome::climate::ClimateTraits::set_visual_current_temperature_step ( float temperature_step)
inline

Definition at line 220 of file climate_traits.h.

◆ set_visual_max_humidity()

void esphome::climate::ClimateTraits::set_visual_max_humidity ( float visual_max_humidity)
inline

Definition at line 233 of file climate_traits.h.

◆ set_visual_max_temperature()

void esphome::climate::ClimateTraits::set_visual_max_temperature ( float visual_max_temperature)
inline

Definition at line 212 of file climate_traits.h.

◆ set_visual_min_humidity()

void esphome::climate::ClimateTraits::set_visual_min_humidity ( float visual_min_humidity)
inline

Definition at line 231 of file climate_traits.h.

◆ set_visual_min_temperature()

void esphome::climate::ClimateTraits::set_visual_min_temperature ( float visual_min_temperature)
inline

Definition at line 208 of file climate_traits.h.

◆ set_visual_target_temperature_step()

void esphome::climate::ClimateTraits::set_visual_target_temperature_step ( float temperature_step)
inline

Definition at line 217 of file climate_traits.h.

◆ set_visual_temperature_step()

void esphome::climate::ClimateTraits::set_visual_temperature_step ( float temperature_step)
inline

Definition at line 223 of file climate_traits.h.

◆ supports_custom_fan_mode() [1/2]

bool esphome::climate::ClimateTraits::supports_custom_fan_mode ( const char * custom_fan_mode) const
inline

Definition at line 166 of file climate_traits.h.

◆ supports_custom_fan_mode() [2/2]

bool esphome::climate::ClimateTraits::supports_custom_fan_mode ( const std::string & custom_fan_mode) const
inline

Definition at line 169 of file climate_traits.h.

◆ supports_custom_preset() [1/2]

bool esphome::climate::ClimateTraits::supports_custom_preset ( const char * custom_preset) const
inline

Definition at line 194 of file climate_traits.h.

◆ supports_custom_preset() [2/2]

bool esphome::climate::ClimateTraits::supports_custom_preset ( const std::string & custom_preset) const
inline

Definition at line 197 of file climate_traits.h.

◆ supports_fan_mode()

bool esphome::climate::ClimateTraits::supports_fan_mode ( ClimateFanMode fan_mode) const
inline

Definition at line 145 of file climate_traits.h.

◆ supports_mode()

bool esphome::climate::ClimateTraits::supports_mode ( ClimateMode mode) const
inline

Definition at line 140 of file climate_traits.h.

◆ supports_preset()

bool esphome::climate::ClimateTraits::supports_preset ( ClimatePreset preset) const
inline

Definition at line 175 of file climate_traits.h.

◆ supports_swing_mode()

bool esphome::climate::ClimateTraits::supports_swing_mode ( ClimateSwingMode swing_mode) const
inline

Definition at line 203 of file climate_traits.h.

Field Documentation

◆ feature_flags_

uint32_t esphome::climate::ClimateTraits::feature_flags_ {0}
protected

Definition at line 270 of file climate_traits.h.

◆ supported_custom_fan_modes_

std::vector<const char *> esphome::climate::ClimateTraits::supported_custom_fan_modes_
protected

Custom mode storage using const char* pointers to eliminate std::string overhead.

Pointers must remain valid for the ClimateTraits lifetime. Safe patterns:

  • String literals: set_supported_custom_fan_modes({"Turbo", "Silent"})
  • Static const data: static const char* MODE = "Eco";

Climate class setters validate pointers are from these vectors before storing.

Definition at line 291 of file climate_traits.h.

◆ supported_custom_presets_

std::vector<const char *> esphome::climate::ClimateTraits::supported_custom_presets_
protected

Definition at line 292 of file climate_traits.h.

◆ supported_fan_modes_

climate::ClimateFanModeMask esphome::climate::ClimateTraits::supported_fan_modes_
protected

Definition at line 279 of file climate_traits.h.

◆ supported_modes_

climate::ClimateModeMask esphome::climate::ClimateTraits::supported_modes_ {climate::CLIMATE_MODE_OFF}
protected

Definition at line 278 of file climate_traits.h.

◆ supported_presets_

climate::ClimatePresetMask esphome::climate::ClimateTraits::supported_presets_
protected

Definition at line 281 of file climate_traits.h.

◆ supported_swing_modes_

climate::ClimateSwingModeMask esphome::climate::ClimateTraits::supported_swing_modes_
protected

Definition at line 280 of file climate_traits.h.

◆ visual_current_temperature_step_

float esphome::climate::ClimateTraits::visual_current_temperature_step_ {0.1}
protected

Definition at line 274 of file climate_traits.h.

◆ visual_max_humidity_

float esphome::climate::ClimateTraits::visual_max_humidity_ {99}
protected

Definition at line 276 of file climate_traits.h.

◆ visual_max_temperature_

float esphome::climate::ClimateTraits::visual_max_temperature_ {30}
protected

Definition at line 272 of file climate_traits.h.

◆ visual_min_humidity_

float esphome::climate::ClimateTraits::visual_min_humidity_ {30}
protected

Definition at line 275 of file climate_traits.h.

◆ visual_min_temperature_

float esphome::climate::ClimateTraits::visual_min_temperature_ {10}
protected

Definition at line 271 of file climate_traits.h.

◆ visual_target_temperature_step_

float esphome::climate::ClimateTraits::visual_target_temperature_step_ {0.1}
protected

Definition at line 273 of file climate_traits.h.


The documentation for this class was generated from the following files: