IRremoteESP8266
IRac.h
Go to the documentation of this file.
1 #ifndef IRAC_H_
2 #define IRAC_H_
3 
4 // Copyright 2019 David Conran
5 
6 #ifndef UNIT_TEST
7 #include <Arduino.h>
8 #endif
9 #include "IRremoteESP8266.h"
10 #include "ir_Airwell.h"
11 #include "ir_Amcor.h"
12 #include "ir_Argo.h"
13 #include "ir_Carrier.h"
14 #include "ir_Coolix.h"
15 #include "ir_Corona.h"
16 #include "ir_Daikin.h"
17 #include "ir_Delonghi.h"
18 #include "ir_Fujitsu.h"
19 #include "ir_Electra.h"
20 #include "ir_Goodweather.h"
21 #include "ir_Gree.h"
22 #include "ir_Haier.h"
23 #include "ir_Hitachi.h"
24 #include "ir_Kelvinator.h"
25 #include "ir_LG.h"
26 #include "ir_Midea.h"
27 #include "ir_Mitsubishi.h"
28 #include "ir_MitsubishiHeavy.h"
29 #include "ir_Neoclima.h"
30 #include "ir_Panasonic.h"
31 #include "ir_Samsung.h"
32 #include "ir_Sanyo.h"
33 #include "ir_Sharp.h"
34 #include "ir_Tcl.h"
35 #include "ir_Teco.h"
36 #include "ir_Toshiba.h"
37 #include "ir_Trotec.h"
38 #include "ir_Vestel.h"
39 #include "ir_Whirlpool.h"
40 
41 // Constants
42 const int8_t kGpioUnused = -1;
43 
44 // Class
46 class IRac {
47  public:
48  explicit IRac(const uint16_t pin, const bool inverted = false,
49  const bool use_modulation = true);
50  static bool isProtocolSupported(const decode_type_t protocol);
51  static void initState(stdAc::state_t *state,
52  const decode_type_t vendor, const int16_t model,
53  const bool power, const stdAc::opmode_t mode,
54  const float degrees, const bool celsius,
55  const stdAc::fanspeed_t fan,
56  const stdAc::swingv_t swingv,
57  const stdAc::swingh_t swingh,
58  const bool quiet, const bool turbo, const bool econo,
59  const bool light, const bool filter, const bool clean,
60  const bool beep, const int16_t sleep,
61  const int16_t clock);
62  static void initState(stdAc::state_t *state);
63  void markAsSent(void);
64  bool sendAc(void);
65  bool sendAc(const stdAc::state_t desired, const stdAc::state_t *prev = NULL);
66  bool sendAc(const decode_type_t vendor, const int16_t model,
67  const bool power, const stdAc::opmode_t mode, const float degrees,
68  const bool celsius, const stdAc::fanspeed_t fan,
69  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
70  const bool quiet, const bool turbo, const bool econo,
71  const bool light, const bool filter, const bool clean,
72  const bool beep, const int16_t sleep = -1,
73  const int16_t clock = -1);
74  static bool cmpStates(const stdAc::state_t a, const stdAc::state_t b);
75  static bool strToBool(const char *str, const bool def = false);
76  static int16_t strToModel(const char *str, const int16_t def = -1);
78  const char *str, const stdAc::opmode_t def = stdAc::opmode_t::kAuto);
80  const char *str,
83  const char *str, const stdAc::swingv_t def = stdAc::swingv_t::kOff);
85  const char *str, const stdAc::swingh_t def = stdAc::swingh_t::kOff);
86  static String boolToString(const bool value);
87  static String opmodeToString(const stdAc::opmode_t mode);
88  static String fanspeedToString(const stdAc::fanspeed_t speed);
89  static String swingvToString(const stdAc::swingv_t swingv);
90  static String swinghToString(const stdAc::swingh_t swingh);
93  bool hasStateChanged(void);
95 #ifndef UNIT_TEST
96 
97  private:
98 #endif
99  uint16_t _pin;
100  bool _inverted;
101  bool _modulation;
103 #if SEND_AIRWELL
104  void airwell(IRAirwellAc *ac,
105  const bool on, const stdAc::opmode_t mode, const float degrees,
106  const stdAc::fanspeed_t fan);
107 #endif // SEND_AIRWELL
108 #if SEND_AMCOR
109  void amcor(IRAmcorAc *ac,
110  const bool on, const stdAc::opmode_t mode, const float degrees,
111  const stdAc::fanspeed_t fan);
112 #endif // SEND_AMCOR
113 #if SEND_ARGO
114  void argo(IRArgoAC *ac,
115  const bool on, const stdAc::opmode_t mode, const float degrees,
116  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
117  const bool turbo, const int16_t sleep = -1);
118 #endif // SEND_ARGO
119 #if SEND_CARRIER_AC64
120 void carrier64(IRCarrierAc64 *ac,
121  const bool on, const stdAc::opmode_t mode,
122  const float degrees, const stdAc::fanspeed_t fan,
123  const stdAc::swingv_t swingv, const int16_t sleep = -1);
124 #endif // SEND_CARRIER_AC64
125 #if SEND_COOLIX
126  void coolix(IRCoolixAC *ac,
127  const bool on, const stdAc::opmode_t mode, const float degrees,
128  const stdAc::fanspeed_t fan,
129  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
130  const bool turbo, const bool light, const bool clean,
131  const int16_t sleep = -1);
132 #endif // SEND_COOLIX
133 #if SEND_CORONA_AC
134  void corona(IRCoronaAc *ac,
135  const bool on, const stdAc::opmode_t mode,
136  const float degrees, const stdAc::fanspeed_t fan,
137  const stdAc::swingv_t swingv, const bool econo);
138 #endif // SEND_CORONA_AC
139 #if SEND_DAIKIN
140  void daikin(IRDaikinESP *ac,
141  const bool on, const stdAc::opmode_t mode, const float degrees,
142  const stdAc::fanspeed_t fan,
143  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
144  const bool quiet, const bool turbo, const bool econo,
145  const bool clean);
146 #endif // SEND_DAIKIN
147 #if SEND_DAIKIN128
148  void daikin128(IRDaikin128 *ac,
149  const bool on, const stdAc::opmode_t mode,
150  const float degrees, const stdAc::fanspeed_t fan,
151  const stdAc::swingv_t swingv,
152  const bool quiet, const bool turbo, const bool light,
153  const bool econo, const int16_t sleep = -1,
154  const int16_t clock = -1);
155 #endif // SEND_DAIKIN128
156 #if SEND_DAIKIN152
157  void daikin152(IRDaikin152 *ac,
158  const bool on, const stdAc::opmode_t mode,
159  const float degrees, const stdAc::fanspeed_t fan,
160  const stdAc::swingv_t swingv,
161  const bool quiet, const bool turbo, const bool econo);
162 #endif // SEND_DAIKIN152
163 #if SEND_DAIKIN160
164  void daikin160(IRDaikin160 *ac,
165  const bool on, const stdAc::opmode_t mode,
166  const float degrees, const stdAc::fanspeed_t fan,
167  const stdAc::swingv_t swingv);
168 #endif // SEND_DAIKIN160
169 #if SEND_DAIKIN176
170  void daikin176(IRDaikin176 *ac,
171  const bool on, const stdAc::opmode_t mode,
172  const float degrees, const stdAc::fanspeed_t fan,
173  const stdAc::swingh_t swingh);
174 #endif // SEND_DAIKIN176
175 #if SEND_DAIKIN2
176  void daikin2(IRDaikin2 *ac,
177  const bool on, const stdAc::opmode_t mode,
178  const float degrees, const stdAc::fanspeed_t fan,
179  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
180  const bool quiet, const bool turbo, const bool light,
181  const bool econo, const bool filter, const bool clean,
182  const bool beep, const int16_t sleep = -1,
183  const int16_t clock = -1);
184 #endif // SEND_DAIKIN2
185 #if SEND_DAIKIN216
186 void daikin216(IRDaikin216 *ac,
187  const bool on, const stdAc::opmode_t mode,
188  const float degrees, const stdAc::fanspeed_t fan,
189  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
190  const bool quiet, const bool turbo);
191 #endif // SEND_DAIKIN216
192 #if SEND_DAIKIN64
193  void daikin64(IRDaikin64 *ac,
194  const bool on, const stdAc::opmode_t mode,
195  const float degrees, const stdAc::fanspeed_t fan,
196  const stdAc::swingv_t swingv,
197  const bool quiet, const bool turbo,
198  const int16_t sleep = -1, const int16_t clock = -1);
199 #endif // SEND_DAIKIN64
200 #if SEND_DELONGHI_AC
201  void delonghiac(IRDelonghiAc *ac,
202  const bool on, const stdAc::opmode_t mode, const bool celsius,
203  const float degrees, const stdAc::fanspeed_t fan,
204  const bool turbo, const int16_t sleep = -1);
205 #endif // SEND_DELONGHI_AC
206 #if SEND_ELECTRA_AC
207 void electra(IRElectraAc *ac,
208  const bool on, const stdAc::opmode_t mode,
209  const float degrees, const stdAc::fanspeed_t fan,
210  const stdAc::swingv_t swingv,
211  const stdAc::swingh_t swingh, const bool turbo,
212  const bool lighttoggle, const bool clean);
213 #endif // SEND_ELECTRA_AC
214 #if SEND_FUJITSU_AC
215  void fujitsu(IRFujitsuAC *ac, const fujitsu_ac_remote_model_t model,
216  const bool on, const stdAc::opmode_t mode, const float degrees,
217  const stdAc::fanspeed_t fan,
218  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
219  const bool quiet, const bool turbo, const bool econo,
220  const bool filter, const bool clean);
221 #endif // SEND_FUJITSU_AC
222 #if SEND_GOODWEATHER
223  void goodweather(IRGoodweatherAc *ac,
224  const bool on, const stdAc::opmode_t mode,
225  const float degrees,
226  const stdAc::fanspeed_t fan,
227  const stdAc::swingv_t swingv,
228  const bool turbo, const bool light,
229  const int16_t sleep = -1);
230 #endif // SEND_GOODWEATHER
231 #if SEND_GREE
232  void gree(IRGreeAC *ac, const gree_ac_remote_model_t model,
233  const bool on, const stdAc::opmode_t mode, const bool celsius,
234  const float degrees, const stdAc::fanspeed_t fan,
235  const stdAc::swingv_t swingv, const bool turbo, const bool light,
236  const bool clean, const int16_t sleep = -1);
237 #endif // SEND_GREE
238 #if SEND_HAIER_AC
239  void haier(IRHaierAC *ac,
240  const bool on, const stdAc::opmode_t mode, const float degrees,
241  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
242  const bool filter, const int16_t sleep = -1,
243  const int16_t clock = -1);
244 #endif // SEND_HAIER_AC
245 #if SEND_HAIER_AC_YRW02
246  void haierYrwo2(IRHaierACYRW02 *ac,
247  const bool on, const stdAc::opmode_t mode,
248  const float degrees, const stdAc::fanspeed_t fan,
249  const stdAc::swingv_t swingv,
250  const bool turbo, const bool filter,
251  const int16_t sleep = -1);
252 #endif // SEND_HAIER_AC_YRW02
253 #if SEND_HITACHI_AC
254  void hitachi(IRHitachiAc *ac,
255  const bool on, const stdAc::opmode_t mode,
256  const float degrees, const stdAc::fanspeed_t fan,
257  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh);
258 #endif // SEND_HITACHI_AC
259 #if SEND_HITACHI_AC1
260  void hitachi1(IRHitachiAc1 *ac, const hitachi_ac1_remote_model_t model,
261  const bool on, const bool power_toggle,
262  const stdAc::opmode_t mode,
263  const float degrees, const stdAc::fanspeed_t fan,
264  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
265  const bool swing_toggle, const int16_t sleep = -1);
266 #endif // SEND_HITACHI_AC1
267 #if SEND_HITACHI_AC344
268  void hitachi344(IRHitachiAc344 *ac,
269  const bool on, const stdAc::opmode_t mode,
270  const float degrees, const stdAc::fanspeed_t fan,
271  const stdAc::swingv_t swingv,
272  const stdAc::swingh_t swingh);
273 #endif // SEND_HITACHI_AC344
274 #if SEND_HITACHI_AC424
275  void hitachi424(IRHitachiAc424 *ac,
276  const bool on, const stdAc::opmode_t mode,
277  const float degrees, const stdAc::fanspeed_t fan,
278  const stdAc::swingv_t swingv);
279 #endif // SEND_HITACHI_AC424
280 #if SEND_KELVINATOR
281  void kelvinator(IRKelvinatorAC *ac,
282  const bool on, const stdAc::opmode_t mode,
283  const float degrees, const stdAc::fanspeed_t fan,
284  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
285  const bool quiet, const bool turbo, const bool light,
286  const bool filter, const bool clean);
287 #endif // SEND_KELVINATOR
288 #if SEND_LG
289  void lg(IRLgAc *ac, const lg_ac_remote_model_t model,
290  const bool on, const stdAc::opmode_t mode,
291  const float degrees, const stdAc::fanspeed_t fan);
292 #endif // SEND_LG
293 #if SEND_MIDEA
294  void midea(IRMideaAC *ac,
295  const bool on, const stdAc::opmode_t mode, const bool celsius,
296  const float degrees, const stdAc::fanspeed_t fan,
297  const stdAc::swingv_t swingv, const bool econo,
298  const int16_t sleep = -1);
299 #endif // SEND_MIDEA
300 #if SEND_MITSUBISHI_AC
301  void mitsubishi(IRMitsubishiAC *ac,
302  const bool on, const stdAc::opmode_t mode,
303  const float degrees,
304  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
305  const stdAc::swingh_t swingh,
306  const bool quiet, const int16_t clock = -1);
307 #endif // SEND_MITSUBISHI_AC
308 #if SEND_MITSUBISHI112
310  const bool on, const stdAc::opmode_t mode,
311  const float degrees, const stdAc::fanspeed_t fan,
312  const stdAc::swingv_t swingv,
313  const stdAc::swingh_t swingh,
314  const bool quiet);
315 #endif // SEND_MITSUBISHI112
316 #if SEND_MITSUBISHI136
318  const bool on, const stdAc::opmode_t mode,
319  const float degrees, const stdAc::fanspeed_t fan,
320  const stdAc::swingv_t swingv, const bool quiet);
321 #endif // SEND_MITSUBISHI136
322 #if SEND_MITSUBISHIHEAVY
324  const bool on, const stdAc::opmode_t mode,
325  const float degrees, const stdAc::fanspeed_t fan,
326  const stdAc::swingv_t swingv,
327  const stdAc::swingh_t swingh,
328  const bool turbo, const bool econo, const bool clean);
330  const bool on, const stdAc::opmode_t mode,
331  const float degrees, const stdAc::fanspeed_t fan,
332  const stdAc::swingv_t swingv,
333  const stdAc::swingh_t swingh,
334  const bool quiet, const bool turbo, const bool econo,
335  const bool filter, const bool clean,
336  const int16_t sleep = -1);
337 #endif // SEND_MITSUBISHIHEAVY
338 #if SEND_NEOCLIMA
339  void neoclima(IRNeoclimaAc *ac, const bool on, const stdAc::opmode_t mode,
340  const float degrees, const stdAc::fanspeed_t fan,
341  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
342  const bool turbo, const bool light, const bool filter,
343  const int16_t sleep = -1);
344 #endif // SEND_NEOCLIMA
345 #if SEND_PANASONIC_AC
347  const bool on, const stdAc::opmode_t mode, const float degrees,
348  const stdAc::fanspeed_t fan,
349  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
350  const bool quiet, const bool turbo, const bool filter,
351  const int16_t clock = -1);
352 #endif // SEND_PANASONIC_AC
353 #if SEND_SAMSUNG_AC
354  void samsung(IRSamsungAc *ac,
355  const bool on, const stdAc::opmode_t mode, const float degrees,
356  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
357  const bool quiet, const bool turbo, const bool light,
358  const bool filter, const bool clean,
359  const bool beep, const bool prevpower = true,
360  const bool forcepower = true);
361 #endif // SEND_SAMSUNG_AC
362 #if SEND_SANYO_AC
363  void sanyo(IRSanyoAc *ac,
364  const bool on, const stdAc::opmode_t mode, const float degrees,
365  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
366  const bool beep, const int16_t sleep = -1);
367 #endif // SEND_SANYO_AC
368 #if SEND_SHARP_AC
369  void sharp(IRSharpAc *ac,
370  const bool on, const bool prev_power, const stdAc::opmode_t mode,
371  const float degrees, const stdAc::fanspeed_t fan,
372  const stdAc::swingv_t swingv, const bool turbo, const bool filter,
373  const bool clean);
374 #endif // SEND_SHARP_AC
375 #if SEND_TCL112AC
376  void tcl112(IRTcl112Ac *ac,
377  const bool on, const stdAc::opmode_t mode, const float degrees,
378  const stdAc::fanspeed_t fan,
379  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
380  const bool turbo, const bool light, const bool econo,
381  const bool filter);
382 #endif // SEND_TCL112AC
383 #if SEND_TECO
384  void teco(IRTecoAc *ac,
385  const bool on, const stdAc::opmode_t mode, const float degrees,
386  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
387  const bool light, const int16_t sleep = -1);
388 #endif // SEND_TECO
389 #if SEND_TOSHIBA_AC
390  void toshiba(IRToshibaAC *ac,
391  const bool on, const stdAc::opmode_t mode, const float degrees,
392  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
393  const bool turbo, const bool econo);
394 #endif // SEND_TOSHIBA_AC
395 #if SEND_TROTEC
396  void trotec(IRTrotecESP *ac,
397  const bool on, const stdAc::opmode_t mode, const float degrees,
398  const stdAc::fanspeed_t fan, const int16_t sleep = -1);
399 #endif // SEND_TROTEC
400 #if SEND_VESTEL_AC
401  void vestel(IRVestelAc *ac,
402  const bool on, const stdAc::opmode_t mode, const float degrees,
403  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
404  const bool turbo, const bool filter,
405  const int16_t sleep = -1, const int16_t clock = -1,
406  const bool sendNormal = true);
407 #endif // SEND_VESTEL_AC
408 #if SEND_WHIRLPOOL_AC
410  const bool on, const stdAc::opmode_t mode, const float degrees,
411  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
412  const bool turbo, const bool light,
413  const int16_t sleep = -1, const int16_t clock = -1);
414 #endif // SEND_WHIRLPOOL_AC
415 static stdAc::state_t cleanState(const stdAc::state_t state);
416 static stdAc::state_t handleToggles(const stdAc::state_t desired,
417  const stdAc::state_t *prev = NULL);
418 }; // IRac class
419 
421 namespace IRAcUtils {
422  String resultAcToString(const decode_results * const results);
423  bool decodeToState(const decode_results *decode, stdAc::state_t *result,
424  const stdAc::state_t *prev = NULL);
425 } // namespace IRAcUtils
426 #endif // IRAC_H_
IRPanasonicAc
Class for handling detailed Panasonic A/C messages.
Definition: ir_Panasonic.h:98
IRac::airwell
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:287
ir_Kelvinator.h
Support for Kelvinator A/C protocols.
IRSamsungAc
Class for handling detailed Samsung A/C messages.
Definition: ir_Samsung.h:97
IRac::hitachi
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:1056
IRToshibaAC
Class for handling detailed Toshiba A/C messages.
Definition: ir_Toshiba.h:100
decode_type_t
decode_type_t
Enumerator for defining and numbering of supported IR protocol.
Definition: IRremoteESP8266.h:721
IRac::getStatePrev
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:130
IRac::getState
stdAc::state_t getState(void)
Get the current internal A/C climate state.
Definition: IRac.cpp:125
IRMitsubishiHeavy152Ac
Class for handling detailed Mitsubishi Heavy 152-bit A/C messages.
Definition: ir_MitsubishiHeavy.h:133
IRac::strToSwingH
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:2607
IRac::hitachi344
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:1132
stdAc::opmode_t::kAuto
@ kAuto
ir_Electra.h
Support for Electra A/C protocols.
IRac::markAsSent
void markAsSent(void)
Update the previous state to the current one.
Definition: IRac.cpp:2470
stdAc::swingv_t
swingv_t
Common A/C settings for Vertical Swing.
Definition: IRsend.h:70
ir_Airwell.h
Airwell "Manchester code" based protocol. Some other Airwell products use the COOLIX protocol.
IRac::daikin2
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:676
ir_Trotec.h
Support for Trotec protocols.
IRac::sanyo
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 Toshiba A/C message with the supplied settings.
Definition: IRac.cpp:1625
IRDaikinESP
Class for handling detailed Daikin 280-bit A/C messages.
Definition: ir_Daikin.h:520
IRac::lg
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)
Send a LG A/C message with the supplied settings.
Definition: IRac.cpp:1238
IRDelonghiAc
Class for handling detailed Delonghi A/C messages.
Definition: ir_Delonghi.h:102
IRCoronaAc
Class for handling detailed Corona A/C messages.
Definition: ir_Corona.h:93
IRac::kelvinator
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:1204
IRDaikin2
Class for handling detailed Daikin 312-bit A/C messages.
Definition: ir_Daikin.h:602
ir_Neoclima.h
Support for Neoclima protocols. Analysis by crankyoldgit & AndreyShpilevoy.
IRDaikin128
Class for handling detailed Daikin 128-bit A/C messages.
Definition: ir_Daikin.h:863
stdAc::fanspeed_t
fanspeed_t
Common A/C settings for Fan Speeds.
Definition: IRsend.h:58
ir_Sharp.h
Support for Sharp protocols.
IRac::fanspeedToString
static String fanspeedToString(const stdAc::fanspeed_t speed)
Convert the supplied fan speed enum into the appropriate String.
Definition: IRac.cpp:2749
whirlpool_ac_remote_model_t
whirlpool_ac_remote_model_t
Whirlpool A/C model numbers.
Definition: IRsend.h:152
ir_Carrier.h
Carrier A/C.
IRac::whirlpool
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:1901
decode_results
Results returned from the decoder.
Definition: IRrecv.h:92
IRac::daikin64
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:745
IRac::tcl112
void tcl112(IRTcl112Ac *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 econo, const bool filter)
Send a TCL 112-bit A/C message with the supplied settings.
Definition: IRac.cpp:1719
IRac::sendAc
bool sendAc(void)
Send an A/C message based soley on our internal state.
Definition: IRac.cpp:2476
IRac::cmpStates
static bool cmpStates(const stdAc::state_t a, const stdAc::state_t b)
Compare two AirCon states.
Definition: IRac.cpp:2487
ir_Midea.h
Support for Midea protocols. Midea added by crankyoldgit & bwze.
ir_Daikin.h
Support for Daikin A/C protocols.
gree_ac_remote_model_t
gree_ac_remote_model_t
Gree A/C model numbers.
Definition: IRsend.h:129
IRDaikin64
Class for handling detailed Daikin 64-bit A/C messages.
Definition: ir_Daikin.h:997
ir_Coolix.h
IRac::vestel
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:1860
IRHitachiAc424
Class for handling detailed Hitachi 53-byte/424-bit A/C messages.
Definition: ir_Hitachi.h:313
IRac::daikin
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:512
IRac::IRac
IRac(const uint16_t pin, const bool inverted=false, const bool use_modulation=true)
Class constructor.
Definition: IRac.cpp:51
IRDaikin216
Class for handling detailed Daikin 216-bit A/C messages.
Definition: ir_Daikin.h:698
hitachi_ac1_remote_model_t
hitachi_ac1_remote_model_t
HITACHI_AC1 A/C model numbers.
Definition: IRsend.h:135
IRac::samsung
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 bool quiet, const bool turbo, const bool light, const bool filter, const bool clean, const bool beep, const bool prevpower=true, const bool forcepower=true)
Send a Samsung A/C message with the supplied settings.
Definition: IRac.cpp:1584
IRac::daikin128
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:552
IRHitachiAc
Class for handling detailed Hitachi 224-bit A/C messages.
Definition: ir_Hitachi.h:188
kGpioUnused
const int8_t kGpioUnused
A placeholder for not using an actual GPIO.
Definition: IRac.h:42
IRAcUtils
Common functions for use with all A/Cs supported by the IRac class.
Definition: IRac.cpp:2818
IRSanyoAc
Class for handling detailed Sanyo A/C messages.
Definition: ir_Sanyo.h:98
IRac::haier
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:987
IRWhirlpoolAc
Class for handling detailed Whirlpool A/C messages.
Definition: ir_Whirlpool.h:91
IRHitachiAc344
Class for handling detailed Hitachi 344-bit A/C messages.
Definition: ir_Hitachi.h:401
IRac::boolToString
static String boolToString(const bool value)
Convert the supplied boolean into the appropriate String.
Definition: IRac.cpp:2720
IRac::next
stdAc::state_t next
The state we want the device to be in after we send.
Definition: IRac.h:94
String
std::string String
Definition: IRremoteESP8266.h:1107
IRMitsubishiAC
Class for handling detailed Mitsubishi 144-bit A/C messages.
Definition: ir_Mitsubishi.h:168
IRac::trotec
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:1823
IRac::strToModel
static int16_t strToModel(const char *str, const int16_t def=-1)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:2647
IRAmcorAc
Class for handling detailed Amcor A/C messages.
Definition: ir_Amcor.h:81
IRMitsubishi112
Class for handling detailed Mitsubishi 122-bit A/C messages.
Definition: ir_Mitsubishi.h:286
IRTcl112Ac
Class for handling detailed TCL A/C messages.
Definition: ir_Tcl.h:63
IRac::daikin176
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:644
IRElectraAc
Class for handling detailed Electra A/C messages.
Definition: ir_Electra.h:80
ir_Tcl.h
Support for TCL protocols.
IRac::hasStateChanged
bool hasStateChanged(void)
Check if the internal state has changed from what was previously sent.
Definition: IRac.cpp:2499
IRac::haierYrwo2
void haierYrwo2(IRHaierACYRW02 *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)
Send a Haier YRWO2 A/C message with the supplied settings.
Definition: IRac.cpp:1024
IRac::daikin216
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:715
ir_Hitachi.h
Support for Hitachi A/C protocols.
ir_Panasonic.h
Support for Panasonic protocols.
IRac::handleToggles
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:1945
IRMitsubishi136
Class for handling detailed Mitsubishi 136-bit A/C messages.
Definition: ir_Mitsubishi.h:232
panasonic_ac_remote_model_t
panasonic_ac_remote_model_t
Panasonic A/C model numbers.
Definition: IRsend.h:141
IRremoteESP8266.h
stdAc::swingh_t
swingh_t
Common A/C settings for Horizontal Swing.
Definition: IRsend.h:83
IRac::mitsubishi112
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:1346
IRAcUtils::decodeToState
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:3155
IRHitachiAc1
Class for handling detailed Hitachi 104-bit A/C messages.
Definition: ir_Hitachi.h:245
IRac::hitachi424
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:1166
ir_Samsung.h
Support for Samsung protocols. Samsung originally added from https://github.com/shirriff/Arduino-IRre...
IRAcUtils::resultAcToString
String resultAcToString(const decode_results *const result)
Display the human readable state of an A/C message if we can.
Definition: IRac.cpp:2824
IRac::daikin152
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:589
fujitsu_ac_remote_model_t
fujitsu_ac_remote_model_t
Fujitsu A/C model numbers.
Definition: IRsend.h:120
ir_Gree.h
Support for Gree A/C protocols.
IRCarrierAc64
Class for handling detailed Carrier 64 bit A/C messages.
Definition: ir_Carrier.h:74
IRMideaAC
Class for handling detailed Midea A/C messages.
Definition: ir_Midea.h:84
IRKelvinatorAC
Class for handling detailed Kelvinator A/C messages.
Definition: ir_Kelvinator.h:137
IRac::_inverted
bool _inverted
IR LED is lit when GPIO is LOW (true) or HIGH (false)?
Definition: IRac.h:100
IRFujitsuAC
Class for handling detailed Fujitsu A/C messages.
Definition: ir_Fujitsu.h:101
ir_MitsubishiHeavy.h
Support for Mitsubishi Heavy Industry protocols. Code to emulate Mitsubishi Heavy Industries A/C IR r...
IRCoolixAC
Class for handling detailed Coolix A/C messages.
Definition: ir_Coolix.h:105
IRac::panasonic
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:1540
IRac::swingvToString
static String swingvToString(const stdAc::swingv_t swingv)
Convert the supplied enum into the appropriate String.
Definition: IRac.cpp:2771
ir_Mitsubishi.h
Support for Mitsubishi protocols. Mitsubishi (TV) decoding added from https://github....
IRac
A universal/common/generic interface for controling supported A/Cs.
Definition: IRac.h:46
ir_Teco.h
Support for Teco protocols.
IRac::gree
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 bool turbo, const bool light, const bool clean, const int16_t sleep=-1)
Send a Gree A/C message with the supplied settings.
Definition: IRac.cpp:949
ir_Delonghi.h
Delonghi A/C.
IRac::electra
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:802
IRac::cleanState
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:1932
ir_Argo.h
Support for Argo Ulisse 13 DCI Mobile Split ACs.
IRac::mitsubishi
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:1311
IRac::amcor
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:315
IRAirwellAc
Class for handling detailed Airwell A/C messages.
Definition: ir_Airwell.h:55
IRDaikin152
Class for handling detailed Daikin 152-bit A/C messages.
Definition: ir_Daikin.h:937
IRLgAc
Class for handling detailed LG A/C messages.
Definition: ir_LG.h:64
ir_Fujitsu.h
Support for Fujitsu A/C protocols. Fujitsu A/C support added by Jonny Graham.
IRHaierAC
Class for handling detailed Haier A/C messages.
Definition: ir_Haier.h:217
IRDaikin160
Class for handling detailed Daikin 160-bit A/C messages.
Definition: ir_Daikin.h:754
IRac::opmodeToString
static String opmodeToString(const stdAc::opmode_t mode)
Convert the supplied operation mode into the appropriate String.
Definition: IRac.cpp:2727
IRSharpAc
Class for handling detailed Sharp A/C messages.
Definition: ir_Sharp.h:108
IRac::toshiba
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)
Send a Toshiba A/C message with the supplied settings.
Definition: IRac.cpp:1788
ir_Goodweather.h
Support for Goodweather compatible HVAC protocols.
IRac::argo
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:347
lg_ac_remote_model_t
lg_ac_remote_model_t
LG A/C model numbers.
Definition: IRsend.h:158
IRac::mitsubishi136
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:1382
stdAc::fanspeed_t::kAuto
@ kAuto
IRac::_modulation
bool _modulation
Is frequency modulation to be used?
Definition: IRac.h:101
IRac::teco
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:1755
IRac::strToOpmode
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:2505
ir_Sanyo.h
Support for Sanyo protocols. Sanyo LC7461 support originally by marcosamarinho Sanyo SA 8650B origina...
IRac::hitachi1
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:1093
stdAc::swingh_t::kOff
@ kOff
ir_Whirlpool.h
Support for Whirlpool protocols. Decoding help from: @redmusicxd, @josh929800, @raducostea.
IRac::strToBool
static bool strToBool(const char *str, const bool def=false)
Convert the supplied str into the appropriate boolean value.
Definition: IRac.cpp:2702
IRac::mitsubishiHeavy88
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:1417
IRac::strToSwingV
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:2566
IRVestelAc
Class for handling detailed Vestel A/C messages.
Definition: ir_Vestel.h:116
IRac::neoclima
void neoclima(IRNeoclimaAc *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 filter, const int16_t sleep=-1)
Send a Neoclima A/C message with the supplied settings.
Definition: IRac.cpp:1500
IRTrotecESP
Class for handling detailed Trotec A/C messages.
Definition: ir_Trotec.h:76
IRTecoAc
Class for handling detailed Teco A/C messages.
Definition: ir_Teco.h:107
IRac::swinghToString
static String swinghToString(const stdAc::swingh_t swingh)
Convert the supplied enum into the appropriate String.
Definition: IRac.cpp:2795
IRac::delonghiac
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:775
IRac::_prev
stdAc::state_t _prev
The state we expect the device to currently be in.
Definition: IRac.h:102
IRHaierACYRW02
Class for handling detailed Haier ACYRW02 A/C messages.
Definition: ir_Haier.h:289
IRac::daikin160
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:622
IRac::corona
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:477
IRac::initState
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)
Initialse the given state with the supplied settings.
Definition: IRac.cpp:82
IRac::mitsubishiHeavy152
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:1458
stdAc::swingv_t::kOff
@ kOff
ir_Haier.h
Support for Haier A/C protocols. The specifics of reverse engineering the protocols details:
IRMitsubishiHeavy88Ac
Class for handling detailed Mitsubishi Heavy 88-bit A/C messages.
Definition: ir_MitsubishiHeavy.h:220
IRGreeAC
Class for handling detailed Gree A/C messages.
Definition: ir_Gree.h:117
IRac::coolix
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:416
IRac::strToFanspeed
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:2535
IRac::midea
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 econo, const int16_t sleep=-1)
Send a Midea A/C message with the supplied settings.
Definition: IRac.cpp:1273
ir_Toshiba.h
Support for Toshiba protocols.
IRac::sharp
void sharp(IRSharpAc *ac, 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 bool turbo, const bool filter, const bool clean)
Send a Sharp A/C message with the supplied settings.
Definition: IRac.cpp:1667
IRac::goodweather
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:907
stdAc::state_t
Structure to hold a common A/C state.
Definition: IRsend.h:97
IRGoodweatherAc
Class for handling detailed Goodweather A/C messages.
Definition: ir_Goodweather.h:90
ir_Vestel.h
Support for Vestel protocols. Vestel added by Erdem U. Altinyurt.
ir_Corona.h
IRArgoAC
Class for handling detailed Argo A/C messages.
Definition: ir_Argo.h:129
IRac::fujitsu
void fujitsu(IRFujitsuAC *ac, const fujitsu_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 econo, const bool filter, const bool clean)
Send a Fujitsu A/C message with the supplied settings.
Definition: IRac.cpp:844
IRNeoclimaAc
Class for handling detailed Neoclima A/C messages.
Definition: ir_Neoclima.h:86
IRac::isProtocolSupported
static bool isProtocolSupported(const decode_type_t protocol)
Is the given protocol supported by the IRac class?
Definition: IRac.cpp:135
IRDaikin176
Class for handling detailed Daikin 176-bit A/C messages.
Definition: ir_Daikin.h:806
ir_Amcor.h
Amcor A/C protocol.
IRac::_pin
uint16_t _pin
The GPIO to use to transmit messages from.
Definition: IRac.h:99
ir_LG.h
Support for LG protocols.
IRac::carrier64
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:379
stdAc::opmode_t
opmode_t
Common A/C settings for A/C operating modes.
Definition: IRsend.h:46