ESPHome 2026.5.0b1
Loading...
Searching...
No Matches
ac_adapter.cpp
Go to the documentation of this file.
1#ifdef USE_ARDUINO
2
3#include "esphome/core/log.h"
4#include "ac_adapter.h"
5
7
8const char *const Constants::TAG = "midea";
9const char *const Constants::FREEZE_PROTECTION = "freeze protection";
10const char *const Constants::SILENT = "silent";
11const char *const Constants::TURBO = "turbo";
12
14 switch (mode) {
15 case MideaMode::MODE_AUTO:
17 case MideaMode::MODE_COOL:
19 case MideaMode::MODE_DRY:
21 case MideaMode::MODE_FAN_ONLY:
23 case MideaMode::MODE_HEAT:
25 default:
27 }
28}
29
31 switch (mode) {
33 return MideaMode::MODE_AUTO;
35 return MideaMode::MODE_COOL;
37 return MideaMode::MODE_DRY;
39 return MideaMode::MODE_FAN_ONLY;
41 return MideaMode::MODE_HEAT;
42 default:
43 return MideaMode::MODE_OFF;
44 }
45}
46
48 switch (mode) {
49 case MideaSwingMode::SWING_VERTICAL:
51 case MideaSwingMode::SWING_HORIZONTAL:
53 case MideaSwingMode::SWING_BOTH:
55 default:
57 }
58}
59
61 switch (mode) {
63 return MideaSwingMode::SWING_VERTICAL;
65 return MideaSwingMode::SWING_HORIZONTAL;
67 return MideaSwingMode::SWING_BOTH;
68 default:
69 return MideaSwingMode::SWING_OFF;
70 }
71}
72
74 switch (mode) {
76 return MideaFanMode::FAN_LOW;
78 return MideaFanMode::FAN_MEDIUM;
80 return MideaFanMode::FAN_HIGH;
81 default:
82 return MideaFanMode::FAN_AUTO;
83 }
84}
85
87 switch (mode) {
88 case MideaFanMode::FAN_LOW:
90 case MideaFanMode::FAN_MEDIUM:
92 case MideaFanMode::FAN_HIGH:
94 default:
96 }
97}
98
100 switch (mode) {
101 case MideaFanMode::FAN_SILENT:
102 case MideaFanMode::FAN_TURBO:
103 return true;
104 default:
105 return false;
106 }
107}
108
110 switch (mode) {
111 case MideaFanMode::FAN_SILENT:
112 return Constants::SILENT;
113 default:
114 return Constants::TURBO;
115 }
116}
117
119 if (strcmp(mode, Constants::SILENT) == 0)
120 return MideaFanMode::FAN_SILENT;
121 return MideaFanMode::FAN_TURBO;
122}
123
125 switch (preset) {
127 return MideaPreset::PRESET_SLEEP;
129 return MideaPreset::PRESET_ECO;
131 return MideaPreset::PRESET_TURBO;
132 default:
133 return MideaPreset::PRESET_NONE;
134 }
135}
136
138 switch (preset) {
139 case MideaPreset::PRESET_SLEEP:
141 case MideaPreset::PRESET_ECO:
143 case MideaPreset::PRESET_TURBO:
145 default:
147 }
148}
149
150bool Converters::is_custom_midea_preset(MideaPreset preset) { return preset == MideaPreset::PRESET_FREEZE_PROTECTION; }
151
153
154MideaPreset Converters::to_midea_preset(const char *preset) { return MideaPreset::PRESET_FREEZE_PROTECTION; }
155
156void Converters::to_climate_traits(ClimateTraits &traits, const dudanov::midea::ac::Capabilities &capabilities) {
157 if (capabilities.supportAutoMode())
159 if (capabilities.supportCoolMode())
161 if (capabilities.supportHeatMode())
163 if (capabilities.supportDryMode())
165 if (capabilities.supportTurboPreset())
167 if (capabilities.supportEcoPreset())
169 // Frost protection custom preset is handled by AirConditioner directly
170 // since custom presets are stored on the Climate base class
171}
172
173} // namespace esphome::midea::ac
174
175#endif // USE_ARDUINO
BedjetMode mode
BedJet operating mode.
void add_supported_preset(ClimatePreset preset)
void add_supported_mode(ClimateMode mode)
static const char *const TAG
Definition ac_adapter.h:20
static const char *const SILENT
Definition ac_adapter.h:22
static const char *const FREEZE_PROTECTION
Definition ac_adapter.h:21
static const char *const TURBO
Definition ac_adapter.h:23
static ClimateFanMode to_climate_fan_mode(MideaFanMode fan_mode)
static ClimateSwingMode to_climate_swing_mode(MideaSwingMode mode)
static MideaSwingMode to_midea_swing_mode(ClimateSwingMode mode)
static MideaPreset to_midea_preset(ClimatePreset preset)
static const char * to_custom_climate_preset(MideaPreset preset)
static ClimateMode to_climate_mode(MideaMode mode)
static MideaFanMode to_midea_fan_mode(ClimateFanMode fan_mode)
static ClimatePreset to_climate_preset(MideaPreset preset)
static bool is_custom_midea_fan_mode(MideaFanMode fan_mode)
static const char * to_custom_climate_fan_mode(MideaFanMode fan_mode)
static bool is_custom_midea_preset(MideaPreset preset)
static MideaMode to_midea_mode(ClimateMode mode)
static void to_climate_traits(ClimateTraits &traits, const dudanov::midea::ac::Capabilities &capabilities)
ClimatePreset preset
Definition climate.h:8
ClimatePreset
Enum for all preset modes NOTE: If adding values, update ClimatePresetMask in climate_traits....
@ CLIMATE_PRESET_NONE
No preset is active.
@ CLIMATE_PRESET_BOOST
Device is in boost preset.
@ CLIMATE_PRESET_SLEEP
Device is prepared for sleep.
@ CLIMATE_PRESET_ECO
Device is running an energy-saving preset.
ClimateSwingMode
Enum for all modes a climate swing can be in NOTE: If adding values, update ClimateSwingModeMask in c...
@ 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.
ClimateFanMode
NOTE: If adding values, update ClimateFanModeMask in climate_traits.h to use the new last value.
@ CLIMATE_FAN_MEDIUM
The fan mode is set to Medium.
@ CLIMATE_FAN_AUTO
The fan mode is set to Auto.
@ CLIMATE_FAN_LOW
The fan mode is set to Low.
@ CLIMATE_FAN_HIGH
The fan mode is set to High.
dudanov::midea::ac::Mode MideaMode
Definition ac_adapter.h:13
dudanov::midea::ac::FanMode MideaFanMode
Definition ac_adapter.h:15
dudanov::midea::ac::Preset MideaPreset
Definition ac_adapter.h:16
dudanov::midea::ac::SwingMode MideaSwingMode
Definition ac_adapter.h:14