62 explicit IRac(
const uint16_t pin,
const bool inverted =
false,
63 const bool use_modulation =
true);
68 const float degrees,
const bool celsius,
72 const bool quiet,
const bool turbo,
const bool econo,
73 const bool light,
const bool filter,
const bool clean,
74 const bool beep,
const int16_t sleep,
84 const bool quiet,
const bool turbo,
const bool econo,
85 const bool light,
const bool filter,
const bool clean,
86 const bool beep,
const int16_t sleep = -1,
87 const int16_t clock = -1);
89 static bool strToBool(
const char *str,
const bool def =
false);
90 static int16_t
strToModel(
const char *str,
const int16_t def = -1);
105 const bool ha =
false);
117 std::shared_ptr<IRrecv> _utReceiver =
nullptr;
118 std::unique_ptr<decode_results> _lastDecodeResults =
nullptr;
133 const bool light,
const bool econo,
const bool filter,
134 const int16_t sleep = -1);
151 const int16_t sleep = -1);
156 const bool econo,
const bool turbo,
const bool filter,
const bool light);
159 const uint8_t value,
bool safe =
true);
161 const uint16_t currentTime,
const uint16_t delayMinutes);
180 const bool iFeel,
const bool turbo,
const bool light,
181 const bool clean,
const int16_t sleep = -1);
194 const bool quiet,
const bool turbo,
const bool econo,
202 const bool quiet,
const bool turbo,
const bool light,
203 const bool econo,
const int16_t sleep = -1,
204 const int16_t clock = -1);
211 const bool quiet,
const bool turbo,
const bool econo);
230 const bool quiet,
const bool turbo,
const bool light,
231 const bool econo,
const bool filter,
const bool clean,
232 const bool beep,
const int16_t sleep = -1,
233 const int16_t clock = -1);
240 const bool quiet,
const bool turbo);
247 const bool quiet,
const bool turbo,
248 const int16_t sleep = -1,
const int16_t clock = -1);
254 const bool turbo,
const int16_t sleep = -1);
259 const float degrees,
const float sensorTemp,
261 const int16_t clock = -1);
266 const float degrees,
const float sensorTemp,
269 const bool turbo,
const bool lighttoggle,
const bool clean);
273 const float degrees,
const bool fahrenheit,
280 const bool celsius,
const float degrees,
283 const bool quiet,
const bool turbo,
const bool econo,
284 const bool filter,
const bool clean,
const int16_t sleep = -1);
292 const bool turbo,
const bool light,
293 const int16_t sleep = -1);
300 const bool iFeel,
const bool turbo,
const bool econo,
301 const bool light,
const bool clean,
const int16_t sleep = -1);
307 const bool filter,
const int16_t sleep = -1,
308 const int16_t clock = -1);
315 const bool turbo,
const bool quiet,
const bool filter,
316 const bool clean,
const bool light,
const bool prevlight,
317 const int16_t sleep = -1);
325 const bool turbo,
const bool quiet,
const bool filter,
326 const int16_t sleep = -1);
328#if SEND_HAIER_AC_YRW02
331 const bool celsius,
const float degrees,
334 const bool quiet,
const bool filter,
335 const int16_t sleep = -1);
345 const bool on,
const bool power_toggle,
349 const bool swing_toggle,
const int16_t sleep = -1);
351#if SEND_HITACHI_AC264
356#if SEND_HITACHI_AC296
361#if SEND_HITACHI_AC344
368#if SEND_HITACHI_AC424
376 const int8_t dryGrade,
const float degrees,
378 const bool superCool,
const int16_t sleep);
385 const bool quiet,
const bool turbo,
const bool light,
386 const bool filter,
const bool clean);
398 const float degrees,
const float sensorTemp,
400 const bool iFeel,
const bool quiet,
const bool quiet_prev,
401 const bool turbo,
const bool econo,
const bool light,
402 const bool clean,
const int16_t sleep = -1);
407#if SEND_MITSUBISHI_AC
413 const bool quiet,
const int16_t clock = -1);
415#if SEND_MITSUBISHI112
423#if SEND_MITSUBISHI136
429#if SEND_MITSUBISHIHEAVY
435 const bool turbo,
const bool econo,
const bool clean);
441 const bool quiet,
const bool turbo,
const bool econo,
442 const bool filter,
const bool clean,
443 const int16_t sleep = -1);
447 const bool celsius,
const float degrees,
450 const bool turbo,
const bool econo,
const bool light,
451 const bool filter,
const int16_t sleep = -1);
458 const bool quiet,
const bool turbo,
const bool filter,
459 const int16_t clock = -1);
461#if SEND_PANASONIC_AC32
477 const bool quiet,
const bool turbo,
const bool econo,
478 const bool light,
const bool filter,
const bool clean,
479 const bool beep,
const int16_t sleep = -1,
480 const bool prevpower =
true,
const int16_t prevsleep = -1,
481 const bool forceextended =
true);
488 const int16_t sleep = -1);
496 const int16_t sleep = -1,
const int16_t clock = -1);
503 const bool turbo,
const bool light,
504 const bool filter,
const bool clean);
511 const bool quiet,
const bool turbo,
const bool light,
512 const bool econo,
const bool filter);
524 const bool light,
const int16_t sleep = -1);
530 const bool turbo,
const bool econo,
const bool filter);
540 const bool celsius,
const float degrees,
552 const bool turbo,
const bool filter,
553 const int16_t sleep = -1,
const int16_t clock = -1,
554 const bool sendNormal =
true);
561 const bool turbo,
const bool econo,
const bool light,
562 const int16_t sleep = -1);
568 const bool turbo,
const bool light,
569 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:56
decode_type_t
Enumerator for defining and numbering of supported IR protocol.
Definition IRremoteESP8266.h:1036
std::string String
Definition IRremoteESP8266.h:1564
panasonic_ac_remote_model_t
Panasonic A/C model numbers.
Definition IRsend.h:181
sharp_ac_remote_model_t
Sharp A/C model numbers.
Definition IRsend.h:192
tcl_ac_remote_model_t
TCL (& Teknopoint) A/C model numbers.
Definition IRsend.h:199
lg_ac_remote_model_t
LG A/C model numbers.
Definition IRsend.h:222
fujitsu_ac_remote_model_t
Fujitsu A/C model numbers.
Definition IRsend.h:140
voltas_ac_remote_model_t
Voltas A/C model numbers.
Definition IRsend.h:205
whirlpool_ac_remote_model_t
Whirlpool A/C model numbers.
Definition IRsend.h:211
haier_ac176_remote_model_t
HAIER_AC176 A/C model numbers.
Definition IRsend.h:163
hitachi_ac1_remote_model_t
HITACHI_AC1 A/C model numbers.
Definition IRsend.h:169
gree_ac_remote_model_t
Gree A/C model numbers.
Definition IRsend.h:155
Class for handling detailed Airton 56-bit A/C messages.
Definition ir_Airton.h:75
Class for handling detailed Airwell A/C messages.
Definition ir_Airwell.h:60
Class for handling detailed Amcor A/C messages.
Definition ir_Amcor.h:90
Supports Argo A/C SAC-WREM3 IR remote protocol.
Definition ir_Argo.h:449
Supports Argo A/C SAC-WREM2 IR remote protocol.
Definition ir_Argo.h:422
Class for handling detailed Bosch144 A/C messages.
Definition ir_Bosch.h:181
Class for handling detailed Carrier 64 bit A/C messages.
Definition ir_Carrier.h:89
Class for handling detailed Coolix A/C messages.
Definition ir_Coolix.h:158
Class for handling detailed Corona A/C messages.
Definition ir_Corona.h:107
Class for handling detailed Daikin 128-bit A/C messages.
Definition ir_Daikin.h:1070
Class for handling detailed Daikin 152-bit A/C messages.
Definition ir_Daikin.h:1140
Class for handling detailed Daikin 160-bit A/C messages.
Definition ir_Daikin.h:959
Class for handling detailed Daikin 176-bit A/C messages.
Definition ir_Daikin.h:1011
Class for handling detailed Daikin 216-bit A/C messages.
Definition ir_Daikin.h:903
Class for handling detailed Daikin 312-bit A/C messages.
Definition ir_Daikin.h:805
Class for handling detailed Daikin 64-bit A/C messages.
Definition ir_Daikin.h:1200
Class for handling detailed Daikin 280-bit A/C messages.
Definition ir_Daikin.h:723
Class for handling detailed Delonghi A/C messages.
Definition ir_Delonghi.h:73
Class for handling detailed EcoClim A/C 56 bit messages.
Definition ir_Ecoclim.h:84
Class for handling detailed Electra A/C messages.
Definition ir_Electra.h:115
Class for handling detailed Eurom A/C messages.
Definition ir_Eurom.h:152
Class for handling detailed Fujitsu A/C messages.
Definition ir_Fujitsu.h:180
Class for handling detailed Goodweather A/C messages.
Definition ir_Goodweather.h:100
Class for handling detailed Gree A/C messages.
Definition ir_Gree.h:156
Class for handling detailed Haier 160 bit A/C messages.
Definition ir_Haier.h:563
Class for handling detailed Haier 176 bit A/C messages.
Definition ir_Haier.h:446
Class for handling detailed Haier ACYRW02 A/C messages.
Definition ir_Haier.h:544
Class for handling detailed Haier A/C messages.
Definition ir_Haier.h:376
Class for handling detailed Hitachi 104-bit A/C messages.
Definition ir_Hitachi.h:429
Class for handling detailed Hitachi 264-bit A/C messages.
Definition ir_Hitachi.h:607
Definition ir_Hitachi.h:624
Class for handling detailed Hitachi 344-bit A/C messages.
Definition ir_Hitachi.h:586
Class for handling detailed Hitachi 53-byte/424-bit A/C messages.
Definition ir_Hitachi.h:497
Class for handling detailed Hitachi 224-bit A/C messages.
Definition ir_Hitachi.h:372
Class for handling detailed Kelvinator A/C messages.
Definition ir_Kelvinator.h:132
Class for handling detailed LG A/C messages.
Definition ir_LG.h:114
Class for handling detailed Midea A/C messages.
Definition ir_Midea.h:175
Class for handling detailed Mirage 120-bit A/C messages.
Definition ir_Mirage.h:196
Class for handling detailed Mitsubishi 122-bit A/C messages.
Definition ir_Mitsubishi.h:401
Class for handling detailed Mitsubishi 136-bit A/C messages.
Definition ir_Mitsubishi.h:347
Class for handling detailed Mitsubishi 144-bit A/C messages.
Definition ir_Mitsubishi.h:267
Class for handling detailed Mitsubishi Heavy 152-bit A/C messages.
Definition ir_MitsubishiHeavy.h:184
Class for handling detailed Mitsubishi Heavy 88-bit A/C messages.
Definition ir_MitsubishiHeavy.h:271
Class for handling detailed Neoclima A/C messages.
Definition ir_Neoclima.h:120
Class for handling detailed Panasonic 32bit A/C messages.
Definition ir_Panasonic.h:225
Class for handling detailed Panasonic A/C messages.
Definition ir_Panasonic.h:106
Class for handling detailed Rhoss A/C messages.
Definition ir_Rhoss.h:94
Class for handling detailed Samsung A/C messages.
Definition ir_Samsung.h:186
Class for handling detailed Sanyo A/C messages.
Definition ir_Sanyo.h:229
Class for handling detailed Sanyo A/C messages.
Definition ir_Sanyo.h:111
Class for handling detailed Sharp A/C messages.
Definition ir_Sharp.h:153
Class for handling detailed TCL A/C messages.
Definition ir_Tcl.h:126
Class for handling detailed Technibel A/C messages.
Definition ir_Technibel.h:77
Class for handling detailed Teco A/C messages.
Definition ir_Teco.h:62
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:120
Class for handling detailed Trotec 3550 A/C messages.
Definition ir_Trotec.h:198
Class for handling detailed Trotec A/C messages.
Definition ir_Trotec.h:133
Class for handling detailed Truma A/C messages.
Definition ir_Truma.h:69
Class for handling detailed Vestel A/C messages.
Definition ir_Vestel.h:100
Class for handling detailed Voltas A/C messages.
Definition ir_Voltas.h:91
Class for handling detailed Whirlpool A/C messages.
Definition ir_Whirlpool.h:132
A universal/common/generic interface for controling supported A/Cs.
Definition IRac.h:60
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:1080
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:1711
bool sendAc(void)
Send an A/C message based soley on our internal state.
Definition IRac.cpp:3700
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:2373
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:1050
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:2508
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:1680
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:402
static String swinghToString(const stdAc::swingh_t swingh)
Convert the supplied enum into the appropriate String.
Definition IRac.cpp:4093
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:2003
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:655
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:3751
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:433
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:1188
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:736
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:3863
bool hasStateChanged(void)
Check if the internal state has changed from what was previously sent.
Definition IRac.cpp:3725
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:2910
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:1780
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:957
static bool cmpStates(const stdAc::state_t a, const stdAc::state_t b)
Compare two AirCon states.
Definition IRac.cpp:3711
static bool strToBool(const char *str, const bool def=false)
Convert the supplied str into the appropriate boolean value.
Definition IRac.cpp:4006
static String commandTypeToString(const stdAc::ac_command_t cmdType)
Convert the supplied operation mode into the appropriate String.
Definition IRac.cpp:4031
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:461
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:3820
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:1853
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:593
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:2115
static String swingvToString(const stdAc::swingv_t swingv)
Convert the supplied enum into the appropriate String.
Definition IRac.cpp:4076
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:2236
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:1909
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:924
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:1814
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:541
static int16_t strToModel(const char *str, const int16_t def=-1)
Convert the supplied str into the appropriate enum.
Definition IRac.cpp:3904
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:3787
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:3731
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:2159
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:2832
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:1541
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:2871
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:696
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:1651
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:1371
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:1011
stdAc::state_t _prev
The state we expect the device to currently be in.
Definition IRac.h:127
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:887
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:2712
static String boolToString(const bool value)
Convert the supplied boolean into the appropriate String.
Definition IRac.cpp:4024
bool _inverted
IR LED is lit when GPIO is LOW (true) or HIGH (false)?
Definition IRac.h:125
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:2471
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:2541
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:2039
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:2643
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:1964
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:979
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:2754
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:2415
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:2897
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:2675
static String fanspeedToString(const stdAc::fanspeed_t speed)
Convert the supplied fan speed enum into the appropriate String.
Definition IRac.cpp:4060
uint16_t _pin
The GPIO to use to transmit messages from.
Definition IRac.h:124
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:631
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:1499
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:1326
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:1614
bool _modulation
Is frequency modulation to be used?
Definition IRac.h:126
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:1577
void markAsSent(void)
Update the previous state to the current one.
Definition IRac.cpp:3694
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:496
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:1136
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:1454
void mirage(IRMirageAc *ac, const stdAc::state_t state)
Send a Mirage 120-bit A/C message with the supplied settings.
Definition IRac.cpp:1945
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:2575
static bool isProtocolSupported(const decode_type_t protocol)
Is the given protocol supported by the IRac class?
Definition IRac.cpp:189
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:812
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:184
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:1412
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:2795
stdAc::state_t next
The state we want the device to be in after we send.
Definition IRac.h:112
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:1261
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:1745
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:2611
stdAc::state_t getState(void)
Get the current internal A/C climate state.
Definition IRac.cpp:179
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:139
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:1110
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:1229
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:575
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:2074
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:2329
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:2200
static String opmodeToString(const stdAc::opmode_t mode, const bool ha=false)
Convert the supplied operation mode into the appropriate String.
Definition IRac.cpp:4045
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:847
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:2282
Results returned from the decoder.
Definition IRrecv.h:101
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.cpp:4107
String resultAcToString(const decode_results *const result)
Display the human readable state of an A/C message if we can.
Definition IRac.cpp:4113
bool decodeToState(const decode_results *decode, stdAc::state_t *result, const stdAc::state_t *prev)
Convert a valid IR A/C remote message that we understand enough into a Common A/C state.
Definition IRac.cpp:4593
fanspeed_t
Common A/C settings for Fan Speeds.
Definition IRsend.h:61
ac_command_t
Tyoe of A/C command (if the remote uses different codes for each)
Definition IRsend.h:90
opmode_t
Common A/C settings for A/C operating modes.
Definition IRsend.h:49
swingh_t
Common A/C settings for Horizontal Swing.
Definition IRsend.h:100
swingv_t
Common A/C settings for Vertical Swing.
Definition IRsend.h:74
Structure to hold a common A/C state.
Definition IRsend.h:114