IRremoteESP8266
ir_Midea.h
Go to the documentation of this file.
1 // Copyright 2017 David Conran
2 
9 
10 // Supports:
11 // Brand: Pioneer System, Model: RYBO12GMFILCAD A/C (12K BTU) (MIDEA)
12 // Brand: Pioneer System, Model: RUBO18GMFILCAD A/C (18K BTU) (MIDEA)
13 // Brand: Pioneer System, Model: WS012GMFI22HLD A/C (12K BTU) (MIDEA)
14 // Brand: Pioneer System, Model: WS018GMFI22HLD A/C (12K BTU) (MIDEA)
15 // Brand: Pioneer System, Model: UB018GMFILCFHD A/C (12K BTU) (MIDEA)
16 // Brand: Pioneer System, Model: RG66B6(B)/BGEFU1 remote (MIDEA)
17 // Brand: Comfee, Model: MPD1-12CRN7 A/C (MIDEA)
18 // Brand: Kaysun, Model: Casual CF A/C (MIDEA)
19 // Brand: Keystone, Model: RG57H4(B)BGEF remote (MIDEA)
20 // Brand: MrCool, Model: RG57A6/BGEFU1 remote (MIDEA)
21 // Brand: Midea, Model: FS40-7AR Stand Fan (MIDEA24)
22 // Brand: Danby, Model: DAC080BGUWDB (MIDEA)
23 // Brand: Danby, Model: DAC100BGUWDB (MIDEA)
24 // Brand: Danby, Model: DAC120BGUWDB (MIDEA)
25 // Brand: Danby, Model: R09C/BCGE remote (MIDEA)
26 // Brand: Trotec, Model: TROTEC PAC 3900 X (MIDEA)
27 // Brand: Trotec, Model: RG57H(B)/BGE remote (MIDEA)
28 // Brand: Lennox, Model: RG57A6/BGEFU1 remote (MIDEA)
29 // Brand: Lennox, Model: MWMA009S4-3P A/C (MIDEA)
30 // Brand: Lennox, Model: MWMA012S4-3P A/C (MIDEA)
31 // Brand: Lennox, Model: MCFA indoor split A/C (MIDEA)
32 // Brand: Lennox, Model: MCFB indoor split A/C (MIDEA)
33 // Brand: Lennox, Model: MMDA indoor split A/C (MIDEA)
34 // Brand: Lennox, Model: MMDB indoor split A/C (MIDEA)
35 // Brand: Lennox, Model: MWMA indoor split A/C (MIDEA)
36 // Brand: Lennox, Model: MWMB indoor split A/C (MIDEA)
37 // Brand: Lennox, Model: M22A indoor split A/C (MIDEA)
38 // Brand: Lennox, Model: M33A indoor split A/C (MIDEA)
39 // Brand: Lennox, Model: M33B indoor split A/C (MIDEA)
40 
41 #ifndef IR_MIDEA_H_
42 #define IR_MIDEA_H_
43 
44 #define __STDC_LIMIT_MACROS
45 #include <stdint.h>
46 #ifdef ARDUINO
47 #include <Arduino.h>
48 #endif
49 #include "IRremoteESP8266.h"
50 #include "IRsend.h"
51 #ifdef UNIT_TEST
52 #include "IRsend_test.h"
53 #endif
54 
59 //
60 // #define DANBY_DAC true
61 // #define KAYSUN_AC true
62 
67 
70  uint64_t remote_state;
71  // only use 48bits
72  struct {
73  // Byte 0
74  uint8_t Sum;
75  // Byte 1 (value=0xFF when not in use.)
76  // This byte gets dual usage as Sensor Temp and On Timer
77  // Depending on "Type" below.
78  // When in "OnTimer", the nr of half hours is stored with mask 0b01111110
79  // i.e.
80  // uint8_t :1;
81  // uint8_t OnTimerHalfHours:6;
82  // uint8_t :1;
83  uint8_t SensorTemp:7;
84  uint8_t disableSensor:1;
85  // Byte 2 (value=0xFF when not in use.)
86  uint8_t :1; // 0b1
87  uint8_t OffTimer:6;
88  uint8_t BeepDisable:1;
89  // Byte 3
90  uint8_t Temp:5;
91  uint8_t useFahrenheit:1;
92  uint8_t :0;
93  // Byte 4
94  uint8_t Mode:3;
95  uint8_t Fan:2;
98  uint8_t :1;
99  uint8_t Sleep:1;
100  uint8_t Power:1;
101  // Byte 5
102  uint8_t Type:3;
103  uint8_t Header:5;
104  };
105 };
106 
107 // Constants
108 const uint8_t kMideaACMinTempF = 62;
109 const uint8_t kMideaACMaxTempF = 86;
110 const uint8_t kMideaACMinTempC = 17;
111 const uint8_t kMideaACMaxTempC = 30;
112 const uint8_t kMideaACMinSensorTempC = 0;
113 const uint8_t kMideaACMaxSensorTempC = 37;
114 const uint8_t kMideaACMinSensorTempF = 32;
115 const uint8_t kMideaACMaxSensorTempF = 99;
116 const uint8_t kMideaACSensorTempOnTimerOff = 0b1111111;
117 const uint8_t kMideaACTimerOff = 0b111111;
118 const uint8_t kMideaACCool = 0; // 0b000
119 const uint8_t kMideaACDry = 1; // 0b001
120 const uint8_t kMideaACAuto = 2; // 0b010
121 const uint8_t kMideaACHeat = 3; // 0b011
122 const uint8_t kMideaACFan = 4; // 0b100
123 const uint8_t kMideaACFanAuto = 0; // 0b00
124 const uint8_t kMideaACFanLow = 1; // 0b01
125 const uint8_t kMideaACFanMed = 2; // 0b10
126 const uint8_t kMideaACFanHigh = 3; // 0b11
127 #if KAYSUN_AC
128  // For Kaysun AC units, Toggle SwingV is 0xA202FFFFFF7E
129  const uint64_t kMideaACToggleSwingV = 0xA202FFFFFF7E;
130  const uint64_t kMideaACSwingVStep = 0xA201FFFFFF7C;
131 #else // KAYSUN_AC
132  const uint64_t kMideaACToggleSwingV = 0xA201FFFFFF7C;
133 #endif // KAYSUN_AC
134 #if DANBY_DAC
135  // For Danby DAC unit, the Ionizer toggle is the same as ToggleSwingV
136  // const uint64_t kMideaACToggleIonizer = 0xA201FFFFFF7C;
137  kSwingVToggleStr = kIonStr;
138 #endif // DANBY_DAC
139 const uint64_t kMideaACToggleEcono = 0xA202FFFFFF7E;
140 const uint64_t kMideaACToggleLight = 0xA208FFFFFF75;
141 const uint64_t kMideaACToggleTurbo = 0xA209FFFFFF74;
142 // Mode must be Auto, Cool, or Dry
143 const uint64_t kMideaACToggleSelfClean = 0xA20DFFFFFF70;
144 // 8C Heat AKA Freeze Protection
145 const uint64_t kMideaACToggle8CHeat = 0xA20FFFFFFF73; // Only in Heat
146 const uint64_t kMideaACQuietOn = 0xA212FFFFFF6E;
147 const uint64_t kMideaACQuietOff = 0xA213FFFFFF6F;
148 
149 const uint8_t kMideaACTypeCommand = 0b001;
150 const uint8_t kMideaACTypeSpecial = 0b010;
151 const uint8_t kMideaACTypeFollow = 0b100;
152 
153 // Legacy defines. (Deprecated)
154 #define MIDEA_AC_COOL kMideaACCool
155 #define MIDEA_AC_DRY kMideaACDry
156 #define MIDEA_AC_AUTO kMideaACAuto
157 #define MIDEA_AC_HEAT kMideaACHeat
158 #define MIDEA_AC_FAN kMideaACFan
159 #define MIDEA_AC_FAN_AUTO kMideaACFanAuto
160 #define MIDEA_AC_FAN_LOW kMideaACFanLow
161 #define MIDEA_AC_FAN_MED kMideaACFanMed
162 #define MIDEA_AC_FAN_HI kMideaACFanHigh
163 #define MIDEA_AC_POWER kMideaACPower
164 #define MIDEA_AC_SLEEP kMideaACSleep
165 #define MIDEA_AC_MIN_TEMP_F kMideaACMinTempF
166 #define MIDEA_AC_MAX_TEMP_F kMideaACMaxTempF
167 #define MIDEA_AC_MIN_TEMP_C kMideaACMinTempC
168 #define MIDEA_AC_MAX_TEMP_C kMideaACMaxTempC
169 
170 // Classes
173 class IRMideaAC {
174  public:
175  explicit IRMideaAC(const uint16_t pin, const bool inverted = false,
176  const bool use_modulation = true);
177  void stateReset(void);
178 #if SEND_MIDEA
179  void send(const uint16_t repeat = kMideaMinRepeat);
184  int8_t calibrate(void) { return _irsend.calibrate(); }
185 #endif // SEND_MIDEA
186  void begin(void);
187  void on(void);
188  void off(void);
189  void setPower(const bool on);
190  bool getPower(void) const;
191  bool getUseCelsius(void) const;
192  void setUseCelsius(const bool celsius);
193  void setTemp(const uint8_t temp, const bool useCelsius = false);
194  uint8_t getTemp(const bool useCelsius = false) const;
195  void setSensorTemp(const uint8_t temp, const bool useCelsius = false);
196  uint8_t getSensorTemp(const bool useCelsius = false) const;
197  void setEnableSensorTemp(const bool on);
198  bool getEnableSensorTemp(void) const;
199  void setFan(const uint8_t fan);
200  uint8_t getFan(void) const;
201  void setMode(const uint8_t mode);
202  uint8_t getMode(void) const;
203  void setRaw(const uint64_t newState);
204  uint64_t getRaw(void);
205  static bool validChecksum(const uint64_t state);
206  void setSleep(const bool on);
207  bool getSleep(void) const;
208  bool isSwingVToggle(void) const;
209  void setSwingVToggle(const bool on);
210  bool getSwingVToggle(void);
211  #if KAYSUN_AC
212  bool isSwingVStep(void) const;
213  void setSwingVStep(const bool on);
214  bool getSwingVStep(void);
215  #endif // KAYSUN_AC
216  bool isEconoToggle(void) const;
217  void setEconoToggle(const bool on);
218  bool getEconoToggle(void);
219  bool isTurboToggle(void) const;
220  void setTurboToggle(const bool on);
221  bool getTurboToggle(void);
222  bool isLightToggle(void) const;
223  void setLightToggle(const bool on);
224  bool getLightToggle(void);
225  bool isCleanToggle(void) const;
226  void setCleanToggle(const bool on);
227  bool getCleanToggle(void);
228  bool is8CHeatToggle(void) const;
229  void set8CHeatToggle(const bool on);
230  bool get8CHeatToggle(void);
231  bool isQuiet(void) const;
232  void setQuiet(const bool on);
233  void setQuiet(const bool on, const bool prev);
234  bool getQuiet(void) const;
235  uint8_t getType(void) const;
236  bool isOnTimerEnabled(void) const;
237  uint16_t getOnTimer(void) const;
238  void setOnTimer(const uint16_t mins);
239  bool isOffTimerEnabled(void) const;
240  uint16_t getOffTimer(void) const;
241  void setOffTimer(const uint16_t mins);
242  static uint8_t convertMode(const stdAc::opmode_t mode);
243  static uint8_t convertFan(const stdAc::fanspeed_t speed);
244  static stdAc::opmode_t toCommonMode(const uint8_t mode);
245  static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed);
246  stdAc::state_t toCommon(const stdAc::state_t *prev = NULL);
247  String toString(void);
248 #ifndef UNIT_TEST
249 
250  private:
252 #else // UNIT_TEST
253  IRsendTest _irsend;
255 #endif // UNIT_TEST
262  bool _Quiet;
265  #if KAYSUN_AC
267  #endif // KAYSUN_AC
269  void checksum(void);
270  static uint8_t calcChecksum(const uint64_t state);
271  void setType(const uint8_t type);
272 };
273 
274 #endif // IR_MIDEA_H_
IRMideaAC::setOnTimer
void setOnTimer(const uint16_t mins)
Set the value of the On Timer.
Definition: ir_Midea.cpp:567
IRMideaAC::getType
uint8_t getType(void) const
Get the message type setting of the A/C message.
Definition: ir_Midea.cpp:529
IRMideaAC::setQuiet
void setQuiet(const bool on)
Set the Quiet (Silent) mode for the next send.
Definition: ir_Midea.cpp:480
MideaProtocol::Sum
uint8_t Sum
Definition: ir_Midea.h:74
kMideaACMinTempF
const uint8_t kMideaACMinTempF
Fahrenheit.
Definition: ir_Midea.h:108
IRMideaAC::begin
void begin(void)
Set up hardware to be able to send a message.
Definition: ir_Midea.cpp:117
IRMideaAC::toCommonFanSpeed
static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed)
Convert a native fan speed into its stdAc equivalent.
Definition: ir_Midea.cpp:642
IRMideaAC::setSleep
void setSleep(const bool on)
Set the Sleep setting of the A/C.
Definition: ir_Midea.cpp:330
IRMideaAC::on
void on(void)
Set the requested power state of the A/C to on.
Definition: ir_Midea.cpp:170
IRMideaAC::setUseCelsius
void setUseCelsius(const bool celsius)
Set the A/C unit to use Celsius natively.
Definition: ir_Midea.cpp:195
kMideaMinRepeat
const uint16_t kMideaMinRepeat
Definition: IRremoteESP8266.h:1173
IRMideaAC::_EconoToggle
bool _EconoToggle
Definition: ir_Midea.h:259
IRMideaAC::_8CHeatToggle
bool _8CHeatToggle
Definition: ir_Midea.h:260
IRMideaAC::_
MideaProtocol _
Definition: ir_Midea.h:257
IRMideaAC::setTemp
void setTemp(const uint8_t temp, const bool useCelsius=false)
Set the temperature.
Definition: ir_Midea.cpp:206
IRMideaAC::getPower
bool getPower(void) const
Get the value of the current power setting.
Definition: ir_Midea.cpp:183
IRMideaAC::calibrate
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition: ir_Midea.h:184
IRMideaAC::isOffTimerEnabled
bool isOffTimerEnabled(void) const
Is the OffTimer enabled?
Definition: ir_Midea.cpp:578
IRMideaAC::_TurboToggle
bool _TurboToggle
Definition: ir_Midea.h:268
MideaProtocol::Type
uint8_t Type
Normal, Special, or FollowMe message type.
Definition: ir_Midea.h:102
kMideaACMaxSensorTempF
const uint8_t kMideaACMaxSensorTempF
Fahrenheit (Guess only!)
Definition: ir_Midea.h:115
kMideaACTypeFollow
const uint8_t kMideaACTypeFollow
Message type.
Definition: ir_Midea.h:151
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:381
IRMideaAC::set8CHeatToggle
void set8CHeatToggle(const bool on)
Set the A/C to toggle the 8C Heat (Freeze Protect) mode for the next send.
Definition: ir_Midea.cpp:460
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:103
IRMideaAC::is8CHeatToggle
bool is8CHeatToggle(void) const
Is the current state a 8C Heat (Freeze Protect) toggle message?
Definition: ir_Midea.cpp:453
IRMideaAC::_SwingVToggle
bool _SwingVToggle
Definition: ir_Midea.h:264
kMideaACAuto
const uint8_t kMideaACAuto
Definition: ir_Midea.h:120
IRMideaAC::checksum
void checksum(void)
Calculate & set the checksum for the current internal state of the remote.
Definition: ir_Midea.cpp:522
IRMideaAC::IRMideaAC
IRMideaAC(const uint16_t pin, const bool inverted=false, const bool use_modulation=true)
Class constructor.
Definition: ir_Midea.cpp:96
kMideaACFan
const uint8_t kMideaACFan
Definition: ir_Midea.h:122
IRMideaAC::isOnTimerEnabled
bool isOnTimerEnabled(void) const
Is the OnTimer enabled?
Definition: ir_Midea.cpp:549
IRMideaAC::send
void send(const uint16_t repeat=kMideaMinRepeat)
Send the current internal state as an IR message.
Definition: ir_Midea.cpp:122
MideaProtocol::useFahrenheit
uint8_t useFahrenheit
Definition: ir_Midea.h:91
kMideaACTypeSpecial
const uint8_t kMideaACTypeSpecial
Message type.
Definition: ir_Midea.h:150
kMideaACQuietOff
const uint64_t kMideaACQuietOff
Definition: ir_Midea.h:147
IRsend.h
IRMideaAC::setType
void setType(const uint8_t type)
Set the message type setting of the A/C message.
Definition: ir_Midea.cpp:533
IRMideaAC::setTurboToggle
void setTurboToggle(const bool on)
Set the A/C to toggle the Turbo mode for the next send.
Definition: ir_Midea.cpp:398
kMideaACMaxTempF
const uint8_t kMideaACMaxTempF
Fahrenheit.
Definition: ir_Midea.h:109
IRMideaAC::getLightToggle
bool getLightToggle(void)
Definition: ir_Midea.cpp:425
IRMideaAC::getOffTimer
uint16_t getOffTimer(void) const
Get the value of the OffTimer is currently set to.
Definition: ir_Midea.cpp:584
IRsend
Class for sending all basic IR protocols.
Definition: IRsend.h:209
MideaProtocol::Power
uint8_t Power
Definition: ir_Midea.h:100
kMideaACTimerOff
const uint8_t kMideaACTimerOff
Definition: ir_Midea.h:117
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:83
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:343
IRMideaAC::isSwingVToggle
bool isSwingVToggle(void) const
Is the current state a vertical swing toggle message?
Definition: ir_Midea.cpp:348
IRMideaAC::isLightToggle
bool isLightToggle(void) const
Is the current state a Light (LED) toggle message?
Definition: ir_Midea.cpp:419
IRMideaAC::getEnableSensorTemp
bool getEnableSensorTemp(void) const
Is the remote temperature sensor enabled?
Definition: ir_Midea.cpp:292
kMideaACMaxSensorTempC
const uint8_t kMideaACMaxSensorTempC
Celsius.
Definition: ir_Midea.h:113
String
std::string String
Definition: IRremoteESP8266.h:1373
kSwingVToggleStr
kSwingVToggleStr
Definition: ir_Midea.h:137
IRMideaAC::getSwingVToggle
bool getSwingVToggle(void)
Definition: ir_Midea.cpp:355
MideaProtocol::Fan
uint8_t Fan
Definition: ir_Midea.h:95
MideaProtocol::Mode
uint8_t Mode
Definition: ir_Midea.h:94
IRMideaAC::getFan
uint8_t getFan(void) const
Get the current fan speed setting.
Definition: ir_Midea.cpp:302
IRMideaAC::getCleanToggle
bool getCleanToggle(void)
Definition: ir_Midea.cpp:445
kMideaACToggleTurbo
const uint64_t kMideaACToggleTurbo
Definition: ir_Midea.h:141
IRMideaAC::off
void off(void)
Set the requested power state of the A/C to off.
Definition: ir_Midea.cpp:173
IRMideaAC::_CleanToggle
bool _CleanToggle
Definition: ir_Midea.h:258
IRMideaAC::getTurboToggle
bool getTurboToggle(void)
Definition: ir_Midea.cpp:408
IRremoteESP8266.h
IRMideaAC::setOffTimer
void setOffTimer(const uint16_t mins)
Set the value of the Off Timer.
Definition: ir_Midea.cpp:591
kMideaACHeat
const uint8_t kMideaACHeat
Definition: ir_Midea.h:121
MideaProtocol::OffTimer
uint8_t OffTimer
Nr of Half hours. Off is 0b111111.
Definition: ir_Midea.h:87
kMideaACSwingVStep
const uint64_t kMideaACSwingVStep
Definition: ir_Midea.h:130
IRMideaAC::isCleanToggle
bool isCleanToggle(void) const
Is the current state a Self-Clean toggle message?
Definition: ir_Midea.cpp:432
IRMideaAC::isSwingVStep
bool isSwingVStep(void) const
Is the current state a step vertical swing message?
Definition: ir_Midea.cpp:367
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:415
IRMideaAC::getUseCelsius
bool getUseCelsius(void) const
Is the device currently using Celsius or the Fahrenheit temp scale?
Definition: ir_Midea.cpp:189
IRMideaAC::getOnTimer
uint16_t getOnTimer(void) const
Get the value of the OnTimer is currently set to.
Definition: ir_Midea.cpp:556
IRMideaAC::toCommonMode
static stdAc::opmode_t toCommonMode(const uint8_t mode)
Convert a native mode into its stdAc equivalent.
Definition: ir_Midea.cpp:629
kMideaACFanAuto
const uint8_t kMideaACFanAuto
Definition: ir_Midea.h:123
kMideaACToggleSwingV
const uint64_t kMideaACToggleSwingV
Definition: ir_Midea.h:129
IRMideaAC::_irsend
IRsend _irsend
Instance of the IR send class.
Definition: ir_Midea.h:251
MideaProtocol::remote_state
uint64_t remote_state
The state in native IR code form.
Definition: ir_Midea.h:70
IRMideaAC
Class for handling detailed Midea A/C messages.
Definition: ir_Midea.h:173
kMideaACMinSensorTempC
const uint8_t kMideaACMinSensorTempC
Celsius.
Definition: ir_Midea.h:112
IRMideaAC::setRaw
void setRaw(const uint64_t newState)
Set the internal state from a valid code for this protocol.
Definition: ir_Midea.cpp:167
IRMideaAC::getSensorTemp
uint8_t getSensorTemp(const bool useCelsius=false) const
Get the current Sensor temperature setting.
Definition: ir_Midea.cpp:265
IRMideaAC::setMode
void setMode(const uint8_t mode)
Set the operating mode of the A/C.
Definition: ir_Midea.cpp:314
IRMideaAC::calcChecksum
static uint8_t calcChecksum(const uint64_t state)
Calculate the checksum for a given state.
Definition: ir_Midea.cpp:502
IRMideaAC::_Quiet_prev
bool _Quiet_prev
Definition: ir_Midea.h:263
IRMideaAC::getSleep
bool getSleep(void) const
Get the Sleep setting of the A/C.
Definition: ir_Midea.cpp:336
kMideaACSensorTempOnTimerOff
const uint8_t kMideaACSensorTempOnTimerOff
Definition: ir_Midea.h:116
IRMideaAC::getMode
uint8_t getMode(void) const
Get the operating mode setting of the A/C.
Definition: ir_Midea.cpp:308
kMideaACToggleEcono
const uint64_t kMideaACToggleEcono
Definition: ir_Midea.h:139
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:615
MideaProtocol::Sleep
uint8_t Sleep
Definition: ir_Midea.h:99
IRMideaAC::isQuiet
bool isQuiet(void) const
Is the current state a Quiet(Silent) message?
Definition: ir_Midea.cpp:473
kMideaACFanMed
const uint8_t kMideaACFanMed
Definition: ir_Midea.h:125
MideaProtocol::disableSensor
uint8_t disableSensor
Definition: ir_Midea.h:84
IRMideaAC::getRaw
uint64_t getRaw(void)
Get a copy of the internal state/code for this protocol.
Definition: ir_Midea.cpp:160
kMideaACMinTempC
const uint8_t kMideaACMinTempC
Celsius.
Definition: ir_Midea.h:110
IRMideaAC::setSwingVStep
void setSwingVStep(const bool on)
Set the A/C to step the vertical swing for the next send.
Definition: ir_Midea.cpp:363
IRMideaAC::getSwingVStep
bool getSwingVStep(void)
Definition: ir_Midea.cpp:373
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:602
IRMideaAC::getQuiet
bool getQuiet(void) const
Definition: ir_Midea.cpp:492
IRMideaAC::setCleanToggle
void setCleanToggle(const bool on)
Set the A/C to toggle the Self Clean mode for the next send.
Definition: ir_Midea.cpp:439
kMideaACToggleLight
const uint64_t kMideaACToggleLight
Definition: ir_Midea.h:140
kMideaACToggle8CHeat
const uint64_t kMideaACToggle8CHeat
Definition: ir_Midea.h:145
kMideaACFanHigh
const uint8_t kMideaACFanHigh
Definition: ir_Midea.h:126
IRMideaAC::_Quiet
bool _Quiet
Definition: ir_Midea.h:262
IRMideaAC::get8CHeatToggle
bool get8CHeatToggle(void)
Definition: ir_Midea.cpp:466
IRMideaAC::getEconoToggle
bool getEconoToggle(void)
Definition: ir_Midea.cpp:391
kMideaACToggleSelfClean
const uint64_t kMideaACToggleSelfClean
Definition: ir_Midea.h:143
kMideaACMaxTempC
const uint8_t kMideaACMaxTempC
Celsius.
Definition: ir_Midea.h:111
IRMideaAC::setEnableSensorTemp
void setEnableSensorTemp(const bool on)
Enable the remote's Sensor temperature.
Definition: ir_Midea.cpp:279
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:654
IRMideaAC::setSensorTemp
void setSensorTemp(const uint8_t temp, const bool useCelsius=false)
Set the Sensor temperature.
Definition: ir_Midea.cpp:242
kMideaACDry
const uint8_t kMideaACDry
Definition: ir_Midea.h:119
IRMideaAC::isTurboToggle
bool isTurboToggle(void) const
Is the current state a Turbo toggle message?
Definition: ir_Midea.cpp:402
IRMideaAC::toString
String toString(void)
Convert the current internal state into a human readable string.
Definition: ir_Midea.cpp:691
IRMideaAC::validChecksum
static bool validChecksum(const uint64_t state)
Verify the checksum is valid for a given state.
Definition: ir_Midea.cpp:517
kMideaACMinSensorTempF
const uint8_t kMideaACMinSensorTempF
Fahrenheit.
Definition: ir_Midea.h:114
IRMideaAC::_LightToggle
bool _LightToggle
Definition: ir_Midea.h:261
kMideaACCool
const uint8_t kMideaACCool
Definition: ir_Midea.h:118
MideaProtocol
Native representation of a Midea A/C message.
Definition: ir_Midea.h:69
IRMideaAC::setPower
void setPower(const bool on)
Change the power setting.
Definition: ir_Midea.cpp:177
MideaProtocol::BeepDisable
uint8_t BeepDisable
0 = no beep in follow me messages, 1 = beep.
Definition: ir_Midea.h:88
IRMideaAC::stateReset
void stateReset(void)
Reset the state of the remote to a known good state/sequence.
Definition: ir_Midea.cpp:101
stdAc::state_t
Structure to hold a common A/C state.
Definition: IRsend.h:97
kMideaACFanLow
const uint8_t kMideaACFanLow
Definition: ir_Midea.h:124
IRMideaAC::_SwingVStep
bool _SwingVStep
Definition: ir_Midea.h:266
IRMideaAC::getTemp
uint8_t getTemp(const bool useCelsius=false) const
Get the current temperature setting.
Definition: ir_Midea.cpp:227
MideaProtocol::Temp
uint8_t Temp
Definition: ir_Midea.h:90
IRMideaAC::setFan
void setFan(const uint8_t fan)
Set the speed of the fan.
Definition: ir_Midea.cpp:296
kMideaACTypeCommand
const uint8_t kMideaACTypeCommand
Message type.
Definition: ir_Midea.h:149
kMideaACQuietOn
const uint64_t kMideaACQuietOn
Definition: ir_Midea.h:146
IRMideaAC::isEconoToggle
bool isEconoToggle(void) const
Is the current state an Econo (energy saver) toggle message?
Definition: ir_Midea.cpp:385
stdAc::opmode_t
opmode_t
Common A/C settings for A/C operating modes.
Definition: IRsend.h:46