IRremoteESP8266
ir_Midea.h
Go to the documentation of this file.
1 // Copyright 2017 David Conran
2 
8 
9 // Supports:
10 // Brand: Pioneer System, Model: RYBO12GMFILCAD A/C (12K BTU) (MIDEA)
11 // Brand: Pioneer System, Model: RUBO18GMFILCAD A/C (18K BTU) (MIDEA)
12 // Brand: Pioneer System, Model: WS012GMFI22HLD A/C (12K BTU) (MIDEA)
13 // Brand: Pioneer System, Model: WS018GMFI22HLD A/C (12K BTU) (MIDEA)
14 // Brand: Pioneer System, Model: UB018GMFILCFHD A/C (12K BTU) (MIDEA)
15 // Brand: Pioneer System, Model: RG66B6(B)/BGEFU1 remote (MIDEA)
16 // Brand: Comfee, Model: MPD1-12CRN7 A/C (MIDEA)
17 // Brand: Kaysun, Model: Casual CF A/C (MIDEA)
18 // Brand: Keystone, Model: RG57H4(B)BGEF remote (MIDEA)
19 // Brand: MrCool, Model: RG57A6/BGEFU1 remote (MIDEA)
20 // Brand: Midea, Model: FS40-7AR Stand Fan (MIDEA24)
21 // Brand: Danby, Model: DAC080BGUWDB (MIDEA)
22 // Brand: Danby, Model: DAC100BGUWDB (MIDEA)
23 // Brand: Danby, Model: DAC120BGUWDB (MIDEA)
24 // Brand: Danby, Model: R09C/BCGE remote (MIDEA)
25 
26 #ifndef IR_MIDEA_H_
27 #define IR_MIDEA_H_
28 
29 #define __STDC_LIMIT_MACROS
30 #include <stdint.h>
31 #ifdef ARDUINO
32 #include <Arduino.h>
33 #endif
34 #include "IRremoteESP8266.h"
35 #include "IRsend.h"
36 #ifdef UNIT_TEST
37 #include "IRsend_test.h"
38 #endif
39 
44 //
45 // #define DANBY_DAC true
46 // #define KAYSUN_AC true
47 
52 
55  uint64_t remote_state;
56  // only use 48bits
57  struct {
58  // Byte 0
59  uint8_t Sum;
60  // Byte 1 (value=0xFF when not in use.)
61  // This byte gets dual usage as Sensor Temp and On Timer
62  // Depending on "Type" below.
63  // When in "OnTimer", the nr of half hours is stored with mask 0b01111110
64  // i.e.
65  // uint8_t :1;
66  // uint8_t OnTimerHalfHours:6;
67  // uint8_t :1;
68  uint8_t SensorTemp:7;
69  uint8_t disableSensor:1;
70  // Byte 2 (value=0xFF when not in use.)
71  uint8_t :1; // 0b1
72  uint8_t OffTimer:6;
73  uint8_t BeepDisable:1;
74  // Byte 3
75  uint8_t Temp:5;
76  uint8_t useFahrenheit:1;
77  uint8_t :0;
78  // Byte 4
79  uint8_t Mode:3;
80  uint8_t Fan:2;
83  uint8_t :1;
84  uint8_t Sleep:1;
85  uint8_t Power:1;
86  // Byte 5
87  uint8_t Type:3;
88  uint8_t Header:5;
89  };
90 };
91 
92 // Constants
93 const uint8_t kMideaACMinTempF = 62;
94 const uint8_t kMideaACMaxTempF = 86;
95 const uint8_t kMideaACMinTempC = 17;
96 const uint8_t kMideaACMaxTempC = 30;
97 const uint8_t kMideaACMinSensorTempC = 0;
98 const uint8_t kMideaACMaxSensorTempC = 37;
99 const uint8_t kMideaACMinSensorTempF = 32;
100 const uint8_t kMideaACMaxSensorTempF = 99;
101 const uint8_t kMideaACSensorTempOnTimerOff = 0b1111111;
102 const uint8_t kMideaACTimerOff = 0b111111;
103 const uint8_t kMideaACCool = 0; // 0b000
104 const uint8_t kMideaACDry = 1; // 0b001
105 const uint8_t kMideaACAuto = 2; // 0b010
106 const uint8_t kMideaACHeat = 3; // 0b011
107 const uint8_t kMideaACFan = 4; // 0b100
108 const uint8_t kMideaACFanAuto = 0; // 0b00
109 const uint8_t kMideaACFanLow = 1; // 0b01
110 const uint8_t kMideaACFanMed = 2; // 0b10
111 const uint8_t kMideaACFanHigh = 3; // 0b11
112 #if KAYSUN_AC
113  // For Kaysun AC units, Toggle SwingV is 0xA202FFFFFF7E
114  const uint64_t kMideaACToggleSwingV = 0xA202FFFFFF7E;
115  const uint64_t kMideaACSwingVStep = 0xA201FFFFFF7C;
116 #else // KAYSUN_AC
117  const uint64_t kMideaACToggleSwingV = 0xA201FFFFFF7C;
118 #endif // KAYSUN_AC
119 #if DANBY_DAC
120  // For Danby DAC unit, the Ionizer toggle is the same as ToggleSwingV
121  // const uint64_t kMideaACToggleIonizer = 0xA201FFFFFF7C;
123 #endif // DANBY_DAC
124 const uint64_t kMideaACToggleEcono = 0xA202FFFFFF7E;
125 const uint64_t kMideaACToggleLight = 0xA208FFFFFF75;
126 const uint64_t kMideaACToggleTurbo = 0xA209FFFFFF74;
127 const uint8_t kMideaACTypeCommand = 0b001;
128 const uint8_t kMideaACTypeSpecial = 0b010;
129 const uint8_t kMideaACTypeFollow = 0b100;
130 
131 // Legacy defines. (Deprecated)
132 #define MIDEA_AC_COOL kMideaACCool
133 #define MIDEA_AC_DRY kMideaACDry
134 #define MIDEA_AC_AUTO kMideaACAuto
135 #define MIDEA_AC_HEAT kMideaACHeat
136 #define MIDEA_AC_FAN kMideaACFan
137 #define MIDEA_AC_FAN_AUTO kMideaACFanAuto
138 #define MIDEA_AC_FAN_LOW kMideaACFanLow
139 #define MIDEA_AC_FAN_MED kMideaACFanMed
140 #define MIDEA_AC_FAN_HI kMideaACFanHigh
141 #define MIDEA_AC_POWER kMideaACPower
142 #define MIDEA_AC_SLEEP kMideaACSleep
143 #define MIDEA_AC_MIN_TEMP_F kMideaACMinTempF
144 #define MIDEA_AC_MAX_TEMP_F kMideaACMaxTempF
145 #define MIDEA_AC_MIN_TEMP_C kMideaACMinTempC
146 #define MIDEA_AC_MAX_TEMP_C kMideaACMaxTempC
147 
148 // Classes
151 class IRMideaAC {
152  public:
153  explicit IRMideaAC(const uint16_t pin, const bool inverted = false,
154  const bool use_modulation = true);
155  void stateReset(void);
156 #if SEND_MIDEA
157  void send(const uint16_t repeat = kMideaMinRepeat);
162  int8_t calibrate(void) { return _irsend.calibrate(); }
163 #endif // SEND_MIDEA
164  void begin(void);
165  void on(void);
166  void off(void);
167  void setPower(const bool on);
168  bool getPower(void) const;
169  bool getUseCelsius(void) const;
170  void setUseCelsius(const bool celsius);
171  void setTemp(const uint8_t temp, const bool useCelsius = false);
172  uint8_t getTemp(const bool useCelsius = false) const;
173  void setSensorTemp(const uint8_t temp, const bool useCelsius = false);
174  uint8_t getSensorTemp(const bool useCelsius = false) const;
175  void setEnableSensorTemp(const bool on);
176  bool getEnableSensorTemp(void) const;
177  void setFan(const uint8_t fan);
178  uint8_t getFan(void) const;
179  void setMode(const uint8_t mode);
180  uint8_t getMode(void) const;
181  void setRaw(const uint64_t newState);
182  uint64_t getRaw(void);
183  static bool validChecksum(const uint64_t state);
184  void setSleep(const bool on);
185  bool getSleep(void) const;
186  bool isSwingVToggle(void) const;
187  void setSwingVToggle(const bool on);
188  bool getSwingVToggle(void);
189  #if KAYSUN_AC
190  bool isSwingVStep(void) const;
191  void setSwingVStep(const bool on);
192  bool getSwingVStep(void);
193  #endif // KAYSUN_AC
194  bool isEconoToggle(void) const;
195  void setEconoToggle(const bool on);
196  bool getEconoToggle(void);
197  bool isTurboToggle(void) const;
198  void setTurboToggle(const bool on);
199  bool getTurboToggle(void);
200  bool isLightToggle(void) const;
201  void setLightToggle(const bool on);
202  bool getLightToggle(void);
203  uint8_t getType(void) const;
204  bool isOnTimerEnabled(void) const;
205  uint16_t getOnTimer(void) const;
206  void setOnTimer(const uint16_t mins);
207  bool isOffTimerEnabled(void) const;
208  uint16_t getOffTimer(void) const;
209  void setOffTimer(const uint16_t mins);
210  static uint8_t convertMode(const stdAc::opmode_t mode);
211  static uint8_t convertFan(const stdAc::fanspeed_t speed);
212  static stdAc::opmode_t toCommonMode(const uint8_t mode);
213  static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed);
214  stdAc::state_t toCommon(const stdAc::state_t *prev = NULL);
215  String toString(void);
216 #ifndef UNIT_TEST
217 
218  private:
220 #else // UNIT_TEST
221  IRsendTest _irsend;
223 #endif // UNIT_TEST
227  #if KAYSUN_AC
229  #endif // KAYSUN_AC
233  void checksum(void);
234  static uint8_t calcChecksum(const uint64_t state);
235  void setType(const uint8_t type);
236 };
237 
238 #endif // IR_MIDEA_H_
IRMideaAC::setOnTimer
void setOnTimer(const uint16_t mins)
Set the value of the On Timer.
Definition: ir_Midea.cpp:481
IRMideaAC::getType
uint8_t getType(void) const
Get the message type setting of the A/C message.
Definition: ir_Midea.cpp:443
MideaProtocol::Sum
uint8_t Sum
Definition: ir_Midea.h:59
kMideaACMinTempF
const uint8_t kMideaACMinTempF
Fahrenheit.
Definition: ir_Midea.h:93
IRMideaAC::begin
void begin(void)
Set up hardware to be able to send a message.
Definition: ir_Midea.cpp:113
IRMideaAC::toCommonFanSpeed
static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed)
Convert a native fan speed into its stdAc equivalent.
Definition: ir_Midea.cpp:556
IRMideaAC::setSleep
void setSleep(const bool on)
Set the Sleep setting of the A/C.
Definition: ir_Midea.cpp:313
IRMideaAC::on
void on(void)
Set the requested power state of the A/C to on.
Definition: ir_Midea.cpp:153
IRMideaAC::setUseCelsius
void setUseCelsius(const bool celsius)
Set the A/C unit to use Celsius natively.
Definition: ir_Midea.cpp:178
kMideaMinRepeat
const uint16_t kMideaMinRepeat
Definition: IRremoteESP8266.h:994
IRMideaAC::_EconoToggle
bool _EconoToggle
Definition: ir_Midea.h:230
IRMideaAC::_
MideaProtocol _
Definition: ir_Midea.h:225
IRMideaAC::setTemp
void setTemp(const uint8_t temp, const bool useCelsius=false)
Set the temperature.
Definition: ir_Midea.cpp:189
IRMideaAC::getPower
bool getPower(void) const
Get the value of the current power setting.
Definition: ir_Midea.cpp:166
IRMideaAC::calibrate
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition: ir_Midea.h:162
IRMideaAC::isOffTimerEnabled
bool isOffTimerEnabled(void) const
Is the OffTimer enabled?
Definition: ir_Midea.cpp:492
IRMideaAC::_TurboToggle
bool _TurboToggle
Definition: ir_Midea.h:231
MideaProtocol::Type
uint8_t Type
Normal, Special, or FollowMe message type.
Definition: ir_Midea.h:87
kMideaACMaxSensorTempF
const uint8_t kMideaACMaxSensorTempF
Fahrenheit (Guess only!)
Definition: ir_Midea.h:100
kMideaACTypeFollow
const uint8_t kMideaACTypeFollow
Message type.
Definition: ir_Midea.h:129
IRMideaAC::setEconoToggle
void setEconoToggle(const bool on)
Set the A/C to toggle the Econo (energy saver) mode for the next send.
Definition: ir_Midea.cpp:364
stdAc::fanspeed_t
fanspeed_t
Common A/C settings for Fan Speeds.
Definition: IRsend.h:58
MideaProtocol::Header
uint8_t Header
Typically 0b10100.
Definition: ir_Midea.h:88
IRMideaAC::_SwingVToggle
bool _SwingVToggle
Definition: ir_Midea.h:226
kMideaACAuto
const uint8_t kMideaACAuto
Definition: ir_Midea.h:105
IRMideaAC::checksum
void checksum(void)
Calculate & set the checksum for the current internal state of the remote.
Definition: ir_Midea.cpp:436
IRMideaAC::IRMideaAC
IRMideaAC(const uint16_t pin, const bool inverted=false, const bool use_modulation=true)
Class constructor.
Definition: ir_Midea.cpp:95
kMideaACFan
const uint8_t kMideaACFan
Definition: ir_Midea.h:107
IRMideaAC::isOnTimerEnabled
bool isOnTimerEnabled(void) const
Is the OnTimer enabled?
Definition: ir_Midea.cpp:463
IRMideaAC::send
void send(const uint16_t repeat=kMideaMinRepeat)
Send the current internal state as an IR message.
Definition: ir_Midea.cpp:118
MideaProtocol::useFahrenheit
uint8_t useFahrenheit
Definition: ir_Midea.h:76
kMideaACTypeSpecial
const uint8_t kMideaACTypeSpecial
Message type.
Definition: ir_Midea.h:128
IRsend.h
IRMideaAC::setType
void setType(const uint8_t type)
Set the message type setting of the A/C message.
Definition: ir_Midea.cpp:447
IRMideaAC::setTurboToggle
void setTurboToggle(const bool on)
Set the A/C to toggle the Turbo mode for the next send.
Definition: ir_Midea.cpp:381
kMideaACMaxTempF
const uint8_t kMideaACMaxTempF
Fahrenheit.
Definition: ir_Midea.h:94
IRMideaAC::getLightToggle
bool getLightToggle(void)
Definition: ir_Midea.cpp:408
IRMideaAC::getOffTimer
uint16_t getOffTimer(void) const
Get the value of the OffTimer is currently set to.
Definition: ir_Midea.cpp:498
IRsend
Class for sending all basic IR protocols.
Definition: IRsend.h:182
MideaProtocol::Power
uint8_t Power
Definition: ir_Midea.h:85
kMideaACTimerOff
const uint8_t kMideaACTimerOff
Definition: ir_Midea.h:102
IRsend::calibrate
int8_t calibrate(uint16_t hz=38000U)
Calculate & set any offsets to account for execution times during sending.
Definition: IRsend.cpp:207
MideaProtocol::SensorTemp
uint8_t SensorTemp
Degrees or OnTimer.
Definition: ir_Midea.h:68
IRMideaAC::setSwingVToggle
void setSwingVToggle(const bool on)
Set the A/C to toggle the vertical swing toggle for the next send.
Definition: ir_Midea.cpp:326
IRMideaAC::isSwingVToggle
bool isSwingVToggle(void) const
Is the current state a vertical swing toggle message?
Definition: ir_Midea.cpp:331
IRMideaAC::isLightToggle
bool isLightToggle(void) const
Is the current state a Light (LED) toggle message?
Definition: ir_Midea.cpp:402
IRMideaAC::getEnableSensorTemp
bool getEnableSensorTemp(void) const
Is the remote temperature sensor enabled?
Definition: ir_Midea.cpp:275
kMideaACMaxSensorTempC
const uint8_t kMideaACMaxSensorTempC
Celsius.
Definition: ir_Midea.h:98
String
std::string String
Definition: IRremoteESP8266.h:1178
kSwingVToggleStr
kSwingVToggleStr
Definition: ir_Midea.h:122
IRMideaAC::getSwingVToggle
bool getSwingVToggle(void)
Definition: ir_Midea.cpp:338
MideaProtocol::Fan
uint8_t Fan
Definition: ir_Midea.h:80
MideaProtocol::Mode
uint8_t Mode
Definition: ir_Midea.h:79
IRMideaAC::getFan
uint8_t getFan(void) const
Get the current fan speed setting.
Definition: ir_Midea.cpp:285
kMideaACToggleTurbo
const uint64_t kMideaACToggleTurbo
Definition: ir_Midea.h:126
IRMideaAC::off
void off(void)
Set the requested power state of the A/C to off.
Definition: ir_Midea.cpp:156
IRMideaAC::getTurboToggle
bool getTurboToggle(void)
Definition: ir_Midea.cpp:391
IRremoteESP8266.h
IRMideaAC::setOffTimer
void setOffTimer(const uint16_t mins)
Set the value of the Off Timer.
Definition: ir_Midea.cpp:505
kMideaACHeat
const uint8_t kMideaACHeat
Definition: ir_Midea.h:106
MideaProtocol::OffTimer
uint8_t OffTimer
Nr of Half hours. Off is 0b111111.
Definition: ir_Midea.h:72
kMideaACSwingVStep
const uint64_t kMideaACSwingVStep
Definition: ir_Midea.h:115
IRMideaAC::isSwingVStep
bool isSwingVStep(void) const
Is the current state a step vertical swing message?
Definition: ir_Midea.cpp:350
IRMideaAC::setLightToggle
void setLightToggle(const bool on)
Set the A/C to toggle the Light (LED) mode for the next send.
Definition: ir_Midea.cpp:398
IRMideaAC::getUseCelsius
bool getUseCelsius(void) const
Is the device currently using Celsius or the Fahrenheit temp scale?
Definition: ir_Midea.cpp:172
IRMideaAC::getOnTimer
uint16_t getOnTimer(void) const
Get the value of the OnTimer is currently set to.
Definition: ir_Midea.cpp:470
IRMideaAC::toCommonMode
static stdAc::opmode_t toCommonMode(const uint8_t mode)
Convert a native mode into its stdAc equivalent.
Definition: ir_Midea.cpp:543
kMideaACFanAuto
const uint8_t kMideaACFanAuto
Definition: ir_Midea.h:108
kMideaACToggleSwingV
const uint64_t kMideaACToggleSwingV
Definition: ir_Midea.h:114
IRMideaAC::_irsend
IRsend _irsend
Instance of the IR send class.
Definition: ir_Midea.h:219
MideaProtocol::remote_state
uint64_t remote_state
The state in native IR code form.
Definition: ir_Midea.h:55
IRMideaAC
Class for handling detailed Midea A/C messages.
Definition: ir_Midea.h:151
kMideaACMinSensorTempC
const uint8_t kMideaACMinSensorTempC
Celsius.
Definition: ir_Midea.h:97
IRMideaAC::setRaw
void setRaw(const uint64_t newState)
Set the internal state from a valid code for this protocol.
Definition: ir_Midea.cpp:150
IRMideaAC::getSensorTemp
uint8_t getSensorTemp(const bool useCelsius=false) const
Get the current Sensor temperature setting.
Definition: ir_Midea.cpp:248
IRMideaAC::setMode
void setMode(const uint8_t mode)
Set the operating mode of the A/C.
Definition: ir_Midea.cpp:297
IRMideaAC::calcChecksum
static uint8_t calcChecksum(const uint64_t state)
Calculate the checksum for a given state.
Definition: ir_Midea.cpp:416
kIonStr
const PROGMEM char * kIonStr
"Ion"
Definition: IRtext.cpp:55
IRMideaAC::getSleep
bool getSleep(void) const
Get the Sleep setting of the A/C.
Definition: ir_Midea.cpp:319
kMideaACSensorTempOnTimerOff
const uint8_t kMideaACSensorTempOnTimerOff
Definition: ir_Midea.h:101
IRMideaAC::getMode
uint8_t getMode(void) const
Get the operating mode setting of the A/C.
Definition: ir_Midea.cpp:291
kMideaACToggleEcono
const uint64_t kMideaACToggleEcono
Definition: ir_Midea.h:124
IRMideaAC::convertFan
static uint8_t convertFan(const stdAc::fanspeed_t speed)
Convert a stdAc::fanspeed_t enum into it's native speed.
Definition: ir_Midea.cpp:529
MideaProtocol::Sleep
uint8_t Sleep
Definition: ir_Midea.h:84
kMideaACFanMed
const uint8_t kMideaACFanMed
Definition: ir_Midea.h:110
MideaProtocol::disableSensor
uint8_t disableSensor
Definition: ir_Midea.h:69
IRMideaAC::getRaw
uint64_t getRaw(void)
Get a copy of the internal state/code for this protocol.
Definition: ir_Midea.cpp:143
kMideaACMinTempC
const uint8_t kMideaACMinTempC
Celsius.
Definition: ir_Midea.h:95
IRMideaAC::setSwingVStep
void setSwingVStep(const bool on)
Set the A/C to step the vertical swing for the next send.
Definition: ir_Midea.cpp:346
IRMideaAC::getSwingVStep
bool getSwingVStep(void)
Definition: ir_Midea.cpp:356
IRMideaAC::convertMode
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a stdAc::opmode_t enum into its native mode.
Definition: ir_Midea.cpp:516
kMideaACToggleLight
const uint64_t kMideaACToggleLight
Definition: ir_Midea.h:125
kMideaACFanHigh
const uint8_t kMideaACFanHigh
Definition: ir_Midea.h:111
IRMideaAC::getEconoToggle
bool getEconoToggle(void)
Definition: ir_Midea.cpp:374
kMideaACMaxTempC
const uint8_t kMideaACMaxTempC
Celsius.
Definition: ir_Midea.h:96
IRMideaAC::setEnableSensorTemp
void setEnableSensorTemp(const bool on)
Enable the remote's Sensor temperature.
Definition: ir_Midea.cpp:262
IRMideaAC::toCommon
stdAc::state_t toCommon(const stdAc::state_t *prev=NULL)
Convert the current internal state into its stdAc::state_t equivalent.
Definition: ir_Midea.cpp:568
IRMideaAC::setSensorTemp
void setSensorTemp(const uint8_t temp, const bool useCelsius=false)
Set the Sensor temperature.
Definition: ir_Midea.cpp:225
kMideaACDry
const uint8_t kMideaACDry
Definition: ir_Midea.h:104
IRMideaAC::isTurboToggle
bool isTurboToggle(void) const
Is the current state a Turbo toggle message?
Definition: ir_Midea.cpp:385
IRMideaAC::toString
String toString(void)
Convert the current internal state into a human readable string.
Definition: ir_Midea.cpp:605
IRMideaAC::validChecksum
static bool validChecksum(const uint64_t state)
Verify the checksum is valid for a given state.
Definition: ir_Midea.cpp:431
kMideaACMinSensorTempF
const uint8_t kMideaACMinSensorTempF
Fahrenheit.
Definition: ir_Midea.h:99
IRMideaAC::_LightToggle
bool _LightToggle
Definition: ir_Midea.h:232
kMideaACCool
const uint8_t kMideaACCool
Definition: ir_Midea.h:103
MideaProtocol
Native representation of a Midea A/C message.
Definition: ir_Midea.h:54
IRMideaAC::setPower
void setPower(const bool on)
Change the power setting.
Definition: ir_Midea.cpp:160
MideaProtocol::BeepDisable
uint8_t BeepDisable
0 = no beep in follow me messages, 1 = beep.
Definition: ir_Midea.h:73
IRMideaAC::stateReset
void stateReset(void)
Reset the state of the remote to a known good state/sequence.
Definition: ir_Midea.cpp:100
stdAc::state_t
Structure to hold a common A/C state.
Definition: IRsend.h:97
kMideaACFanLow
const uint8_t kMideaACFanLow
Definition: ir_Midea.h:109
IRMideaAC::_SwingVStep
bool _SwingVStep
Definition: ir_Midea.h:228
IRMideaAC::getTemp
uint8_t getTemp(const bool useCelsius=false) const
Get the current temperature setting.
Definition: ir_Midea.cpp:210
MideaProtocol::Temp
uint8_t Temp
Definition: ir_Midea.h:75
IRMideaAC::setFan
void setFan(const uint8_t fan)
Set the speed of the fan.
Definition: ir_Midea.cpp:279
kMideaACTypeCommand
const uint8_t kMideaACTypeCommand
Message type.
Definition: ir_Midea.h:127
IRMideaAC::isEconoToggle
bool isEconoToggle(void) const
Is the current state an Econo (energy saver) toggle message?
Definition: ir_Midea.cpp:368
stdAc::opmode_t
opmode_t
Common A/C settings for A/C operating modes.
Definition: IRsend.h:46