Go to the documentation of this file.
61 explicit IRac(
const uint16_t pin,
const bool inverted =
false,
62 const bool use_modulation =
true);
67 const float degrees,
const bool celsius,
71 const bool quiet,
const bool turbo,
const bool econo,
72 const bool light,
const bool filter,
const bool clean,
73 const bool beep,
const int16_t sleep,
83 const bool quiet,
const bool turbo,
const bool econo,
84 const bool light,
const bool filter,
const bool clean,
85 const bool beep,
const int16_t sleep = -1,
86 const int16_t clock = -1);
88 static bool strToBool(
const char *str,
const bool def =
false);
89 static int16_t
strToModel(
const char *str,
const int16_t def = -1);
104 const bool ha =
false);
113 std::shared_ptr<IRrecv> _utReceiver =
nullptr;
117 std::unique_ptr<decode_results> _lastDecodeResults =
nullptr;
132 const bool light,
const bool econo,
const bool filter,
133 const int16_t sleep = -1);
134 #endif // SEND_AIRTON
139 #endif // SEND_AIRWELL
150 const int16_t sleep = -1);
155 const bool econo,
const bool turbo,
const bool filter,
const bool light);
158 const uint8_t value,
bool safe =
true);
160 const uint16_t currentTime,
const uint16_t delayMinutes);
167 #endif // SEND_BOSCH144
168 #if SEND_CARRIER_AC64
173 #endif // SEND_CARRIER_AC64
179 const bool iFeel,
const bool turbo,
const bool light,
180 const bool clean,
const int16_t sleep = -1);
181 #endif // SEND_COOLIX
187 #endif // SEND_CORONA_AC
193 const bool quiet,
const bool turbo,
const bool econo,
195 #endif // SEND_DAIKIN
201 const bool quiet,
const bool turbo,
const bool light,
202 const bool econo,
const int16_t sleep = -1,
203 const int16_t clock = -1);
204 #endif // SEND_DAIKIN128
210 const bool quiet,
const bool turbo,
const bool econo);
211 #endif // SEND_DAIKIN152
217 #endif // SEND_DAIKIN160
223 #endif // SEND_DAIKIN176
229 const bool quiet,
const bool turbo,
const bool light,
230 const bool econo,
const bool filter,
const bool clean,
231 const bool beep,
const int16_t sleep = -1,
232 const int16_t clock = -1);
233 #endif // SEND_DAIKIN2
239 const bool quiet,
const bool turbo);
240 #endif // SEND_DAIKIN216
246 const bool quiet,
const bool turbo,
247 const int16_t sleep = -1,
const int16_t clock = -1);
248 #endif // SEND_DAIKIN64
253 const bool turbo,
const int16_t sleep = -1);
254 #endif // SEND_DELONGHI_AC
258 const float degrees,
const float sensorTemp,
260 const int16_t clock = -1);
261 #endif // SEND_ECOCLIM
265 const float degrees,
const float sensorTemp,
268 const bool lighttoggle,
const bool clean);
269 #endif // SEND_ELECTRA_AC
273 const bool celsius,
const float degrees,
276 const bool quiet,
const bool turbo,
const bool econo,
277 const bool filter,
const bool clean,
const int16_t sleep = -1);
278 #endif // SEND_FUJITSU_AC
285 const bool turbo,
const bool light,
286 const int16_t sleep = -1);
287 #endif // SEND_GOODWEATHER
293 const bool iFeel,
const bool turbo,
const bool econo,
294 const bool light,
const bool clean,
const int16_t sleep = -1);
300 const bool filter,
const int16_t sleep = -1,
301 const int16_t clock = -1);
302 #endif // SEND_HAIER_AC
308 const bool turbo,
const bool quiet,
const bool filter,
309 const bool clean,
const bool light,
const bool prevlight,
310 const int16_t sleep = -1);
311 #endif // SEND_HAIER_AC160
318 const bool turbo,
const bool quiet,
const bool filter,
319 const int16_t sleep = -1);
320 #endif // SEND_HAIER_AC176
321 #if SEND_HAIER_AC_YRW02
324 const bool celsius,
const float degrees,
327 const bool quiet,
const bool filter,
328 const int16_t sleep = -1);
329 #endif // SEND_HAIER_AC_YRW02
335 #endif // SEND_HITACHI_AC
338 const bool on,
const bool power_toggle,
342 const bool swing_toggle,
const int16_t sleep = -1);
343 #endif // SEND_HITACHI_AC1
344 #if SEND_HITACHI_AC264
348 #endif // SEND_HITACHI_AC264
349 #if SEND_HITACHI_AC296
353 #endif // SEND_HITACHI_AC296
354 #if SEND_HITACHI_AC344
360 #endif // SEND_HITACHI_AC344
361 #if SEND_HITACHI_AC424
366 #endif // SEND_HITACHI_AC424
369 const int8_t dryGrade,
const float degrees,
371 const bool superCool,
const int16_t sleep);
378 const bool quiet,
const bool turbo,
const bool light,
379 const bool filter,
const bool clean);
380 #endif // SEND_KELVINATOR
391 const float degrees,
const float sensorTemp,
393 const bool iFeel,
const bool quiet,
const bool quiet_prev,
394 const bool turbo,
const bool econo,
const bool light,
395 const bool clean,
const int16_t sleep = -1);
399 #endif // SEND_MIRAGE
400 #if SEND_MITSUBISHI_AC
406 const bool quiet,
const int16_t clock = -1);
407 #endif // SEND_MITSUBISHI_AC
408 #if SEND_MITSUBISHI112
415 #endif // SEND_MITSUBISHI112
416 #if SEND_MITSUBISHI136
421 #endif // SEND_MITSUBISHI136
422 #if SEND_MITSUBISHIHEAVY
428 const bool turbo,
const bool econo,
const bool clean);
434 const bool quiet,
const bool turbo,
const bool econo,
435 const bool filter,
const bool clean,
436 const int16_t sleep = -1);
437 #endif // SEND_MITSUBISHIHEAVY
440 const bool celsius,
const float degrees,
443 const bool turbo,
const bool econo,
const bool light,
444 const bool filter,
const int16_t sleep = -1);
445 #endif // SEND_NEOCLIMA
446 #if SEND_PANASONIC_AC
451 const bool quiet,
const bool turbo,
const bool filter,
452 const int16_t clock = -1);
453 #endif // SEND_PANASONIC_AC
454 #if SEND_PANASONIC_AC32
459 #endif // SEND_PANASONIC_AC32
470 const bool quiet,
const bool turbo,
const bool econo,
471 const bool light,
const bool filter,
const bool clean,
472 const bool beep,
const int16_t sleep = -1,
473 const bool prevpower =
true,
const int16_t prevsleep = -1,
474 const bool forceextended =
true);
475 #endif // SEND_SAMSUNG_AC
481 const int16_t sleep = -1);
482 #endif // SEND_SANYO_AC
489 const int16_t sleep = -1,
const int16_t clock = -1);
490 #endif // SEND_SANYO_AC88
496 const bool turbo,
const bool light,
497 const bool filter,
const bool clean);
498 #endif // SEND_SHARP_AC
504 const bool quiet,
const bool turbo,
const bool light,
505 const bool econo,
const bool filter);
506 #endif // SEND_TCL112AC
507 #if SEND_TECHNIBEL_AC
512 #endif // SEND_TECHNIBEL_AC
517 const bool light,
const int16_t sleep = -1);
523 const bool turbo,
const bool econo,
const bool filter);
524 #endif // SEND_TOSHIBA_AC
529 #endif // SEND_TROTEC
533 const bool celsius,
const float degrees,
535 #endif // SEND_TROTEC_3550
545 const bool turbo,
const bool filter,
546 const int16_t sleep = -1,
const int16_t clock = -1,
547 const bool sendNormal =
true);
548 #endif // SEND_VESTEL_AC
554 const bool turbo,
const bool econo,
const bool light,
555 const int16_t sleep = -1);
556 #endif // SEND_VOLTAS
557 #if SEND_WHIRLPOOL_AC
561 const bool turbo,
const bool light,
562 const int16_t sleep = -1,
const int16_t clock = -1);
563 #endif // SEND_WHIRLPOOL_AC
569 #endif // SEND_TRANSCOLD
Class for handling detailed Panasonic A/C messages.
Definition: ir_Panasonic.h:104
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:428
Support for Kelvinator A/C protocols.
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 turbo, const bool lighttoggle, const bool clean)
Send an Electra A/C message with the supplied settings.
Definition: IRac.cpp:1173
Class for handling detailed Samsung A/C messages.
Definition: ir_Samsung.h:186
static String commandTypeToString(const stdAc::ac_command_t cmdType)
Convert the supplied operation mode into the appropriate String.
Definition: IRac.cpp:3979
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:1536
Class for handling detailed Toshiba A/C messages.
Definition: ir_Toshiba.h:127
decode_type_t
Enumerator for defining and numbering of supported IR protocol.
Definition: IRremoteESP8266.h:1011
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:182
stdAc::state_t getState(void)
Get the current internal A/C climate state.
Definition: IRac.cpp:177
Class for handling detailed Mitsubishi Heavy 152-bit A/C messages.
Definition: ir_MitsubishiHeavy.h:184
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:3811
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:1670
Class for handling detailed Airton 56-bit A/C messages.
Definition: ir_Airton.h:75
Support for Electra A/C protocols.
void markAsSent(void)
Update the previous state to the current one.
Definition: IRac.cpp:3642
swingv_t
Common A/C settings for Vertical Swing.
Definition: IRsend.h:74
Airwell "Manchester code" based protocol. Some other Airwell products use the COOLIX protocol.
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:997
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:3679
Support for Trotec protocols.
Support for Bosch A/C protocol.
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:620
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 Corona A/C messages.
Definition: ir_Corona.h:107
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:1773
Class for handling detailed Daikin 312-bit A/C messages.
Definition: ir_Daikin.h:805
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:1220
Support for Neoclima protocols. Analysis by crankyoldgit & AndreyShpilevoy.
Class for handling detailed Daikin 128-bit A/C messages.
Definition: ir_Daikin.h:1070
fanspeed_t
Common A/C settings for Fan Speeds.
Definition: IRsend.h:61
Support for Sharp protocols.
static String fanspeedToString(const stdAc::fanspeed_t speed)
Convert the supplied fan speed enum into the appropriate String.
Definition: IRac.cpp:4008
whirlpool_ac_remote_model_t
Whirlpool A/C model numbers.
Definition: IRsend.h:211
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:2754
Results returned from the decoder.
Definition: IRrecv.h:99
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:1066
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:2241
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:2713
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:2791
tcl_ac_remote_model_t
TCL (& Teknopoint) A/C model numbers.
Definition: IRsend.h:199
bool sendAc(void)
Send an A/C message based soley on our internal state.
Definition: IRac.cpp:3648
static bool cmpStates(const stdAc::state_t a, const stdAc::state_t b)
Compare two AirCon states.
Definition: IRac.cpp:3659
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:588
Support for Midea protocols. Midea added by crankyoldgit & bwze.
Support for Daikin A/C protocols.
gree_ac_remote_model_t
Gree A/C model numbers.
Definition: IRsend.h:155
Class for handling detailed Daikin 64-bit A/C messages.
Definition: ir_Daikin.h:1200
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:1500
Support for Coolix A/C protocols.
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:2671
Class for handling detailed Rhoss A/C messages.
Definition: ir_Rhoss.h:94
Class for handling detailed Hitachi 53-byte/424-bit A/C messages.
Definition: ir_Hitachi.h:497
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:833
IRac(const uint16_t pin, const bool inverted=false, const bool use_modulation=true)
Class constructor.
Definition: IRac.cpp:107
Class for handling detailed Daikin 216-bit A/C messages.
Definition: ir_Daikin.h:903
Class for handling detailed Voltas A/C messages.
Definition: ir_Voltas.h:91
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:2374
hitachi_ac1_remote_model_t
HITACHI_AC1 A/C model numbers.
Definition: IRsend.h:169
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:1458
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:873
Class for handling detailed Hitachi 224-bit A/C messages.
Definition: ir_Hitachi.h:372
const int8_t kGpioUnused
A placeholder for not using an actual GPIO.
Definition: IRac.h:55
Common functions for use with all A/Cs supported by the IRac class.
Definition: IRac.cpp:4055
Class for handling detailed Sanyo A/C messages.
Definition: ir_Sanyo.h:111
ac_command_t
Tyoe of A/C command (if the remote uses different codes for each)
Definition: IRsend.h:90
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:1371
Definition: ir_Kelon.h:77
Class for handling detailed Whirlpool A/C messages.
Definition: ir_Whirlpool.h:132
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:1413
Class for handling detailed Hitachi 344-bit A/C messages.
Definition: ir_Hitachi.h:586
static String boolToString(const bool value)
Convert the supplied boolean into the appropriate String.
Definition: IRac.cpp:3972
stdAc::state_t next
The state we want the device to be in after we send.
Definition: IRac.h:111
std::string String
Definition: IRremoteESP8266.h:1521
Class for handling detailed Mitsubishi 144-bit A/C messages.
Definition: ir_Mitsubishi.h:267
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:2570
static int16_t strToModel(const char *str, const int16_t def=-1)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:3852
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:1639
Class for handling detailed Amcor A/C messages.
Definition: ir_Amcor.h:90
Support for the York AC protocol (remote GRYLH2A)
Class for handling detailed Mitsubishi 122-bit A/C messages.
Definition: ir_Mitsubishi.h:401
Class for handling detailed TCL A/C messages.
Definition: ir_Tcl.h:125
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:965
Class for handling detailed Electra A/C messages.
Definition: ir_Electra.h:114
Support for TCL protocols.
bool hasStateChanged(void)
Check if the internal state has changed from what was previously sent.
Definition: IRac.cpp:3673
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:1036
Support for Transcold A/C protocols.
Support for Hitachi A/C protocols.
Support for Panasonic protocols.
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:2830
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:2869
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:570
Class for handling detailed Mitsubishi 136-bit A/C messages.
Definition: ir_Mitsubishi.h:347
panasonic_ac_remote_model_t
Panasonic A/C model numbers.
Definition: IRsend.h:181
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:1610
swingh_t
Common A/C settings for Horizontal Swing.
Definition: IRsend.h:100
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:1962
Class for handling detailed Hitachi 264-bit A/C messages.
Definition: ir_Hitachi.h:607
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:4525
Class for handling detailed Hitachi 104-bit A/C messages.
Definition: ir_Hitachi.h:429
Class for handling detailed Mirage 120-bit A/C messages.
Definition: ir_Mirage.h:196
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:1704
Support for Samsung protocols. Samsung originally added from https://github.com/shirriff/Arduino-IRre...
Supports Argo A/C SAC-WREM3 IR remote protocol.
Definition: ir_Argo.h:449
static String opmodeToString(const stdAc::opmode_t mode, const bool ha=false)
Convert the supplied operation mode into the appropriate String.
Definition: IRac.cpp:3993
String resultAcToString(const decode_results *const result)
Display the human readable state of an A/C message if we can.
Definition: IRac.cpp:4061
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:910
fujitsu_ac_remote_model_t
Fujitsu A/C model numbers.
Definition: IRsend.h:140
Support for Gree A/C protocols.
Class for handling detailed Carrier 64 bit A/C messages.
Definition: ir_Carrier.h:89
Definition: ir_Hitachi.h:624
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:536
Support for Mirage protocol.
Class for handling detailed Midea A/C messages.
Definition: ir_Midea.h:175
Class for handling detailed Kelvinator A/C messages.
Definition: ir_Kelvinator.h:132
bool _inverted
IR LED is lit when GPIO is LOW (true) or HIGH (false)?
Definition: IRac.h:124
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:1868
Class for handling detailed Fujitsu A/C messages.
Definition: ir_Fujitsu.h:179
Support for Airton protocol.
Support for Mitsubishi Heavy Industry protocols. Code to emulate Mitsubishi Heavy Industries A/C IR r...
Class for handling detailed Coolix A/C messages.
Definition: ir_Coolix.h:120
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:2159
static String swingvToString(const stdAc::swingv_t swingv)
Convert the supplied enum into the appropriate String.
Definition: IRac.cpp:4024
Support for Mitsubishi protocols. Mitsubishi (TV) decoding added from https://github....
A universal/common/generic interface for controling supported A/Cs.
Definition: IRac.h:59
Support for Teco protocols.
Class for handling detailed Trotec 3550 A/C messages.
Definition: ir_Trotec.h:198
Class for handling detailed Haier 160 bit A/C messages.
Definition: ir_Haier.h:563
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:2856
Support for Argo Ulisse 13 DCI Mobile Split ACs.
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:1923
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:456
Class for handling detailed Technibel A/C messages.
Definition: ir_Technibel.h:77
Class for handling detailed EcoClim A/C 56 bit messages.
Definition: ir_Ecoclim.h:84
Class for handling detailed Airwell A/C messages.
Definition: ir_Airwell.h:60
Support for Voltas A/C protocol.
Class for handling detailed Daikin 152-bit A/C messages.
Definition: ir_Daikin.h:1140
Class for handling detailed LG A/C messages.
Definition: ir_LG.h:114
Support for Fujitsu A/C protocols. Fujitsu A/C support added by Jonny Graham.
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:2602
Class for handling detailed Haier A/C messages.
Definition: ir_Haier.h:376
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:491
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:2118
Class for handling detailed Daikin 160-bit A/C messages.
Definition: ir_Daikin.h:959
Class for handling detailed Sharp A/C messages.
Definition: ir_Sharp.h:153
Class for handling detailed Haier 176 bit A/C messages.
Definition: ir_Haier.h:446
Support for Goodweather compatible HVAC protocols.
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:2534
lg_ac_remote_model_t
LG A/C model numbers.
Definition: IRsend.h:217
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:1998
Support for Rhoss A/C protocol.
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:397
bool _modulation
Is frequency modulation to be used?
Definition: IRac.h:125
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:2500
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:3699
Support for Sanyo protocols. Sanyo LC7461 support originally by marcosamarinho Sanyo SA 8650B origina...
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:1573
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:1330
Class for handling detailed Transcold A/C messages.
Definition: ir_Transcold.h:120
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:2195
Support for Whirlpool protocols. Decoding help from: @redmusicxd, @josh929800, @raducostea.
static bool strToBool(const char *str, const bool def=false)
Convert the supplied str into the appropriate boolean value.
Definition: IRac.cpp:3954
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:2332
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:2033
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:3768
Class for handling detailed Vestel A/C messages.
Definition: ir_Vestel.h:100
Class for handling detailed Panasonic 32bit A/C messages.
Definition: ir_Panasonic.h:223
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:2430
void mirage(IRMirageAc *ac, const stdAc::state_t state)
Send a Mirage 120-bit A/C message with the supplied settings.
Definition: IRac.cpp:1904
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:1122
Class for handling detailed Trotec A/C messages.
Definition: ir_Trotec.h:133
Support for Truma protocol.
Class for handling detailed Teco A/C messages.
Definition: ir_Teco.h:62
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:2634
static String swinghToString(const stdAc::swingh_t swingh)
Convert the supplied enum into the appropriate String.
Definition: IRac.cpp:4041
Class for handling detailed Truma A/C messages.
Definition: ir_Truma.h:69
Support for Technibel protocol.
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:1096
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:1739
Support for Kelan AC protocol.
stdAc::state_t _prev
The state we expect the device to currently be in.
Definition: IRac.h:126
Class for handling detailed Haier ACYRW02 A/C messages.
Definition: ir_Haier.h:544
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:943
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:798
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:137
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:1812
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:2074
Support for Haier A/C protocols. The specifics of reverse engineering the protocols details:
Class for handling detailed Mitsubishi Heavy 88-bit A/C messages.
Definition: ir_MitsubishiHeavy.h:271
void bosch144(IRBosch144AC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const bool quiet)
Send a Bosch144 A/C message with the supplied settings.
Definition: IRac.cpp:643
Class for handling detailed Gree A/C messages.
Definition: ir_Gree.h:156
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:3735
Support for Toshiba protocols.
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:724
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:1285
Structure to hold a common A/C state.
Definition: IRsend.h:114
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:2288
Class for handling detailed Goodweather A/C messages.
Definition: ir_Goodweather.h:100
Support for Vestel protocols. Vestel added by Erdem U. Altinyurt.
Supports Argo A/C SAC-WREM2 IR remote protocol.
Definition: ir_Argo.h:422
Class for handling detailed Sanyo A/C messages.
Definition: ir_Sanyo.h:229
Class for handling detailed Neoclima A/C messages.
Definition: ir_Neoclima.h:120
static bool isProtocolSupported(const decode_type_t protocol)
Is the given protocol supported by the IRac class?
Definition: IRac.cpp:187
Class for handling detailed Bosch144 A/C messages.
Definition: ir_Bosch.h:140
Class for handling detailed Daikin 176-bit A/C messages.
Definition: ir_Daikin.h:1011
uint16_t _pin
The GPIO to use to transmit messages from.
Definition: IRac.h:123
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:2467
voltas_ac_remote_model_t
Voltas A/C model numbers.
Definition: IRsend.h:205
sharp_ac_remote_model_t
Sharp A/C model numbers.
Definition: IRsend.h:192
Support for LG protocols.
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:684
haier_ac176_remote_model_t
HAIER_AC176 A/C model numbers.
Definition: IRsend.h:163
opmode_t
Common A/C settings for A/C operating modes.
Definition: IRsend.h:49