Go to the documentation of this file.
58 explicit IRac(
const uint16_t pin,
const bool inverted =
false,
59 const bool use_modulation =
true);
64 const float degrees,
const bool celsius,
68 const bool quiet,
const bool turbo,
const bool econo,
69 const bool light,
const bool filter,
const bool clean,
70 const bool beep,
const int16_t sleep,
80 const bool quiet,
const bool turbo,
const bool econo,
81 const bool light,
const bool filter,
const bool clean,
82 const bool beep,
const int16_t sleep = -1,
83 const int16_t clock = -1);
85 static bool strToBool(
const char *str,
const bool def =
false);
86 static int16_t
strToModel(
const char *str,
const int16_t def = -1);
98 const bool ha =
false);
119 const bool light,
const bool econo,
const bool filter,
120 const int16_t sleep = -1);
121 #endif // SEND_AIRTON
126 #endif // SEND_AIRWELL
136 const bool turbo,
const int16_t sleep = -1);
143 #endif // SEND_COOLIX
144 #if SEND_CARRIER_AC64
149 #endif // SEND_CARRIER_AC64
155 const bool turbo,
const bool light,
const bool clean,
156 const int16_t sleep = -1);
157 #endif // SEND_COOLIX
163 #endif // SEND_CORONA_AC
169 const bool quiet,
const bool turbo,
const bool econo,
171 #endif // SEND_DAIKIN
177 const bool quiet,
const bool turbo,
const bool light,
178 const bool econo,
const int16_t sleep = -1,
179 const int16_t clock = -1);
180 #endif // SEND_DAIKIN128
186 const bool quiet,
const bool turbo,
const bool econo);
187 #endif // SEND_DAIKIN152
193 #endif // SEND_DAIKIN160
199 #endif // SEND_DAIKIN176
205 const bool quiet,
const bool turbo,
const bool light,
206 const bool econo,
const bool filter,
const bool clean,
207 const bool beep,
const int16_t sleep = -1,
208 const int16_t clock = -1);
209 #endif // SEND_DAIKIN2
215 const bool quiet,
const bool turbo);
216 #endif // SEND_DAIKIN216
222 const bool quiet,
const bool turbo,
223 const int16_t sleep = -1,
const int16_t clock = -1);
224 #endif // SEND_DAIKIN64
229 const bool turbo,
const int16_t sleep = -1);
230 #endif // SEND_DELONGHI_AC
235 const int16_t sleep = -1,
const int16_t clock = -1);
236 #endif // SEND_ECOCLIM
243 const bool lighttoggle,
const bool clean);
244 #endif // SEND_ELECTRA_AC
248 const bool celsius,
const float degrees,
251 const bool quiet,
const bool turbo,
const bool econo,
252 const bool filter,
const bool clean,
const int16_t sleep = -1);
253 #endif // SEND_FUJITSU_AC
260 const bool turbo,
const bool light,
261 const int16_t sleep = -1);
262 #endif // SEND_GOODWEATHER
268 const bool turbo,
const bool econo,
const bool light,
269 const bool clean,
const int16_t sleep = -1);
275 const bool filter,
const int16_t sleep = -1,
276 const int16_t clock = -1);
277 #endif // SEND_HAIER_AC
283 const bool turbo,
const bool quiet,
const bool filter,
284 const bool clean,
const bool light,
const bool prevlight,
285 const int16_t sleep = -1);
286 #endif // SEND_HAIER_AC160
293 const bool turbo,
const bool quiet,
const bool filter,
294 const int16_t sleep = -1);
295 #endif // SEND_HAIER_AC176
296 #if SEND_HAIER_AC_YRW02
299 const bool celsius,
const float degrees,
302 const bool quiet,
const bool filter,
303 const int16_t sleep = -1);
304 #endif // SEND_HAIER_AC_YRW02
310 #endif // SEND_HITACHI_AC
313 const bool on,
const bool power_toggle,
317 const bool swing_toggle,
const int16_t sleep = -1);
318 #endif // SEND_HITACHI_AC1
319 #if SEND_HITACHI_AC264
323 #endif // SEND_HITACHI_AC264
324 #if SEND_HITACHI_AC296
328 #endif // SEND_HITACHI_AC296
329 #if SEND_HITACHI_AC344
335 #endif // SEND_HITACHI_AC344
336 #if SEND_HITACHI_AC424
341 #endif // SEND_HITACHI_AC424
344 const int8_t dryGrade,
const float degrees,
346 const bool superCool,
const int16_t sleep);
353 const bool quiet,
const bool turbo,
const bool light,
354 const bool filter,
const bool clean);
355 #endif // SEND_KELVINATOR
368 const bool quiet,
const bool quiet_prev,
const bool turbo,
369 const bool econo,
const bool light,
const bool clean,
370 const int16_t sleep = -1);
374 #endif // SEND_MIRAGE
375 #if SEND_MITSUBISHI_AC
381 const bool quiet,
const int16_t clock = -1);
382 #endif // SEND_MITSUBISHI_AC
383 #if SEND_MITSUBISHI112
390 #endif // SEND_MITSUBISHI112
391 #if SEND_MITSUBISHI136
396 #endif // SEND_MITSUBISHI136
397 #if SEND_MITSUBISHIHEAVY
403 const bool turbo,
const bool econo,
const bool clean);
409 const bool quiet,
const bool turbo,
const bool econo,
410 const bool filter,
const bool clean,
411 const int16_t sleep = -1);
412 #endif // SEND_MITSUBISHIHEAVY
415 const bool celsius,
const float degrees,
418 const bool turbo,
const bool econo,
const bool light,
419 const bool filter,
const int16_t sleep = -1);
420 #endif // SEND_NEOCLIMA
421 #if SEND_PANASONIC_AC
426 const bool quiet,
const bool turbo,
const bool filter,
427 const int16_t clock = -1);
428 #endif // SEND_PANASONIC_AC
429 #if SEND_PANASONIC_AC32
434 #endif // SEND_PANASONIC_AC32
445 const bool quiet,
const bool turbo,
const bool econo,
446 const bool light,
const bool filter,
const bool clean,
447 const bool beep,
const int16_t sleep = -1,
448 const bool prevpower =
true,
const int16_t prevsleep = -1,
449 const bool forceextended =
true);
450 #endif // SEND_SAMSUNG_AC
455 const bool beep,
const int16_t sleep = -1);
456 #endif // SEND_SANYO_AC
463 const int16_t sleep = -1,
const int16_t clock = -1);
464 #endif // SEND_SANYO_AC88
470 const bool turbo,
const bool light,
471 const bool filter,
const bool clean);
472 #endif // SEND_SHARP_AC
478 const bool quiet,
const bool turbo,
const bool light,
479 const bool econo,
const bool filter);
480 #endif // SEND_TCL112AC
481 #if SEND_TECHNIBEL_AC
486 #endif // SEND_TECHNIBEL_AC
491 const bool light,
const int16_t sleep = -1);
497 const bool turbo,
const bool econo,
const bool filter);
498 #endif // SEND_TOSHIBA_AC
503 #endif // SEND_TROTEC
507 const bool celsius,
const float degrees,
509 #endif // SEND_TROTEC_3550
519 const bool turbo,
const bool filter,
520 const int16_t sleep = -1,
const int16_t clock = -1,
521 const bool sendNormal =
true);
522 #endif // SEND_VESTEL_AC
528 const bool turbo,
const bool econo,
const bool light,
529 const int16_t sleep = -1);
530 #endif // SEND_VOLTAS
531 #if SEND_WHIRLPOOL_AC
535 const bool turbo,
const bool light,
536 const int16_t sleep = -1,
const int16_t clock = -1);
537 #endif // SEND_WHIRLPOOL_AC
543 #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:387
Support for Kelvinator A/C protocols.
Class for handling detailed Samsung A/C messages.
Definition: ir_Samsung.h:186
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:1345
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:982
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:146
stdAc::state_t getState(void)
Get the current internal A/C climate state.
Definition: IRac.cpp:141
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:3544
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:1479
Class for handling detailed Airton 56-bit A/C messages.
Definition: ir_Airton.h:75
Support for Electra A/C protocols.
void ecoclim(IREcoclimAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, 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:946
void markAsSent(void)
Update the previous state to the current one.
Definition: IRac.cpp:3401
swingv_t
Common A/C settings for Vertical Swing.
Definition: IRsend.h:70
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:823
Support for Trotec protocols.
Support for Bosch A/C protocol.
void sanyo(IRSanyoAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool beep, const int16_t sleep=-1)
Send a Sanyo A/C message with the supplied settings.
Definition: IRac.cpp:2087
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:1582
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:1031
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:58
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:3723
whirlpool_ac_remote_model_t
Whirlpool A/C model numbers.
Definition: IRsend.h:191
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:2550
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:892
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:2043
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:2509
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:2587
tcl_ac_remote_model_t
TCL (& Teknopoint) A/C model numbers.
Definition: IRsend.h:179
bool sendAc(void)
Send an A/C message based soley on our internal state.
Definition: IRac.cpp:3407
static bool cmpStates(const stdAc::state_t a, const stdAc::state_t b)
Compare two AirCon states.
Definition: IRac.cpp:3418
Support for Midea protocols. Midea added by crankyoldgit & bwze.
void midea(IRMideaAC *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 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:1674
Support for Daikin A/C protocols.
gree_ac_remote_model_t
Gree A/C model numbers.
Definition: IRsend.h:135
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:1309
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:2467
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:659
IRac(const uint16_t pin, const bool inverted=false, const bool use_modulation=true)
Class constructor.
Definition: IRac.cpp:71
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:2170
hitachi_ac1_remote_model_t
HITACHI_AC1 A/C model numbers.
Definition: IRsend.h:149
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:1267
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:699
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:52
Common functions for use with all A/Cs supported by the IRac class.
Definition: IRac.cpp:3768
Class for handling detailed Sanyo A/C messages.
Definition: ir_Sanyo.h:111
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:1180
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:1222
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:3700
stdAc::state_t next
The state we want the device to be in after we send.
Definition: IRac.h:105
std::string String
Definition: IRremoteESP8266.h:1472
Class for handling detailed Mitsubishi 144-bit A/C messages.
Definition: ir_Mitsubishi.h:266
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:2366
static int16_t strToModel(const char *str, const int16_t def=-1)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:3585
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:1448
Class for handling detailed Amcor A/C messages.
Definition: ir_Amcor.h:90
Class for handling detailed Mitsubishi 122-bit A/C messages.
Definition: ir_Mitsubishi.h:400
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:791
Class for handling detailed Electra A/C messages.
Definition: ir_Electra.h:113
Support for TCL protocols.
bool hasStateChanged(void)
Check if the internal state has changed from what was previously sent.
Definition: IRac.cpp:3430
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:862
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:2626
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:2665
Class for handling detailed Mitsubishi 136-bit A/C messages.
Definition: ir_Mitsubishi.h:346
panasonic_ac_remote_model_t
Panasonic A/C model numbers.
Definition: IRsend.h:161
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:1419
swingh_t
Common A/C settings for Horizontal Swing.
Definition: IRsend.h:83
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:1764
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:4225
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:1513
Support for Samsung protocols. Samsung originally added from https://github.com/shirriff/Arduino-IRre...
static String opmodeToString(const stdAc::opmode_t mode, const bool ha=false)
Convert the supplied operation mode into the appropriate String.
Definition: IRac.cpp:3708
String resultAcToString(const decode_results *const result)
Display the human readable state of an A/C message if we can.
Definition: IRac.cpp:3774
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:736
fujitsu_ac_remote_model_t
Fujitsu A/C model numbers.
Definition: IRsend.h:120
Support for Gree A/C protocols.
Class for handling detailed Carrier 64 bit A/C messages.
Definition: ir_Carrier.h:86
Definition: ir_Hitachi.h:624
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:111
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:1961
static String swingvToString(const stdAc::swingv_t swingv)
Convert the supplied enum into the appropriate String.
Definition: IRac.cpp:3738
Support for Mitsubishi protocols. Mitsubishi (TV) decoding added from https://github....
A universal/common/generic interface for controling supported A/Cs.
Definition: IRac.h:56
Support for Teco protocols.
Class for handling detailed Trotec 3550 A/C messages.
Definition: ir_Trotec.h:198
void electra(IRElectraAc *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 lighttoggle, const bool clean)
Send an Electra A/C message with the supplied settings.
Definition: IRac.cpp:988
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:2652
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:1725
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:415
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:2398
Class for handling detailed Haier A/C messages.
Definition: ir_Haier.h:376
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:1920
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 argo(IRArgoAC *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 int16_t sleep=-1)
Send an Argo A/C message with the supplied settings.
Definition: IRac.cpp:447
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:2330
lg_ac_remote_model_t
LG A/C model numbers.
Definition: IRsend.h:197
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:1800
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:356
bool _modulation
Is frequency modulation to be used?
Definition: IRac.h:112
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:2296
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:3436
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:1382
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:1997
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:3682
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:2128
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:1835
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:3503
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:2226
void mirage(IRMirageAc *ac, const stdAc::state_t state)
Send a Mirage 120-bit A/C message with the supplied settings.
Definition: IRac.cpp:1706
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:2430
static String swinghToString(const stdAc::swingh_t swingh)
Convert the supplied enum into the appropriate String.
Definition: IRac.cpp:3754
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:922
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:1548
Support for Kelan AC protocol.
stdAc::state_t _prev
The state we expect the device to currently be in.
Definition: IRac.h:113
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:769
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:624
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:101
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:1621
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:1876
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:479
Class for handling detailed Gree A/C messages.
Definition: ir_Gree.h:156
void coolix(IRCoolixAC *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 light, const bool clean, const int16_t sleep=-1)
Send a Coolix A/C message with the supplied settings.
Definition: IRac.cpp:557
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:3472
Support for Toshiba protocols.
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 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:1140
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:1096
Structure to hold a common A/C state.
Definition: IRsend.h:97
Class for handling detailed Goodweather A/C messages.
Definition: ir_Goodweather.h:100
Support for Vestel protocols. Vestel added by Erdem U. Altinyurt.
Class for handling detailed Argo A/C messages.
Definition: ir_Argo.h:127
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:151
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:110
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:2263
voltas_ac_remote_model_t
Voltas A/C model numbers.
Definition: IRsend.h:185
sharp_ac_remote_model_t
Sharp A/C model numbers.
Definition: IRsend.h:172
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:520
haier_ac176_remote_model_t
HAIER_AC176 A/C model numbers.
Definition: IRsend.h:143
opmode_t
Common A/C settings for A/C operating modes.
Definition: IRsend.h:46