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 2100 X (MIDEA)
27 // Brand: Trotec, Model: TROTEC PAC 3900 X (MIDEA)
28 // Brand: Trotec, Model: RG57H(B)/BGE remote (MIDEA)
29 // Brand: Trotec, Model: RG57H3(B)/BGCEF-M remote (MIDEA)
30 // Brand: Lennox, Model: RG57A6/BGEFU1 remote (MIDEA)
31 // Brand: Lennox, Model: MWMA009S4-3P A/C (MIDEA)
32 // Brand: Lennox, Model: MWMA012S4-3P A/C (MIDEA)
33 // Brand: Lennox, Model: MCFA indoor split A/C (MIDEA)
34 // Brand: Lennox, Model: MCFB indoor split A/C (MIDEA)
35 // Brand: Lennox, Model: MMDA indoor split A/C (MIDEA)
36 // Brand: Lennox, Model: MMDB indoor split A/C (MIDEA)
37 // Brand: Lennox, Model: MWMA indoor split A/C (MIDEA)
38 // Brand: Lennox, Model: MWMB indoor split A/C (MIDEA)
39 // Brand: Lennox, Model: M22A indoor split A/C (MIDEA)
40 // Brand: Lennox, Model: M33A indoor split A/C (MIDEA)
41 // Brand: Lennox, Model: M33B indoor split A/C (MIDEA)
42 
43 #ifndef IR_MIDEA_H_
44 #define IR_MIDEA_H_
45 
46 #define __STDC_LIMIT_MACROS
47 #include <stdint.h>
48 #ifdef ARDUINO
49 #include <Arduino.h>
50 #endif
51 #include "IRremoteESP8266.h"
52 #include "IRsend.h"
53 #ifdef UNIT_TEST
54 #include "IRsend_test.h"
55 #endif
56 
61 //
62 // #define DANBY_DAC true
63 // #define KAYSUN_AC true
64 
69 
72  uint64_t remote_state;
73  // only use 48bits
74  struct {
75  // Byte 0
76  uint8_t Sum;
77  // Byte 1 (value=0xFF when not in use.)
78  // This byte gets dual usage as Sensor Temp and On Timer
79  // Depending on "Type" below.
80  // When in "OnTimer", the nr of half hours is stored with mask 0b01111110
81  // i.e.
82  // uint8_t :1;
83  // uint8_t OnTimerHalfHours:6;
84  // uint8_t :1;
85  uint8_t SensorTemp:7;
86  uint8_t disableSensor:1;
87  // Byte 2 (value=0xFF when not in use.)
88  uint8_t :1; // 0b1
89  uint8_t OffTimer:6;
90  uint8_t BeepDisable:1;
91  // Byte 3
92  uint8_t Temp:5;
93  uint8_t useFahrenheit:1;
94  uint8_t :0;
95  // Byte 4
96  uint8_t Mode:3;
97  uint8_t Fan:2;
100  uint8_t :1;
101  uint8_t Sleep:1;
102  uint8_t Power:1;
103  // Byte 5
104  uint8_t Type:3;
105  uint8_t Header:5;
106  };
107 };
108 
109 // Constants
110 const uint8_t kMideaACMinTempF = 62;
111 const uint8_t kMideaACMaxTempF = 86;
112 const uint8_t kMideaACMinTempC = 17;
113 const uint8_t kMideaACMaxTempC = 30;
114 const uint8_t kMideaACMinSensorTempC = 0;
115 const uint8_t kMideaACMaxSensorTempC = 37;
116 const uint8_t kMideaACMinSensorTempF = 32;
117 const uint8_t kMideaACMaxSensorTempF = 99;
118 const uint8_t kMideaACSensorTempOnTimerOff = 0b1111111;
119 const uint8_t kMideaACTimerOff = 0b111111;
120 const uint8_t kMideaACCool = 0; // 0b000
121 const uint8_t kMideaACDry = 1; // 0b001
122 const uint8_t kMideaACAuto = 2; // 0b010
123 const uint8_t kMideaACHeat = 3; // 0b011
124 const uint8_t kMideaACFan = 4; // 0b100
125 const uint8_t kMideaACFanAuto = 0; // 0b00
126 const uint8_t kMideaACFanLow = 1; // 0b01
127 const uint8_t kMideaACFanMed = 2; // 0b10
128 const uint8_t kMideaACFanHigh = 3; // 0b11
129 #if KAYSUN_AC
130  // For Kaysun AC units, Toggle SwingV is 0xA202FFFFFF7E
131  const uint64_t kMideaACToggleSwingV = 0xA202FFFFFF7E;
132  const uint64_t kMideaACSwingVStep = 0xA201FFFFFF7C;
133 #else // KAYSUN_AC
134  const uint64_t kMideaACToggleSwingV = 0xA201FFFFFF7C;
135 #endif // KAYSUN_AC
136 #if DANBY_DAC
137  // For Danby DAC unit, the Ionizer toggle is the same as ToggleSwingV
138  // const uint64_t kMideaACToggleIonizer = 0xA201FFFFFF7C;
139  kSwingVToggleStr = kIonStr;
140 #endif // DANBY_DAC
141 const uint64_t kMideaACToggleEcono = 0xA202FFFFFF7E;
142 const uint64_t kMideaACToggleLight = 0xA208FFFFFF75;
143 const uint64_t kMideaACToggleTurbo = 0xA209FFFFFF74;
144 // Mode must be Auto, Cool, or Dry
145 const uint64_t kMideaACToggleSelfClean = 0xA20DFFFFFF70;
146 // 8C Heat AKA Freeze Protection
147 const uint64_t kMideaACToggle8CHeat = 0xA20FFFFFFF73; // Only in Heat
148 const uint64_t kMideaACQuietOn = 0xA212FFFFFF6E;
149 const uint64_t kMideaACQuietOff = 0xA213FFFFFF6F;
150 
151 const uint8_t kMideaACTypeCommand = 0b001;
152 const uint8_t kMideaACTypeSpecial = 0b010;
153 const uint8_t kMideaACTypeFollow = 0b100;
154 
155 // Legacy defines. (Deprecated)
156 #define MIDEA_AC_COOL kMideaACCool
157 #define MIDEA_AC_DRY kMideaACDry
158 #define MIDEA_AC_AUTO kMideaACAuto
159 #define MIDEA_AC_HEAT kMideaACHeat
160 #define MIDEA_AC_FAN kMideaACFan
161 #define MIDEA_AC_FAN_AUTO kMideaACFanAuto
162 #define MIDEA_AC_FAN_LOW kMideaACFanLow
163 #define MIDEA_AC_FAN_MED kMideaACFanMed
164 #define MIDEA_AC_FAN_HI kMideaACFanHigh
165 #define MIDEA_AC_POWER kMideaACPower
166 #define MIDEA_AC_SLEEP kMideaACSleep
167 #define MIDEA_AC_MIN_TEMP_F kMideaACMinTempF
168 #define MIDEA_AC_MAX_TEMP_F kMideaACMaxTempF
169 #define MIDEA_AC_MIN_TEMP_C kMideaACMinTempC
170 #define MIDEA_AC_MAX_TEMP_C kMideaACMaxTempC
171 
172 // Classes
175 class IRMideaAC {
176  public:
177  explicit IRMideaAC(const uint16_t pin, const bool inverted = false,
178  const bool use_modulation = true);
179  void stateReset(void);
180 #if SEND_MIDEA
181  void send(const uint16_t repeat = kMideaMinRepeat);
186  int8_t calibrate(void) { return _irsend.calibrate(); }
187 #endif // SEND_MIDEA
188  void begin(void);
189  void on(void);
190  void off(void);
191  void setPower(const bool on);
192  bool getPower(void) const;
193  bool getUseCelsius(void) const;
194  void setUseCelsius(const bool celsius);
195  void setTemp(const uint8_t temp, const bool useCelsius = false);
196  uint8_t getTemp(const bool useCelsius = false) const;
197  void setSensorTemp(const uint8_t temp, const bool useCelsius = false);
198  uint8_t getSensorTemp(const bool useCelsius = false) const;
199  void setEnableSensorTemp(const bool on);
200  bool getEnableSensorTemp(void) const;
201  void setFan(const uint8_t fan);
202  uint8_t getFan(void) const;
203  void setMode(const uint8_t mode);
204  uint8_t getMode(void) const;
205  void setRaw(const uint64_t newState);
206  uint64_t getRaw(void);
207  static bool validChecksum(const uint64_t state);
208  void setSleep(const bool on);
209  bool getSleep(void) const;
210  bool isSwingVToggle(void) const;
211  void setSwingVToggle(const bool on);
212  bool getSwingVToggle(void);
213  #if KAYSUN_AC
214  bool isSwingVStep(void) const;
215  void setSwingVStep(const bool on);
216  bool getSwingVStep(void);
217  #endif // KAYSUN_AC
218  bool isEconoToggle(void) const;
219  void setEconoToggle(const bool on);
220  bool getEconoToggle(void);
221  bool isTurboToggle(void) const;
222  void setTurboToggle(const bool on);
223  bool getTurboToggle(void);
224  bool isLightToggle(void) const;
225  void setLightToggle(const bool on);
226  bool getLightToggle(void);
227  bool isCleanToggle(void) const;
228  void setCleanToggle(const bool on);
229  bool getCleanToggle(void);
230  bool is8CHeatToggle(void) const;
231  void set8CHeatToggle(const bool on);
232  bool get8CHeatToggle(void);
233  bool isQuiet(void) const;
234  void setQuiet(const bool on);
235  void setQuiet(const bool on, const bool prev);
236  bool getQuiet(void) const;
237  uint8_t getType(void) const;
238  bool isOnTimerEnabled(void) const;
239  uint16_t getOnTimer(void) const;
240  void setOnTimer(const uint16_t mins);
241  bool isOffTimerEnabled(void) const;
242  uint16_t getOffTimer(void) const;
243  void setOffTimer(const uint16_t mins);
244  static uint8_t convertMode(const stdAc::opmode_t mode);
245  static uint8_t convertFan(const stdAc::fanspeed_t speed);
246  static stdAc::opmode_t toCommonMode(const uint8_t mode);
247  static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed);
248  stdAc::state_t toCommon(const stdAc::state_t *prev = NULL);
249  String toString(void);
250 #ifndef UNIT_TEST
251 
252  private:
254 #else // UNIT_TEST
255  IRsendTest _irsend;
257 #endif // UNIT_TEST
264  bool _Quiet;
267  #if KAYSUN_AC
269  #endif // KAYSUN_AC
271  void checksum(void);
272  static uint8_t calcChecksum(const uint64_t state);
273  void setType(const uint8_t type);
274 };
275 
276 #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:76
kMideaACMinTempF
const uint8_t kMideaACMinTempF
Fahrenheit.
Definition: ir_Midea.h:110
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:1304
IRMideaAC::_EconoToggle
bool _EconoToggle
Definition: ir_Midea.h:261
IRMideaAC::_8CHeatToggle
bool _8CHeatToggle
Definition: ir_Midea.h:262
IRMideaAC::_
MideaProtocol _
Definition: ir_Midea.h:259
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:186
IRMideaAC::isOffTimerEnabled
bool isOffTimerEnabled(void) const
Is the OffTimer enabled?
Definition: ir_Midea.cpp:578
IRMideaAC::_TurboToggle
bool _TurboToggle
Definition: ir_Midea.h:270
MideaProtocol::Type
uint8_t Type
Normal, Special, or FollowMe message type.
Definition: ir_Midea.h:104
kMideaACMaxSensorTempF
const uint8_t kMideaACMaxSensorTempF
Fahrenheit (Guess only!)
Definition: ir_Midea.h:117
kMideaACTypeFollow
const uint8_t kMideaACTypeFollow
Message type.
Definition: ir_Midea.h:153
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:61
MideaProtocol::Header
uint8_t Header
Typically 0b10100.
Definition: ir_Midea.h:105
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:266
kMideaACAuto
const uint8_t kMideaACAuto
Definition: ir_Midea.h:122
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:124
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:93
kMideaACTypeSpecial
const uint8_t kMideaACTypeSpecial
Message type.
Definition: ir_Midea.h:152
kMideaACQuietOff
const uint64_t kMideaACQuietOff
Definition: ir_Midea.h:149
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:111
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:237
MideaProtocol::Power
uint8_t Power
Definition: ir_Midea.h:102
kMideaACTimerOff
const uint8_t kMideaACTimerOff
Definition: ir_Midea.h:119
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:85
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:115
String
std::string String
Definition: IRremoteESP8266.h:1521
kSwingVToggleStr
kSwingVToggleStr
Definition: ir_Midea.h:139
IRMideaAC::getSwingVToggle
bool getSwingVToggle(void)
Definition: ir_Midea.cpp:355
MideaProtocol::Fan
uint8_t Fan
Definition: ir_Midea.h:97
MideaProtocol::Mode
uint8_t Mode
Definition: ir_Midea.h:96
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:143
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:260
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:123
MideaProtocol::OffTimer
uint8_t OffTimer
Nr of Half hours. Off is 0b111111.
Definition: ir_Midea.h:89
kMideaACSwingVStep
const uint64_t kMideaACSwingVStep
Definition: ir_Midea.h:132
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:125
kMideaACToggleSwingV
const uint64_t kMideaACToggleSwingV
Definition: ir_Midea.h:131
IRMideaAC::_irsend
IRsend _irsend
Instance of the IR send class.
Definition: ir_Midea.h:253
MideaProtocol::remote_state
uint64_t remote_state
The state in native IR code form.
Definition: ir_Midea.h:72
IRMideaAC
Class for handling detailed Midea A/C messages.
Definition: ir_Midea.h:175
kMideaACMinSensorTempC
const uint8_t kMideaACMinSensorTempC
Celsius.
Definition: ir_Midea.h:114
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:265
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:118
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:141
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:101
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:127
MideaProtocol::disableSensor
uint8_t disableSensor
Definition: ir_Midea.h:86
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:112
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:142
kMideaACToggle8CHeat
const uint64_t kMideaACToggle8CHeat
Definition: ir_Midea.h:147
kMideaACFanHigh
const uint8_t kMideaACFanHigh
Definition: ir_Midea.h:128
IRMideaAC::_Quiet
bool _Quiet
Definition: ir_Midea.h:264
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:145
kMideaACMaxTempC
const uint8_t kMideaACMaxTempC
Celsius.
Definition: ir_Midea.h:113
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:121
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:692
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:116
IRMideaAC::_LightToggle
bool _LightToggle
Definition: ir_Midea.h:263
kMideaACCool
const uint8_t kMideaACCool
Definition: ir_Midea.h:120
MideaProtocol
Native representation of a Midea A/C message.
Definition: ir_Midea.h:71
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:90
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:114
kMideaACFanLow
const uint8_t kMideaACFanLow
Definition: ir_Midea.h:126
IRMideaAC::_SwingVStep
bool _SwingVStep
Definition: ir_Midea.h:268
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:92
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:151
kMideaACQuietOn
const uint64_t kMideaACQuietOn
Definition: ir_Midea.h:148
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:49