ESPHome 2025.5.0
Loading...
Searching...
No Matches
climate_traits.h
Go to the documentation of this file.
1#pragma once
2
4#include "climate_mode.h"
5#include <set>
6
7namespace esphome {
8namespace climate {
9
42 public:
44 void set_supports_current_temperature(bool supports_current_temperature) {
45 this->supports_current_temperature_ = supports_current_temperature;
46 }
48 void set_supports_current_humidity(bool supports_current_humidity) {
49 this->supports_current_humidity_ = supports_current_humidity;
50 }
52 void set_supports_two_point_target_temperature(bool supports_two_point_target_temperature) {
53 this->supports_two_point_target_temperature_ = supports_two_point_target_temperature;
54 }
56 void set_supports_target_humidity(bool supports_target_humidity) {
57 this->supports_target_humidity_ = supports_target_humidity;
58 }
59 void set_supported_modes(std::set<ClimateMode> modes) { this->supported_modes_ = std::move(modes); }
61 ESPDEPRECATED("This method is deprecated, use set_supported_modes() instead", "v1.20")
62 void set_supports_auto_mode(bool supports_auto_mode) { set_mode_support_(CLIMATE_MODE_AUTO, supports_auto_mode); }
63 ESPDEPRECATED("This method is deprecated, use set_supported_modes() instead", "v1.20")
64 void set_supports_cool_mode(bool supports_cool_mode) { set_mode_support_(CLIMATE_MODE_COOL, supports_cool_mode); }
65 ESPDEPRECATED("This method is deprecated, use set_supported_modes() instead", "v1.20")
66 void set_supports_heat_mode(bool supports_heat_mode) { set_mode_support_(CLIMATE_MODE_HEAT, supports_heat_mode); }
67 ESPDEPRECATED("This method is deprecated, use set_supported_modes() instead", "v1.20")
68 void set_supports_heat_cool_mode(bool supported) { set_mode_support_(CLIMATE_MODE_HEAT_COOL, supported); }
69 ESPDEPRECATED("This method is deprecated, use set_supported_modes() instead", "v1.20")
70 void set_supports_fan_only_mode(bool supports_fan_only_mode) {
71 set_mode_support_(CLIMATE_MODE_FAN_ONLY, supports_fan_only_mode);
72 }
73 ESPDEPRECATED("This method is deprecated, use set_supported_modes() instead", "v1.20")
74 void set_supports_dry_mode(bool supports_dry_mode) { set_mode_support_(CLIMATE_MODE_DRY, supports_dry_mode); }
75 bool supports_mode(ClimateMode mode) const { return this->supported_modes_.count(mode); }
76 const std::set<ClimateMode> &get_supported_modes() const { return this->supported_modes_; }
77
78 void set_supports_action(bool supports_action) { this->supports_action_ = supports_action; }
79 bool get_supports_action() const { return this->supports_action_; }
80
81 void set_supported_fan_modes(std::set<ClimateFanMode> modes) { this->supported_fan_modes_ = std::move(modes); }
83 void add_supported_custom_fan_mode(const std::string &mode) { this->supported_custom_fan_modes_.insert(mode); }
84 ESPDEPRECATED("This method is deprecated, use set_supported_fan_modes() instead", "v1.20")
85 void set_supports_fan_mode_on(bool supported) { set_fan_mode_support_(CLIMATE_FAN_ON, supported); }
86 ESPDEPRECATED("This method is deprecated, use set_supported_fan_modes() instead", "v1.20")
87 void set_supports_fan_mode_off(bool supported) { set_fan_mode_support_(CLIMATE_FAN_OFF, supported); }
88 ESPDEPRECATED("This method is deprecated, use set_supported_fan_modes() instead", "v1.20")
89 void set_supports_fan_mode_auto(bool supported) { set_fan_mode_support_(CLIMATE_FAN_AUTO, supported); }
90 ESPDEPRECATED("This method is deprecated, use set_supported_fan_modes() instead", "v1.20")
91 void set_supports_fan_mode_low(bool supported) { set_fan_mode_support_(CLIMATE_FAN_LOW, supported); }
92 ESPDEPRECATED("This method is deprecated, use set_supported_fan_modes() instead", "v1.20")
93 void set_supports_fan_mode_medium(bool supported) { set_fan_mode_support_(CLIMATE_FAN_MEDIUM, supported); }
94 ESPDEPRECATED("This method is deprecated, use set_supported_fan_modes() instead", "v1.20")
95 void set_supports_fan_mode_high(bool supported) { set_fan_mode_support_(CLIMATE_FAN_HIGH, supported); }
96 ESPDEPRECATED("This method is deprecated, use set_supported_fan_modes() instead", "v1.20")
97 void set_supports_fan_mode_middle(bool supported) { set_fan_mode_support_(CLIMATE_FAN_MIDDLE, supported); }
98 ESPDEPRECATED("This method is deprecated, use set_supported_fan_modes() instead", "v1.20")
99 void set_supports_fan_mode_focus(bool supported) { set_fan_mode_support_(CLIMATE_FAN_FOCUS, supported); }
100 ESPDEPRECATED("This method is deprecated, use set_supported_fan_modes() instead", "v1.20")
101 void set_supports_fan_mode_diffuse(bool supported) { set_fan_mode_support_(CLIMATE_FAN_DIFFUSE, supported); }
102 bool supports_fan_mode(ClimateFanMode fan_mode) const { return this->supported_fan_modes_.count(fan_mode); }
104 return !this->supported_fan_modes_.empty() || !this->supported_custom_fan_modes_.empty();
105 }
106 const std::set<ClimateFanMode> &get_supported_fan_modes() const { return this->supported_fan_modes_; }
107
108 void set_supported_custom_fan_modes(std::set<std::string> supported_custom_fan_modes) {
109 this->supported_custom_fan_modes_ = std::move(supported_custom_fan_modes);
110 }
111 const std::set<std::string> &get_supported_custom_fan_modes() const { return this->supported_custom_fan_modes_; }
112 bool supports_custom_fan_mode(const std::string &custom_fan_mode) const {
113 return this->supported_custom_fan_modes_.count(custom_fan_mode);
114 }
115
116 void set_supported_presets(std::set<ClimatePreset> presets) { this->supported_presets_ = std::move(presets); }
118 void add_supported_custom_preset(const std::string &preset) { this->supported_custom_presets_.insert(preset); }
119 bool supports_preset(ClimatePreset preset) const { return this->supported_presets_.count(preset); }
120 bool get_supports_presets() const { return !this->supported_presets_.empty(); }
121 const std::set<climate::ClimatePreset> &get_supported_presets() const { return this->supported_presets_; }
122
123 void set_supported_custom_presets(std::set<std::string> supported_custom_presets) {
124 this->supported_custom_presets_ = std::move(supported_custom_presets);
125 }
126 const std::set<std::string> &get_supported_custom_presets() const { return this->supported_custom_presets_; }
127 bool supports_custom_preset(const std::string &custom_preset) const {
128 return this->supported_custom_presets_.count(custom_preset);
129 }
130
131 void set_supported_swing_modes(std::set<ClimateSwingMode> modes) { this->supported_swing_modes_ = std::move(modes); }
133 ESPDEPRECATED("This method is deprecated, use set_supported_swing_modes() instead", "v1.20")
134 void set_supports_swing_mode_off(bool supported) { set_swing_mode_support_(CLIMATE_SWING_OFF, supported); }
135 ESPDEPRECATED("This method is deprecated, use set_supported_swing_modes() instead", "v1.20")
136 void set_supports_swing_mode_both(bool supported) { set_swing_mode_support_(CLIMATE_SWING_BOTH, supported); }
137 ESPDEPRECATED("This method is deprecated, use set_supported_swing_modes() instead", "v1.20")
138 void set_supports_swing_mode_vertical(bool supported) { set_swing_mode_support_(CLIMATE_SWING_VERTICAL, supported); }
139 ESPDEPRECATED("This method is deprecated, use set_supported_swing_modes() instead", "v1.20")
140 void set_supports_swing_mode_horizontal(bool supported) {
142 }
143 bool supports_swing_mode(ClimateSwingMode swing_mode) const { return this->supported_swing_modes_.count(swing_mode); }
144 bool get_supports_swing_modes() const { return !this->supported_swing_modes_.empty(); }
145 const std::set<ClimateSwingMode> &get_supported_swing_modes() const { return this->supported_swing_modes_; }
146
148 void set_visual_min_temperature(float visual_min_temperature) {
149 this->visual_min_temperature_ = visual_min_temperature;
150 }
152 void set_visual_max_temperature(float visual_max_temperature) {
153 this->visual_max_temperature_ = visual_max_temperature;
154 }
157 void set_visual_target_temperature_step(float temperature_step) {
158 this->visual_target_temperature_step_ = temperature_step;
159 }
160 void set_visual_current_temperature_step(float temperature_step) {
161 this->visual_current_temperature_step_ = temperature_step;
162 }
163 void set_visual_temperature_step(float temperature_step) {
164 this->visual_target_temperature_step_ = temperature_step;
165 this->visual_current_temperature_step_ = temperature_step;
166 }
169
170 float get_visual_min_humidity() const { return this->visual_min_humidity_; }
171 void set_visual_min_humidity(float visual_min_humidity) { this->visual_min_humidity_ = visual_min_humidity; }
172 float get_visual_max_humidity() const { return this->visual_max_humidity_; }
173 void set_visual_max_humidity(float visual_max_humidity) { this->visual_max_humidity_ = visual_max_humidity; }
174
175 protected:
177 if (supported) {
178 this->supported_modes_.insert(mode);
179 } else {
180 this->supported_modes_.erase(mode);
181 }
182 }
184 if (supported) {
185 this->supported_fan_modes_.insert(mode);
186 } else {
187 this->supported_fan_modes_.erase(mode);
188 }
189 }
191 if (supported) {
192 this->supported_swing_modes_.insert(mode);
193 } else {
194 this->supported_swing_modes_.erase(mode);
195 }
196 }
197
202 std::set<climate::ClimateMode> supported_modes_ = {climate::CLIMATE_MODE_OFF};
203 bool supports_action_{false};
204 std::set<climate::ClimateFanMode> supported_fan_modes_;
205 std::set<climate::ClimateSwingMode> supported_swing_modes_;
206 std::set<climate::ClimatePreset> supported_presets_;
207 std::set<std::string> supported_custom_fan_modes_;
208 std::set<std::string> supported_custom_presets_;
209
216};
217
218} // namespace climate
219} // namespace esphome
BedjetMode mode
BedJet operating mode.
This class contains all static data for climate devices.
ESPDEPRECATED("This method is deprecated, use set_supported_modes() instead", "v1.20") void set_supports_heat_cool_mode(bool supported)
void set_visual_max_temperature(float visual_max_temperature)
ESPDEPRECATED("This method is deprecated, use set_supported_modes() instead", "v1.20") void set_supports_dry_mode(bool supports_dry_mode)
std::set< climate::ClimateMode > supported_modes_
void set_supported_modes(std::set< ClimateMode > modes)
ESPDEPRECATED("This method is deprecated, use set_supported_modes() instead", "v1.20") void set_supports_fan_only_mode(bool supports_fan_only_mode)
const std::set< climate::ClimatePreset > & get_supported_presets() const
void set_supported_custom_fan_modes(std::set< std::string > supported_custom_fan_modes)
ESPDEPRECATED("This method is deprecated, use set_supported_fan_modes() instead", "v1.20") void set_supports_fan_mode_high(bool supported)
void add_supported_fan_mode(ClimateFanMode mode)
ESPDEPRECATED("This method is deprecated, use set_supported_fan_modes() instead", "v1.20") void set_supports_fan_mode_low(bool supported)
std::set< std::string > supported_custom_fan_modes_
void set_supports_action(bool supports_action)
ESPDEPRECATED("This method is deprecated, use set_supported_fan_modes() instead", "v1.20") void set_supports_fan_mode_middle(bool supported)
void set_supported_custom_presets(std::set< std::string > supported_custom_presets)
bool get_supports_current_temperature() const
std::set< climate::ClimatePreset > supported_presets_
ESPDEPRECATED("This method is deprecated, use set_supported_swing_modes() instead", "v1.20") void set_supports_swing_mode_horizontal(bool supported)
void set_supports_current_humidity(bool supports_current_humidity)
void add_supported_custom_preset(const std::string &preset)
void set_visual_temperature_step(float temperature_step)
void add_supported_preset(ClimatePreset preset)
ESPDEPRECATED("This method is deprecated, use set_supported_fan_modes() instead", "v1.20") void set_supports_fan_mode_on(bool supported)
void set_visual_target_temperature_step(float temperature_step)
void set_supports_two_point_target_temperature(bool supports_two_point_target_temperature)
void add_supported_custom_fan_mode(const std::string &mode)
float get_visual_current_temperature_step() const
ESPDEPRECATED("This method is deprecated, use set_supported_modes() instead", "v1.20") void set_supports_cool_mode(bool supports_cool_mode)
void set_visual_min_temperature(float visual_min_temperature)
ESPDEPRECATED("This method is deprecated, use set_supported_fan_modes() instead", "v1.20") void set_supports_fan_mode_off(bool supported)
void set_supported_swing_modes(std::set< ClimateSwingMode > modes)
bool supports_mode(ClimateMode mode) const
int8_t get_target_temperature_accuracy_decimals() const
float get_visual_target_temperature_step() const
void set_visual_min_humidity(float visual_min_humidity)
bool supports_custom_preset(const std::string &custom_preset) const
ESPDEPRECATED("This method is deprecated, use set_supported_swing_modes() instead", "v1.20") void set_supports_swing_mode_both(bool supported)
void set_visual_current_temperature_step(float temperature_step)
void set_supports_target_humidity(bool supports_target_humidity)
ESPDEPRECATED("This method is deprecated, use set_supported_modes() instead", "v1.20") void set_supports_auto_mode(bool supports_auto_mode)
ESPDEPRECATED("This method is deprecated, use set_supported_modes() instead", "v1.20") void set_supports_heat_mode(bool supports_heat_mode)
int8_t get_current_temperature_accuracy_decimals() const
void set_visual_max_humidity(float visual_max_humidity)
void set_supported_presets(std::set< ClimatePreset > presets)
bool supports_fan_mode(ClimateFanMode fan_mode) const
void add_supported_mode(ClimateMode mode)
bool supports_custom_fan_mode(const std::string &custom_fan_mode) const
void set_swing_mode_support_(climate::ClimateSwingMode mode, bool supported)
ESPDEPRECATED("This method is deprecated, use set_supported_swing_modes() instead", "v1.20") void set_supports_swing_mode_vertical(bool supported)
bool supports_preset(ClimatePreset preset) const
const std::set< std::string > & get_supported_custom_fan_modes() const
void set_supported_fan_modes(std::set< ClimateFanMode > modes)
void set_supports_current_temperature(bool supports_current_temperature)
std::set< std::string > supported_custom_presets_
ESPDEPRECATED("This method is deprecated, use set_supported_fan_modes() instead", "v1.20") void set_supports_fan_mode_auto(bool supported)
std::set< climate::ClimateFanMode > supported_fan_modes_
const std::set< std::string > & get_supported_custom_presets() const
bool get_supports_two_point_target_temperature() const
const std::set< ClimateFanMode > & get_supported_fan_modes() const
void set_fan_mode_support_(climate::ClimateFanMode mode, bool supported)
ESPDEPRECATED("This method is deprecated, use set_supported_fan_modes() instead", "v1.20") void set_supports_fan_mode_medium(bool supported)
ESPDEPRECATED("This method is deprecated, use set_supported_fan_modes() instead", "v1.20") void set_supports_fan_mode_diffuse(bool supported)
void add_supported_swing_mode(ClimateSwingMode mode)
ESPDEPRECATED("This method is deprecated, use set_supported_swing_modes() instead", "v1.20") void set_supports_swing_mode_off(bool supported)
const std::set< ClimateMode > & get_supported_modes() const
const std::set< ClimateSwingMode > & get_supported_swing_modes() const
std::set< climate::ClimateSwingMode > supported_swing_modes_
ESPDEPRECATED("This method is deprecated, use set_supported_fan_modes() instead", "v1.20") void set_supports_fan_mode_focus(bool supported)
bool supports_swing_mode(ClimateSwingMode swing_mode) const
void set_mode_support_(climate::ClimateMode mode, bool supported)
ClimateSwingMode swing_mode
Definition climate.h:11
uint8_t custom_preset
Definition climate.h:9
ClimateFanMode fan_mode
Definition climate.h:3
ClimatePreset preset
Definition climate.h:8
uint8_t custom_fan_mode
Definition climate.h:4
ClimatePreset
Enum for all preset modes.
ClimateSwingMode
Enum for all modes a climate swing can be in.
@ CLIMATE_SWING_OFF
The swing mode is set to Off.
@ CLIMATE_SWING_HORIZONTAL
The fan mode is set to Horizontal.
@ CLIMATE_SWING_VERTICAL
The fan mode is set to Vertical.
@ CLIMATE_SWING_BOTH
The fan mode is set to Both.
ClimateMode
Enum for all modes a climate device can be in.
@ CLIMATE_MODE_DRY
The climate device is set to dry/humidity mode.
@ CLIMATE_MODE_FAN_ONLY
The climate device only has the fan enabled, no heating or cooling is taking place.
@ CLIMATE_MODE_HEAT
The climate device is set to heat to reach the target temperature.
@ CLIMATE_MODE_COOL
The climate device is set to cool to reach the target temperature.
@ CLIMATE_MODE_HEAT_COOL
The climate device is set to heat/cool to reach the target temperature.
@ CLIMATE_MODE_OFF
The climate device is off.
@ CLIMATE_MODE_AUTO
The climate device is adjusting the temperature dynamically.
@ CLIMATE_FAN_MEDIUM
The fan mode is set to Medium.
@ CLIMATE_FAN_DIFFUSE
The fan mode is set to Diffuse.
@ CLIMATE_FAN_ON
The fan mode is set to On.
@ CLIMATE_FAN_AUTO
The fan mode is set to Auto.
@ CLIMATE_FAN_FOCUS
The fan mode is set to Focus.
@ CLIMATE_FAN_LOW
The fan mode is set to Low.
@ CLIMATE_FAN_MIDDLE
The fan mode is set to Middle.
@ CLIMATE_FAN_OFF
The fan mode is set to Off.
@ CLIMATE_FAN_HIGH
The fan mode is set to High.
Providing packet encoding functions for exchanging data with a remote host.
Definition a01nyub.cpp:7