65 explicit IRac(
const uint16_t pin,
const bool inverted =
false,
66 const bool use_modulation =
true);
71 const float degrees,
const bool celsius,
75 const bool quiet,
const bool turbo,
const bool econo,
76 const bool light,
const bool filter,
const bool clean,
77 const bool beep,
const int16_t sleep,
87 const bool quiet,
const bool turbo,
const bool econo,
88 const bool light,
const bool filter,
const bool clean,
89 const bool beep,
const int16_t sleep = -1,
90 const int16_t clock = -1);
92 static bool strToBool(
const char *str,
const bool def =
false);
93 static int16_t
strToModel(
const char *str,
const int16_t def = -1);
108 const bool ha =
false);
125 std::shared_ptr<IRrecv> _utReceiver =
nullptr;
126 std::unique_ptr<decode_results> _lastDecodeResults =
nullptr;
142 const bool light,
const bool econo,
const bool filter,
143 const int16_t sleep = -1);
160 const int16_t sleep = -1);
165 const bool econo,
const bool turbo,
const bool filter,
const bool light);
168 const uint8_t value,
bool safe =
true);
170 const uint16_t currentTime,
const uint16_t delayMinutes);
189 const bool iFeel,
const bool turbo,
const bool light,
190 const bool clean,
const int16_t sleep = -1);
203 const bool quiet,
const bool turbo,
const bool econo,
211 const bool quiet,
const bool turbo,
const bool light,
212 const bool econo,
const int16_t sleep = -1,
213 const int16_t clock = -1);
220 const bool quiet,
const bool turbo,
const bool econo);
239 const bool quiet,
const bool turbo,
const bool light,
240 const bool econo,
const bool filter,
const bool clean,
241 const bool beep,
const int16_t sleep = -1,
242 const int16_t clock = -1);
249 const bool quiet,
const bool turbo);
256 const bool quiet,
const bool turbo,
const bool light,
257 const bool econo,
const bool filter,
const bool clean,
258 const bool beep,
const int16_t sleep = -1,
259 const int16_t clock = -1);
266 const bool quiet,
const bool turbo,
267 const int16_t sleep = -1,
const int16_t clock = -1);
273 const bool turbo,
const int16_t sleep = -1);
278 const float degrees,
const float sensorTemp,
280 const int16_t clock = -1);
285 const float degrees,
const float sensorTemp,
288 const bool turbo,
const bool lighttoggle,
const bool clean);
292 const float degrees,
const bool fahrenheit,
299 const bool celsius,
const float degrees,
302 const bool quiet,
const bool turbo,
const bool econo,
303 const bool filter,
const bool clean,
const int16_t sleep = -1);
311 const bool turbo,
const bool light,
312 const int16_t sleep = -1);
319 const bool iFeel,
const bool turbo,
const bool econo,
320 const bool light,
const bool clean,
const int16_t sleep = -1);
326 const bool filter,
const int16_t sleep = -1,
327 const int16_t clock = -1);
334 const bool turbo,
const bool quiet,
const bool filter,
335 const bool clean,
const bool light,
const bool prevlight,
336 const int16_t sleep = -1);
344 const bool turbo,
const bool quiet,
const bool filter,
345 const int16_t sleep = -1);
347#if SEND_HAIER_AC_YRW02
350 const bool celsius,
const float degrees,
353 const bool quiet,
const bool filter,
354 const int16_t sleep = -1);
364 const bool on,
const bool power_toggle,
368 const bool swing_toggle,
const int16_t sleep = -1);
370#if SEND_HITACHI_AC264
375#if SEND_HITACHI_AC296
380#if SEND_HITACHI_AC344
387#if SEND_HITACHI_AC424
395 const int8_t dryGrade,
const float degrees,
397 const bool superCool,
const int16_t sleep);
404 const bool quiet,
const bool turbo,
const bool light,
405 const bool filter,
const bool clean);
417 const float degrees,
const float sensorTemp,
419 const bool iFeel,
const bool quiet,
const bool quiet_prev,
420 const bool turbo,
const bool econo,
const bool light,
421 const bool clean,
const int16_t sleep = -1);
426#if SEND_MITSUBISHI_AC
432 const bool quiet,
const int16_t clock = -1);
434#if SEND_MITSUBISHI112
442#if SEND_MITSUBISHI136
448#if SEND_MITSUBISHIHEAVY
454 const bool turbo,
const bool econo,
const bool clean);
460 const bool quiet,
const bool turbo,
const bool econo,
461 const bool filter,
const bool clean,
462 const int16_t sleep = -1);
466 const bool celsius,
const float degrees,
469 const bool turbo,
const bool econo,
const bool light,
470 const bool filter,
const int16_t sleep = -1);
477 const bool quiet,
const bool turbo,
const bool filter,
478 const int16_t clock = -1);
480#if SEND_PANASONIC_AC32
496 const bool quiet,
const bool turbo,
const bool econo,
497 const bool light,
const bool filter,
const bool clean,
498 const bool beep,
const int16_t sleep = -1,
499 const bool prevpower =
true,
const int16_t prevsleep = -1,
500 const bool forceextended =
true);
507 const int16_t sleep = -1);
515 const int16_t sleep = -1,
const int16_t clock = -1);
522 const bool turbo,
const bool light,
523 const bool filter,
const bool clean);
530 const bool quiet,
const bool turbo,
const bool light,
531 const bool econo,
const bool filter);
543 const bool light,
const int16_t sleep = -1);
549 const bool turbo,
const bool econo,
const bool filter);
559 const bool celsius,
const float degrees,
571 const bool turbo,
const bool filter,
572 const int16_t sleep = -1,
const int16_t clock = -1,
573 const bool sendNormal =
true);
580 const bool turbo,
const bool econo,
const bool light,
581 const int16_t sleep = -1);
587 const bool turbo,
const bool light,
588 const int16_t sleep = -1,
const int16_t clock = -1);
const int8_t kGpioUnused
A placeholder for not using an actual GPIO.
Definition IRac.h:59
decode_type_t
Enumerator for defining and numbering of supported IR protocol.
Definition IRremoteESP8266.h:1035
panasonic_ac_remote_model_t
Panasonic A/C model numbers.
Definition IRsend.h:187
sharp_ac_remote_model_t
Sharp A/C model numbers.
Definition IRsend.h:198
tcl_ac_remote_model_t
TCL (& Teknopoint) A/C model numbers.
Definition IRsend.h:205
lg_ac_remote_model_t
LG A/C model numbers.
Definition IRsend.h:228
fujitsu_ac_remote_model_t
Fujitsu A/C model numbers.
Definition IRsend.h:146
voltas_ac_remote_model_t
Voltas A/C model numbers.
Definition IRsend.h:211
whirlpool_ac_remote_model_t
Whirlpool A/C model numbers.
Definition IRsend.h:217
haier_ac176_remote_model_t
HAIER_AC176 A/C model numbers.
Definition IRsend.h:169
hitachi_ac1_remote_model_t
HITACHI_AC1 A/C model numbers.
Definition IRsend.h:175
gree_ac_remote_model_t
Gree A/C model numbers.
Definition IRsend.h:161
Class for handling detailed Airton 56-bit A/C messages.
Definition ir_Airton.h:73
Class for handling detailed Airwell A/C messages.
Definition ir_Airwell.h:58
Class for handling detailed Amcor A/C messages.
Definition ir_Amcor.h:88
Supports Argo A/C SAC-WREM3 IR remote protocol.
Definition ir_Argo.h:447
Supports Argo A/C SAC-WREM2 IR remote protocol.
Definition ir_Argo.h:420
Class for handling detailed Bosch144 A/C messages.
Definition ir_Bosch.h:179
Class for handling detailed Carrier 64 bit A/C messages.
Definition ir_Carrier.h:87
Class for handling detailed Coolix A/C messages.
Definition ir_Coolix.h:156
Class for handling detailed Corona A/C messages.
Definition ir_Corona.h:105
Class for handling detailed Daikin 128-bit A/C messages.
Definition ir_Daikin.h:1364
Class for handling detailed Daikin 152-bit A/C messages.
Definition ir_Daikin.h:1434
Class for handling detailed Daikin 160-bit A/C messages.
Definition ir_Daikin.h:1253
Class for handling detailed Daikin 176-bit A/C messages.
Definition ir_Daikin.h:1305
Class for handling detailed Daikin 216-bit A/C messages.
Definition ir_Daikin.h:1197
Class for handling detailed Daikin 312-bit A/C messages.
Definition ir_Daikin.h:1099
Class for handling detailed Daikin 312-bit A/C messages.
Definition ir_Daikin.h:902
Class for handling detailed Daikin 64-bit A/C messages.
Definition ir_Daikin.h:1494
Class for handling detailed Daikin 280-bit A/C messages.
Definition ir_Daikin.h:1017
Class for handling detailed Delonghi A/C messages.
Definition ir_Delonghi.h:71
Class for handling detailed EcoClim A/C 56 bit messages.
Definition ir_Ecoclim.h:82
Class for handling detailed Electra A/C messages.
Definition ir_Electra.h:114
Class for handling detailed Eurom A/C messages.
Definition ir_Eurom.h:150
Class for handling detailed Fujitsu A/C messages.
Definition ir_Fujitsu.h:179
Class for handling detailed Goodweather A/C messages.
Definition ir_Goodweather.h:98
Class for handling detailed Gree A/C messages.
Definition ir_Gree.h:154
Class for handling detailed Haier 160 bit A/C messages.
Definition ir_Haier.h:561
Class for handling detailed Haier 176 bit A/C messages.
Definition ir_Haier.h:444
Class for handling detailed Haier ACYRW02 A/C messages.
Definition ir_Haier.h:542
Class for handling detailed Haier A/C messages.
Definition ir_Haier.h:374
Class for handling detailed Hitachi 104-bit A/C messages.
Definition ir_Hitachi.h:428
Class for handling detailed Hitachi 264-bit A/C messages.
Definition ir_Hitachi.h:606
Definition ir_Hitachi.h:623
Class for handling detailed Hitachi 344-bit A/C messages.
Definition ir_Hitachi.h:585
Class for handling detailed Hitachi 53-byte/424-bit A/C messages.
Definition ir_Hitachi.h:496
Class for handling detailed Hitachi 224-bit A/C messages.
Definition ir_Hitachi.h:371
Class for handling detailed Kelvinator A/C messages.
Definition ir_Kelvinator.h:130
Class for handling detailed LG A/C messages.
Definition ir_LG.h:112
Class for handling detailed Midea A/C messages.
Definition ir_Midea.h:173
Class for handling detailed Mirage 120-bit A/C messages.
Definition ir_Mirage.h:194
Class for handling detailed Mitsubishi 122-bit A/C messages.
Definition ir_Mitsubishi.h:399
Class for handling detailed Mitsubishi 136-bit A/C messages.
Definition ir_Mitsubishi.h:345
Class for handling detailed Mitsubishi 144-bit A/C messages.
Definition ir_Mitsubishi.h:265
Class for handling detailed Mitsubishi Heavy 152-bit A/C messages.
Definition ir_MitsubishiHeavy.h:182
Class for handling detailed Mitsubishi Heavy 88-bit A/C messages.
Definition ir_MitsubishiHeavy.h:269
Class for handling detailed Neoclima A/C messages.
Definition ir_Neoclima.h:118
Class for handling detailed Panasonic 32bit A/C messages.
Definition ir_Panasonic.h:223
Class for handling detailed Panasonic A/C messages.
Definition ir_Panasonic.h:104
Class for handling detailed Rhoss A/C messages.
Definition ir_Rhoss.h:92
Class for handling detailed Samsung A/C messages.
Definition ir_Samsung.h:184
Class for handling detailed Sanyo A/C messages.
Definition ir_Sanyo.h:227
Class for handling detailed Sanyo A/C messages.
Definition ir_Sanyo.h:109
Class for handling detailed Sharp A/C messages.
Definition ir_Sharp.h:151
Class for handling detailed TCL A/C messages.
Definition ir_Tcl.h:124
Class for handling detailed Technibel A/C messages.
Definition ir_Technibel.h:75
Class for handling detailed Teco A/C messages.
Definition ir_Teco.h:60
Class for handling detailed Toshiba A/C messages.
Definition ir_Toshiba.h:134
Class for handling detailed Transcold A/C messages.
Definition ir_Transcold.h:118
Class for handling detailed Trotec 3550 A/C messages.
Definition ir_Trotec.h:196
Class for handling detailed Trotec A/C messages.
Definition ir_Trotec.h:131
Class for handling detailed Truma A/C messages.
Definition ir_Truma.h:67
Class for handling detailed Vestel A/C messages.
Definition ir_Vestel.h:98
Class for handling detailed Voltas A/C messages.
Definition ir_Voltas.h:89
Class for handling detailed Whirlpool A/C messages.
Definition ir_Whirlpool.h:130
A universal/common/generic interface for controling supported A/Cs.
Definition IRac.h:63
std::vector< int > getTiming(void)
Definition IRac.cpp:193
void daikin64(IRDaikin64 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool quiet, const bool turbo, const int16_t sleep=-1, const int16_t clock=-1)
Send a Daikin 64-bit A/C message with the supplied settings.
Definition IRac.cpp:1142
void hitachi344(IRHitachiAc344 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh)
Send a Hitachi 344-bit A/C message with the supplied settings.
Definition IRac.cpp:1773
bool sendAc(void)
Send an A/C message based soley on our internal state.
Definition IRac.cpp:3772
void sanyo88(IRSanyoAc88 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool filter, const int16_t sleep=-1, const int16_t clock=-1)
Send a Sanyo 88-bit A/C message with the supplied settings.
Definition IRac.cpp:2435
void daikin216(IRDaikin216 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo)
Send a Daikin 216-bit A/C message with the supplied settings.
Definition IRac.cpp:1064
void technibel(IRTechnibelAc *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const int16_t sleep=-1)
Send a Technibel A/C message with the supplied settings.
Definition IRac.cpp:2570
void hitachi296(IRHitachiAc296 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan)
Send a Hitachi 296-bit A/C message with the supplied settings.
Definition IRac.cpp:1742
void airton(IRAirtonAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool light, const bool econo, const bool filter, const int16_t sleep=-1)
Send an Airton 56-bit A/C message with the supplied settings.
Definition IRac.cpp:416
static String swinghToString(const stdAc::swingh_t swingh)
Convert the supplied enum into the appropriate String.
Definition IRac.cpp:4165
void mitsubishi112(IRMitsubishi112 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet)
Send a Mitsubishi 112-bit A/C message with the supplied settings.
Definition IRac.cpp:2065
void bosch144(IRBosch144AC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const bool celsius, const stdAc::fanspeed_t fan, const bool quiet)
Send a Bosch144 A/C message with the supplied settings.
Definition IRac.cpp:669
static stdAc::opmode_t strToOpmode(const char *str, const stdAc::opmode_t def=stdAc::opmode_t::kAuto)
Convert the supplied str into the appropriate enum.
Definition IRac.cpp:3823
void airwell(IRAirwellAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan)
Send an Airwell A/C message with the supplied settings.
Definition IRac.cpp:447
void electra(IRElectraAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const float sensorTemp, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool iFeel, const bool quiet, const bool turbo, const bool lighttoggle, const bool clean)
Send an Electra A/C message with the supplied settings.
Definition IRac.cpp:1250
void coolix(IRCoolixAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const float sensorTemp, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool iFeel, const bool turbo, const bool light, const bool clean, const int16_t sleep=-1)
Send a Coolix A/C message with the supplied settings.
Definition IRac.cpp:750
static stdAc::swingh_t strToSwingH(const char *str, const stdAc::swingh_t def=stdAc::swingh_t::kOff)
Convert the supplied str into the appropriate enum.
Definition IRac.cpp:3935
bool hasStateChanged(void)
Check if the internal state has changed from what was previously sent.
Definition IRac.cpp:3797
static stdAc::state_t handleToggles(const stdAc::state_t desired, const stdAc::state_t *prev=NULL)
Create a new state base on desired & previous states but handle any state changes for options that ne...
Definition IRac.cpp:2972
void kelon(IRKelonAc *ac, const bool togglePower, const stdAc::opmode_t mode, const int8_t dryGrade, const float degrees, const stdAc::fanspeed_t fan, const bool toggleSwing, const bool superCool, const int16_t sleep)
Send a Kelon A/C message with the supplied settings.
Definition IRac.cpp:1842
void daikin160(IRDaikin160 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv)
Send a Daikin 160-bit A/C message with the supplied settings.
Definition IRac.cpp:971
static bool cmpStates(const stdAc::state_t a, const stdAc::state_t b)
Compare two AirCon states.
Definition IRac.cpp:3783
static bool strToBool(const char *str, const bool def=false)
Convert the supplied str into the appropriate boolean value.
Definition IRac.cpp:4078
static String commandTypeToString(const stdAc::ac_command_t cmdType)
Convert the supplied operation mode into the appropriate String.
Definition IRac.cpp:4103
void amcor(IRAmcorAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan)
Send an Amcor A/C message with the supplied settings.
Definition IRac.cpp:475
static stdAc::swingv_t strToSwingV(const char *str, const stdAc::swingv_t def=stdAc::swingv_t::kOff)
Convert the supplied str into the appropriate enum.
Definition IRac.cpp:3892
void lg(IRLgAc *ac, const lg_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingv_t swingv_prev, const stdAc::swingh_t swingh, const bool light)
Send a LG A/C message with the supplied settings.
Definition IRac.cpp:1915
void resetTiming(void)
Definition IRac.cpp:194
void argoWrem3_ConfigSet(IRArgoAC_WREM3 *ac, const uint8_t param, const uint8_t value, bool safe=true)
Send an Argo A/C WREM-3 Config command.
Definition IRac.cpp:607
void mitsubishiHeavy152(IRMitsubishiHeavy152Ac *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool econo, const bool filter, const bool clean, const int16_t sleep=-1)
Send a Mitsubishi Heavy 152-bit A/C message with the supplied settings.
Definition IRac.cpp:2177
static String swingvToString(const stdAc::swingv_t swingv)
Convert the supplied enum into the appropriate String.
Definition IRac.cpp:4148
void panasonic32(IRPanasonicAc32 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh)
Send a Panasonic A/C message with the supplied settings.
Definition IRac.cpp:2298
void midea(IRMideaAC *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const float sensorTemp, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool iFeel, const bool quiet, const bool quiet_prev, const bool turbo, const bool econo, const bool light, const bool clean, const int16_t sleep=-1)
Send a Midea A/C message with the supplied settings.
Definition IRac.cpp:1971
void daikin152(IRDaikin152 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool quiet, const bool turbo, const bool econo)
Send a Daikin 152-bit A/C message with the supplied settings.
Definition IRac.cpp:938
void kelvinator(IRKelvinatorAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool light, const bool filter, const bool clean)
Send a Kelvinator A/C message with the supplied settings.
Definition IRac.cpp:1876
void argoWrem3_ACCommand(IRArgoAC_WREM3 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const float sensorTemp, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool iFeel, const bool night, const bool econo, const bool turbo, const bool filter, const bool light)
Send an Argo A/C WREM-3 AC control message with the supplied settings.
Definition IRac.cpp:555
static int16_t strToModel(const char *str, const int16_t def=-1)
Convert the supplied str into the appropriate enum.
Definition IRac.cpp:3976
static stdAc::fanspeed_t strToFanspeed(const char *str, const stdAc::fanspeed_t def=stdAc::fanspeed_t::kAuto)
Convert the supplied str into the appropriate enum.
Definition IRac.cpp:3859
static stdAc::ac_command_t strToCommandType(const char *str, const stdAc::ac_command_t def=stdAc::ac_command_t::kControlCommand)
Convert the supplied str into the appropriate enum.
Definition IRac.cpp:3803
void neoclima(IRNeoclimaAc *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool econo, const bool light, const bool filter, const int16_t sleep=-1)
Send a Neoclima A/C message with the supplied settings.
Definition IRac.cpp:2221
void transcold(IRTranscoldAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh)
Send a Transcold A/C message with the supplied settings.
Definition IRac.cpp:2894
void haierYrwo2(IRHaierACYRW02 *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool quiet, const bool filter, const int16_t sleep=-1)
Send a Haier YRWO2 A/C message with the supplied settings.
Definition IRac.cpp:1603
void rhoss(IRRhossAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swing)
Send an Rhoss A/C message with the supplied settings.
Definition IRac.cpp:2933
void carrier64(IRCarrierAc64 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const int16_t sleep=-1)
Send a Carrier 64-bit A/C message with the supplied settings.
Definition IRac.cpp:710
void hitachi264(IRHitachiAc264 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan)
Send a Hitachi 264-bit A/C message with the supplied settings.
Definition IRac.cpp:1713
void gree(IRGreeAC *ac, const gree_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool iFeel, const bool turbo, const bool econo, const bool light, const bool clean, const int16_t sleep=-1)
Send a Gree A/C message with the supplied settings.
Definition IRac.cpp:1433
void daikin2(IRDaikin2 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool light, const bool econo, const bool filter, const bool clean, const bool beep, const int16_t sleep=-1, const int16_t clock=-1)
Send a Daikin2 A/C message with the supplied settings.
Definition IRac.cpp:1025
stdAc::state_t _prev
The state we expect the device to currently be in.
Definition IRac.h:136
void daikin312(IRDaikin312 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool light, const bool econo, const bool filter, const bool clean, const bool beep, const int16_t sleep=-1, const int16_t clock=-1)
Send a Daikin 312-bit A/C message with the supplied settings.
Definition IRac.cpp:1100
void daikin128(IRDaikin128 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool quiet, const bool turbo, const bool light, const bool econo, const int16_t sleep=-1, const int16_t clock=-1)
Send a Daikin 128-bit A/C message with the supplied settings.
Definition IRac.cpp:901
void vestel(IRVestelAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool filter, const int16_t sleep=-1, const int16_t clock=-1, const bool sendNormal=true)
Send a Vestel A/C message with the supplied settings.
Definition IRac.cpp:2774
static String boolToString(const bool value)
Convert the supplied boolean into the appropriate String.
Definition IRac.cpp:4096
bool _inverted
IR LED is lit when GPIO is LOW (true) or HIGH (false)?
Definition IRac.h:134
void tcl112(IRTcl112Ac *ac, const tcl_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool light, const bool econo, const bool filter)
Send a TCL 112-bit A/C message with the supplied settings.
Definition IRac.cpp:2533
void teco(IRTecoAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool light, const int16_t sleep=-1)
Send a Teco A/C message with the supplied settings.
Definition IRac.cpp:2603
void mitsubishi136(IRMitsubishi136 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool quiet)
Send a Mitsubishi 136-bit A/C message with the supplied settings.
Definition IRac.cpp:2101
void trotec3550(IRTrotec3550 *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv)
Send a Trotec 3550 A/C message with the supplied settings.
Definition IRac.cpp:2705
void mitsubishi(IRMitsubishiAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const int16_t clock=-1)
Send a Mitsubishi A/C message with the supplied settings.
Definition IRac.cpp:2026
void daikin176(IRDaikin176 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingh_t swingh)
Send a Daikin 176-bit A/C message with the supplied settings.
Definition IRac.cpp:993
void voltas(IRVoltas *ac, const voltas_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool econo, const bool light, const int16_t sleep=-1)
Send a Voltas A/C message with the supplied settings.
Definition IRac.cpp:2816
void sharp(IRSharpAc *ac, const sharp_ac_remote_model_t model, const bool on, const bool prev_power, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingv_t swingv_prev, const bool turbo, const bool light, const bool filter, const bool clean)
Send a Sharp A/C message with the supplied settings.
Definition IRac.cpp:2477
static stdAc::state_t cleanState(const stdAc::state_t state)
Create a new state base on the provided state that has been suitably fixed.
Definition IRac.cpp:2959
void truma(IRTrumaAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const bool quiet)
Send a Truma A/C message with the supplied settings.
Definition IRac.cpp:2737
static String fanspeedToString(const stdAc::fanspeed_t speed)
Convert the supplied fan speed enum into the appropriate String.
Definition IRac.cpp:4132
uint16_t _pin
The GPIO to use to transmit messages from.
Definition IRac.h:133
void argoWrem3_SetTimer(IRArgoAC_WREM3 *ac, bool on, const uint16_t currentTime, const uint16_t delayMinutes)
Send an Argo A/C WREM-3 Delay timer command.
Definition IRac.cpp:645
void haier176(IRHaierAC176 *ac, const haier_ac176_remote_model_t model, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool quiet, const bool filter, const int16_t sleep=-1)
Send a Haier 176 bit A/C message with the supplied settings.
Definition IRac.cpp:1561
void goodweather(IRGoodweatherAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool light, const int16_t sleep=-1)
Send a Goodweather A/C message with the supplied settings.
Definition IRac.cpp:1388
void hitachi1(IRHitachiAc1 *ac, const hitachi_ac1_remote_model_t model, const bool on, const bool power_toggle, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool swing_toggle, const int16_t sleep=-1)
Send a Hitachi1 A/C message with the supplied settings.
Definition IRac.cpp:1676
bool _modulation
Is frequency modulation to be used?
Definition IRac.h:135
void hitachi(IRHitachiAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh)
Send a Hitachi A/C message with the supplied settings.
Definition IRac.cpp:1639
void markAsSent(void)
Update the previous state to the current one.
Definition IRac.cpp:3766
void argo(IRArgoAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const float sensorTemp, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool iFeel, const bool turbo, const int16_t sleep=-1)
Send an Argo A/C message with the supplied settings.
Definition IRac.cpp:510
void ecoclim(IREcoclimAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const float sensorTemp, const stdAc::fanspeed_t fan, const int16_t sleep=-1, const int16_t clock=-1)
Send an EcoClim A/C message with the supplied settings.
Definition IRac.cpp:1198
void haier160(IRHaierAC160 *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool quiet, const bool filter, const bool clean, const bool light, const bool prevlight, const int16_t sleep=-1)
Send a Haier 160 bit A/C message with the supplied settings.
Definition IRac.cpp:1516
void mirage(IRMirageAc *ac, const stdAc::state_t state)
Send a Mirage 120-bit A/C message with the supplied settings.
Definition IRac.cpp:2007
void toshiba(IRToshibaAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool econo, const bool filter)
Send a Toshiba A/C message with the supplied settings.
Definition IRac.cpp:2637
static bool isProtocolSupported(const decode_type_t protocol)
Is the given protocol supported by the IRac class?
Definition IRac.cpp:200
void corona(IRCoronaAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool econo)
Send a Corona A/C message with the supplied settings.
Definition IRac.cpp:826
stdAc::state_t getStatePrev(void)
Get the previous internal A/C climate state that should have already been sent to the device....
Definition IRac.cpp:190
void haier(IRHaierAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool filter, const int16_t sleep=-1, const int16_t clock=-1)
Send a Haier A/C message with the supplied settings.
Definition IRac.cpp:1474
void whirlpool(IRWhirlpoolAc *ac, const whirlpool_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool light, const int16_t sleep=-1, const int16_t clock=-1)
Send a Whirlpool A/C message with the supplied settings.
Definition IRac.cpp:2857
stdAc::state_t next
The state we want the device to be in after we send.
Definition IRac.h:119
void fujitsu(IRFujitsuAC *ac, const fujitsu_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool econo, const bool filter, const bool clean, const int16_t sleep=-1)
Send a Fujitsu A/C message with the supplied settings.
Definition IRac.cpp:1323
void hitachi424(IRHitachiAc424 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv)
Send a Hitachi 424-bit A/C message with the supplied settings.
Definition IRac.cpp:1807
void trotec(IRTrotecESP *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const int16_t sleep=-1)
Send a Trotec A/C message with the supplied settings.
Definition IRac.cpp:2673
stdAc::state_t getState(void)
Get the current internal A/C climate state.
Definition IRac.cpp:185
static void initState(stdAc::state_t *state, const decode_type_t vendor, const int16_t model, const bool power, const stdAc::opmode_t mode, const float degrees, const bool celsius, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool econo, const bool light, const bool filter, const bool clean, const bool beep, const int16_t sleep, const int16_t clock)
Initialise the given state with the supplied settings.
Definition IRac.cpp:145
void delonghiac(IRDelonghiAc *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const bool turbo, const int16_t sleep=-1)
Send a Delonghi A/C message with the supplied settings.
Definition IRac.cpp:1172
void eurom(IREuromAc *ac, const bool power, const stdAc::opmode_t mode, const float degrees, const bool fahrenheit, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool sleep)
Send an Eurom A/C message with the supplied settings.
Definition IRac.cpp:1291
void argoWrem3_iFeelReport(IRArgoAC_WREM3 *ac, const float sensorTemp)
Send an Argo A/C WREM-3 iFeel (room temp) silent (no beep) report.
Definition IRac.cpp:589
void mitsubishiHeavy88(IRMitsubishiHeavy88Ac *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool econo, const bool clean)
Send a Mitsubishi Heavy 88-bit A/C message with the supplied settings.
Definition IRac.cpp:2136
void sanyo(IRSanyoAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const float sensorTemp, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool iFeel, const bool beep, const int16_t sleep=-1)
Send a Sanyo A/C message with the supplied settings.
Definition IRac.cpp:2391
void panasonic(IRPanasonicAc *ac, const panasonic_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool filter, const int16_t clock=-1)
Send a Panasonic A/C message with the supplied settings.
Definition IRac.cpp:2262
static String opmodeToString(const stdAc::opmode_t mode, const bool ha=false)
Convert the supplied operation mode into the appropriate String.
Definition IRac.cpp:4117
void daikin(IRDaikinESP *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool econo, const bool clean)
Send a Daikin A/C message with the supplied settings.
Definition IRac.cpp:861
void samsung(IRSamsungAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool econo, const bool light, const bool filter, const bool clean, const bool beep, const int16_t sleep=-1, const bool prevpower=true, const int16_t prevsleep=-1, const bool forceextended=true)
Send a Samsung A/C message with the supplied settings.
Definition IRac.cpp:2344
Results returned from the decoder.
Definition IRrecv.h:89
Support for Airton protocol.
Airwell "Manchester code" based protocol. Some other Airwell products use the COOLIX protocol.
Support for Argo Ulisse 13 DCI Mobile Split ACs.
Support for Bosch A/C protocol.
Support for Coolix A/C protocols.
Support for Daikin A/C protocols.
Support for Electra A/C protocols.
Support for Eurom A/C protocols.
Support for Fujitsu A/C protocols. Fujitsu A/C support added by Jonny Graham.
Support for Goodweather compatible HVAC protocols.
Support for Gree A/C protocols.
Support for Haier A/C protocols. The specifics of reverse engineering the protocols details:
Support for Hitachi A/C protocols.
Support for Kelan AC protocol.
Support for Kelvinator A/C protocols.
Support for LG protocols.
Support for Midea protocols. Midea added by crankyoldgit & bwze.
Support for Mirage protocol.
Support for Mitsubishi Heavy Industry protocols. Code to emulate Mitsubishi Heavy Industries A/C IR r...
Support for Mitsubishi protocols. Mitsubishi (TV) decoding added from https://github....
Support for Neoclima protocols. Analysis by crankyoldgit & AndreyShpilevoy.
Support for Panasonic protocols.
Support for Rhoss A/C protocol.
Support for Samsung protocols. Samsung originally added from https://github.com/shirriff/Arduino-IRre...
Support for Sanyo protocols. Sanyo LC7461 support originally by marcosamarinho Sanyo SA 8650B origina...
Support for Sharp protocols.
Support for TCL protocols.
Support for Technibel protocol.
Support for Teco protocols.
Support for Toshiba protocols.
Support for Transcold A/C protocols.
Support for Trotec protocols.
Support for Truma protocol.
Support for Vestel protocols. Vestel added by Erdem U. Altinyurt.
Support for Voltas A/C protocol.
Support for Whirlpool protocols. Decoding help from: @redmusicxd, @josh929800, @raducostea.
Support for the York AC protocol (remote GRYLH2A)
Common functions for use with all A/Cs supported by the IRac class.
Definition IRac.h:602
String resultAcToString(const decode_results *const results)
Display the human readable state of an A/C message if we can.
Definition IRac.cpp:4185
bool decodeToState(const decode_results *decode, stdAc::state_t *result, const stdAc::state_t *prev=NULL)
Convert a valid IR A/C remote message that we understand enough into a Common A/C state.
Definition IRac.cpp:4672
fanspeed_t
Common A/C settings for Fan Speeds.
Definition IRsend.h:67
ac_command_t
Tyoe of A/C command (if the remote uses different codes for each)
Definition IRsend.h:96
opmode_t
Common A/C settings for A/C operating modes.
Definition IRsend.h:55
swingh_t
Common A/C settings for Horizontal Swing.
Definition IRsend.h:106
swingv_t
Common A/C settings for Vertical Swing.
Definition IRsend.h:80
Structure to hold a common A/C state.
Definition IRsend.h:120