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 // Brand: Trotec, Model: TROTEC PAC 3900 X (MIDEA)
26 // Brand: Trotec, Model: RG57H(B)/BGE remote (MIDEA)
27 
28 #ifndef IR_MIDEA_H_
29 #define IR_MIDEA_H_
30 
31 #define __STDC_LIMIT_MACROS
32 #include <stdint.h>
33 #ifdef ARDUINO
34 #include <Arduino.h>
35 #endif
36 #include "IRremoteESP8266.h"
37 #include "IRsend.h"
38 #ifdef UNIT_TEST
39 #include "IRsend_test.h"
40 #endif
41 
46 //
47 // #define DANBY_DAC true
48 // #define KAYSUN_AC true
49 
54 
57  uint64_t remote_state;
58  // only use 48bits
59  struct {
60  // Byte 0
61  uint8_t Sum;
62  // Byte 1 (value=0xFF when not in use.)
63  // This byte gets dual usage as Sensor Temp and On Timer
64  // Depending on "Type" below.
65  // When in "OnTimer", the nr of half hours is stored with mask 0b01111110
66  // i.e.
67  // uint8_t :1;
68  // uint8_t OnTimerHalfHours:6;
69  // uint8_t :1;
70  uint8_t SensorTemp:7;
71  uint8_t disableSensor:1;
72  // Byte 2 (value=0xFF when not in use.)
73  uint8_t :1; // 0b1
74  uint8_t OffTimer:6;
75  uint8_t BeepDisable:1;
76  // Byte 3
77  uint8_t Temp:5;
78  uint8_t useFahrenheit:1;
79  uint8_t :0;
80  // Byte 4
81  uint8_t Mode:3;
82  uint8_t Fan:2;
85  uint8_t :1;
86  uint8_t Sleep:1;
87  uint8_t Power:1;
88  // Byte 5
89  uint8_t Type:3;
90  uint8_t Header:5;
91  };
92 };
93 
94 // Constants
95 const uint8_t kMideaACMinTempF = 62;
96 const uint8_t kMideaACMaxTempF = 86;
97 const uint8_t kMideaACMinTempC = 17;
98 const uint8_t kMideaACMaxTempC = 30;
99 const uint8_t kMideaACMinSensorTempC = 0;
100 const uint8_t kMideaACMaxSensorTempC = 37;
101 const uint8_t kMideaACMinSensorTempF = 32;
102 const uint8_t kMideaACMaxSensorTempF = 99;
103 const uint8_t kMideaACSensorTempOnTimerOff = 0b1111111;
104 const uint8_t kMideaACTimerOff = 0b111111;
105 const uint8_t kMideaACCool = 0; // 0b000
106 const uint8_t kMideaACDry = 1; // 0b001
107 const uint8_t kMideaACAuto = 2; // 0b010
108 const uint8_t kMideaACHeat = 3; // 0b011
109 const uint8_t kMideaACFan = 4; // 0b100
110 const uint8_t kMideaACFanAuto = 0; // 0b00
111 const uint8_t kMideaACFanLow = 1; // 0b01
112 const uint8_t kMideaACFanMed = 2; // 0b10
113 const uint8_t kMideaACFanHigh = 3; // 0b11
114 #if KAYSUN_AC
115  // For Kaysun AC units, Toggle SwingV is 0xA202FFFFFF7E
116  const uint64_t kMideaACToggleSwingV = 0xA202FFFFFF7E;
117  const uint64_t kMideaACSwingVStep = 0xA201FFFFFF7C;
118 #else // KAYSUN_AC
119  const uint64_t kMideaACToggleSwingV = 0xA201FFFFFF7C;
120 #endif // KAYSUN_AC
121 #if DANBY_DAC
122  // For Danby DAC unit, the Ionizer toggle is the same as ToggleSwingV
123  // const uint64_t kMideaACToggleIonizer = 0xA201FFFFFF7C;
124  kSwingVToggleStr = kIonStr;
125 #endif // DANBY_DAC
126 const uint64_t kMideaACToggleEcono = 0xA202FFFFFF7E;
127 const uint64_t kMideaACToggleLight = 0xA208FFFFFF75;
128 const uint64_t kMideaACToggleTurbo = 0xA209FFFFFF74;
129 const uint8_t kMideaACTypeCommand = 0b001;
130 const uint8_t kMideaACTypeSpecial = 0b010;
131 const uint8_t kMideaACTypeFollow = 0b100;
132 
133 // Legacy defines. (Deprecated)
134 #define MIDEA_AC_COOL kMideaACCool
135 #define MIDEA_AC_DRY kMideaACDry
136 #define MIDEA_AC_AUTO kMideaACAuto
137 #define MIDEA_AC_HEAT kMideaACHeat
138 #define MIDEA_AC_FAN kMideaACFan
139 #define MIDEA_AC_FAN_AUTO kMideaACFanAuto
140 #define MIDEA_AC_FAN_LOW kMideaACFanLow
141 #define MIDEA_AC_FAN_MED kMideaACFanMed
142 #define MIDEA_AC_FAN_HI kMideaACFanHigh
143 #define MIDEA_AC_POWER kMideaACPower
144 #define MIDEA_AC_SLEEP kMideaACSleep
145 #define MIDEA_AC_MIN_TEMP_F kMideaACMinTempF
146 #define MIDEA_AC_MAX_TEMP_F kMideaACMaxTempF
147 #define MIDEA_AC_MIN_TEMP_C kMideaACMinTempC
148 #define MIDEA_AC_MAX_TEMP_C kMideaACMaxTempC
149 
150 // Classes
153 class IRMideaAC {
154  public:
155  explicit IRMideaAC(const uint16_t pin, const bool inverted = false,
156  const bool use_modulation = true);
157  void stateReset(void);
158 #if SEND_MIDEA
159  void send(const uint16_t repeat = kMideaMinRepeat);
164  int8_t calibrate(void) { return _irsend.calibrate(); }
165 #endif // SEND_MIDEA
166  void begin(void);
167  void on(void);
168  void off(void);
169  void setPower(const bool on);
170  bool getPower(void) const;
171  bool getUseCelsius(void) const;
172  void setUseCelsius(const bool celsius);
173  void setTemp(const uint8_t temp, const bool useCelsius = false);
174  uint8_t getTemp(const bool useCelsius = false) const;
175  void setSensorTemp(const uint8_t temp, const bool useCelsius = false);
176  uint8_t getSensorTemp(const bool useCelsius = false) const;
177  void setEnableSensorTemp(const bool on);
178  bool getEnableSensorTemp(void) const;
179  void setFan(const uint8_t fan);
180  uint8_t getFan(void) const;
181  void setMode(const uint8_t mode);
182  uint8_t getMode(void) const;
183  void setRaw(const uint64_t newState);
184  uint64_t getRaw(void);
185  static bool validChecksum(const uint64_t state);
186  void setSleep(const bool on);
187  bool getSleep(void) const;
188  bool isSwingVToggle(void) const;
189  void setSwingVToggle(const bool on);
190  bool getSwingVToggle(void);
191  #if KAYSUN_AC
192  bool isSwingVStep(void) const;
193  void setSwingVStep(const bool on);
194  bool getSwingVStep(void);
195  #endif // KAYSUN_AC
196  bool isEconoToggle(void) const;
197  void setEconoToggle(const bool on);
198  bool getEconoToggle(void);
199  bool isTurboToggle(void) const;
200  void setTurboToggle(const bool on);
201  bool getTurboToggle(void);
202  bool isLightToggle(void) const;
203  void setLightToggle(const bool on);
204  bool getLightToggle(void);
205  uint8_t getType(void) const;
206  bool isOnTimerEnabled(void) const;
207  uint16_t getOnTimer(void) const;
208  void setOnTimer(const uint16_t mins);
209  bool isOffTimerEnabled(void) const;
210  uint16_t getOffTimer(void) const;
211  void setOffTimer(const uint16_t mins);
212  static uint8_t convertMode(const stdAc::opmode_t mode);
213  static uint8_t convertFan(const stdAc::fanspeed_t speed);
214  static stdAc::opmode_t toCommonMode(const uint8_t mode);
215  static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed);
216  stdAc::state_t toCommon(const stdAc::state_t *prev = NULL);
217  String toString(void);
218 #ifndef UNIT_TEST
219 
220  private:
222 #else // UNIT_TEST
223  IRsendTest _irsend;
225 #endif // UNIT_TEST
229  #if KAYSUN_AC
231  #endif // KAYSUN_AC
235  void checksum(void);
236  static uint8_t calcChecksum(const uint64_t state);
237  void setType(const uint8_t type);
238 };
239 
240 #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:61
kMideaACMinTempF
const uint8_t kMideaACMinTempF
Fahrenheit.
Definition: ir_Midea.h:95
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:1111
IRMideaAC::_EconoToggle
bool _EconoToggle
Definition: ir_Midea.h:232
IRMideaAC::_
MideaProtocol _
Definition: ir_Midea.h:227
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:164
IRMideaAC::isOffTimerEnabled
bool isOffTimerEnabled(void) const
Is the OffTimer enabled?
Definition: ir_Midea.cpp:492
IRMideaAC::_TurboToggle
bool _TurboToggle
Definition: ir_Midea.h:233
MideaProtocol::Type
uint8_t Type
Normal, Special, or FollowMe message type.
Definition: ir_Midea.h:89
kMideaACMaxSensorTempF
const uint8_t kMideaACMaxSensorTempF
Fahrenheit (Guess only!)
Definition: ir_Midea.h:102
kMideaACTypeFollow
const uint8_t kMideaACTypeFollow
Message type.
Definition: ir_Midea.h:131
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:90
IRMideaAC::_SwingVToggle
bool _SwingVToggle
Definition: ir_Midea.h:228
kMideaACAuto
const uint8_t kMideaACAuto
Definition: ir_Midea.h:107
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:109
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:78
kMideaACTypeSpecial
const uint8_t kMideaACTypeSpecial
Message type.
Definition: ir_Midea.h:130
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:96
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:208
MideaProtocol::Power
uint8_t Power
Definition: ir_Midea.h:87
kMideaACTimerOff
const uint8_t kMideaACTimerOff
Definition: ir_Midea.h:104
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:70
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:100
String
std::string String
Definition: IRremoteESP8266.h:1309
kSwingVToggleStr
kSwingVToggleStr
Definition: ir_Midea.h:124
IRMideaAC::getSwingVToggle
bool getSwingVToggle(void)
Definition: ir_Midea.cpp:338
MideaProtocol::Fan
uint8_t Fan
Definition: ir_Midea.h:82
MideaProtocol::Mode
uint8_t Mode
Definition: ir_Midea.h:81
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:128
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:108
MideaProtocol::OffTimer
uint8_t OffTimer
Nr of Half hours. Off is 0b111111.
Definition: ir_Midea.h:74
kMideaACSwingVStep
const uint64_t kMideaACSwingVStep
Definition: ir_Midea.h:117
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:110
kMideaACToggleSwingV
const uint64_t kMideaACToggleSwingV
Definition: ir_Midea.h:116
IRMideaAC::_irsend
IRsend _irsend
Instance of the IR send class.
Definition: ir_Midea.h:221
MideaProtocol::remote_state
uint64_t remote_state
The state in native IR code form.
Definition: ir_Midea.h:57
IRMideaAC
Class for handling detailed Midea A/C messages.
Definition: ir_Midea.h:153
kMideaACMinSensorTempC
const uint8_t kMideaACMinSensorTempC
Celsius.
Definition: ir_Midea.h:99
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
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:103
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:126
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:86
kMideaACFanMed
const uint8_t kMideaACFanMed
Definition: ir_Midea.h:112
MideaProtocol::disableSensor
uint8_t disableSensor
Definition: ir_Midea.h:71
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:97
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:127
kMideaACFanHigh
const uint8_t kMideaACFanHigh
Definition: ir_Midea.h:113
IRMideaAC::getEconoToggle
bool getEconoToggle(void)
Definition: ir_Midea.cpp:374
kMideaACMaxTempC
const uint8_t kMideaACMaxTempC
Celsius.
Definition: ir_Midea.h:98
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:106
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:101
IRMideaAC::_LightToggle
bool _LightToggle
Definition: ir_Midea.h:234
kMideaACCool
const uint8_t kMideaACCool
Definition: ir_Midea.h:105
MideaProtocol
Native representation of a Midea A/C message.
Definition: ir_Midea.h:56
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:75
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:111
IRMideaAC::_SwingVStep
bool _SwingVStep
Definition: ir_Midea.h:230
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:77
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:129
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