ESPHome 2026.11.0-dev
Loading...
Searching...
No Matches
mitsubishi.h
Go to the documentation of this file.
1#pragma once
2
5
6#include <cinttypes>
7
8namespace esphome::mitsubishi {
9
10// Temperature
11const uint8_t MITSUBISHI_TEMP_MIN = 16; // Celsius
12const uint8_t MITSUBISHI_TEMP_MAX = 31; // Celsius
13// Remotes set to Fahrenheit go up to 88°F, one step past the Celsius range
14static constexpr float MITSUBISHI_TEMP_MAX_FAHRENHEIT = fahrenheit_to_celsius(88.0f);
15
16// Fan mode
17enum SetFanMode : uint8_t {
18 MITSUBISHI_FAN_3L = 0, // 3 levels + auto
19 MITSUBISHI_FAN_4L, // 4 levels + auto
20 MITSUBISHI_FAN_Q4L, // Quiet + 4 levels + auto
21 // MITSUBISHI_FAN_5L, // 5 levels + auto
22};
23
24// Enum to represent horizontal directios
33
34// Enum to represent vertical directions
43
44// Fan modes offered by every set_fan_mode option.
45static constexpr climate::ClimateFanModeMask MITSUBISHI_BASE_FAN_MODES{
47
49 public:
56
57 void set_supports_dry(bool supports_dry) { this->set_mode_supported_(climate::CLIMATE_MODE_DRY, supports_dry); }
58 void set_supports_fan_only(bool supports_fan_only) {
60 }
61 void set_fahrenheit_compatibility(bool fahrenheit_compatibility) {
62 this->fahrenheit_compatibility_ = fahrenheit_compatibility;
63 if (fahrenheit_compatibility) {
64 this->maximum_temperature_ = MITSUBISHI_TEMP_MAX_FAHRENHEIT;
65 }
66 }
67
69 this->fan_mode_ = fan_mode;
70 this->fan_modes_ = MITSUBISHI_BASE_FAN_MODES;
73 if (fan_mode >= MITSUBISHI_FAN_4L)
74 this->fan_modes_.insert(climate::CLIMATE_FAN_MIDDLE); // Shouldn't be used for this but it helps
75 }
76
77 void set_horizontal_default(HorizontalDirection horizontal_direction) {
78 this->default_horizontal_direction_ = horizontal_direction;
79 }
80 void set_vertical_default(VerticalDirection vertical_direction) {
81 this->default_vertical_direction_ = vertical_direction;
82 }
83 void set_vertical_vanes(uint8_t vertical_vanes) { this->vertical_vanes_ = vertical_vanes; }
84
85 protected:
86 // Transmit via IR the state of this climate controller.
87 void transmit_state() override;
88 // Handle received IR Buffer
90 bool parse_state_frame_(const uint8_t frame[]);
91
94
97 uint8_t vertical_vanes_{1};
98};
99
100} // namespace esphome::mitsubishi
constexpr void insert(ValueType value)
Add a single value to the set (std::set compatibility)
optional< ClimateFanMode > fan_mode
The active fan mode of the climate device.
Definition climate.h:311
climate::ClimateFanModeMask fan_modes_
Definition climate_ir.h:82
ESPHOME_ALWAYS_INLINE void set_mode_supported_(climate::ClimateMode mode, bool supported)
Definition climate_ir.h:70
ClimateIR(float minimum_temperature, float maximum_temperature, float temperature_step=1.0f, bool supports_dry=false, bool supports_fan_only=false, climate::ClimateFanModeMask fan_modes=climate::ClimateFanModeMask(), climate::ClimateSwingModeMask swing_modes=climate::ClimateSwingModeMask(), climate::ClimatePresetMask presets=climate::ClimatePresetMask())
Definition climate_ir.h:25
void set_fahrenheit_compatibility(bool fahrenheit_compatibility)
Definition mitsubishi.h:61
void set_horizontal_default(HorizontalDirection horizontal_direction)
Definition mitsubishi.h:77
void set_supports_dry(bool supports_dry)
Definition mitsubishi.h:57
bool on_receive(remote_base::RemoteReceiveData data) override
void set_vertical_vanes(uint8_t vertical_vanes)
Definition mitsubishi.h:83
void set_vertical_default(VerticalDirection vertical_direction)
Definition mitsubishi.h:80
void set_fan_mode(SetFanMode fan_mode)
Definition mitsubishi.h:68
VerticalDirection default_vertical_direction_
Definition mitsubishi.h:96
HorizontalDirection default_horizontal_direction_
Definition mitsubishi.h:95
bool parse_state_frame_(const uint8_t frame[])
void set_supports_fan_only(bool supports_fan_only)
Definition mitsubishi.h:58
@ 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.
@ 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.
@ 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_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_MIDDLE
The fan mode is set to Middle.
@ CLIMATE_FAN_QUIET
The fan mode is set to Quiet.
@ CLIMATE_FAN_HIGH
The fan mode is set to High.
@ HORIZONTAL_DIRECTION_MIDDLE_RIGHT
Definition mitsubishi.h:29
const uint8_t MITSUBISHI_TEMP_MAX
Definition mitsubishi.h:12
const uint8_t MITSUBISHI_TEMP_MIN
Definition mitsubishi.h:11
constexpr float fahrenheit_to_celsius(float value)
Convert degrees Fahrenheit to degrees Celsius.
Definition helpers.h:1787