Go to the documentation of this file.
46 #define __STDC_LIMIT_MACROS
54 #include "IRsend_test.h"
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
177 explicit IRMideaAC(
const uint16_t pin,
const bool inverted =
false,
178 const bool use_modulation =
true);
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);
201 void setFan(
const uint8_t fan);
202 uint8_t
getFan(
void)
const;
203 void setMode(
const uint8_t mode);
205 void setRaw(
const uint64_t newState);
235 void setQuiet(
const bool on,
const bool prev);
273 void setType(
const uint8_t type);
276 #endif // IR_MIDEA_H_
void setOnTimer(const uint16_t mins)
Set the value of the On Timer.
Definition: ir_Midea.cpp:567
uint8_t getType(void) const
Get the message type setting of the A/C message.
Definition: ir_Midea.cpp:529
void setQuiet(const bool on)
Set the Quiet (Silent) mode for the next send.
Definition: ir_Midea.cpp:480
uint8_t Sum
Definition: ir_Midea.h:76
const uint8_t kMideaACMinTempF
Fahrenheit.
Definition: ir_Midea.h:110
void begin(void)
Set up hardware to be able to send a message.
Definition: ir_Midea.cpp:117
static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed)
Convert a native fan speed into its stdAc equivalent.
Definition: ir_Midea.cpp:642
void setSleep(const bool on)
Set the Sleep setting of the A/C.
Definition: ir_Midea.cpp:330
void on(void)
Set the requested power state of the A/C to on.
Definition: ir_Midea.cpp:170
void setUseCelsius(const bool celsius)
Set the A/C unit to use Celsius natively.
Definition: ir_Midea.cpp:195
const uint16_t kMideaMinRepeat
Definition: IRremoteESP8266.h:1304
bool _EconoToggle
Definition: ir_Midea.h:261
bool _8CHeatToggle
Definition: ir_Midea.h:262
MideaProtocol _
Definition: ir_Midea.h:259
void setTemp(const uint8_t temp, const bool useCelsius=false)
Set the temperature.
Definition: ir_Midea.cpp:206
bool getPower(void) const
Get the value of the current power setting.
Definition: ir_Midea.cpp:183
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition: ir_Midea.h:186
bool isOffTimerEnabled(void) const
Is the OffTimer enabled?
Definition: ir_Midea.cpp:578
bool _TurboToggle
Definition: ir_Midea.h:270
uint8_t Type
Normal, Special, or FollowMe message type.
Definition: ir_Midea.h:104
const uint8_t kMideaACMaxSensorTempF
Fahrenheit (Guess only!)
Definition: ir_Midea.h:117
const uint8_t kMideaACTypeFollow
Message type.
Definition: ir_Midea.h:153
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
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
fanspeed_t
Common A/C settings for Fan Speeds.
Definition: IRsend.h:61
uint8_t Header
Typically 0b10100.
Definition: ir_Midea.h:105
bool is8CHeatToggle(void) const
Is the current state a 8C Heat (Freeze Protect) toggle message?
Definition: ir_Midea.cpp:453
bool _SwingVToggle
Definition: ir_Midea.h:266
const uint8_t kMideaACAuto
Definition: ir_Midea.h:122
void checksum(void)
Calculate & set the checksum for the current internal state of the remote.
Definition: ir_Midea.cpp:522
IRMideaAC(const uint16_t pin, const bool inverted=false, const bool use_modulation=true)
Class constructor.
Definition: ir_Midea.cpp:96
const uint8_t kMideaACFan
Definition: ir_Midea.h:124
bool isOnTimerEnabled(void) const
Is the OnTimer enabled?
Definition: ir_Midea.cpp:549
void send(const uint16_t repeat=kMideaMinRepeat)
Send the current internal state as an IR message.
Definition: ir_Midea.cpp:122
uint8_t useFahrenheit
Definition: ir_Midea.h:93
const uint8_t kMideaACTypeSpecial
Message type.
Definition: ir_Midea.h:152
const uint64_t kMideaACQuietOff
Definition: ir_Midea.h:149
void setType(const uint8_t type)
Set the message type setting of the A/C message.
Definition: ir_Midea.cpp:533
void setTurboToggle(const bool on)
Set the A/C to toggle the Turbo mode for the next send.
Definition: ir_Midea.cpp:398
const uint8_t kMideaACMaxTempF
Fahrenheit.
Definition: ir_Midea.h:111
bool getLightToggle(void)
Definition: ir_Midea.cpp:425
uint16_t getOffTimer(void) const
Get the value of the OffTimer is currently set to.
Definition: ir_Midea.cpp:584
Class for sending all basic IR protocols.
Definition: IRsend.h:237
uint8_t Power
Definition: ir_Midea.h:102
const uint8_t kMideaACTimerOff
Definition: ir_Midea.h:119
int8_t calibrate(uint16_t hz=38000U)
Calculate & set any offsets to account for execution times during sending.
Definition: IRsend.cpp:207
uint8_t SensorTemp
Degrees or OnTimer.
Definition: ir_Midea.h:85
void setSwingVToggle(const bool on)
Set the A/C to toggle the vertical swing toggle for the next send.
Definition: ir_Midea.cpp:343
bool isSwingVToggle(void) const
Is the current state a vertical swing toggle message?
Definition: ir_Midea.cpp:348
bool isLightToggle(void) const
Is the current state a Light (LED) toggle message?
Definition: ir_Midea.cpp:419
bool getEnableSensorTemp(void) const
Is the remote temperature sensor enabled?
Definition: ir_Midea.cpp:292
const uint8_t kMideaACMaxSensorTempC
Celsius.
Definition: ir_Midea.h:115
std::string String
Definition: IRremoteESP8266.h:1521
kSwingVToggleStr
Definition: ir_Midea.h:139
bool getSwingVToggle(void)
Definition: ir_Midea.cpp:355
uint8_t Fan
Definition: ir_Midea.h:97
uint8_t Mode
Definition: ir_Midea.h:96
uint8_t getFan(void) const
Get the current fan speed setting.
Definition: ir_Midea.cpp:302
bool getCleanToggle(void)
Definition: ir_Midea.cpp:445
const uint64_t kMideaACToggleTurbo
Definition: ir_Midea.h:143
void off(void)
Set the requested power state of the A/C to off.
Definition: ir_Midea.cpp:173
bool _CleanToggle
Definition: ir_Midea.h:260
bool getTurboToggle(void)
Definition: ir_Midea.cpp:408
void setOffTimer(const uint16_t mins)
Set the value of the Off Timer.
Definition: ir_Midea.cpp:591
const uint8_t kMideaACHeat
Definition: ir_Midea.h:123
uint8_t OffTimer
Nr of Half hours. Off is 0b111111.
Definition: ir_Midea.h:89
const uint64_t kMideaACSwingVStep
Definition: ir_Midea.h:132
bool isCleanToggle(void) const
Is the current state a Self-Clean toggle message?
Definition: ir_Midea.cpp:432
bool isSwingVStep(void) const
Is the current state a step vertical swing message?
Definition: ir_Midea.cpp:367
void setLightToggle(const bool on)
Set the A/C to toggle the Light (LED) mode for the next send.
Definition: ir_Midea.cpp:415
bool getUseCelsius(void) const
Is the device currently using Celsius or the Fahrenheit temp scale?
Definition: ir_Midea.cpp:189
uint16_t getOnTimer(void) const
Get the value of the OnTimer is currently set to.
Definition: ir_Midea.cpp:556
static stdAc::opmode_t toCommonMode(const uint8_t mode)
Convert a native mode into its stdAc equivalent.
Definition: ir_Midea.cpp:629
const uint8_t kMideaACFanAuto
Definition: ir_Midea.h:125
const uint64_t kMideaACToggleSwingV
Definition: ir_Midea.h:131
IRsend _irsend
Instance of the IR send class.
Definition: ir_Midea.h:253
uint64_t remote_state
The state in native IR code form.
Definition: ir_Midea.h:72
Class for handling detailed Midea A/C messages.
Definition: ir_Midea.h:175
const uint8_t kMideaACMinSensorTempC
Celsius.
Definition: ir_Midea.h:114
void setRaw(const uint64_t newState)
Set the internal state from a valid code for this protocol.
Definition: ir_Midea.cpp:167
uint8_t getSensorTemp(const bool useCelsius=false) const
Get the current Sensor temperature setting.
Definition: ir_Midea.cpp:265
void setMode(const uint8_t mode)
Set the operating mode of the A/C.
Definition: ir_Midea.cpp:314
static uint8_t calcChecksum(const uint64_t state)
Calculate the checksum for a given state.
Definition: ir_Midea.cpp:502
bool _Quiet_prev
Definition: ir_Midea.h:265
bool getSleep(void) const
Get the Sleep setting of the A/C.
Definition: ir_Midea.cpp:336
const uint8_t kMideaACSensorTempOnTimerOff
Definition: ir_Midea.h:118
uint8_t getMode(void) const
Get the operating mode setting of the A/C.
Definition: ir_Midea.cpp:308
const uint64_t kMideaACToggleEcono
Definition: ir_Midea.h:141
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
uint8_t Sleep
Definition: ir_Midea.h:101
bool isQuiet(void) const
Is the current state a Quiet(Silent) message?
Definition: ir_Midea.cpp:473
const uint8_t kMideaACFanMed
Definition: ir_Midea.h:127
uint8_t disableSensor
Definition: ir_Midea.h:86
uint64_t getRaw(void)
Get a copy of the internal state/code for this protocol.
Definition: ir_Midea.cpp:160
const uint8_t kMideaACMinTempC
Celsius.
Definition: ir_Midea.h:112
void setSwingVStep(const bool on)
Set the A/C to step the vertical swing for the next send.
Definition: ir_Midea.cpp:363
bool getSwingVStep(void)
Definition: ir_Midea.cpp:373
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a stdAc::opmode_t enum into its native mode.
Definition: ir_Midea.cpp:602
bool getQuiet(void) const
Definition: ir_Midea.cpp:492
void setCleanToggle(const bool on)
Set the A/C to toggle the Self Clean mode for the next send.
Definition: ir_Midea.cpp:439
const uint64_t kMideaACToggleLight
Definition: ir_Midea.h:142
const uint64_t kMideaACToggle8CHeat
Definition: ir_Midea.h:147
const uint8_t kMideaACFanHigh
Definition: ir_Midea.h:128
bool _Quiet
Definition: ir_Midea.h:264
bool get8CHeatToggle(void)
Definition: ir_Midea.cpp:466
bool getEconoToggle(void)
Definition: ir_Midea.cpp:391
const uint64_t kMideaACToggleSelfClean
Definition: ir_Midea.h:145
const uint8_t kMideaACMaxTempC
Celsius.
Definition: ir_Midea.h:113
void setEnableSensorTemp(const bool on)
Enable the remote's Sensor temperature.
Definition: ir_Midea.cpp:279
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
void setSensorTemp(const uint8_t temp, const bool useCelsius=false)
Set the Sensor temperature.
Definition: ir_Midea.cpp:242
const uint8_t kMideaACDry
Definition: ir_Midea.h:121
bool isTurboToggle(void) const
Is the current state a Turbo toggle message?
Definition: ir_Midea.cpp:402
String toString(void)
Convert the current internal state into a human readable string.
Definition: ir_Midea.cpp:692
static bool validChecksum(const uint64_t state)
Verify the checksum is valid for a given state.
Definition: ir_Midea.cpp:517
const uint8_t kMideaACMinSensorTempF
Fahrenheit.
Definition: ir_Midea.h:116
bool _LightToggle
Definition: ir_Midea.h:263
const uint8_t kMideaACCool
Definition: ir_Midea.h:120
Native representation of a Midea A/C message.
Definition: ir_Midea.h:71
void setPower(const bool on)
Change the power setting.
Definition: ir_Midea.cpp:177
uint8_t BeepDisable
0 = no beep in follow me messages, 1 = beep.
Definition: ir_Midea.h:90
void stateReset(void)
Reset the state of the remote to a known good state/sequence.
Definition: ir_Midea.cpp:101
Structure to hold a common A/C state.
Definition: IRsend.h:114
const uint8_t kMideaACFanLow
Definition: ir_Midea.h:126
bool _SwingVStep
Definition: ir_Midea.h:268
uint8_t getTemp(const bool useCelsius=false) const
Get the current temperature setting.
Definition: ir_Midea.cpp:227
uint8_t Temp
Definition: ir_Midea.h:92
void setFan(const uint8_t fan)
Set the speed of the fan.
Definition: ir_Midea.cpp:296
const uint8_t kMideaACTypeCommand
Message type.
Definition: ir_Midea.h:151
const uint64_t kMideaACQuietOn
Definition: ir_Midea.h:148
bool isEconoToggle(void) const
Is the current state an Econo (energy saver) toggle message?
Definition: ir_Midea.cpp:385
opmode_t
Common A/C settings for A/C operating modes.
Definition: IRsend.h:49