IRremoteESP8266: src/IRac.h Source File

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_Technibel.h"
36 #include "ir_Teco.h"
37 #include "ir_Toshiba.h"
38 #include "ir_Transcold.h"
39 #include "ir_Trotec.h"
40 #include "ir_Vestel.h"
41 #include "ir_Voltas.h"
42 #include "ir_Whirlpool.h"
43
44 // Constants
45 const int8_t kGpioUnused = -1;
46
47 // Class
49 class IRac {
50 public:
51 explicit IRac(const uint16_t pin, const bool inverted = false,
52 const bool use_modulation = true);
53 static bool isProtocolSupported(const decode_type_t protocol);
54 static void initState(stdAc::state_t *state,
55 const decode_type_t vendor, const int16_t model,
56 const bool power, const stdAc::opmode_t mode,
57 const float degrees, const bool celsius,
58 const stdAc::fanspeed_t fan,
59 const stdAc::swingv_t swingv,
60 const stdAc::swingh_t swingh,
61 const bool quiet, const bool turbo, const bool econo,
62 const bool light, const bool filter, const bool clean,
63 const bool beep, const int16_t sleep,
64 const int16_t clock);
65 static void initState(stdAc::state_t *state);
66 void markAsSent(void);
67 bool sendAc(void);
68 bool sendAc(const stdAc::state_t desired, const stdAc::state_t *prev = NULL);
69 bool sendAc(const decode_type_t vendor, const int16_t model,
70 const bool power, const stdAc::opmode_t mode, const float degrees,
71 const bool celsius, const stdAc::fanspeed_t fan,
72 const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
73 const bool quiet, const bool turbo, const bool econo,
74 const bool light, const bool filter, const bool clean,
75 const bool beep, const int16_t sleep = -1,
76 const int16_t clock = -1);
77 static bool cmpStates(const stdAc::state_t a, const stdAc::state_t b);
78 static bool strToBool(const char *str, const bool def = false);
79 static int16_t strToModel(const char *str, const int16_t def = -1);
80 static stdAc::opmode_t strToOpmode(
81 const char *str, const stdAc::opmode_t def = stdAc::opmode_t::kAuto);
82 static stdAc::fanspeed_t strToFanspeed(
83 const char *str,
84 const stdAc::fanspeed_t def = stdAc::fanspeed_t::kAuto);
85 static stdAc::swingv_t strToSwingV(
86 const char *str, const stdAc::swingv_t def = stdAc::swingv_t::kOff);
87 static stdAc::swingh_t strToSwingH(
88 const char *str, const stdAc::swingh_t def = stdAc::swingh_t::kOff);
89 static String boolToString(const bool value);
90 static String opmodeToString(const stdAc::opmode_t mode);
91 static String fanspeedToString(const stdAc::fanspeed_t speed);
92 static String swingvToString(const stdAc::swingv_t swingv);
93 static String swinghToString(const stdAc::swingh_t swingh);
94 stdAc::state_t getState(void);
95 stdAc::state_t getStatePrev(void);
96 bool hasStateChanged(void);
97 stdAc::state_t next;
98 #ifndef UNIT_TEST
99
100 private:
101 #endif
102 uint16_t _pin;
103 bool _inverted;
104 bool _modulation;
105 stdAc::state_t _prev;
106 #if SEND_AIRWELL
107 void airwell(IRAirwellAc *ac,
108 const bool on, const stdAc::opmode_t mode, const float degrees,
109 const stdAc::fanspeed_t fan);
110 #endif // SEND_AIRWELL
111 #if SEND_AMCOR
112 void amcor(IRAmcorAc *ac,
113 const bool on, const stdAc::opmode_t mode, const float degrees,
114 const stdAc::fanspeed_t fan);
115 #endif // SEND_AMCOR
116 #if SEND_ARGO
117 void argo(IRArgoAC *ac,
118 const bool on, const stdAc::opmode_t mode, const float degrees,
119 const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
120 const bool turbo, const int16_t sleep = -1);
121 #endif // SEND_ARGO
122 #if SEND_CARRIER_AC64
123 void carrier64(IRCarrierAc64 *ac,
124 const bool on, const stdAc::opmode_t mode,
125 const float degrees, const stdAc::fanspeed_t fan,
126 const stdAc::swingv_t swingv, const int16_t sleep = -1);
127 #endif // SEND_CARRIER_AC64
128 #if SEND_COOLIX
129 void coolix(IRCoolixAC *ac,
130 const bool on, const stdAc::opmode_t mode, const float degrees,
131 const stdAc::fanspeed_t fan,
132 const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
133 const bool turbo, const bool light, const bool clean,
134 const int16_t sleep = -1);
135 #endif // SEND_COOLIX
136 #if SEND_CORONA_AC
137 void corona(IRCoronaAc *ac,
138 const bool on, const stdAc::opmode_t mode,
139 const float degrees, const stdAc::fanspeed_t fan,
140 const stdAc::swingv_t swingv, const bool econo);
141 #endif // SEND_CORONA_AC
142 #if SEND_DAIKIN
143 void daikin(IRDaikinESP *ac,
144 const bool on, const stdAc::opmode_t mode, const float degrees,
145 const stdAc::fanspeed_t fan,
146 const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
147 const bool quiet, const bool turbo, const bool econo,
148 const bool clean);
149 #endif // SEND_DAIKIN
150 #if SEND_DAIKIN128
151 void daikin128(IRDaikin128 *ac,
152 const bool on, const stdAc::opmode_t mode,
153 const float degrees, const stdAc::fanspeed_t fan,
154 const stdAc::swingv_t swingv,
155 const bool quiet, const bool turbo, const bool light,
156 const bool econo, const int16_t sleep = -1,
157 const int16_t clock = -1);
158 #endif // SEND_DAIKIN128
159 #if SEND_DAIKIN152
160 void daikin152(IRDaikin152 *ac,
161 const bool on, const stdAc::opmode_t mode,
162 const float degrees, const stdAc::fanspeed_t fan,
163 const stdAc::swingv_t swingv,
164 const bool quiet, const bool turbo, const bool econo);
165 #endif // SEND_DAIKIN152
166 #if SEND_DAIKIN160
167 void daikin160(IRDaikin160 *ac,
168 const bool on, const stdAc::opmode_t mode,
169 const float degrees, const stdAc::fanspeed_t fan,
170 const stdAc::swingv_t swingv);
171 #endif // SEND_DAIKIN160
172 #if SEND_DAIKIN176
173 void daikin176(IRDaikin176 *ac,
174 const bool on, const stdAc::opmode_t mode,
175 const float degrees, const stdAc::fanspeed_t fan,
176 const stdAc::swingh_t swingh);
177 #endif // SEND_DAIKIN176
178 #if SEND_DAIKIN2
179 void daikin2(IRDaikin2 *ac,
180 const bool on, const stdAc::opmode_t mode,
181 const float degrees, const stdAc::fanspeed_t fan,
182 const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
183 const bool quiet, const bool turbo, const bool light,
184 const bool econo, const bool filter, const bool clean,
185 const bool beep, const int16_t sleep = -1,
186 const int16_t clock = -1);
187 #endif // SEND_DAIKIN2
188 #if SEND_DAIKIN216
189 void daikin216(IRDaikin216 *ac,
190 const bool on, const stdAc::opmode_t mode,
191 const float degrees, const stdAc::fanspeed_t fan,
192 const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
193 const bool quiet, const bool turbo);
194 #endif // SEND_DAIKIN216
195 #if SEND_DAIKIN64
196 void daikin64(IRDaikin64 *ac,
197 const bool on, const stdAc::opmode_t mode,
198 const float degrees, const stdAc::fanspeed_t fan,
199 const stdAc::swingv_t swingv,
200 const bool quiet, const bool turbo,
201 const int16_t sleep = -1, const int16_t clock = -1);
202 #endif // SEND_DAIKIN64
203 #if SEND_DELONGHI_AC
204 void delonghiac(IRDelonghiAc *ac,
205 const bool on, const stdAc::opmode_t mode, const bool celsius,
206 const float degrees, const stdAc::fanspeed_t fan,
207 const bool turbo, const int16_t sleep = -1);
208 #endif // SEND_DELONGHI_AC
209 #if SEND_ELECTRA_AC
210 void electra(IRElectraAc *ac,
211 const bool on, const stdAc::opmode_t mode,
212 const float degrees, const stdAc::fanspeed_t fan,
213 const stdAc::swingv_t swingv,
214 const stdAc::swingh_t swingh, const bool turbo,
215 const bool lighttoggle, const bool clean);
216 #endif // SEND_ELECTRA_AC
217 #if SEND_FUJITSU_AC
218 void fujitsu(IRFujitsuAC *ac, const fujitsu_ac_remote_model_t model,
219 const bool on, const stdAc::opmode_t mode, const float degrees,
220 const stdAc::fanspeed_t fan,
221 const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
222 const bool quiet, const bool turbo, const bool econo,
223 const bool filter, const bool clean, const int16_t sleep = -1);
224 #endif // SEND_FUJITSU_AC
225 #if SEND_GOODWEATHER
226 void goodweather(IRGoodweatherAc *ac,
227 const bool on, const stdAc::opmode_t mode,
228 const float degrees,
229 const stdAc::fanspeed_t fan,
230 const stdAc::swingv_t swingv,
231 const bool turbo, const bool light,
232 const int16_t sleep = -1);
233 #endif // SEND_GOODWEATHER
234 #if SEND_GREE
235 void gree(IRGreeAC *ac, const gree_ac_remote_model_t model,
236 const bool on, const stdAc::opmode_t mode, const bool celsius,
237 const float degrees, const stdAc::fanspeed_t fan,
238 const stdAc::swingv_t swingv, const bool turbo, const bool light,
239 const bool clean, const int16_t sleep = -1);
240 #endif // SEND_GREE
241 #if SEND_HAIER_AC
242 void haier(IRHaierAC *ac,
243 const bool on, const stdAc::opmode_t mode, const float degrees,
244 const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
245 const bool filter, const int16_t sleep = -1,
246 const int16_t clock = -1);
247 #endif // SEND_HAIER_AC
248 #if SEND_HAIER_AC_YRW02
249 void haierYrwo2(IRHaierACYRW02 *ac,
250 const bool on, const stdAc::opmode_t mode,
251 const float degrees, const stdAc::fanspeed_t fan,
252 const stdAc::swingv_t swingv,
253 const bool turbo, const bool filter,
254 const int16_t sleep = -1);
255 #endif // SEND_HAIER_AC_YRW02
256 #if SEND_HITACHI_AC
257 void hitachi(IRHitachiAc *ac,
258 const bool on, const stdAc::opmode_t mode,
259 const float degrees, const stdAc::fanspeed_t fan,
260 const stdAc::swingv_t swingv, const stdAc::swingh_t swingh);
261 #endif // SEND_HITACHI_AC
262 #if SEND_HITACHI_AC1
263 void hitachi1(IRHitachiAc1 *ac, const hitachi_ac1_remote_model_t model,
264 const bool on, const bool power_toggle,
265 const stdAc::opmode_t mode,
266 const float degrees, const stdAc::fanspeed_t fan,
267 const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
268 const bool swing_toggle, const int16_t sleep = -1);
269 #endif // SEND_HITACHI_AC1
270 #if SEND_HITACHI_AC344
271 void hitachi344(IRHitachiAc344 *ac,
272 const bool on, const stdAc::opmode_t mode,
273 const float degrees, const stdAc::fanspeed_t fan,
274 const stdAc::swingv_t swingv,
275 const stdAc::swingh_t swingh);
276 #endif // SEND_HITACHI_AC344
277 #if SEND_HITACHI_AC424
278 void hitachi424(IRHitachiAc424 *ac,
279 const bool on, const stdAc::opmode_t mode,
280 const float degrees, const stdAc::fanspeed_t fan,
281 const stdAc::swingv_t swingv);
282 #endif // SEND_HITACHI_AC424
283 #if SEND_KELVINATOR
284 void kelvinator(IRKelvinatorAC *ac,
285 const bool on, const stdAc::opmode_t mode,
286 const float degrees, const stdAc::fanspeed_t fan,
287 const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
288 const bool quiet, const bool turbo, const bool light,
289 const bool filter, const bool clean);
290 #endif // SEND_KELVINATOR
291 #if SEND_LG
292 void lg(IRLgAc *ac, const lg_ac_remote_model_t model,
293 const bool on, const stdAc::opmode_t mode,
294 const float degrees, const stdAc::fanspeed_t fan);
295 #endif // SEND_LG
296 #if SEND_MIDEA
297 void midea(IRMideaAC *ac,
298 const bool on, const stdAc::opmode_t mode, const bool celsius,
299 const float degrees, const stdAc::fanspeed_t fan,
300 const stdAc::swingv_t swingv, const bool turbo, const bool econo,
301 const bool light, const int16_t sleep = -1);
302 #endif // SEND_MIDEA
303 #if SEND_MITSUBISHI_AC
304 void mitsubishi(IRMitsubishiAC *ac,
305 const bool on, const stdAc::opmode_t mode,
306 const float degrees,
307 const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
308 const stdAc::swingh_t swingh,
309 const bool quiet, const int16_t clock = -1);
310 #endif // SEND_MITSUBISHI_AC
311 #if SEND_MITSUBISHI112
312 void mitsubishi112(IRMitsubishi112 *ac,
313 const bool on, const stdAc::opmode_t mode,
314 const float degrees, const stdAc::fanspeed_t fan,
315 const stdAc::swingv_t swingv,
316 const stdAc::swingh_t swingh,
317 const bool quiet);
318 #endif // SEND_MITSUBISHI112
319 #if SEND_MITSUBISHI136
320 void mitsubishi136(IRMitsubishi136 *ac,
321 const bool on, const stdAc::opmode_t mode,
322 const float degrees, const stdAc::fanspeed_t fan,
323 const stdAc::swingv_t swingv, const bool quiet);
324 #endif // SEND_MITSUBISHI136
325 #if SEND_MITSUBISHIHEAVY
326 void mitsubishiHeavy88(IRMitsubishiHeavy88Ac *ac,
327 const bool on, const stdAc::opmode_t mode,
328 const float degrees, const stdAc::fanspeed_t fan,
329 const stdAc::swingv_t swingv,
330 const stdAc::swingh_t swingh,
331 const bool turbo, const bool econo, const bool clean);
332 void mitsubishiHeavy152(IRMitsubishiHeavy152Ac *ac,
333 const bool on, const stdAc::opmode_t mode,
334 const float degrees, const stdAc::fanspeed_t fan,
335 const stdAc::swingv_t swingv,
336 const stdAc::swingh_t swingh,
337 const bool quiet, const bool turbo, const bool econo,
338 const bool filter, const bool clean,
339 const int16_t sleep = -1);
340 #endif // SEND_MITSUBISHIHEAVY
341 #if SEND_NEOCLIMA
342 void neoclima(IRNeoclimaAc *ac, const bool on, const stdAc::opmode_t mode,
343 const bool celsius, const float degrees,
344 const stdAc::fanspeed_t fan,
345 const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
346 const bool turbo, const bool econo, const bool light,
347 const bool filter, const int16_t sleep = -1);
348 #endif // SEND_NEOCLIMA
349 #if SEND_PANASONIC_AC
350 void panasonic(IRPanasonicAc *ac, const panasonic_ac_remote_model_t model,
351 const bool on, const stdAc::opmode_t mode, const float degrees,
352 const stdAc::fanspeed_t fan,
353 const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
354 const bool quiet, const bool turbo, const bool filter,
355 const int16_t clock = -1);
356 #endif // SEND_PANASONIC_AC
357 #if SEND_PANASONIC_AC32
358 void panasonic32(IRPanasonicAc32 *ac,
359 const bool on, const stdAc::opmode_t mode,
360 const float degrees, const stdAc::fanspeed_t fan,
361 const stdAc::swingv_t swingv, const stdAc::swingh_t swingh);
362 #endif // SEND_PANASONIC_AC32
363 #if SEND_SAMSUNG_AC
364 void samsung(IRSamsungAc *ac,
365 const bool on, const stdAc::opmode_t mode, const float degrees,
366 const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
367 const bool quiet, const bool turbo, const bool light,
368 const bool filter, const bool clean,
369 const bool beep, const bool prevpower = true,
370 const bool forcepower = true);
371 #endif // SEND_SAMSUNG_AC
372 #if SEND_SANYO_AC
373 void sanyo(IRSanyoAc *ac,
374 const bool on, const stdAc::opmode_t mode, const float degrees,
375 const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
376 const bool beep, const int16_t sleep = -1);
377 #endif // SEND_SANYO_AC
378 #if SEND_SHARP_AC
379 void sharp(IRSharpAc *ac, const sharp_ac_remote_model_t model,
380 const bool on, const bool prev_power, const stdAc::opmode_t mode,
381 const float degrees, const stdAc::fanspeed_t fan,
382 const stdAc::swingv_t swingv, const bool turbo, const bool light,
383 const bool filter, const bool clean);
384 #endif // SEND_SHARP_AC
385 #if SEND_TCL112AC
386 void tcl112(IRTcl112Ac *ac,
387 const bool on, const stdAc::opmode_t mode, const float degrees,
388 const stdAc::fanspeed_t fan,
389 const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
390 const bool turbo, const bool light, const bool econo,
391 const bool filter);
392 #endif // SEND_TCL112AC
393 #if SEND_TECHNIBEL_AC
394 void technibel(IRTechnibelAc *ac,
395 const bool on, const stdAc::opmode_t mode, const bool celsius,
396 const float degrees, const stdAc::fanspeed_t fan,
397 const stdAc::swingv_t swingv, const int16_t sleep = -1);
398 #endif // SEND_TECHNIBEL_AC
399 #if SEND_TECO
400 void teco(IRTecoAc *ac,
401 const bool on, const stdAc::opmode_t mode, const float degrees,
402 const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
403 const bool light, const int16_t sleep = -1);
404 #endif // SEND_TECO
405 #if SEND_TOSHIBA_AC
406 void toshiba(IRToshibaAC *ac,
407 const bool on, const stdAc::opmode_t mode, const float degrees,
408 const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
409 const bool turbo, const bool econo);
410 #endif // SEND_TOSHIBA_AC
411 #if SEND_TROTEC
412 void trotec(IRTrotecESP *ac,
413 const bool on, const stdAc::opmode_t mode, const float degrees,
414 const stdAc::fanspeed_t fan, const int16_t sleep = -1);
415 #endif // SEND_TROTEC
416 #if SEND_VESTEL_AC
417 void vestel(IRVestelAc *ac,
418 const bool on, const stdAc::opmode_t mode, const float degrees,
419 const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
420 const bool turbo, const bool filter,
421 const int16_t sleep = -1, const int16_t clock = -1,
422 const bool sendNormal = true);
423 #endif // SEND_VESTEL_AC
424 #if SEND_VOLTAS
425 void voltas(IRVoltas *ac, const voltas_ac_remote_model_t model,
426 const bool on, const stdAc::opmode_t mode,
427 const float degrees, const stdAc::fanspeed_t fan,
428 const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
429 const bool turbo, const bool econo, const bool light,
430 const int16_t sleep = -1);
431 #endif // SEND_VOLTAS
432 #if SEND_WHIRLPOOL_AC
433 void whirlpool(IRWhirlpoolAc *ac, const whirlpool_ac_remote_model_t model,
434 const bool on, const stdAc::opmode_t mode, const float degrees,
435 const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
436 const bool turbo, const bool light,
437 const int16_t sleep = -1, const int16_t clock = -1);
438 #endif // SEND_WHIRLPOOL_AC
439 #if SEND_TRANSCOLD
440 void transcold(IRTranscoldAc *ac,
441 const bool on, const stdAc::opmode_t mode, const float degrees,
442 const stdAc::fanspeed_t fan,
443 const stdAc::swingv_t swingv, const stdAc::swingh_t swingh);
444 #endif // SEND_TRANSCOLD
445 static stdAc::state_t cleanState(const stdAc::state_t state);
446 static stdAc::state_t handleToggles(const stdAc::state_t desired,
447 const stdAc::state_t *prev = NULL);
448 }; // IRac class
449
451 namespace IRAcUtils {
452 String resultAcToString(const decode_results * const results);
453 bool decodeToState(const decode_results *decode, stdAc::state_t *result,
454 const stdAc::state_t *prev = NULL);
455 } // namespace IRAcUtils
456 #endif // IRAC_H_
IRPanasonicAc
Class for handling detailed Panasonic A/C messages.
Definition: ir_Panasonic.h:100
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:302
ir_Kelvinator.h
Support for Kelvinator A/C protocols.
IRSamsungAc
Class for handling detailed Samsung A/C messages.
Definition: ir_Samsung.h:130
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:1073
IRToshibaAC
Class for handling detailed Toshiba A/C messages.
Definition: ir_Toshiba.h:118
decode_type_t
decode_type_t
Enumerator for defining and numbering of supported IR protocol.
Definition: IRremoteESP8266.h:785
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:133
IRac::getState
stdAc::state_t getState(void)
Get the current internal A/C climate state.
Definition: IRac.cpp:128
IRMitsubishiHeavy152Ac
Class for handling detailed Mitsubishi Heavy 152-bit A/C messages.
Definition: ir_MitsubishiHeavy.h:184
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:2848
IRac::sharp
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 bool turbo, const bool light, const bool filter, const bool clean)
Send a Sharp A/C message with the supplied settings.
Definition: IRac.cpp:1727
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:1149
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:2711
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:691
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:1683
IRDaikinESP
Class for handling detailed Daikin 280-bit A/C messages.
Definition: ir_Daikin.h:658
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:1255
IRDelonghiAc
Class for handling detailed Delonghi A/C messages.
Definition: ir_Delonghi.h:73
IRCoronaAc
Class for handling detailed Corona A/C messages.
Definition: ir_Corona.h:107
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:1221
IRDaikin2
Class for handling detailed Daikin 312-bit A/C messages.
Definition: ir_Daikin.h:740
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:1001
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:2998
whirlpool_ac_remote_model_t
whirlpool_ac_remote_model_t
Whirlpool A/C model numbers.
Definition: IRsend.h:169
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:2038
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:760
IRac::voltas
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:1997
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:1780
IRac::transcold
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:2075
IRac::sendAc
bool sendAc(void)
Send an A/C message based soley on our internal state.
Definition: IRac.cpp:2717
IRac::cmpStates
static bool cmpStates(const stdAc::state_t a, const stdAc::state_t b)
Compare two AirCon states.
Definition: IRac.cpp:2728
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:133
IRDaikin64
Class for handling detailed Daikin 64-bit A/C messages.
Definition: ir_Daikin.h:1131
ir_Coolix.h
Support for Coolix A/C protocols.
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:1955
IRHitachiAc424
Class for handling detailed Hitachi 53-byte/424-bit A/C messages.
Definition: ir_Hitachi.h:371
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:527
IRac::IRac
IRac(const uint16_t pin, const bool inverted=false, const bool use_modulation=true)
Class constructor.
Definition: IRac.cpp:54
IRDaikin216
Class for handling detailed Daikin 216-bit A/C messages.
Definition: ir_Daikin.h:836
IRVoltas
Class for handling detailed Voltas A/C messages.
Definition: ir_Voltas.h:90
hitachi_ac1_remote_model_t
hitachi_ac1_remote_model_t
HITACHI_AC1 A/C model numbers.
Definition: IRsend.h:139
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:1642
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:567
IRHitachiAc
Class for handling detailed Hitachi 224-bit A/C messages.
Definition: ir_Hitachi.h:246
kGpioUnused
const int8_t kGpioUnused
A placeholder for not using an actual GPIO.
Definition: IRac.h:45
IRAcUtils
Common functions for use with all A/Cs supported by the IRac class.
Definition: IRac.cpp:3067
IRSanyoAc
Class for handling detailed Sanyo A/C messages.
Definition: ir_Sanyo.h:106
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:1004
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:459
IRac::boolToString
static String boolToString(const bool value)
Convert the supplied boolean into the appropriate String.
Definition: IRac.cpp:2969
IRac::next
stdAc::state_t next
The state we want the device to be in after we send.
Definition: IRac.h:97
String
std::string String
Definition: IRremoteESP8266.h:1199
IRMitsubishiAC
Class for handling detailed Mitsubishi 144-bit A/C messages.
Definition: ir_Mitsubishi.h:242
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:1918
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:2888
IRAmcorAc
Class for handling detailed Amcor A/C messages.
Definition: ir_Amcor.h:90
IRMitsubishi112
Class for handling detailed Mitsubishi 122-bit A/C messages.
Definition: ir_Mitsubishi.h:362
IRTcl112Ac
Class for handling detailed TCL A/C messages.
Definition: ir_Tcl.h:89
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:659
IRElectraAc
Class for handling detailed Electra A/C messages.
Definition: ir_Electra.h:98
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:2740
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:1041
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:730
ir_Transcold.h
Support for Transcold A/C protocols.
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:2124
IRMitsubishi136
Class for handling detailed Mitsubishi 136-bit A/C messages.
Definition: ir_Mitsubishi.h:308
panasonic_ac_remote_model_t
panasonic_ac_remote_model_t
Panasonic A/C model numbers.
Definition: IRsend.h:145
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:1367
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:3436
IRHitachiAc1
Class for handling detailed Hitachi 104-bit A/C messages.
Definition: ir_Hitachi.h:303
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:1183
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:3073
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:604
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:84
IRMideaAC
Class for handling detailed Midea A/C messages.
Definition: ir_Midea.h:151
IRKelvinatorAC
Class for handling detailed Kelvinator A/C messages.
Definition: ir_Kelvinator.h:121
IRac::_inverted
bool _inverted
IR LED is lit when GPIO is LOW (true) or HIGH (false)?
Definition: IRac.h:103
IRFujitsuAC
Class for handling detailed Fujitsu A/C messages.
Definition: ir_Fujitsu.h:120
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:112
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 turbo, const bool econo, const bool light, const int16_t sleep=-1)
Send a Midea A/C message with the supplied settings.
Definition: IRac.cpp:1292
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:1564
IRac::swingvToString
static String swingvToString(const stdAc::swingv_t swingv)
Convert the supplied enum into the appropriate String.
Definition: IRac.cpp:3020
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:49
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:966
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:817
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:2111
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:1330
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:330
IRTechnibelAc
Class for handling detailed Technibel A/C messages.
Definition: ir_Technibel.h:77
IRAirwellAc
Class for handling detailed Airwell A/C messages.
Definition: ir_Airwell.h:60
ir_Voltas.h
Support for Voltas A/C protocol.
IRDaikin152
Class for handling detailed Daikin 152-bit A/C messages.
Definition: ir_Daikin.h:1071
IRLgAc
Class for handling detailed LG A/C messages.
Definition: ir_LG.h:67
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:244
IRac::neoclima
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:1523
IRDaikin160
Class for handling detailed Daikin 160-bit A/C messages.
Definition: ir_Daikin.h:892
IRac::opmodeToString
static String opmodeToString(const stdAc::opmode_t mode)
Convert the supplied operation mode into the appropriate String.
Definition: IRac.cpp:2976
IRSharpAc
Class for handling detailed Sharp A/C messages.
Definition: ir_Sharp.h:137
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:1882
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:362
lg_ac_remote_model_t
lg_ac_remote_model_t
LG A/C model numbers.
Definition: IRsend.h:175
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:1403
stdAc::fanspeed_t::kAuto
@ kAuto
IRac::_modulation
bool _modulation
Is frequency modulation to be used?
Definition: IRac.h:104
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:1849
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:2746
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:1110
IRTranscoldAc
Class for handling detailed Transcold A/C messages.
Definition: ir_Transcold.h:120
stdAc::swingh_t::kOff
@ kOff
IRac::panasonic32
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:1600
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:2951
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:1438
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:2807
IRVestelAc
Class for handling detailed Vestel A/C messages.
Definition: ir_Vestel.h:116
IRPanasonicAc32
Class for handling detailed Panasonic 32bit A/C messages.
Definition: ir_Panasonic.h:219
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:62
IRac::swinghToString
static String swinghToString(const stdAc::swingh_t swingh)
Convert the supplied enum into the appropriate String.
Definition: IRac.cpp:3044
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, const int16_t sleep=-1)
Send a Fujitsu A/C message with the supplied settings.
Definition: IRac.cpp:860
ir_Technibel.h
Support for Technibel protocol.
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:790
IRac::_prev
stdAc::state_t _prev
The state we expect the device to currently be in.
Definition: IRac.h:105
IRHaierACYRW02
Class for handling detailed Haier ACYRW02 A/C messages.
Definition: ir_Haier.h:314
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:637
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:492
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)
Initialise the given state with the supplied settings.
Definition: IRac.cpp:85
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:1479
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:271
IRGreeAC
Class for handling detailed Gree A/C messages.
Definition: ir_Gree.h:133
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:431
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:2776
ir_Toshiba.h
Support for Toshiba protocols.
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:924
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:100
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:127
IRNeoclimaAc
Class for handling detailed Neoclima A/C messages.
Definition: ir_Neoclima.h:120
IRac::isProtocolSupported
static bool isProtocolSupported(const decode_type_t protocol)
Is the given protocol supported by the IRac class?
Definition: IRac.cpp:138
IRDaikin176
Class for handling detailed Daikin 176-bit A/C messages.
Definition: ir_Daikin.h:944
ir_Amcor.h
Amcor A/C protocol.
IRac::_pin
uint16_t _pin
The GPIO to use to transmit messages from.
Definition: IRac.h:102
IRac::technibel
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:1816
voltas_ac_remote_model_t
voltas_ac_remote_model_t
Voltas A/C model numbers.
Definition: IRsend.h:163
sharp_ac_remote_model_t
sharp_ac_remote_model_t
Sharp A/C model numbers.
Definition: IRsend.h:156
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:394
stdAc::opmode_t
opmode_t
Common A/C settings for A/C operating modes.
Definition: IRsend.h:46