12 namespace thermostat {
32 std::function<void()>
func;
45 float default_temperature{NAN};
46 float default_temperature_low{NAN};
47 float default_temperature_high{NAN};
48 float cool_deadband_{NAN};
49 float cool_overrun_{NAN};
50 float heat_deadband_{NAN};
51 float heat_overrun_{NAN};
60 void setup()
override;
61 void dump_config()
override;
66 void set_set_point_minimum_differential(
float differential);
67 void set_cool_deadband(
float deadband);
68 void set_cool_overrun(
float overrun);
69 void set_heat_deadband(
float deadband);
70 void set_heat_overrun(
float overrun);
71 void set_supplemental_cool_delta(
float delta);
72 void set_supplemental_heat_delta(
float delta);
73 void set_cooling_maximum_run_time_in_sec(uint32_t
time);
74 void set_heating_maximum_run_time_in_sec(uint32_t time);
75 void set_cooling_minimum_off_time_in_sec(uint32_t time);
76 void set_cooling_minimum_run_time_in_sec(uint32_t time);
77 void set_fan_mode_minimum_switching_time_in_sec(uint32_t time);
78 void set_fanning_minimum_off_time_in_sec(uint32_t time);
79 void set_fanning_minimum_run_time_in_sec(uint32_t time);
80 void set_heating_minimum_off_time_in_sec(uint32_t time);
81 void set_heating_minimum_run_time_in_sec(uint32_t time);
82 void set_idle_minimum_time_in_sec(uint32_t time);
84 void set_use_startup_delay(
bool use_startup_delay);
85 void set_supports_auto(
bool supports_auto);
86 void set_supports_heat_cool(
bool supports_heat_cool);
87 void set_supports_cool(
bool supports_cool);
88 void set_supports_dry(
bool supports_dry);
89 void set_supports_fan_only(
bool supports_fan_only);
90 void set_supports_fan_only_action_uses_fan_mode_timer(
bool fan_only_action_uses_fan_mode_timer);
91 void set_supports_fan_only_cooling(
bool supports_fan_only_cooling);
92 void set_supports_fan_with_cooling(
bool supports_fan_with_cooling);
93 void set_supports_fan_with_heating(
bool supports_fan_with_heating);
94 void set_supports_heat(
bool supports_heat);
95 void set_supports_fan_mode_on(
bool supports_fan_mode_on);
96 void set_supports_fan_mode_off(
bool supports_fan_mode_off);
97 void set_supports_fan_mode_auto(
bool supports_fan_mode_auto);
98 void set_supports_fan_mode_low(
bool supports_fan_mode_low);
99 void set_supports_fan_mode_medium(
bool supports_fan_mode_medium);
100 void set_supports_fan_mode_high(
bool supports_fan_mode_high);
101 void set_supports_fan_mode_middle(
bool supports_fan_mode_middle);
102 void set_supports_fan_mode_focus(
bool supports_fan_mode_focus);
103 void set_supports_fan_mode_diffuse(
bool supports_fan_mode_diffuse);
104 void set_supports_swing_mode_both(
bool supports_swing_mode_both);
105 void set_supports_swing_mode_horizontal(
bool supports_swing_mode_horizontal);
106 void set_supports_swing_mode_off(
bool supports_swing_mode_off);
107 void set_supports_swing_mode_vertical(
bool supports_swing_mode_vertical);
108 void set_supports_two_points(
bool supports_two_points);
113 Trigger<> *get_cool_action_trigger()
const;
114 Trigger<> *get_supplemental_cool_action_trigger()
const;
115 Trigger<> *get_dry_action_trigger()
const;
116 Trigger<> *get_fan_only_action_trigger()
const;
117 Trigger<> *get_heat_action_trigger()
const;
118 Trigger<> *get_supplemental_heat_action_trigger()
const;
119 Trigger<> *get_idle_action_trigger()
const;
120 Trigger<> *get_auto_mode_trigger()
const;
121 Trigger<> *get_cool_mode_trigger()
const;
123 Trigger<> *get_fan_only_mode_trigger()
const;
124 Trigger<> *get_heat_mode_trigger()
const;
126 Trigger<> *get_fan_mode_on_trigger()
const;
127 Trigger<> *get_fan_mode_off_trigger()
const;
128 Trigger<> *get_fan_mode_auto_trigger()
const;
129 Trigger<> *get_fan_mode_low_trigger()
const;
130 Trigger<> *get_fan_mode_medium_trigger()
const;
131 Trigger<> *get_fan_mode_high_trigger()
const;
132 Trigger<> *get_fan_mode_middle_trigger()
const;
133 Trigger<> *get_fan_mode_focus_trigger()
const;
134 Trigger<> *get_fan_mode_diffuse_trigger()
const;
135 Trigger<> *get_swing_mode_both_trigger()
const;
136 Trigger<> *get_swing_mode_horizontal_trigger()
const;
137 Trigger<> *get_swing_mode_off_trigger()
const;
138 Trigger<> *get_swing_mode_vertical_trigger()
const;
139 Trigger<> *get_temperature_change_trigger()
const;
140 Trigger<> *get_preset_change_trigger()
const;
142 float cool_deadband();
143 float cool_overrun();
144 float heat_deadband();
145 float heat_overrun();
149 bool climate_action_change_delayed();
150 bool fan_mode_change_delayed();
156 bool hysteresis_valid();
157 void validate_target_temperature();
158 void validate_target_temperatures();
159 void validate_target_temperature_low();
160 void validate_target_temperature_high();
169 void change_custom_preset_(
const std::string &custom_preset);
186 void trigger_supplemental_action_();
198 void check_temperature_change_trigger_();
201 bool idle_action_ready_();
202 bool cooling_action_ready_();
203 bool drying_action_ready_();
204 bool fan_mode_ready_();
205 bool fanning_action_ready_();
206 bool heating_action_ready_();
216 void cooling_max_run_time_timer_callback_();
217 void cooling_off_timer_callback_();
218 void cooling_on_timer_callback_();
219 void fan_mode_timer_callback_();
220 void fanning_off_timer_callback_();
221 void fanning_on_timer_callback_();
222 void heating_max_run_time_timer_callback_();
223 void heating_off_timer_callback_();
224 void heating_on_timer_callback_();
225 void idle_on_timer_callback_();
228 bool cooling_required_();
229 bool fanning_required_();
230 bool heating_required_();
231 bool supplemental_cooling_required_();
232 bool supplemental_heating_required_();
235 bool is_default_preset);
244 bool supports_auto_{
false};
245 bool supports_heat_cool_{
false};
246 bool supports_cool_{
false};
247 bool supports_dry_{
false};
248 bool supports_fan_only_{
false};
249 bool supports_heat_{
false};
251 bool supports_fan_only_action_uses_fan_mode_timer_{
false};
253 bool supports_fan_only_cooling_{
false};
255 bool supports_fan_with_cooling_{
false};
256 bool supports_fan_with_heating_{
false};
262 bool supports_fan_mode_on_{
false};
263 bool supports_fan_mode_off_{
false};
269 bool supports_fan_mode_auto_{
false};
274 bool supports_fan_mode_low_{
false};
275 bool supports_fan_mode_medium_{
false};
276 bool supports_fan_mode_high_{
false};
277 bool supports_fan_mode_middle_{
false};
278 bool supports_fan_mode_focus_{
false};
279 bool supports_fan_mode_diffuse_{
false};
284 bool supports_swing_mode_both_{
false};
285 bool supports_swing_mode_off_{
false};
286 bool supports_swing_mode_horizontal_{
false};
287 bool supports_swing_mode_vertical_{
false};
292 bool supports_two_points_{
false};
295 bool cooling_max_runtime_exceeded_{
false};
296 bool heating_max_runtime_exceeded_{
false};
299 bool use_startup_delay_{
false};
302 bool setup_complete_{
false};
413 float prev_target_temperature_{NAN};
414 float prev_target_temperature_low_{NAN};
415 float prev_target_temperature_high_{NAN};
418 float set_point_minimum_differential_{0};
421 float cooling_deadband_{0};
422 float cooling_overrun_{0};
423 float heating_deadband_{0};
424 float heating_overrun_{0};
427 float supplemental_cool_delta_{0};
428 float supplemental_heat_delta_{0};
431 const uint8_t min_timer_duration_{1};
434 std::vector<ThermostatClimateTimer> timer_{
447 std::map<climate::ClimatePreset, ThermostatClimateTargetTempConfig> preset_config_{};
449 std::map<std::string, ThermostatClimateTargetTempConfig> custom_preset_config_{};
454 std::string default_custom_preset_{};
This class is used to encode all control actions on a climate device.
The climate device is off (inactive or no power)
void idle_on_timer_callback_()
ClimatePreset
Enum for all preset modes.
void set_fan_mode(climate::ClimateFanMode fan_mode)
void heating_on_timer_callback_()
This class contains all static data for climate devices.
void set_swing_mode(climate::ClimateSwingMode swing_mode)
void fanning_on_timer_callback_()
void heating_off_timer_callback_()
ClimateSwingMode swing_mode
ClimateSwingMode
Enum for all modes a climate swing can be in.
void cooling_max_run_time_timer_callback_()
set_timeout() callbacks for various actions (see above)
BedjetMode mode
BedJet operating mode.
ClimateAction
Enum for the current action of the climate device. Values match those of ClimateMode.
void heating_max_run_time_timer_callback_()
ClimateMode
Enum for all modes a climate device can be in.
The swing mode is set to Off.
The climate device is off.
void fanning_off_timer_callback_()
void fan_mode_timer_callback_()
void cooling_off_timer_callback_()
The fan mode is set to On.
std::function< void()> func
void set_mode(climate::ClimateMode mode)
Base-class for all sensors.
void cooling_on_timer_callback_()
ThermostatClimateTimerIndex
ClimateDevice - This is the base class for all climate integrations.