IRremoteESP8266
Loading...
Searching...
No Matches
ir_Daikin.h
Go to the documentation of this file.
1// Copyright 2016 sillyfrog
2// Copyright 2017 sillyfrog, crankyoldgit
3// Copyright 2018-2022 crankyoldgit
4// Copyright 2019 pasna (IRDaikin160 class / Daikin176 class)
5
26
27// Supports:
28// Brand: Daikin, Model: ARC433** remote (DAIKIN)
29// Brand: Daikin, Model: ARC477A1 remote (DAIKIN2)
30// Brand: Daikin, Model: FTXZ25NV1B A/C (DAIKIN2)
31// Brand: Daikin, Model: FTXZ35NV1B A/C (DAIKIN2)
32// Brand: Daikin, Model: FTXZ50NV1B A/C (DAIKIN2)
33// Brand: Daikin, Model: ARC433B69 remote (DAIKIN216)
34// Brand: Daikin, Model: ARC423A5 remote (DAIKIN160)
35// Brand: Daikin, Model: FTE12HV2S A/C
36// Brand: Daikin, Model: BRC4C153 remote (DAIKIN176)
37// Brand: Daikin, Model: FFQ35B8V1B A/C (DAIKIN176)
38// Brand: Daikin, Model: BRC4C151 remote (DAIKIN176)
39// Brand: Daikin, Model: 17 Series FTXB09AXVJU A/C (DAIKIN128)
40// Brand: Daikin, Model: 17 Series FTXB12AXVJU A/C (DAIKIN128)
41// Brand: Daikin, Model: 17 Series FTXB24AXVJU A/C (DAIKIN128)
42// Brand: Daikin, Model: BRC52B63 remote (DAIKIN128)
43// Brand: Daikin, Model: ARC480A5 remote (DAIKIN152)
44// Brand: Daikin, Model: FFN-C/FCN-F Series A/C (DAIKIN64)
45// Brand: Daikin, Model: DGS01 remote (DAIKIN64)
46// Brand: Daikin, Model: M Series A/C (DAIKIN)
47// Brand: Daikin, Model: FTXM-M A/C (DAIKIN)
48// Brand: Daikin, Model: ARC466A12 remote (DAIKIN)
49// Brand: Daikin, Model: ARC466A33 remote (DAIKIN)
50// Brand: Daikin, Model: FTWX35AXV1 A/C (DAIKIN64)
51// Brand: Daikin, Model: ARC484A4 remote (DAIKIN216)
52// Brand: Daikin, Model: FTQ60TV16U2 A/C (DAIKIN216)
53// Brand: Daikin, Model: BRC4M150W16 remote (DAIKIN200)
54// Brand: Daikin, Model: FTXM20R5V1B A/C (DAIKIN312)
55// Brand: Daikin, Model: ARC466A67 remote (DAIKIN312)
56// Brand: Daikin, Model: ARC443A5 remote (DAIKIN)
57
58#ifndef IR_DAIKIN_H_
59#define IR_DAIKIN_H_
60
61#ifndef UNIT_TEST
62#include <Arduino.h>
63#endif
64#include "IRrecv.h"
65#include "IRremoteESP8266.h"
66#include "IRsend.h"
67#ifdef UNIT_TEST
68#include "IRsend_test.h"
69#endif
70
74 struct {
75 // Byte 0~5
76 uint64_t :48;
77 // Byte 6
78 uint64_t :4;
79 uint64_t Comfort :1;
80 uint64_t :3;
81 // Byte 7
82 uint64_t Sum1 :8; // checksum of the first part
83
84 // Byte 8~12
85 uint64_t :40;
86 // Byte 13~14
87 uint64_t CurrentTime :11; // Current time, mins past midnight
88 uint64_t CurrentDay :3; // Day of the week (SUN=1, MON=2, ..., SAT=7)
89 uint64_t :2;
90 // Byte 15
91 uint64_t Sum2 :8; // checksum of the second part
92
93 // Byte 16~20
94 uint64_t :40;
95 // Byte 21
96 uint64_t Power :1;
97 uint64_t OnTimer :1;
98 uint64_t OffTimer :1;
99 uint64_t :1; // always 1
100 uint64_t Mode :3;
101 uint64_t :1;
102 // Byte 22
103 uint64_t Temp :8; // Temp should be between 20 - 64 (10 C - 32 C)
104 // Byte 23
105 uint64_t :8;
106
107 // Byte 24
108 uint64_t SwingV :4; // 0000 = off, 1111 = on
109 uint64_t Fan :4;
110 // Byte 25
111 uint64_t SwingH :4; // 0000 = off, 1111 = on
112 uint64_t :4;
113 // Byte 26~28
114 uint64_t OnTime :12; // timer mins past midnight
115 uint64_t OffTime :12; // timer mins past midnight
116 // Byte 29
117 uint64_t Powerful :1;
118 uint64_t :4;
119 uint64_t Quiet :1;
120 uint64_t :2;
121 // Byte 30~31
122 uint64_t :0;
123
124 // Byte 32
125 uint8_t :1;
126 uint8_t Sensor :1;
127 uint8_t Econo :1;
128 uint8_t :4;
129 uint8_t WeeklyTimer :1;
130 // Byte 33
131 uint8_t :1;
132 uint8_t Mold :1;
133 uint8_t :6;
134 // Byte 34
135 uint8_t Sum3 :8; // checksum of the third part
136 };
137};
138
139// Constants
140const uint8_t kDaikinAuto = 0b000; // temp 25
141const uint8_t kDaikinDry = 0b010; // temp 0xc0 = 96 degrees c
142const uint8_t kDaikinCool = 0b011;
143const uint8_t kDaikinHeat = 0b100; // temp 23
144const uint8_t kDaikinFan = 0b110; // temp not shown, but 25
145const uint8_t kDaikinMinTemp = 10; // Celsius
146const uint8_t kDaikinMaxTemp = 32; // Celsius
147const uint8_t kDaikinFanMin = 1;
148const uint8_t kDaikinFanMed = 3;
149const uint8_t kDaikinFanMax = 5;
150const uint8_t kDaikinFanAuto = 0b1010; // 10 / 0xA
151const uint8_t kDaikinFanQuiet = 0b1011; // 11 / 0xB
152const uint8_t kDaikinSwingOn = 0b1111;
153const uint8_t kDaikinSwingOff = 0b0000;
154const uint16_t kDaikinHeaderLength = 5;
155const uint8_t kDaikinSections = 3;
156const uint8_t kDaikinSection1Length = 8;
157const uint8_t kDaikinSection2Length = 8;
160const uint8_t kDaikinByteChecksum1 = 7;
161const uint8_t kDaikinByteChecksum2 = 15;
162// const uint8_t kDaikinBitEye = 0b10000000;
163const uint16_t kDaikinUnusedTime = 0x600;
164const uint8_t kDaikinBeepQuiet = 1;
165const uint8_t kDaikinBeepLoud = 2;
166const uint8_t kDaikinBeepOff = 3;
167const uint8_t kDaikinLightBright = 1;
168const uint8_t kDaikinLightDim = 2;
169const uint8_t kDaikinLightOff = 3;
172const uint8_t kDaikinTolerance = 35;
174const uint16_t kDaikinHdrMark = 3650; // kDaikinBitMark * 8
175const uint16_t kDaikinHdrSpace = 1623; // kDaikinBitMark * 4
176const uint16_t kDaikinBitMark = 428;
177const uint16_t kDaikinZeroSpace = 428;
178const uint16_t kDaikinOneSpace = 1280;
179const uint16_t kDaikinGap = 29000;
180// Note bits in each octet swapped so can be sent as a single value
181const uint64_t kDaikinFirstHeader64 =
182 0b1101011100000000000000001100010100000000001001111101101000010001;
183
186 struct{
187 uint8_t pad[3];
189 };
190 struct {
191 // Byte -3~4
192 uint64_t :64;
193
194 // Byte 5~6
195 uint64_t CurrentTime :12;
196 uint64_t :3;
197 uint64_t Power2 :1;
198 // Byte 7
199 uint64_t :4;
200 uint64_t Light :2;
201 uint64_t Beep :2;
202 // Byte 8
203 uint64_t FreshAir :1;
204 uint64_t :2;
205 uint64_t Mold :1;
206 uint64_t :1;
207 uint64_t Clean :1;
208 uint64_t :1;
209 uint64_t FreshAirHigh :1;
210 // Byte 9~12
211 uint64_t :32;
212
213 // Byte 13
214 uint64_t :7;
215 uint64_t EyeAuto :1;
216 // Byte 14~16
217 uint64_t :24;
218 // Byte 17
219 uint64_t SwingH :8;
220 // Byte 18
221 uint64_t SwingV :4;
222 uint64_t :4;
223 // Byte 19
224 uint64_t Sum1 :8;
225 // Byte 20
226 uint64_t :8;
227
228 // Byte 21~24
229 uint64_t :32;
230 // Byte 25
231 uint64_t Power :1;
232 uint64_t OnTimer :1;
233 uint64_t OffTimer :1;
234 uint64_t :1;
235 uint64_t Mode :3;
236 uint64_t :1;
237 // Byte 26
238 uint64_t :1;
239 uint64_t Temp :6;
240 uint64_t HumidOn :1;
241 // Byte 27
242 uint64_t Humidity :8;
243 // Byte 28
244 uint64_t :4;
245 uint64_t Fan :4;
246
247 // Byte 29
248 uint64_t :8;
249 // Byte 30~32
251 uint64_t OnTime :12;
252 uint64_t OffTime :12;
253 // Byte 33
254 uint64_t Powerful :1;
255 uint64_t :4;
256 uint64_t Quiet :1;
257 uint64_t :2;
258 // Byte 34~35
259 uint64_t :16;
260 // Byte 36
261 uint64_t :1;
262 uint64_t Eye :1;
263 uint64_t Econo :1;
264 uint64_t :1;
265 uint64_t Purify :1;
266 uint64_t SleepTimer :1;
267 uint64_t :2;
268
269 // Byte 37
270 uint8_t :8;
271 // Byte 38
272 uint8_t Sum2 :8;
273 };
274};
275
276const uint16_t kDaikin2Freq = 36700; // Modulation Frequency in Hz.
277const uint16_t kDaikin2LeaderMark = 10024;
278const uint16_t kDaikin2LeaderSpace = 25180;
280const uint16_t kDaikin2HdrMark = 3500;
281const uint16_t kDaikin2HdrSpace = 1728;
282const uint16_t kDaikin2BitMark = 460;
283const uint16_t kDaikin2OneSpace = 1270;
284const uint16_t kDaikin2ZeroSpace = 420;
285const uint16_t kDaikin2Sections = 2;
286const uint16_t kDaikin2Section1Length = 20;
287const uint16_t kDaikin2Section2Length = 19;
288const uint8_t kDaikin2Tolerance = 5; // Extra percentage tolerance
289const uint8_t kDaikin2SwingVHighest = 0x1;
290const uint8_t kDaikin2SwingVHigh = 0x2;
291const uint8_t kDaikin2SwingVUpperMiddle = 0x3;
292const uint8_t kDaikin2SwingVLowerMiddle = 0x4;
293const uint8_t kDaikin2SwingVLow = 0x5;
294const uint8_t kDaikin2SwingVLowest = 0x6;
295const uint8_t kDaikin2SwingVBreeze = 0xC;
296const uint8_t kDaikin2SwingVCirculate = 0xD;
297const uint8_t kDaikin2SwingVOff = 0xE;
298const uint8_t kDaikin2SwingVAuto = 0xF; // A.k.a "Swing"
300
301
302const uint8_t kDaikin2SwingHWide = 0xA3;
303const uint8_t kDaikin2SwingHLeftMax = 0xA8;
304const uint8_t kDaikin2SwingHLeft = 0xA9;
305const uint8_t kDaikin2SwingHMiddle = 0xAA;
306const uint8_t kDaikin2SwingHRight = 0xAB;
307const uint8_t kDaikin2SwingHRightMax = 0xAC;
308const uint8_t kDaikin2SwingHAuto = 0xBE; // A.k.a "Swing"
309const uint8_t kDaikin2SwingHOff = 0xBF;
311
312// Ref:
313// https://github.com/crankyoldgit/IRremoteESP8266/issues/1535#issuecomment-882092486
314// https://docs.google.com/spreadsheets/d/1kxHgFqiUB9ETXYEkszAIN5gE-t2ykvnPCnOV-sPUE0A/edit?usp=sharing
315const uint8_t kDaikin2HumidityOff = 0x00;
316const uint8_t kDaikin2HumidityHeatLow = 0x28; // Humidify (Heat) only (40%?)
317const uint8_t kDaikin2HumidityHeatMedium = 0x2D; // Humidify (Heat) only (45%?)
318const uint8_t kDaikin2HumidityHeatHigh = 0x32; // Humidify (Heat) only (50%?)
319const uint8_t kDaikin2HumidityDryLow = 0x32; // Dry only (50%?)
320const uint8_t kDaikin2HumidityDryMedium = 0x37; // Dry only (55%?)
321const uint8_t kDaikin2HumidityDryHigh = 0x3C; // Dry only (60%?)
322const uint8_t kDaikin2HumidityAuto = 0xFF;
323
324
325const uint8_t kDaikin2MinCoolTemp = 18; // Min temp (in C) when in Cool mode.
326
330 struct {
331 // Byte 0~6
332 uint8_t pad0[7];
333 // Byte 7
334 uint8_t Sum1 :8;
335 // Byte 8~12
336 uint8_t pad1[5];
337 // Byte 13
338 uint8_t Power :1;
339 uint8_t :3;
340 uint8_t Mode :3;
341 uint8_t :1;
342 // Byte 14
343 uint8_t :1;
344 uint8_t Temp :6;
345 uint8_t :1;
346 // Byte 15
347 uint8_t :8;
348 // Byte 16
349 uint8_t SwingV :4;
350 uint8_t Fan :4;
351 // Byte 17
352 uint8_t SwingH :4;
353 uint8_t :4;
354 // Byte 18~20
355 uint8_t pad2[3];
356 // Byte 21
357 uint8_t Powerful :1;
358 uint8_t :0;
359 // Byte 22~25
360 uint8_t pad3[4];
361 // Byte 26
362 uint8_t Sum2 :8;
363 };
364};
365
366const uint16_t kDaikin216Freq = 38000; // Modulation Frequency in Hz.
367const uint16_t kDaikin216HdrMark = 3440;
368const uint16_t kDaikin216HdrSpace = 1750;
369const uint16_t kDaikin216BitMark = 420;
370const uint16_t kDaikin216OneSpace = 1300;
371const uint16_t kDaikin216ZeroSpace = 450;
372const uint16_t kDaikin216Gap = 29650;
373const uint16_t kDaikin216Sections = 2;
374const uint16_t kDaikin216Section1Length = 8;
377
378const uint8_t kDaikin216SwingOn = 0b1111;
379const uint8_t kDaikin216SwingOff = 0b0000;
380
384 struct {
385 // Byte 0~5
386 uint8_t pad0[6];
387 // Byte 6
388 uint8_t Sum1 :8;
389 // Byte 7~11
390 uint8_t pad1[5];
391 // Byte 12
392 uint8_t Power :1;
393 uint8_t :3;
394 uint8_t Mode :3;
395 uint8_t :1;
396 // Byte 13
397 uint8_t :4;
398 uint8_t SwingV :4;
399 // Byte 14~15
400 uint8_t pad2[2];
401 // Byte 16
402 uint8_t :1;
403 uint8_t Temp :6;
404 uint8_t :1;
405 // Byte 17
406 uint8_t Fan :4;
407 uint8_t :4;
408 // Byte 18
409 uint8_t :8;
410 // Byte 19
411 uint8_t Sum2 :8;
412 };
413};
414
415const uint16_t kDaikin160Freq = 38000; // Modulation Frequency in Hz.
416const uint16_t kDaikin160HdrMark = 5000;
417const uint16_t kDaikin160HdrSpace = 2145;
418const uint16_t kDaikin160BitMark = 342;
419const uint16_t kDaikin160OneSpace = 1786;
420const uint16_t kDaikin160ZeroSpace = 700;
421const uint16_t kDaikin160Gap = 29650;
422const uint16_t kDaikin160Sections = 2;
423const uint16_t kDaikin160Section1Length = 7;
426const uint8_t kDaikin160SwingVLowest = 0x1;
427const uint8_t kDaikin160SwingVLow = 0x2;
428const uint8_t kDaikin160SwingVMiddle = 0x3;
429const uint8_t kDaikin160SwingVHigh = 0x4;
430const uint8_t kDaikin160SwingVHighest = 0x5;
431const uint8_t kDaikin160SwingVAuto = 0xF;
432
436 struct {
437 // Byte 0~2
438 uint8_t :8;
439 uint8_t :8;
440 uint8_t :8;
441 // Byte 3
442 uint8_t Id1 :1;
443 uint8_t :7;
444 // Byte 4
445 uint8_t :8;
446 // Byte 5
447 uint8_t :8;
448 // Byte 6
449 uint8_t Sum1 :8;
450 // Byte 7-9
451 uint8_t :8;
452 uint8_t :8;
453 uint8_t :8;
454 // Byte 10
455 uint8_t Id2 :1;
456 uint8_t :7;
457 // Byte 11
458 uint8_t :8;
459 // Byte 12
460 uint8_t :4;
461 uint8_t AltMode :3;
462 uint8_t :1;
463 // Byte 13
464 uint8_t ModeButton :8;
465 // Byte 14
466 uint8_t Power :1;
467 uint8_t :3;
468 uint8_t Mode :3;
469 uint8_t :1;
470 // Byte 15~16
471 uint8_t pad2[2];
472 // Byte 17
473 uint8_t :1;
474 uint8_t Temp :6;
475 uint8_t :1;
476 // Byte 18
477 uint8_t SwingH :4;
478 uint8_t Fan :4;
479 // Byte 19~20
480 uint8_t pad3[2];
481 // Byte 21
482 uint8_t Sum2 :8;
483 };
484};
485
486const uint16_t kDaikin176Freq = 38000; // Modulation Frequency in Hz.
487const uint16_t kDaikin176HdrMark = 5070;
488const uint16_t kDaikin176HdrSpace = 2140;
489const uint16_t kDaikin176BitMark = 370;
490const uint16_t kDaikin176OneSpace = 1780;
491const uint16_t kDaikin176ZeroSpace = 710;
492const uint16_t kDaikin176Gap = 29410;
493const uint16_t kDaikin176Sections = 2;
494const uint16_t kDaikin176Section1Length = 7;
497const uint8_t kDaikin176Fan = 0b000; // 0
498const uint8_t kDaikin176Heat = 0b001; // 1
499const uint8_t kDaikin176Cool = 0b010; // 2
500const uint8_t kDaikin176Auto = 0b011; // 3
501const uint8_t kDaikin176Dry = 0b111; // 7
502const uint8_t kDaikin176ModeButton = 0b00000100;
503const uint8_t kDaikin176DryFanTemp = 17; // Dry/Fan mode is always 17 Celsius.
504const uint8_t kDaikin176FanMax = 3;
505const uint8_t kDaikin176SwingHAuto = 0x5;
506const uint8_t kDaikin176SwingHOff = 0x6;
507
511 struct {
512 // Byte 0
513 uint8_t :8;
514 // Byte 1
515 uint8_t Mode :4;
516 uint8_t Fan :4;
517 // Byte 2
518 uint8_t ClockMins :8;
519 // Byte 3
520 uint8_t ClockHours :8;
521 // Byte 4
522 uint8_t OnHours :6;
523 uint8_t OnHalfHour :1;
524 uint8_t OnTimer :1;
525 // Byte 5
526 uint8_t OffHours :6;
527 uint8_t OffHalfHour :1;
528 uint8_t OffTimer :1;
529 // Byte 6
530 uint8_t Temp :8;
531 // Byte 7
532 uint8_t SwingV :1;
533 uint8_t Sleep :1;
534 uint8_t :1; // always 1
535 uint8_t Power :1;
536 uint8_t Sum1 :4;
537 // Byte 8
538 uint8_t :8;
539 // Byte 9
540 uint8_t Ceiling :1;
541 uint8_t :1;
542 uint8_t Econo :1;
543 uint8_t Wall :1;
544 uint8_t :4;
545 // Byte 10~14
546 uint8_t pad[5];
547 // Byte 15
548 uint8_t Sum2 :8;
549 };
550};
551
552const uint16_t kDaikin128Freq = 38000; // Modulation Frequency in Hz.
553const uint16_t kDaikin128LeaderMark = 9800;
554const uint16_t kDaikin128LeaderSpace = 9800;
555const uint16_t kDaikin128HdrMark = 4600;
556const uint16_t kDaikin128HdrSpace = 2500;
557const uint16_t kDaikin128BitMark = 350;
558const uint16_t kDaikin128OneSpace = 954;
559const uint16_t kDaikin128ZeroSpace = 382;
560const uint16_t kDaikin128Gap = 20300;
562const uint16_t kDaikin128Sections = 2;
563const uint16_t kDaikin128SectionLength = 8;
564const uint8_t kDaikin128Dry = 0b00000001;
565const uint8_t kDaikin128Cool = 0b00000010;
566const uint8_t kDaikin128Fan = 0b00000100;
567const uint8_t kDaikin128Heat = 0b00001000;
568const uint8_t kDaikin128Auto = 0b00001010;
569const uint8_t kDaikin128FanAuto = 0b0001;
570const uint8_t kDaikin128FanHigh = 0b0010;
571const uint8_t kDaikin128FanMed = 0b0100;
572const uint8_t kDaikin128FanLow = 0b1000;
573const uint8_t kDaikin128FanPowerful = 0b0011;
574const uint8_t kDaikin128FanQuiet = 0b1001;
575const uint8_t kDaikin128MinTemp = 16; // C
576const uint8_t kDaikin128MaxTemp = 30; // C
577const uint8_t kDaikin128BitWall = 0b00001000;
578const uint8_t kDaikin128BitCeiling = 0b00000001;
579
583 struct {
584 // Byte 0~4
585 uint8_t pad0[5];
586 // Byte 5
587 uint8_t Power :1;
588 uint8_t :3;
589 uint8_t Mode :3;
590 uint8_t :1;
591 // Byte 6
592 uint8_t :1;
593 uint8_t Temp :7;
594 // Byte 7
595 uint8_t :8;
596 // Byte 8
597 uint8_t SwingV :4;
598 uint8_t Fan :4;
599 // Byte 9~12
600 uint8_t pad1[4];
601 // Byte 13
602 uint8_t Powerful :1;
603 uint8_t :4;
604 uint8_t Quiet :1;
605 uint8_t :2;
606 // Byte 14~15
607 uint8_t pad2[2];
608 // Byte 16
609 uint8_t :1;
610 uint8_t Comfort :1;
611 uint8_t Econo :1;
612 uint8_t Sensor :1;
613 uint8_t :4;
614 // Byte 17
615 uint8_t :8;
616 // Byte 18
617 uint8_t Sum :8;
618 };
619};
620
621const uint16_t kDaikin152Freq = 38000; // Modulation Frequency in Hz.
622const uint8_t kDaikin152LeaderBits = 5;
623const uint16_t kDaikin152HdrMark = 3492;
624const uint16_t kDaikin152HdrSpace = 1718;
625const uint16_t kDaikin152BitMark = 433;
626const uint16_t kDaikin152OneSpace = 1529;
628const uint16_t kDaikin152Gap = 25182;
629
630const uint8_t kDaikin152DryTemp = kDaikin2MinCoolTemp; // Celsius
631const uint8_t kDaikin152FanTemp = 0x60; // 96 Celsius
632
635 uint64_t raw;
636 struct {
637 uint8_t :8;
638 uint8_t Mode :4;
639 uint8_t Fan :4;
640 uint8_t ClockMins :8;
641 uint8_t ClockHours :8;
642 uint8_t OnHours :6;
643 uint8_t OnHalfHour :1;
644 uint8_t OnTimer :1;
645 uint8_t OffHours :6;
646 uint8_t OffHalfHour :1;
647 uint8_t OffTimer :1;
648 uint8_t Temp :8;
649 uint8_t SwingV :1;
650 uint8_t Sleep :1;
651 uint8_t :1;
652 uint8_t Power :1;
653 uint8_t Sum :4;
654 };
655};
656
665const uint16_t kDaikin64Freq = kDaikin128Freq; // Hz.
666const uint8_t kDaikin64Overhead = 9;
667const int8_t kDaikin64ToleranceDelta = 5; // +5%
668
669const uint64_t kDaikin64KnownGoodState = 0x7C16161607204216;
670const uint8_t kDaikin64Dry = 0b0001;
671const uint8_t kDaikin64Cool = 0b0010;
672const uint8_t kDaikin64Fan = 0b0100;
673const uint8_t kDaikin64Heat = 0b1000;
674const uint8_t kDaikin64FanAuto = 0b0001;
675const uint8_t kDaikin64FanLow = 0b1000;
676const uint8_t kDaikin64FanMed = 0b0100;
677const uint8_t kDaikin64FanHigh = 0b0010;
678const uint8_t kDaikin64FanQuiet = 0b1001;
679const uint8_t kDaikin64FanTurbo = 0b0011;
680const uint8_t kDaikin64MinTemp = 16; // Celsius
681const uint8_t kDaikin64MaxTemp = 30; // Celsius
682const uint8_t kDaikin64ChecksumOffset = 60;
683const uint8_t kDaikin64ChecksumSize = 4; // Mask 0b1111 << 59
684
685const uint16_t kDaikin200Freq = 38000; // Modulation Frequency in Hz.
686const uint16_t kDaikin200HdrMark = 4920;
687const uint16_t kDaikin200HdrSpace = 2230;
688const uint16_t kDaikin200BitMark = 290;
689const uint16_t kDaikin200OneSpace = 1850;
690const uint16_t kDaikin200ZeroSpace = 780;
691const uint16_t kDaikin200Gap = 29400;
692const uint16_t kDaikin200Sections = 2;
693const uint16_t kDaikin200Section1Length = 7;
696
697const uint16_t kDaikin312HdrMark = 3518;
698const uint16_t kDaikin312HdrSpace = 1688;
699const uint16_t kDaikin312BitMark = 453;
700const uint16_t kDaikin312ZeroSpace = 414;
701const uint16_t kDaikin312OneSpace = 1275;
702const uint16_t kDaikin312HdrGap = 25100;
703const uint16_t kDaikin312SectionGap = 35512;
704const uint16_t kDaikin312Sections = 2;
705const uint16_t kDaikin312Section1Length = 20;
708
709// Legacy defines.
710#define DAIKIN_COOL kDaikinCool
711#define DAIKIN_HEAT kDaikinHeat
712#define DAIKIN_FAN kDaikinFan
713#define DAIKIN_AUTO kDaikinAuto
714#define DAIKIN_DRY kDaikinDry
715#define DAIKIN_MIN_TEMP kDaikinMinTemp
716#define DAIKIN_MAX_TEMP kDaikinMaxTemp
717#define DAIKIN_FAN_MIN kDaikinFanMin
718#define DAIKIN_FAN_MAX kDaikinFanMax
719#define DAIKIN_FAN_AUTO kDaikinFanAuto
720#define DAIKIN_FAN_QUIET kDaikinFanQuiet
721
724 public:
725 explicit IRDaikinESP(const uint16_t pin, const bool inverted = false,
726 const bool use_modulation = true);
727
728#if SEND_DAIKIN
729 void send(const uint16_t repeat = kDaikinDefaultRepeat);
734 int8_t calibrate(void) { return _irsend.calibrate(); }
735#endif
736 void begin(void);
737 void on(void);
738 void off(void);
739 void setPower(const bool on);
740 bool getPower(void) const;
741 void setTemp(const float temp);
742 float getTemp(void) const;
743 void setFan(const uint8_t fan);
744 uint8_t getFan(void) const;
745 void setMode(const uint8_t mode);
746 uint8_t getMode(void) const;
747 void setSwingVertical(const bool on);
748 bool getSwingVertical(void) const;
749 void setSwingHorizontal(const bool on);
750 bool getSwingHorizontal(void) const;
751 bool getQuiet(void) const;
752 void setQuiet(const bool on);
753 bool getPowerful(void) const;
754 void setPowerful(const bool on);
755 void setSensor(const bool on);
756 bool getSensor(void) const;
757 void setEcono(const bool on);
758 bool getEcono(void) const;
759 void setMold(const bool on);
760 bool getMold(void) const;
761 void setComfort(const bool on);
762 bool getComfort(void) const;
763 void enableOnTimer(const uint16_t starttime);
764 void disableOnTimer(void);
765 uint16_t getOnTime(void) const;
766 bool getOnTimerEnabled(void) const;
767 void enableOffTimer(const uint16_t endtime);
768 void disableOffTimer(void);
769 uint16_t getOffTime(void) const;
770 bool getOffTimerEnabled(void) const;
771 void setCurrentTime(const uint16_t mins_since_midnight);
772 uint16_t getCurrentTime(void) const;
773 void setCurrentDay(const uint8_t day_of_week);
774 uint8_t getCurrentDay(void) const;
775 void setWeeklyTimerEnable(const bool on);
776 bool getWeeklyTimerEnable(void) const;
777 uint8_t* getRaw(void);
778 void setRaw(const uint8_t new_code[],
779 const uint16_t length = kDaikinStateLength);
780 static bool validChecksum(uint8_t state[],
781 const uint16_t length = kDaikinStateLength);
782 static uint8_t convertMode(const stdAc::opmode_t mode);
783 static uint8_t convertFan(const stdAc::fanspeed_t speed);
784 static stdAc::opmode_t toCommonMode(const uint8_t mode);
785 static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed);
786 stdAc::state_t toCommon(void) const;
787 String toString(void) const;
788#ifndef UNIT_TEST
789
790 private:
792#else
794 IRsendTest _irsend;
796#endif
797 // # of bytes per command
799 void stateReset(void);
800 void checksum(void);
801};
802
806 public:
807 explicit IRDaikin2(const uint16_t pin, const bool inverted = false,
808 const bool use_modulation = true);
809
810#if SEND_DAIKIN2
811 void send(const uint16_t repeat = kDaikin2DefaultRepeat);
816 int8_t calibrate(void) { return _irsend.calibrate(); }
817#endif
818 void begin(void);
819 void on(void);
820 void off(void);
821 void setPower(const bool state);
822 bool getPower(void) const;
823 void setTemp(const uint8_t temp);
824 uint8_t getTemp(void) const;
825 void setFan(const uint8_t fan);
826 uint8_t getFan(void) const;
827 uint8_t getMode(void) const;
828 void setMode(const uint8_t mode);
829 void setSwingVertical(const uint8_t position);
830 uint8_t getSwingVertical(void) const;
831 void setSwingHorizontal(const uint8_t position);
832 uint8_t getSwingHorizontal(void) const;
833 bool getQuiet(void) const;
834 void setQuiet(const bool on);
835 bool getPowerful(void) const;
836 void setPowerful(const bool on);
837 void setEcono(const bool on);
838 bool getEcono(void) const;
839 void setEye(const bool on);
840 bool getEye(void) const;
841 void setEyeAuto(const bool on);
842 bool getEyeAuto(void) const;
843 void setPurify(const bool on);
844 bool getPurify(void) const;
845 void setMold(const bool on);
846 bool getMold(void) const;
847 void enableOnTimer(const uint16_t starttime);
848 void disableOnTimer(void);
849 uint16_t getOnTime(void) const;
850 bool getOnTimerEnabled(void) const;
851 void enableSleepTimer(const uint16_t sleeptime);
852 void disableSleepTimer(void);
853 uint16_t getSleepTime(void) const;
854 bool getSleepTimerEnabled(void) const;
855 void enableOffTimer(const uint16_t endtime);
856 void disableOffTimer(void);
857 uint16_t getOffTime(void) const;
858 bool getOffTimerEnabled(void) const;
859 void setCurrentTime(const uint16_t time);
860 uint16_t getCurrentTime(void) const;
861 void setBeep(const uint8_t beep);
862 uint8_t getBeep(void) const;
863 void setLight(const uint8_t light);
864 uint8_t getLight(void) const;
865 void setClean(const bool on);
866 bool getClean(void) const;
867 void setFreshAir(const bool on);
868 bool getFreshAir(void) const;
869 void setFreshAirHigh(const bool on);
870 bool getFreshAirHigh(void) const;
871 uint8_t getHumidity(void) const;
872 void setHumidity(const uint8_t percent);
873 uint8_t* getRaw(void);
874 void setRaw(const uint8_t new_code[]);
875 static bool validChecksum(uint8_t state[],
876 const uint16_t length = kDaikin2StateLength);
877 static uint8_t convertMode(const stdAc::opmode_t mode);
878 static uint8_t convertFan(const stdAc::fanspeed_t speed);
879 static uint8_t convertSwingV(const stdAc::swingv_t position);
880 static uint8_t convertSwingH(const stdAc::swingh_t position);
881 static stdAc::swingv_t toCommonSwingV(const uint8_t setting);
882 static stdAc::swingh_t toCommonSwingH(const uint8_t setting);
883 stdAc::state_t toCommon(void) const;
884 String toString(void) const;
885#ifndef UNIT_TEST
886
887 private:
889#else
891 IRsendTest _irsend;
893#endif
894 // # of bytes per command
896 void stateReset(void);
897 void checksum(void);
898 void clearOnTimerFlag(void);
899 void clearSleepTimerFlag(void);
900};
901
904 public:
905 explicit IRDaikin216(const uint16_t pin, const bool inverted = false,
906 const bool use_modulation = true);
907
908#if SEND_DAIKIN216
909 void send(const uint16_t repeat = kDaikin216DefaultRepeat);
914 int8_t calibrate(void) { return _irsend.calibrate(); }
915#endif
916 void begin(void);
917 uint8_t* getRaw(void);
918 void setRaw(const uint8_t new_code[]);
919 static bool validChecksum(uint8_t state[],
920 const uint16_t length = kDaikin216StateLength);
921 void on(void);
922 void off(void);
923 void setPower(const bool on);
924 bool getPower(void) const;
925 void setTemp(const uint8_t temp);
926 uint8_t getTemp(void) const;
927 void setMode(const uint8_t mode);
928 uint8_t getMode(void) const;
929 static uint8_t convertMode(const stdAc::opmode_t mode);
930 void setFan(const uint8_t fan);
931 uint8_t getFan(void) const;
932 static uint8_t convertFan(const stdAc::fanspeed_t speed);
933 void setSwingVertical(const bool on);
934 bool getSwingVertical(void) const;
935 void setSwingHorizontal(const bool on);
936 bool getSwingHorizontal(void) const;
937 void setQuiet(const bool on);
938 bool getQuiet(void) const;
939 void setPowerful(const bool on);
940 bool getPowerful(void) const;
941 stdAc::state_t toCommon(void) const;
942 String toString(void) const;
943#ifndef UNIT_TEST
944
945 private:
947#else
949 IRsendTest _irsend;
951#endif
952 // # of bytes per command
954 void stateReset(void);
955 void checksum(void);
956};
957
960 public:
961 explicit IRDaikin160(const uint16_t pin, const bool inverted = false,
962 const bool use_modulation = true);
963
964#if SEND_DAIKIN160
965 void send(const uint16_t repeat = kDaikin160DefaultRepeat);
970 int8_t calibrate(void) { return _irsend.calibrate(); }
971#endif
972 void begin(void);
973 uint8_t* getRaw(void);
974 void setRaw(const uint8_t new_code[]);
975 static bool validChecksum(uint8_t state[],
976 const uint16_t length = kDaikin160StateLength);
977 void on(void);
978 void off(void);
979 void setPower(const bool on);
980 bool getPower(void) const;
981 void setTemp(const uint8_t temp);
982 uint8_t getTemp(void) const;
983 void setMode(const uint8_t mode);
984 uint8_t getMode(void) const;
985 static uint8_t convertMode(const stdAc::opmode_t mode);
986 void setFan(const uint8_t fan);
987 uint8_t getFan(void) const;
988 static uint8_t convertFan(const stdAc::fanspeed_t speed);
989 void setSwingVertical(const uint8_t position);
990 uint8_t getSwingVertical(void) const;
991 static uint8_t convertSwingV(const stdAc::swingv_t position);
992 static stdAc::swingv_t toCommonSwingV(const uint8_t setting);
993 stdAc::state_t toCommon(void) const;
994 String toString(void) const;
995#ifndef UNIT_TEST
996
997 private:
999#else
1001 IRsendTest _irsend;
1003#endif
1004 // # of bytes per command
1006 void stateReset(void);
1007 void checksum(void);
1008};
1009
1012 public:
1013 explicit IRDaikin176(const uint16_t pin, const bool inverted = false,
1014 const bool use_modulation = true);
1015
1016#if SEND_DAIKIN176
1017 void send(const uint16_t repeat = kDaikin176DefaultRepeat);
1022 int8_t calibrate(void) { return _irsend.calibrate(); }
1023#endif
1024 void begin(void);
1025 uint8_t* getRaw(void);
1026 void setRaw(const uint8_t new_code[]);
1027 static bool validChecksum(uint8_t state[],
1028 const uint16_t length = kDaikin176StateLength);
1029 void on(void);
1030 void off(void);
1031 void setPower(const bool on);
1032 bool getPower(void) const;
1033 void setTemp(const uint8_t temp);
1034 uint8_t getTemp(void) const;
1035 void setMode(const uint8_t mode);
1036 uint8_t getMode(void) const;
1037 static uint8_t convertMode(const stdAc::opmode_t mode);
1038 void setFan(const uint8_t fan);
1039 uint8_t getFan(void) const;
1040 static uint8_t convertFan(const stdAc::fanspeed_t speed);
1041 void setSwingHorizontal(const uint8_t position);
1042 uint8_t getSwingHorizontal(void) const;
1043 uint8_t getId(void) const;
1044 void setId(const uint8_t num);
1045 static uint8_t convertSwingH(const stdAc::swingh_t position);
1046 static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed);
1047 static stdAc::opmode_t toCommonMode(const uint8_t mode);
1048 static stdAc::swingh_t toCommonSwingH(const uint8_t setting);
1049 stdAc::state_t toCommon(void) const;
1050 String toString(void) const;
1051
1052#ifndef UNIT_TEST
1053
1054 private:
1056#else
1058 IRsendTest _irsend;
1060#endif
1061 // # of bytes per command
1063 uint8_t _saved_temp;
1064 void stateReset(void);
1065 void checksum(void);
1066};
1067
1071 public:
1072 explicit IRDaikin128(const uint16_t pin, const bool inverted = false,
1073 const bool use_modulation = true);
1074#if SEND_DAIKIN128
1075 void send(const uint16_t repeat = kDaikin128DefaultRepeat);
1080 int8_t calibrate(void) { return _irsend.calibrate(); }
1081#endif // SEND_DAIKIN128
1082 void begin(void);
1083 void setPowerToggle(const bool toggle);
1084 bool getPowerToggle(void) const;
1085 void setTemp(const uint8_t temp);
1086 uint8_t getTemp(void) const;
1087 void setFan(const uint8_t fan);
1088 uint8_t getFan(void) const;
1089 uint8_t getMode(void) const;
1090 void setMode(const uint8_t mode);
1091 void setSwingVertical(const bool on);
1092 bool getSwingVertical(void) const;
1093 bool getSleep(void) const;
1094 void setSleep(const bool on);
1095 bool getQuiet(void) const;
1096 void setQuiet(const bool on);
1097 bool getPowerful(void) const;
1098 void setPowerful(const bool on);
1099 void setEcono(const bool on);
1100 bool getEcono(void) const;
1101 void setOnTimer(const uint16_t mins_since_midnight);
1102 uint16_t getOnTimer(void) const;
1103 bool getOnTimerEnabled(void) const;
1104 void setOnTimerEnabled(const bool on);
1105 void setOffTimer(const uint16_t mins_since_midnight);
1106 uint16_t getOffTimer(void) const;
1107 bool getOffTimerEnabled(void) const;
1108 void setOffTimerEnabled(const bool on);
1109 void setClock(const uint16_t mins_since_midnight);
1110 uint16_t getClock(void) const;
1111 void setLightToggle(const uint8_t unit_type);
1112 uint8_t getLightToggle(void) const;
1113 uint8_t* getRaw(void);
1114 void setRaw(const uint8_t new_code[]);
1115 static bool validChecksum(uint8_t state[]);
1116 static uint8_t convertMode(const stdAc::opmode_t mode);
1117 static uint8_t convertFan(const stdAc::fanspeed_t speed);
1118 static stdAc::opmode_t toCommonMode(const uint8_t mode);
1119 static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed);
1120 stdAc::state_t toCommon(const stdAc::state_t *prev = NULL) const;
1121 String toString(void) const;
1122#ifndef UNIT_TEST
1123
1124 private:
1126#else
1128 IRsendTest _irsend;
1130#endif
1131 // # of bytes per command
1133 void stateReset(void);
1134 static uint8_t calcFirstChecksum(const uint8_t state[]);
1135 static uint8_t calcSecondChecksum(const uint8_t state[]);
1136 void checksum(void);
1137};
1138
1141 public:
1142 explicit IRDaikin152(const uint16_t pin, const bool inverted = false,
1143 const bool use_modulation = true);
1144
1145#if SEND_DAIKIN152
1146 void send(const uint16_t repeat = kDaikin152DefaultRepeat);
1151 int8_t calibrate(void) { return _irsend.calibrate(); }
1152#endif
1153 void begin(void);
1154 uint8_t* getRaw(void);
1155 void setRaw(const uint8_t new_code[]);
1156 static bool validChecksum(uint8_t state[],
1157 const uint16_t length = kDaikin152StateLength);
1158 void on(void);
1159 void off(void);
1160 void setPower(const bool on);
1161 bool getPower(void) const;
1162 void setTemp(const uint8_t temp);
1163 uint8_t getTemp(void) const;
1164 void setFan(const uint8_t fan);
1165 uint8_t getFan(void) const;
1166 void setMode(const uint8_t mode);
1167 uint8_t getMode(void) const;
1168 void setSwingV(const bool on);
1169 bool getSwingV(void) const;
1170 bool getQuiet(void) const;
1171 void setQuiet(const bool on);
1172 bool getPowerful(void) const;
1173 void setPowerful(const bool on);
1174 void setSensor(const bool on);
1175 bool getSensor(void) const;
1176 void setEcono(const bool on);
1177 bool getEcono(void) const;
1178 void setComfort(const bool on);
1179 bool getComfort(void) const;
1180 static uint8_t convertMode(const stdAc::opmode_t mode);
1181 static uint8_t convertFan(const stdAc::fanspeed_t speed);
1182 stdAc::state_t toCommon(void) const;
1183 String toString(void) const;
1184#ifndef UNIT_TEST
1185
1186 private:
1188#else
1190 IRsendTest _irsend;
1192#endif
1193 // # of bytes per command
1195 void stateReset(void);
1196 void checksum(void);
1197};
1198
1201 public:
1202 explicit IRDaikin64(const uint16_t pin, const bool inverted = false,
1203 const bool use_modulation = true);
1204
1205#if SEND_DAIKIN64
1206 void send(const uint16_t repeat = kDaikin64DefaultRepeat);
1211 int8_t calibrate(void) { return _irsend.calibrate(); }
1212#endif // SEND_DAIKIN64
1213 void begin(void);
1214 uint64_t getRaw(void);
1215 void setRaw(const uint64_t new_state);
1216 static uint8_t calcChecksum(const uint64_t state);
1217 static bool validChecksum(const uint64_t state);
1218 void setPowerToggle(const bool on);
1219 bool getPowerToggle(void) const;
1220 void setTemp(const uint8_t temp);
1221 uint8_t getTemp(void) const;
1222 void setFan(const uint8_t fan);
1223 uint8_t getFan(void) const;
1224 void setMode(const uint8_t mode);
1225 uint8_t getMode(void) const;
1226 void setSwingVertical(const bool on);
1227 bool getSwingVertical(void) const;
1228 void setSleep(const bool on);
1229 bool getSleep(void) const;
1230 bool getQuiet(void) const;
1231 void setQuiet(const bool on);
1232 bool getTurbo(void) const;
1233 void setTurbo(const bool on);
1234 void setClock(const uint16_t mins_since_midnight);
1235 uint16_t getClock(void) const;
1236 void setOnTimeEnabled(const bool on);
1237 bool getOnTimeEnabled(void) const;
1238 void setOnTime(const uint16_t mins_since_midnight);
1239 uint16_t getOnTime(void) const;
1240 void setOffTimeEnabled(const bool on);
1241 bool getOffTimeEnabled(void) const;
1242 void setOffTime(const uint16_t mins_since_midnight);
1243 uint16_t getOffTime(void) const;
1244 static uint8_t convertMode(const stdAc::opmode_t mode);
1245 static uint8_t convertFan(const stdAc::fanspeed_t speed);
1246 static stdAc::opmode_t toCommonMode(const uint8_t mode);
1247 static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed);
1248 stdAc::state_t toCommon(const stdAc::state_t *prev = NULL) const;
1249 String toString(void) const;
1250#ifndef UNIT_TEST
1251
1252 private:
1254#else
1256 IRsendTest _irsend;
1258#endif
1260 void stateReset(void);
1261 void checksum(void);
1262};
1263#endif // IR_DAIKIN_H_
const uint16_t kMarkExcess
Definition IRrecv.h:24
const uint16_t kDaikin176DefaultRepeat
Definition IRremoteESP8266.h:1239
const uint16_t kDaikin160StateLength
Definition IRremoteESP8266.h:1228
const uint16_t kDaikin2DefaultRepeat
Definition IRremoteESP8266.h:1225
const uint16_t kDaikin2StateLength
Definition IRremoteESP8266.h:1223
const uint16_t kDaikin128StateLength
Definition IRremoteESP8266.h:1231
const uint16_t kDaikin200StateLength
Definition IRremoteESP8266.h:1240
const uint16_t kDaikin128DefaultRepeat
Definition IRremoteESP8266.h:1233
const uint16_t kDaikin216StateLength
Definition IRremoteESP8266.h:1243
const uint16_t kDaikin160DefaultRepeat
Definition IRremoteESP8266.h:1230
const uint16_t kDaikin152DefaultRepeat
Definition IRremoteESP8266.h:1236
const uint16_t kDaikin216DefaultRepeat
Definition IRremoteESP8266.h:1245
const uint16_t kDaikin312StateLength
Definition IRremoteESP8266.h:1246
const uint16_t kDaikin176StateLength
Definition IRremoteESP8266.h:1237
const uint16_t kDaikin64DefaultRepeat
Definition IRremoteESP8266.h:1227
const uint16_t kDaikin152StateLength
Definition IRremoteESP8266.h:1234
const uint16_t kDaikinStateLength
Definition IRremoteESP8266.h:1218
const uint16_t kDaikinDefaultRepeat
Definition IRremoteESP8266.h:1222
std::string String
Definition IRremoteESP8266.h:1564
Class for handling detailed Daikin 128-bit A/C messages.
Definition ir_Daikin.h:1070
uint16_t getOnTimer(void) const
Get the On Timer time to be sent to the A/C unit.
Definition ir_Daikin.cpp:2802
stdAc::state_t toCommon(const stdAc::state_t *prev=NULL) const
Convert the current internal state into its stdAc::state_t equivalent.
Definition ir_Daikin.cpp:2888
void setFan(const uint8_t fan)
Set the speed of the fan.
Definition ir_Daikin.cpp:2655
uint8_t * getRaw(void)
Get a PTR to the internal state/code for this protocol.
Definition ir_Daikin.cpp:2561
void setOnTimerEnabled(const bool on)
Set the enable status of the On Timer.
Definition ir_Daikin.cpp:2779
void setEcono(const bool on)
Set the Economy mode of the A/C.
Definition ir_Daikin.cpp:2721
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a stdAc::opmode_t enum into its native mode.
Definition ir_Daikin.cpp:2615
bool getQuiet(void) const
Get the Quiet mode status of the A/C.
Definition ir_Daikin.cpp:2742
static stdAc::opmode_t toCommonMode(const uint8_t mode)
Convert a native mode into its stdAc equivalent.
Definition ir_Daikin.cpp:2628
static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed)
Convert a native fan speed into its stdAc equivalent.
Definition ir_Daikin.cpp:2692
IRsend _irsend
instance of the IR send class
Definition ir_Daikin.h:1125
void setOnTimer(const uint16_t mins_since_midnight)
Set the On Timer time for the A/C unit.
Definition ir_Daikin.cpp:2796
uint16_t getClock(void) const
Get the clock time to be sent to the A/C unit.
Definition ir_Daikin.cpp:2773
static uint8_t calcFirstChecksum(const uint8_t state[])
Definition ir_Daikin.cpp:2521
void setRaw(const uint8_t new_code[])
Set the internal state from a valid code for this protocol.
Definition ir_Daikin.cpp:2568
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition ir_Daikin.h:1080
void setOffTimer(const uint16_t mins_since_midnight)
Set the Off Timer time for the A/C unit.
Definition ir_Daikin.cpp:2814
uint8_t getLightToggle(void) const
Get the Light toggle setting of the A/C.
Definition ir_Daikin.cpp:2840
bool getSleep(void) const
Get the Sleep mode of the A/C.
Definition ir_Daikin.cpp:2717
bool getEcono(void) const
Get the Economical mode of the A/C.
Definition ir_Daikin.cpp:2728
void setPowerToggle(const bool toggle)
Set the Power toggle setting of the A/C.
Definition ir_Daikin.cpp:2582
void setLightToggle(const uint8_t unit_type)
Set the Light toggle setting of the A/C.
Definition ir_Daikin.cpp:2825
bool getSwingVertical(void) const
Get the Vertical Swing mode of the A/C.
Definition ir_Daikin.cpp:2709
bool getOffTimerEnabled(void) const
Get the enable status of the Off Timer.
Definition ir_Daikin.cpp:2810
void checksum(void)
Calculate and set the checksum values for the internal state.
Definition ir_Daikin.cpp:2545
uint16_t getOffTimer(void) const
Get the Off Timer time to be sent to the A/C unit.
Definition ir_Daikin.cpp:2820
bool getPowerToggle(void) const
Get the Power toggle setting of the A/C.
Definition ir_Daikin.cpp:2586
void setQuiet(const bool on)
Set the Quiet mode of the A/C.
Definition ir_Daikin.cpp:2732
void setSwingVertical(const bool on)
Set the Vertical Swing mode of the A/C.
Definition ir_Daikin.cpp:2705
void setMode(const uint8_t mode)
Set the operating mode of the A/C.
Definition ir_Daikin.cpp:2594
static uint8_t convertFan(const stdAc::fanspeed_t speed)
Convert a stdAc::fanspeed_t enum into it's native speed.
Definition ir_Daikin.cpp:2678
Daikin128Protocol _
Definition ir_Daikin.h:1132
void setClock(const uint16_t mins_since_midnight)
Set the clock on the A/C unit.
Definition ir_Daikin.cpp:2762
void setOffTimerEnabled(const bool on)
Set the enable status of the Off Timer.
Definition ir_Daikin.cpp:2806
void send(const uint16_t repeat=kDaikin128DefaultRepeat)
Send the current internal state as an IR message.
Definition ir_Daikin.cpp:2575
bool getPowerful(void) const
Get the Powerful (Turbo) mode of the A/C.
Definition ir_Daikin.cpp:2756
uint8_t getTemp(void) const
Get the current temperature setting.
Definition ir_Daikin.cpp:2647
void stateReset(void)
Reset the internal state to a fixed known good state.
Definition ir_Daikin.cpp:2551
void setTemp(const uint8_t temp)
Set the temperature.
Definition ir_Daikin.cpp:2640
void begin(void)
Set up hardware to be able to send a message.
Definition ir_Daikin.cpp:2519
void setSleep(const bool on)
Set the Sleep mode of the A/C.
Definition ir_Daikin.cpp:2713
static bool validChecksum(uint8_t state[])
Verify the checksum is valid for a given state.
Definition ir_Daikin.cpp:2534
String toString(void) const
Convert the current internal state into a human readable string.
Definition ir_Daikin.cpp:2853
uint8_t getMode(void) const
Get the operating mode setting of the A/C.
Definition ir_Daikin.cpp:2590
static uint8_t calcSecondChecksum(const uint8_t state[])
Definition ir_Daikin.cpp:2526
void setPowerful(const bool on)
Set the Powerful (Turbo) mode of the A/C.
Definition ir_Daikin.cpp:2746
bool getOnTimerEnabled(void) const
Get the enable status of the On Timer.
Definition ir_Daikin.cpp:2783
uint8_t getFan(void) const
Get the current fan speed setting.
Definition ir_Daikin.cpp:2651
Class for handling detailed Daikin 152-bit A/C messages.
Definition ir_Daikin.h:1140
void off(void)
Change the power setting to Off.
Definition ir_Daikin.cpp:3125
void begin(void)
Set up hardware to be able to send a message.
Definition ir_Daikin.cpp:3071
bool getPowerful(void) const
Get the Powerful (Turbo) mode of the A/C.
Definition ir_Daikin.cpp:3250
stdAc::state_t toCommon(void) const
Convert the current internal state into its stdAc::state_t equivalent.
Definition ir_Daikin.cpp:3291
void on(void)
Change the power setting to On.
Definition ir_Daikin.cpp:3122
String toString(void) const
Convert the current internal state into a human readable string.
Definition ir_Daikin.cpp:3317
void send(const uint16_t repeat=kDaikin152DefaultRepeat)
Send the current internal state as an IR message.
Definition ir_Daikin.cpp:3076
uint8_t getTemp(void) const
Get the current temperature setting.
Definition ir_Daikin.cpp:3179
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a stdAc::opmode_t enum into its native mode.
Definition ir_Daikin.cpp:3163
void checksum(void)
Calculate and set the checksum values for the internal state.
Definition ir_Daikin.cpp:3094
bool getQuiet(void) const
Get the Quiet mode status of the A/C.
Definition ir_Daikin.cpp:3234
void setFan(const uint8_t fan)
Set the speed of the fan.
Definition ir_Daikin.cpp:3184
void setQuiet(const bool on)
Set the Quiet mode of the A/C.
Definition ir_Daikin.cpp:3226
uint8_t getFan(void) const
Get the current fan speed setting.
Definition ir_Daikin.cpp:3198
bool getPower(void) const
Get the value of the current power setting.
Definition ir_Daikin.cpp:3133
bool getEcono(void) const
Get the Economical mode of the A/C.
Definition ir_Daikin.cpp:3262
static uint8_t convertFan(const stdAc::fanspeed_t speed)
Convert a stdAc::fanspeed_t enum into it's native speed.
Definition ir_Daikin.cpp:3210
void setPowerful(const bool on)
Set the Powerful (Turbo) mode of the A/C.
Definition ir_Daikin.cpp:3238
bool getComfort(void) const
Get the Comfort mode of the A/C.
Definition ir_Daikin.cpp:3287
void setEcono(const bool on)
Set the Economy mode of the A/C.
Definition ir_Daikin.cpp:3254
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition ir_Daikin.h:1151
void setPower(const bool on)
Change the power setting.
Definition ir_Daikin.cpp:3129
void setComfort(const bool on)
Set the Comfort mode of the A/C.
Definition ir_Daikin.cpp:3274
void setTemp(const uint8_t temp)
Set the temperature.
Definition ir_Daikin.cpp:3169
IRsend _irsend
instance of the IR send class
Definition ir_Daikin.h:1187
bool getSwingV(void) const
Get the Vertical Swing mode of the A/C.
Definition ir_Daikin.cpp:3222
void setRaw(const uint8_t new_code[])
Set the internal state from a valid code for this protocol.
Definition ir_Daikin.cpp:3117
void setMode(const uint8_t mode)
Set the operating mode of the A/C.
Definition ir_Daikin.cpp:3141
void setSwingV(const bool on)
Set the Vertical Swing mode of the A/C.
Definition ir_Daikin.cpp:3216
Daikin152Protocol _
Definition ir_Daikin.h:1194
void stateReset(void)
Reset the internal state to a fixed known good state.
Definition ir_Daikin.cpp:3099
static bool validChecksum(uint8_t state[], const uint16_t length=kDaikin152StateLength)
Verify the checksum is valid for a given state.
Definition ir_Daikin.cpp:3085
uint8_t getMode(void) const
Get the operating mode setting of the A/C.
Definition ir_Daikin.cpp:3137
bool getSensor(void) const
Get the Sensor mode of the A/C.
Definition ir_Daikin.cpp:3270
void setSensor(const bool on)
Set the Sensor mode of the A/C.
Definition ir_Daikin.cpp:3266
uint8_t * getRaw(void)
Get a PTR to the internal state/code for this protocol.
Definition ir_Daikin.cpp:3110
Class for handling detailed Daikin 160-bit A/C messages.
Definition ir_Daikin.h:959
bool getPower(void) const
Get the value of the current power setting.
Definition ir_Daikin.cpp:1846
static bool validChecksum(uint8_t state[], const uint16_t length=kDaikin160StateLength)
Verify the checksum is valid for a given state.
Definition ir_Daikin.cpp:1771
void send(const uint16_t repeat=kDaikin160DefaultRepeat)
Send the current internal state as an IR message.
Definition ir_Daikin.cpp:1829
void setSwingVertical(const uint8_t position)
Set the Vertical Swing mode of the A/C.
Definition ir_Daikin.cpp:1925
uint8_t getMode(void) const
Get the operating mode setting of the A/C.
Definition ir_Daikin.cpp:1850
void setRaw(const uint8_t new_code[])
Set the internal state from a valid code for this protocol.
Definition ir_Daikin.cpp:1822
uint8_t getFan(void) const
Get the current fan speed setting.
Definition ir_Daikin.cpp:1902
void on(void)
Change the power setting to On.
Definition ir_Daikin.cpp:1835
IRsend _irsend
instance of the IR send class
Definition ir_Daikin.h:998
static uint8_t convertFan(const stdAc::fanspeed_t speed)
Convert a stdAc::fanspeed_t enum into it's native speed.
Definition ir_Daikin.cpp:1911
Daikin160Protocol _
Definition ir_Daikin.h:1005
uint8_t getTemp(void) const
Get the current temperature setting.
Definition ir_Daikin.cpp:1884
void setMode(const uint8_t mode)
Set the operating mode of the A/C.
Definition ir_Daikin.cpp:1854
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition ir_Daikin.h:970
static uint8_t convertSwingV(const stdAc::swingv_t position)
Convert a stdAc::swingv_t enum into it's native setting.
Definition ir_Daikin.cpp:1946
void begin(void)
Set up hardware to be able to send a message.
Definition ir_Daikin.cpp:1765
stdAc::state_t toCommon(void) const
Convert the current internal state into its stdAc::state_t equivalent.
Definition ir_Daikin.cpp:1976
void stateReset(void)
Reset the internal state to a fixed known good state.
Definition ir_Daikin.cpp:1793
void setFan(const uint8_t fan)
Set the speed of the fan.
Definition ir_Daikin.cpp:1889
void off(void)
Change the power setting to Off.
Definition ir_Daikin.cpp:1838
String toString(void) const
Convert the current internal state into a human readable string.
Definition ir_Daikin.cpp:2002
void checksum(void)
Calculate and set the checksum values for the internal state.
Definition ir_Daikin.cpp:1786
void setTemp(const uint8_t temp)
Set the temperature.
Definition ir_Daikin.cpp:1876
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a stdAc::opmode_t enum into its native mode.
Definition ir_Daikin.cpp:1870
uint8_t * getRaw(void)
Get a PTR to the internal state/code for this protocol.
Definition ir_Daikin.cpp:1815
uint8_t getSwingVertical(void) const
Get the Vertical Swing mode of the A/C.
Definition ir_Daikin.cpp:1941
void setPower(const bool on)
Change the power setting.
Definition ir_Daikin.cpp:1842
static stdAc::swingv_t toCommonSwingV(const uint8_t setting)
Convert a native vertical swing postion to it's common equivalent.
Definition ir_Daikin.cpp:1962
Class for handling detailed Daikin 176-bit A/C messages.
Definition ir_Daikin.h:1011
void setFan(const uint8_t fan)
Set the speed of the fan.
Definition ir_Daikin.cpp:2281
uint8_t getMode(void) const
Get the operating mode setting of the A/C.
Definition ir_Daikin.cpp:2208
void begin(void)
Set up hardware to be able to send a message.
Definition ir_Daikin.cpp:2119
void checksum(void)
Calculate and set the checksum values for the internal state.
Definition ir_Daikin.cpp:2140
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition ir_Daikin.h:1022
String toString(void) const
Convert the current internal state into a human readable string.
Definition ir_Daikin.cpp:2394
static uint8_t convertSwingH(const stdAc::swingh_t position)
Convert a stdAc::swingh_t enum into it's native setting.
Definition ir_Daikin.cpp:2337
IRsend _irsend
instance of the IR send class
Definition ir_Daikin.h:1055
void on(void)
Change the power setting to On.
Definition ir_Daikin.cpp:2190
void off(void)
Change the power setting to Off..
Definition ir_Daikin.cpp:2193
uint8_t getSwingHorizontal(void) const
Get the Horizontal Swing mode of the A/C.
Definition ir_Daikin.cpp:2323
void setRaw(const uint8_t new_code[])
Set the internal state from a valid code for this protocol.
Definition ir_Daikin.cpp:2176
void setPower(const bool on)
Change the power setting.
Definition ir_Daikin.cpp:2197
void setId(const uint8_t num)
Set the Unit Id of the A/C.
Definition ir_Daikin.cpp:2332
static stdAc::swingh_t toCommonSwingH(const uint8_t setting)
Convert a native horizontal swing postion to it's common equivalent.
Definition ir_Daikin.cpp:2348
static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed)
Convert a native fan speed into its stdAc equivalent.
Definition ir_Daikin.cpp:2360
void setMode(const uint8_t mode)
Set the operating mode of the A/C.
Definition ir_Daikin.cpp:2212
void stateReset(void)
Reset the internal state to a fixed known good state.
Definition ir_Daikin.cpp:2147
Daikin176Protocol _
Definition ir_Daikin.h:1062
uint8_t _saved_temp
The previously user requested temp value.
Definition ir_Daikin.h:1063
uint8_t getTemp(void) const
Get the current temperature setting.
Definition ir_Daikin.cpp:2276
void setSwingHorizontal(const uint8_t position)
Set the Horizontal Swing mode of the A/C.
Definition ir_Daikin.cpp:2311
bool getPower(void) const
Get the value of the current power setting.
Definition ir_Daikin.cpp:2204
static stdAc::opmode_t toCommonMode(const uint8_t mode)
Convert a native mode into its stdAc equivalent.
Definition ir_Daikin.cpp:2250
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a stdAc::opmode_t enum into its native mode.
Definition ir_Daikin.cpp:2237
static bool validChecksum(uint8_t state[], const uint16_t length=kDaikin176StateLength)
Verify the checksum is valid for a given state.
Definition ir_Daikin.cpp:2125
void setTemp(const uint8_t temp)
Set the temperature.
Definition ir_Daikin.cpp:2262
uint8_t * getRaw(void)
Get a PTR to the internal state/code for this protocol.
Definition ir_Daikin.cpp:2169
uint8_t getId(void) const
Get the Unit Id of the A/C.
Definition ir_Daikin.cpp:2327
static uint8_t convertFan(const stdAc::fanspeed_t speed)
Convert a stdAc::fanspeed_t enum into it's native speed.
Definition ir_Daikin.cpp:2301
stdAc::state_t toCommon(void) const
Convert the current internal state into its stdAc::state_t equivalent.
Definition ir_Daikin.cpp:2367
uint8_t getFan(void) const
Get the current fan speed setting.
Definition ir_Daikin.cpp:2296
void send(const uint16_t repeat=kDaikin176DefaultRepeat)
Send the current internal state as an IR message.
Definition ir_Daikin.cpp:2184
Class for handling detailed Daikin 216-bit A/C messages.
Definition ir_Daikin.h:903
bool getPowerful(void) const
Get the Powerful (Turbo) mode of the A/C.
Definition ir_Daikin.cpp:1622
void setQuiet(const bool on)
Set the Quiet mode of the A/C.
Definition ir_Daikin.cpp:1597
void off(void)
Change the power setting to Off.
Definition ir_Daikin.cpp:1495
void on(void)
Change the power setting to On.
Definition ir_Daikin.cpp:1492
void setPower(const bool on)
Change the power setting.
Definition ir_Daikin.cpp:1499
uint8_t * getRaw(void)
Get a PTR to the internal state/code for this protocol.
Definition ir_Daikin.cpp:1480
void setMode(const uint8_t mode)
Set the operating mode of the A/C.
Definition ir_Daikin.cpp:1511
Daikin216Protocol _
Definition ir_Daikin.h:953
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition ir_Daikin.h:914
void setRaw(const uint8_t new_code[])
Set the internal state from a valid code for this protocol.
Definition ir_Daikin.cpp:1487
stdAc::state_t toCommon(void) const
Convert the current internal state into its stdAc::state_t equivalent.
Definition ir_Daikin.cpp:1626
uint8_t getMode(void) const
Get the operating mode setting of the A/C.
Definition ir_Daikin.cpp:1507
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a stdAc::opmode_t enum into its native mode.
Definition ir_Daikin.cpp:1528
static uint8_t convertFan(const stdAc::fanspeed_t speed)
Convert a stdAc::fanspeed_t enum into it's native speed.
Definition ir_Daikin.cpp:1570
void setPowerful(const bool on)
Set the Powerful (Turbo) mode of the A/C.
Definition ir_Daikin.cpp:1614
static bool validChecksum(uint8_t state[], const uint16_t length=kDaikin216StateLength)
Verify the checksum is valid for a given state.
Definition ir_Daikin.cpp:1442
void stateReset(void)
Reset the internal state to a fixed known good state.
Definition ir_Daikin.cpp:1464
void setSwingVertical(const bool on)
Set the Vertical Swing mode of the A/C.
Definition ir_Daikin.cpp:1576
void setTemp(const uint8_t temp)
Set the temperature.
Definition ir_Daikin.cpp:1534
void setFan(const uint8_t fan)
Set the speed of the fan.
Definition ir_Daikin.cpp:1547
bool getPower(void) const
Get the value of the current power setting.
Definition ir_Daikin.cpp:1503
void send(const uint16_t repeat=kDaikin216DefaultRepeat)
Send the current internal state as an IR message.
Definition ir_Daikin.cpp:1433
void begin(void)
Set up hardware to be able to send a message.
Definition ir_Daikin.cpp:1428
uint8_t getFan(void) const
Get the current fan speed setting.
Definition ir_Daikin.cpp:1561
IRsend _irsend
instance of the IR send class
Definition ir_Daikin.h:946
uint8_t getTemp(void) const
Get the current temperature setting.
Definition ir_Daikin.cpp:1542
bool getQuiet(void) const
Get the Quiet mode status of the A/C.
Definition ir_Daikin.cpp:1610
String toString(void) const
Convert the current internal state into a human readable string.
Definition ir_Daikin.cpp:1654
void checksum(void)
Calculate and set the checksum values for the internal state.
Definition ir_Daikin.cpp:1457
bool getSwingVertical(void) const
Get the Vertical Swing mode of the A/C.
Definition ir_Daikin.cpp:1582
void setSwingHorizontal(const bool on)
Set the Horizontal Swing mode of the A/C.
Definition ir_Daikin.cpp:1586
bool getSwingHorizontal(void) const
Get the Horizontal Swing mode of the A/C.
Definition ir_Daikin.cpp:1592
Class for handling detailed Daikin 312-bit A/C messages.
Definition ir_Daikin.h:805
void setFreshAirHigh(const bool on)
Set the (High) Fresh Air mode of the A/C.
Definition ir_Daikin.cpp:1036
void checksum(void)
Calculate and set the checksum values for the internal state.
Definition ir_Daikin.cpp:734
bool getFreshAirHigh(void) const
Get the (High) Fresh Air mode status of the A/C.
Definition ir_Daikin.cpp:1040
void begin(void)
Set up hardware to be able to send a message.
Definition ir_Daikin.cpp:705
uint8_t getLight(void) const
Get the Light status of the A/C.
Definition ir_Daikin.cpp:1004
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a stdAc::opmode_t enum into its native mode.
Definition ir_Daikin.cpp:1159
void setRaw(const uint8_t new_code[])
Set the internal state from a valid code for this protocol.
Definition ir_Daikin.cpp:783
void disableSleepTimer(void)
Disable the sleep timer.
Definition ir_Daikin.cpp:1079
void disableOnTimer(void)
Disable the On timer.
Definition ir_Daikin.cpp:957
void clearOnTimerFlag(void)
Clear the On Timer flag.
Definition ir_Daikin.cpp:954
static stdAc::swingv_t toCommonSwingV(const uint8_t setting)
Convert a native vertical swing postion to it's common equivalent.
Definition ir_Daikin.cpp:909
void setHumidity(const uint8_t percent)
Set the Humidity percentage setting of the A/C.
Definition ir_Daikin.cpp:1128
void setClean(const bool on)
Set the Auto clean mode of the A/C.
Definition ir_Daikin.cpp:1020
void setMode(const uint8_t mode)
Set the operating mode of the A/C.
Definition ir_Daikin.cpp:810
uint16_t getSleepTime(void) const
Get the Sleep Timer time to be sent to the A/C unit.
Definition ir_Daikin.cpp:1083
void clearSleepTimerFlag(void)
Clear the sleep timer flag.
Definition ir_Daikin.cpp:1076
void setSwingVertical(const uint8_t position)
Set the Vertical Swing mode of the A/C.
Definition ir_Daikin.cpp:868
void setPower(const bool state)
Change the power setting.
Definition ir_Daikin.cpp:795
uint8_t getSwingVertical(void) const
Get the Vertical Swing mode of the A/C.
Definition ir_Daikin.cpp:886
void setEcono(const bool on)
Set the Economy mode of the A/C.
Definition ir_Daikin.cpp:1060
void setBeep(const uint8_t beep)
Set the Beep mode of the A/C.
Definition ir_Daikin.cpp:1000
bool getFreshAir(void) const
Get the Fresh Air mode status of the A/C.
Definition ir_Daikin.cpp:1032
uint8_t getFan(void) const
Get the current fan speed setting.
Definition ir_Daikin.cpp:857
void setEye(const bool on)
Set the Eye (Sensor) mode of the A/C.
Definition ir_Daikin.cpp:1052
void setQuiet(const bool on)
Set the Quiet mode of the A/C.
Definition ir_Daikin.cpp:1091
bool getOnTimerEnabled(void) const
Get the enable status of the On Timer.
Definition ir_Daikin.cpp:969
void setPowerful(const bool on)
Set the Powerful (Turbo) mode of the A/C.
Definition ir_Daikin.cpp:1103
Daikin2Protocol _
Definition ir_Daikin.h:895
void setFreshAir(const bool on)
Set the Fresh Air mode of the A/C.
Definition ir_Daikin.cpp:1028
bool getMold(void) const
Get the Mould (filter) mode status of the A/C.
Definition ir_Daikin.cpp:1016
bool getPurify(void) const
Get the Purify (Filter) mode status of the A/C.
Definition ir_Daikin.cpp:1119
bool getPower(void) const
Get the value of the current power setting.
Definition ir_Daikin.cpp:802
bool getClean(void) const
Get the Auto Clean mode status of the A/C.
Definition ir_Daikin.cpp:1024
void setSwingHorizontal(const uint8_t position)
Set the Horizontal Swing mode of the A/C.
Definition ir_Daikin.cpp:924
bool getSleepTimerEnabled(void) const
Get the Sleep timer enabled status of the A/C.
Definition ir_Daikin.cpp:1087
static uint8_t convertSwingH(const stdAc::swingh_t position)
Convert a stdAc::swingh_t enum into it's native setting.
Definition ir_Daikin.cpp:1173
bool getEye(void) const
Get the Eye (Sensor) mode status of the A/C.
Definition ir_Daikin.cpp:1056
uint16_t getOnTime(void) const
Get the On Timer time to be sent to the A/C unit.
Definition ir_Daikin.cpp:965
void setLight(const uint8_t light)
Set the Light (LED) mode of the A/C.
Definition ir_Daikin.cpp:1008
void setTemp(const uint8_t temp)
Set the temperature.
Definition ir_Daikin.cpp:827
uint16_t getOffTime(void) const
Get the Off Timer time to be sent to the A/C unit.
Definition ir_Daikin.cpp:988
static stdAc::swingh_t toCommonSwingH(const uint8_t setting)
Convert a native horizontal swing postion to it's common equivalent.
Definition ir_Daikin.cpp:1189
void setCurrentTime(const uint16_t time)
Set the clock on the A/C unit.
Definition ir_Daikin.cpp:934
void disableOffTimer(void)
Disable the Off timer.
Definition ir_Daikin.cpp:980
stdAc::state_t toCommon(void) const
Convert the current internal state into its stdAc::state_t equivalent.
Definition ir_Daikin.cpp:1204
bool getPowerful(void) const
Get the Powerful (Turbo) mode of the A/C.
Definition ir_Daikin.cpp:1111
void enableOnTimer(const uint16_t starttime)
Set the enable status & time of the On Timer.
Definition ir_Daikin.cpp:947
void stateReset(void)
Reset the internal state to a fixed known good state.
Definition ir_Daikin.cpp:740
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition ir_Daikin.h:816
void setEyeAuto(const bool on)
Set the Automatic Eye (Sensor) mode of the A/C.
Definition ir_Daikin.cpp:1044
void enableSleepTimer(const uint16_t sleeptime)
Set the enable status & time of the Sleep Timer.
Definition ir_Daikin.cpp:1069
bool getEcono(void) const
Get the Economical mode of the A/C.
Definition ir_Daikin.cpp:1064
void on(void)
Change the power setting to On.
Definition ir_Daikin.cpp:788
static uint8_t convertSwingV(const stdAc::swingv_t position)
Convert a stdAc::swingv_t enum into it's native setting.
Definition ir_Daikin.cpp:891
IRsend _irsend
instance of the IR send class
Definition ir_Daikin.h:888
void send(const uint16_t repeat=kDaikin2DefaultRepeat)
Send the current internal state as an IR message.
Definition ir_Daikin.cpp:710
bool getOffTimerEnabled(void) const
Get the enable status of the Off Timer.
Definition ir_Daikin.cpp:992
uint8_t getMode(void) const
Get the operating mode setting of the A/C.
Definition ir_Daikin.cpp:806
uint16_t getCurrentTime(void) const
Get the clock time to be sent to the A/C unit.
Definition ir_Daikin.cpp:942
String toString(void) const
Convert the current internal state into a human readable string.
Definition ir_Daikin.cpp:1230
uint8_t getBeep(void) const
Get the Beep status of the A/C.
Definition ir_Daikin.cpp:996
void setPurify(const bool on)
Set the Purify (Filter) mode of the A/C.
Definition ir_Daikin.cpp:1115
static uint8_t convertFan(const stdAc::fanspeed_t speed)
Convert a stdAc::fanspeed_t enum into it's native speed.
Definition ir_Daikin.cpp:1166
bool getEyeAuto(void) const
Get the Automaitc Eye (Sensor) mode status of the A/C.
Definition ir_Daikin.cpp:1048
void setMold(const bool on)
Set the Mould (filter) mode of the A/C.
Definition ir_Daikin.cpp:1012
uint8_t getTemp(void) const
Get the current temperature setting.
Definition ir_Daikin.cpp:839
static bool validChecksum(uint8_t state[], const uint16_t length=kDaikin2StateLength)
Verify the checksum is valid for a given state.
Definition ir_Daikin.cpp:719
uint8_t getSwingHorizontal(void) const
Get the Horizontal Swing mode of the A/C.
Definition ir_Daikin.cpp:930
uint8_t getHumidity(void) const
Get the Humidity percentage setting of the A/C.
Definition ir_Daikin.cpp:1123
bool getQuiet(void) const
Get the Quiet mode status of the A/C.
Definition ir_Daikin.cpp:1099
void off(void)
Change the power setting to Off.
Definition ir_Daikin.cpp:791
uint8_t * getRaw(void)
Get a PTR to the internal state/code for this protocol.
Definition ir_Daikin.cpp:776
void setFan(const uint8_t fan)
Set the speed of the fan.
Definition ir_Daikin.cpp:844
void enableOffTimer(const uint16_t endtime)
Set the enable status & time of the Off Timer.
Definition ir_Daikin.cpp:973
Class for handling detailed Daikin 64-bit A/C messages.
Definition ir_Daikin.h:1200
void setMode(const uint8_t mode)
Set the operating mode of the A/C.
Definition ir_Daikin.cpp:3498
bool getPowerToggle(void) const
Get the Power toggle setting of the A/C.
Definition ir_Daikin.cpp:3478
static uint8_t convertFan(const stdAc::fanspeed_t speed)
Convert a stdAc::fanspeed_t enum into it's native speed.
Definition ir_Daikin.cpp:3560
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition ir_Daikin.h:1211
Daikin64Protocol _
Definition ir_Daikin.h:1259
uint16_t getOnTime(void) const
Get the On Timer time to be sent to the A/C unit.
Definition ir_Daikin.cpp:3654
bool getOnTimeEnabled(void) const
Get the enable status of the On Timer.
Definition ir_Daikin.cpp:3650
bool getQuiet(void) const
Get the Quiet mode status of the A/C.
Definition ir_Daikin.cpp:3601
uint8_t getTemp(void) const
Get the current temperature setting.
Definition ir_Daikin.cpp:3490
void setOffTime(const uint16_t mins_since_midnight)
Set the Off Timer time for the A/C unit.
Definition ir_Daikin.cpp:3676
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a stdAc::opmode_t enum into its native mode.
Definition ir_Daikin.cpp:3514
void setRaw(const uint64_t new_state)
Set the internal state from a valid code for this protocol.
Definition ir_Daikin.cpp:3470
void stateReset(void)
Reset the internal state to a fixed known good state.
Definition ir_Daikin.cpp:3459
void setClock(const uint16_t mins_since_midnight)
Set the clock on the A/C unit.
Definition ir_Daikin.cpp:3631
bool getSleep(void) const
Get the Sleep mode of the A/C.
Definition ir_Daikin.cpp:3627
IRsend _irsend
instance of the IR send class
Definition ir_Daikin.h:1253
bool getSwingVertical(void) const
Get the Vertical Swing mode of the A/C.
Definition ir_Daikin.cpp:3619
void setTurbo(const bool on)
Set the Turbo (Powerful) mode of the A/C.
Definition ir_Daikin.cpp:3591
bool getTurbo(void) const
Get the Turbo (Powerful) mode status of the A/C.
Definition ir_Daikin.cpp:3587
void checksum(void)
Calculate and set the checksum values for the internal state.
Definition ir_Daikin.cpp:3456
uint16_t getOffTime(void) const
Get the Off Timer time to be sent to the A/C unit.
Definition ir_Daikin.cpp:3672
void setQuiet(const bool on)
Set the Quiet mode of the A/C.
Definition ir_Daikin.cpp:3605
void setSleep(const bool on)
Set the Sleep mode of the A/C.
Definition ir_Daikin.cpp:3623
static stdAc::opmode_t toCommonMode(const uint8_t mode)
Convert a native mode into its stdAc equivalent.
Definition ir_Daikin.cpp:3526
void setOnTimeEnabled(const bool on)
Set the enable status of the On Timer.
Definition ir_Daikin.cpp:3646
bool getOffTimeEnabled(void) const
Get the enable status of the Off Timer.
Definition ir_Daikin.cpp:3668
void send(const uint16_t repeat=kDaikin64DefaultRepeat)
Send the current internal state as an IR message.
Definition ir_Daikin.cpp:3430
void begin(void)
Set up hardware to be able to send a message.
Definition ir_Daikin.cpp:3425
uint64_t getRaw(void)
Get a copy of the internal state as a valid code for this protocol.
Definition ir_Daikin.cpp:3463
void setOnTime(const uint16_t mins_since_midnight)
Set the On Timer time for the A/C unit.
Definition ir_Daikin.cpp:3658
uint16_t getClock(void) const
Get the clock time to be sent to the A/C unit.
Definition ir_Daikin.cpp:3640
static bool validChecksum(const uint64_t state)
Verify the checksum is valid for a given state.
Definition ir_Daikin.cpp:3449
stdAc::state_t toCommon(const stdAc::state_t *prev=NULL) const
Convert the current internal state into its stdAc::state_t equivalent.
Definition ir_Daikin.cpp:3716
static uint8_t calcChecksum(const uint64_t state)
Calculate the checksum for a given state.
Definition ir_Daikin.cpp:3438
uint8_t getFan(void) const
Get the current fan speed setting.
Definition ir_Daikin.cpp:3538
void setPowerToggle(const bool on)
Set the Power toggle setting of the A/C.
Definition ir_Daikin.cpp:3474
static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed)
Convert a native fan speed into its stdAc equivalent.
Definition ir_Daikin.cpp:3574
void setTemp(const uint8_t temp)
Set the temperature.
Definition ir_Daikin.cpp:3482
uint8_t getMode(void) const
Get the operating mode setting of the A/C.
Definition ir_Daikin.cpp:3494
void setOffTimeEnabled(const bool on)
Set the enable status of the Off Timer.
Definition ir_Daikin.cpp:3664
String toString(void) const
Convert the current internal state into a human readable string.
Definition ir_Daikin.cpp:3682
void setFan(const uint8_t fan)
Set the speed of the fan.
Definition ir_Daikin.cpp:3542
void setSwingVertical(const bool on)
Set the Vertical Swing mode of the A/C.
Definition ir_Daikin.cpp:3615
Class for handling detailed Daikin 280-bit A/C messages.
Definition ir_Daikin.h:723
void disableOnTimer(void)
Clear and disable the On timer.
Definition ir_Daikin.cpp:394
void setWeeklyTimerEnable(const bool on)
Set the enable status of the Weekly Timer.
Definition ir_Daikin.cpp:466
void setEcono(const bool on)
Set the Economy mode of the A/C.
Definition ir_Daikin.cpp:350
bool getOnTimerEnabled(void) const
Get the enable status of the On Timer.
Definition ir_Daikin.cpp:407
void setMold(const bool on)
Set the Mould mode of the A/C.
Definition ir_Daikin.cpp:364
void disableOffTimer(void)
Clear and disable the Off timer.
Definition ir_Daikin.cpp:419
void setFan(const uint8_t fan)
Set the speed of the fan.
Definition ir_Daikin.cpp:239
void setTemp(const float temp)
Set the temperature.
Definition ir_Daikin.cpp:226
bool getSwingVertical(void) const
Get the Vertical Swing mode of the A/C.
Definition ir_Daikin.cpp:289
uint8_t getCurrentDay(void) const
Get the current day of the week to be sent to the A/C unit.
Definition ir_Daikin.cpp:460
IRsend _irsend
instance of the IR send class
Definition ir_Daikin.h:791
uint8_t getFan(void) const
Get the current fan speed setting.
Definition ir_Daikin.cpp:253
static stdAc::opmode_t toCommonMode(const uint8_t mode)
Convert a native mode into its stdAc equivalent.
Definition ir_Daikin.cpp:507
void setQuiet(const bool on)
Set the Quiet mode of the A/C.
Definition ir_Daikin.cpp:307
void stateReset(void)
Reset the internal state to a fixed known good state.
Definition ir_Daikin.cpp:160
void setPowerful(const bool on)
Set the Powerful (Turbo) mode of the A/C.
Definition ir_Daikin.cpp:321
void on(void)
Change the power setting to On.
Definition ir_Daikin.cpp:207
void setCurrentDay(const uint8_t day_of_week)
Set the current day of the week to be sent to the A/C unit.
Definition ir_Daikin.cpp:453
float getTemp(void) const
Get the current temperature setting.
Definition ir_Daikin.cpp:234
bool getWeeklyTimerEnable(void) const
Get the enable status of the Weekly Timer.
Definition ir_Daikin.cpp:473
void setSwingHorizontal(const bool on)
Set the Horizontal Swing mode of the A/C.
Definition ir_Daikin.cpp:295
void off(void)
Change the power setting to Off.
Definition ir_Daikin.cpp:210
bool getComfort(void) const
Get the Comfort mode of the A/C.
Definition ir_Daikin.cpp:382
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition ir_Daikin.h:734
bool getSensor(void) const
Get the Sensor mode of the A/C.
Definition ir_Daikin.cpp:344
static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed)
Convert a native fan speed into its stdAc equivalent.
Definition ir_Daikin.cpp:520
bool getMold(void) const
Get the Mould mode status of the A/C.
Definition ir_Daikin.cpp:370
void setRaw(const uint8_t new_code[], const uint16_t length=kDaikinStateLength)
Set the internal state from a valid code for this protocol.
Definition ir_Daikin.cpp:196
void enableOffTimer(const uint16_t endtime)
Set the enable status & time of the Off Timer.
Definition ir_Daikin.cpp:413
uint16_t getOffTime(void) const
Get the Off Timer time to be sent to the A/C unit.
Definition ir_Daikin.cpp:426
void setSwingVertical(const bool on)
Set the Vertical Swing mode of the A/C.
Definition ir_Daikin.cpp:283
void send(const uint16_t repeat=kDaikinDefaultRepeat)
Send the current internal state as an IR message.
Definition ir_Daikin.cpp:122
void setPower(const bool on)
Change the power setting.
Definition ir_Daikin.cpp:214
String toString(void) const
Convert the current internal state into a human readable string.
Definition ir_Daikin.cpp:562
uint16_t getCurrentTime(void) const
Get the clock time to be sent to the A/C unit.
Definition ir_Daikin.cpp:446
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a stdAc::opmode_t enum into its native mode.
Definition ir_Daikin.cpp:480
void setComfort(const bool on)
Set the Comfort mode of the A/C.
Definition ir_Daikin.cpp:376
void enableOnTimer(const uint16_t starttime)
Set the enable status & time of the On Timer.
Definition ir_Daikin.cpp:388
uint8_t * getRaw(void)
Get a PTR to the internal state/code for this protocol.
Definition ir_Daikin.cpp:188
uint16_t getOnTime(void) const
Get the On Timer time to be sent to the A/C unit.
Definition ir_Daikin.cpp:401
static uint8_t convertFan(const stdAc::fanspeed_t speed)
Convert a stdAc::fanspeed_t enum into it's native speed.
Definition ir_Daikin.cpp:493
stdAc::state_t toCommon(void) const
Convert the current internal state into its stdAc::state_t equivalent.
Definition ir_Daikin.cpp:534
DaikinESPProtocol _
Definition ir_Daikin.h:798
uint8_t getMode(void) const
Get the operating mode setting of the A/C.
Definition ir_Daikin.cpp:261
void checksum(void)
Calculate and set the checksum values for the internal state.
Definition ir_Daikin.cpp:152
bool getPower(void) const
Get the value of the current power setting.
Definition ir_Daikin.cpp:220
void begin(void)
Set up hardware to be able to send a message.
Definition ir_Daikin.cpp:117
static bool validChecksum(uint8_t state[], const uint16_t length=kDaikinStateLength)
Verify the checksum is valid for a given state.
Definition ir_Daikin.cpp:131
bool getQuiet(void) const
Get the Quiet mode status of the A/C.
Definition ir_Daikin.cpp:315
bool getOffTimerEnabled(void) const
Get the enable status of the Off Timer.
Definition ir_Daikin.cpp:432
void setSensor(const bool on)
Set the Sensor mode of the A/C.
Definition ir_Daikin.cpp:338
void setCurrentTime(const uint16_t mins_since_midnight)
Set the clock on the A/C unit.
Definition ir_Daikin.cpp:438
void setMode(const uint8_t mode)
Set the operating mode of the A/C.
Definition ir_Daikin.cpp:267
bool getEcono(void) const
Get the Economical mode of the A/C.
Definition ir_Daikin.cpp:358
bool getPowerful(void) const
Get the Powerful (Turbo) mode of the A/C.
Definition ir_Daikin.cpp:332
bool getSwingHorizontal(void) const
Get the Horizontal Swing mode of the A/C.
Definition ir_Daikin.cpp:301
Class for sending all basic IR protocols.
Definition IRsend.h:249
int8_t calibrate(uint16_t hz=38000U)
Calculate & set any offsets to account for execution times during sending.
Definition IRsend.cpp:209
const uint16_t kDaikin176Gap
Definition ir_Daikin.h:492
const uint8_t kDaikin160SwingVLow
Definition ir_Daikin.h:427
const uint8_t kDaikinHeat
Definition ir_Daikin.h:143
const uint16_t kDaikin160OneSpace
Definition ir_Daikin.h:419
const uint16_t kDaikin160Section1Length
Definition ir_Daikin.h:423
const uint64_t kDaikin64KnownGoodState
Definition ir_Daikin.h:669
const uint16_t kDaikinHdrMark
Definition ir_Daikin.h:174
const uint64_t kDaikinFirstHeader64
Definition ir_Daikin.h:181
const uint8_t kDaikin64ChecksumSize
Definition ir_Daikin.h:683
const uint8_t kDaikin128BitCeiling
Definition ir_Daikin.h:578
const uint16_t kDaikin152HdrSpace
Definition ir_Daikin.h:624
const uint16_t kDaikin216Sections
Definition ir_Daikin.h:373
const uint8_t kDaikin2HumidityOff
Definition ir_Daikin.h:315
const uint8_t kDaikinLightDim
Definition ir_Daikin.h:168
const uint8_t kDaikinBeepQuiet
Definition ir_Daikin.h:164
const uint16_t kDaikin128HdrSpace
Definition ir_Daikin.h:556
const uint8_t kDaikin64FanHigh
Definition ir_Daikin.h:677
const uint16_t kDaikin64ZeroSpace
Definition ir_Daikin.h:661
const uint8_t kDaikin176Heat
Definition ir_Daikin.h:498
const uint16_t kDaikin176Sections
Definition ir_Daikin.h:493
const uint8_t kDaikin2SwingVHighest
Definition ir_Daikin.h:289
const uint8_t kDaikin64FanQuiet
Definition ir_Daikin.h:678
const uint16_t kDaikin128ZeroSpace
Definition ir_Daikin.h:559
const uint8_t kDaikin128Auto
Definition ir_Daikin.h:568
const uint16_t kDaikin64HdrSpace
Definition ir_Daikin.h:659
const uint8_t kDaikin64Cool
Definition ir_Daikin.h:671
const uint16_t kDaikin216OneSpace
Definition ir_Daikin.h:370
const uint16_t kDaikin152OneSpace
Definition ir_Daikin.h:626
const uint16_t kDaikin128SectionLength
Definition ir_Daikin.h:563
const uint8_t kDaikin64MinTemp
Definition ir_Daikin.h:680
const uint8_t kDaikinLightBright
Definition ir_Daikin.h:167
const uint16_t kDaikin2BitMark
Definition ir_Daikin.h:282
const uint16_t kDaikin200BitMark
Definition ir_Daikin.h:688
const uint16_t kDaikin312Sections
Definition ir_Daikin.h:704
const uint8_t kDaikin176Dry
Definition ir_Daikin.h:501
const uint16_t kDaikin216HdrMark
Definition ir_Daikin.h:367
const uint8_t kDaikin128Cool
Definition ir_Daikin.h:565
const uint16_t kDaikin312HdrGap
Definition ir_Daikin.h:702
const uint16_t kDaikin128LeaderSpace
Definition ir_Daikin.h:554
const uint8_t kDaikin64Heat
Definition ir_Daikin.h:673
const uint8_t kDaikin2HumidityHeatMedium
Definition ir_Daikin.h:317
const uint8_t kDaikin160SwingVHighest
Definition ir_Daikin.h:430
const uint16_t kDaikin200Section1Length
Definition ir_Daikin.h:693
const uint8_t kDaikin2SwingVSwing
Definition ir_Daikin.h:299
const uint16_t kDaikin160ZeroSpace
Definition ir_Daikin.h:420
const uint8_t kDaikin2SwingVHigh
Definition ir_Daikin.h:290
const uint16_t kDaikin312HdrMark
Definition ir_Daikin.h:697
const uint8_t kDaikinSection2Length
Definition ir_Daikin.h:157
const uint16_t kDaikin216HdrSpace
Definition ir_Daikin.h:368
const uint8_t kDaikin2SwingVOff
Definition ir_Daikin.h:297
const uint8_t kDaikin176SwingHAuto
Definition ir_Daikin.h:505
const uint8_t kDaikin2HumidityDryHigh
Definition ir_Daikin.h:321
const uint8_t kDaikin2HumidityHeatLow
Definition ir_Daikin.h:316
const uint16_t kDaikin312HdrSpace
Definition ir_Daikin.h:698
const uint8_t kDaikin2SwingHSwing
Definition ir_Daikin.h:310
const uint16_t kDaikin312ZeroSpace
Definition ir_Daikin.h:700
const uint8_t kDaikin152LeaderBits
Definition ir_Daikin.h:622
const uint16_t kDaikin216ZeroSpace
Definition ir_Daikin.h:371
const uint8_t kDaikin176DryFanTemp
Definition ir_Daikin.h:503
const uint16_t kDaikin2Section1Length
Definition ir_Daikin.h:286
const uint16_t kDaikinHeaderLength
Definition ir_Daikin.h:154
const uint8_t kDaikin2HumidityDryMedium
Definition ir_Daikin.h:320
const uint8_t kDaikin64MaxTemp
Definition ir_Daikin.h:681
const uint8_t kDaikin216SwingOn
Definition ir_Daikin.h:378
const uint16_t kDaikin176BitMark
Definition ir_Daikin.h:489
const uint16_t kDaikin176Section1Length
Definition ir_Daikin.h:494
const uint16_t kDaikin176ZeroSpace
Definition ir_Daikin.h:491
const uint8_t kDaikin128FanMed
Definition ir_Daikin.h:571
const uint8_t kDaikinBeepLoud
Definition ir_Daikin.h:165
const uint8_t kDaikin128FanLow
Definition ir_Daikin.h:572
const uint16_t kDaikin128BitMark
Definition ir_Daikin.h:557
const uint16_t kDaikinMarkExcess
Definition ir_Daikin.h:173
const uint16_t kDaikin2LeaderMark
Definition ir_Daikin.h:277
const uint8_t kDaikin128FanQuiet
Definition ir_Daikin.h:574
const uint16_t kDaikin2HdrSpace
Definition ir_Daikin.h:281
const uint8_t kDaikin2SwingVBreeze
Definition ir_Daikin.h:295
const uint16_t kDaikin200Sections
Definition ir_Daikin.h:692
const uint16_t kDaikin312Section2Length
Definition ir_Daikin.h:706
const uint8_t kDaikin64FanLow
Definition ir_Daikin.h:675
const uint16_t kDaikin128Freq
Definition ir_Daikin.h:552
const uint16_t kDaikin216Section1Length
Definition ir_Daikin.h:374
const uint8_t kDaikinCurIndex
Definition ir_Daikin.h:171
const uint8_t kDaikin64ChecksumOffset
Definition ir_Daikin.h:682
const uint8_t kDaikin176ModeButton
Definition ir_Daikin.h:502
const uint8_t kDaikinFan
Definition ir_Daikin.h:144
const uint8_t kDaikin160SwingVMiddle
Definition ir_Daikin.h:428
const uint16_t kDaikin128HdrMark
Definition ir_Daikin.h:555
const uint16_t kDaikin128Gap
Definition ir_Daikin.h:560
const uint16_t kDaikin176HdrSpace
Definition ir_Daikin.h:488
const uint16_t kDaikinOneSpace
Definition ir_Daikin.h:178
const uint8_t kDaikin176Auto
Definition ir_Daikin.h:500
const uint16_t kDaikin160Freq
Definition ir_Daikin.h:415
const uint16_t kDaikin64BitMark
Definition ir_Daikin.h:658
const uint8_t kDaikin64FanAuto
Definition ir_Daikin.h:674
const uint16_t kDaikin2OneSpace
Definition ir_Daikin.h:283
const uint16_t kDaikin200Freq
Definition ir_Daikin.h:685
const uint16_t kDaikin312SectionGap
Definition ir_Daikin.h:703
const uint8_t kDaikin2SwingVCirculate
Definition ir_Daikin.h:296
const uint16_t kDaikin2Sections
Definition ir_Daikin.h:285
const uint8_t kDaikin2MinCoolTemp
Definition ir_Daikin.h:325
const uint16_t kDaikin64Freq
Definition ir_Daikin.h:665
const uint16_t kDaikin160Section2Length
Definition ir_Daikin.h:424
const uint8_t kDaikin128MaxTemp
Definition ir_Daikin.h:576
const uint16_t kDaikin176Freq
Definition ir_Daikin.h:486
const uint8_t kDaikin2SwingVLowest
Definition ir_Daikin.h:294
const uint8_t kDaikin128FanHigh
Definition ir_Daikin.h:570
const uint16_t kDaikin128Sections
Definition ir_Daikin.h:562
const uint8_t kDaikinBeepOff
Definition ir_Daikin.h:166
const uint8_t kDaikin2SwingHAuto
Definition ir_Daikin.h:308
const uint8_t kDaikinFanMin
Definition ir_Daikin.h:147
const uint8_t kDaikin128BitWall
Definition ir_Daikin.h:577
const uint8_t kDaikin2SwingHRightMax
Definition ir_Daikin.h:307
const uint8_t kDaikin216SwingOff
Definition ir_Daikin.h:379
const uint16_t kDaikin160BitMark
Definition ir_Daikin.h:418
const uint16_t kDaikin152HdrMark
Definition ir_Daikin.h:623
const uint8_t kDaikin176SwingHOff
Definition ir_Daikin.h:506
const uint8_t kDaikin152DryTemp
Definition ir_Daikin.h:630
const uint16_t kDaikin176OneSpace
Definition ir_Daikin.h:490
const uint8_t kDaikinFanAuto
Definition ir_Daikin.h:150
const uint8_t kDaikinByteChecksum1
Definition ir_Daikin.h:160
const uint16_t kDaikin2Section2Length
Definition ir_Daikin.h:287
const uint16_t kDaikin160Gap
Definition ir_Daikin.h:421
const uint8_t kDaikin2SwingHRight
Definition ir_Daikin.h:306
const uint16_t kDaikin312OneSpace
Definition ir_Daikin.h:701
const uint16_t kDaikin2ZeroSpace
Definition ir_Daikin.h:284
const uint8_t kDaikin2SwingHWide
Definition ir_Daikin.h:302
const uint16_t kDaikin160HdrMark
Definition ir_Daikin.h:416
const uint8_t kDaikin176FanMax
Definition ir_Daikin.h:504
const uint8_t kDaikin64FanMed
Definition ir_Daikin.h:676
const uint16_t kDaikin2LeaderSpace
Definition ir_Daikin.h:278
const uint16_t kDaikin176Section2Length
Definition ir_Daikin.h:495
const uint8_t kDaikin2SwingVUpperMiddle
Definition ir_Daikin.h:291
const uint16_t kDaikin176HdrMark
Definition ir_Daikin.h:487
const uint8_t kDaikin64Fan
Definition ir_Daikin.h:672
const uint16_t kDaikin216Freq
Definition ir_Daikin.h:366
const uint16_t kDaikin152Freq
Definition ir_Daikin.h:621
const uint8_t kDaikin64Dry
Definition ir_Daikin.h:670
const uint16_t kDaikin200HdrMark
Definition ir_Daikin.h:686
const uint8_t kDaikinCool
Definition ir_Daikin.h:142
const uint8_t kDaikin160SwingVAuto
Definition ir_Daikin.h:431
const uint16_t kDaikin200Section2Length
Definition ir_Daikin.h:694
const uint8_t kDaikin2SwingVAuto
Definition ir_Daikin.h:298
const uint8_t kDaikin2HumidityHeatHigh
Definition ir_Daikin.h:318
const uint8_t kDaikin2SwingHLeft
Definition ir_Daikin.h:304
const uint8_t kDaikinMaxTemp
Definition ir_Daikin.h:146
const uint8_t kDaikin2SwingHLeftMax
Definition ir_Daikin.h:303
const uint8_t kDaikin128MinTemp
Definition ir_Daikin.h:575
const uint8_t kDaikinSections
Definition ir_Daikin.h:155
const uint16_t kDaikin216Section2Length
Definition ir_Daikin.h:375
const uint8_t kDaikinFanQuiet
Definition ir_Daikin.h:151
const uint8_t kDaikinByteChecksum2
Definition ir_Daikin.h:161
const uint16_t kDaikin64OneSpace
Definition ir_Daikin.h:660
const uint8_t kDaikinSection1Length
Definition ir_Daikin.h:156
const uint8_t kDaikinFanMax
Definition ir_Daikin.h:149
const uint16_t kDaikin128LeaderMark
Definition ir_Daikin.h:553
const uint8_t kDaikinDry
Definition ir_Daikin.h:141
const uint16_t kDaikin2HdrMark
Definition ir_Daikin.h:280
const uint8_t kDaikin176Cool
Definition ir_Daikin.h:499
const uint8_t kDaikinFanMed
Definition ir_Daikin.h:148
const uint16_t kDaikin216Gap
Definition ir_Daikin.h:372
const uint16_t kDaikin2Freq
Definition ir_Daikin.h:276
const uint16_t kDaikin312Section1Length
Definition ir_Daikin.h:705
const uint8_t kDaikin2SwingHMiddle
Definition ir_Daikin.h:305
const uint8_t kDaikinSwingOff
Definition ir_Daikin.h:153
const uint16_t kDaikin200OneSpace
Definition ir_Daikin.h:689
const uint16_t kDaikin64HdrMark
Definition ir_Daikin.h:657
const uint8_t kDaikin160SwingVHigh
Definition ir_Daikin.h:429
const uint8_t kDaikin128Fan
Definition ir_Daikin.h:566
const uint8_t kDaikin2Tolerance
Definition ir_Daikin.h:288
const uint16_t kDaikinHdrSpace
Definition ir_Daikin.h:175
const uint8_t kDaikin128Dry
Definition ir_Daikin.h:564
const uint8_t kDaikin160SwingVLowest
Definition ir_Daikin.h:426
const uint16_t kDaikin128OneSpace
Definition ir_Daikin.h:558
const uint16_t kDaikin64LdrMark
Definition ir_Daikin.h:662
const uint8_t kDaikin2SwingVLow
Definition ir_Daikin.h:293
const uint8_t kDaikin176Fan
Definition ir_Daikin.h:497
const uint16_t kDaikinZeroSpace
Definition ir_Daikin.h:177
const uint8_t kDaikin2HumidityDryLow
Definition ir_Daikin.h:319
const uint16_t kDaikin128FooterMark
Definition ir_Daikin.h:561
const uint8_t kDaikin152FanTemp
Definition ir_Daikin.h:631
const uint16_t kDaikin64LdrSpace
Definition ir_Daikin.h:664
const uint8_t kDaikin128Heat
Definition ir_Daikin.h:567
const uint16_t kDaikin216BitMark
Definition ir_Daikin.h:369
const uint8_t kDaikin2HumidityAuto
Definition ir_Daikin.h:322
const uint16_t kDaikin312BitMark
Definition ir_Daikin.h:699
const uint8_t kDaikin128FanPowerful
Definition ir_Daikin.h:573
const int8_t kDaikin64ToleranceDelta
Definition ir_Daikin.h:667
const uint16_t kDaikinBitMark
Definition ir_Daikin.h:176
const uint16_t kDaikin64Gap
Definition ir_Daikin.h:663
const uint8_t kDaikin2SwingHOff
Definition ir_Daikin.h:309
const uint8_t kDaikinLightOff
Definition ir_Daikin.h:169
const uint8_t kDaikin64FanTurbo
Definition ir_Daikin.h:679
const uint8_t kDaikinSection3Length
Definition ir_Daikin.h:158
const uint8_t kDaikinTolerance
Definition ir_Daikin.h:172
const uint16_t kDaikin200HdrSpace
Definition ir_Daikin.h:687
const uint16_t kDaikin200Gap
Definition ir_Daikin.h:691
const uint16_t kDaikin152ZeroSpace
Definition ir_Daikin.h:627
const uint8_t kDaikin128FanAuto
Definition ir_Daikin.h:569
const uint16_t kDaikinGap
Definition ir_Daikin.h:179
const uint16_t kDaikin152Gap
Definition ir_Daikin.h:628
const uint16_t kDaikin160HdrSpace
Definition ir_Daikin.h:417
const uint8_t kDaikin64Overhead
Definition ir_Daikin.h:666
const uint8_t kDaikinSwingOn
Definition ir_Daikin.h:152
const uint8_t kDaikinMinTemp
Definition ir_Daikin.h:145
const uint8_t kDaikinAuto
Definition ir_Daikin.h:140
const uint16_t kDaikin200ZeroSpace
Definition ir_Daikin.h:690
const uint16_t kDaikinUnusedTime
Definition ir_Daikin.h:163
const uint8_t kDaikin2SwingVLowerMiddle
Definition ir_Daikin.h:292
const uint16_t kDaikin160Sections
Definition ir_Daikin.h:422
const uint8_t kDaikinCurBit
Definition ir_Daikin.h:170
const uint16_t kDaikin152BitMark
Definition ir_Daikin.h:625
const uint16_t kDaikin2Gap
Definition ir_Daikin.h:279
fanspeed_t
Common A/C settings for Fan Speeds.
Definition IRsend.h:61
opmode_t
Common A/C settings for A/C operating modes.
Definition IRsend.h:49
swingh_t
Common A/C settings for Horizontal Swing.
Definition IRsend.h:100
swingv_t
Common A/C settings for Vertical Swing.
Definition IRsend.h:74
Structure to hold a common A/C state.
Definition IRsend.h:114
Native representation of a Daikin128 A/C message.
Definition ir_Daikin.h:509
uint8_t Mode
Definition ir_Daikin.h:515
uint8_t Sum2
Definition ir_Daikin.h:548
uint8_t ClockHours
Definition ir_Daikin.h:520
uint8_t OnHours
Definition ir_Daikin.h:522
uint8_t OffHours
Definition ir_Daikin.h:526
uint8_t Temp
Definition ir_Daikin.h:530
uint8_t OnTimer
Definition ir_Daikin.h:524
uint8_t raw[kDaikin128StateLength]
The state of the IR remote.
Definition ir_Daikin.h:510
uint8_t Sleep
Definition ir_Daikin.h:533
uint8_t Sum1
Definition ir_Daikin.h:536
uint8_t Econo
Definition ir_Daikin.h:542
uint8_t OnHalfHour
Definition ir_Daikin.h:523
uint8_t Ceiling
Definition ir_Daikin.h:540
uint8_t OffHalfHour
Definition ir_Daikin.h:527
uint8_t SwingV
Definition ir_Daikin.h:532
uint8_t OffTimer
Definition ir_Daikin.h:528
uint8_t Power
Definition ir_Daikin.h:535
uint8_t Fan
Definition ir_Daikin.h:516
uint8_t Wall
Definition ir_Daikin.h:543
uint8_t pad[5]
Definition ir_Daikin.h:546
uint8_t ClockMins
Definition ir_Daikin.h:518
Native representation of a Daikin152 A/C message.
Definition ir_Daikin.h:581
uint8_t Comfort
Definition ir_Daikin.h:610
uint8_t raw[kDaikin152StateLength]
The state of the IR remote.
Definition ir_Daikin.h:582
uint8_t Sensor
Definition ir_Daikin.h:612
uint8_t pad1[4]
Definition ir_Daikin.h:600
uint8_t Temp
Definition ir_Daikin.h:593
uint8_t Power
Definition ir_Daikin.h:587
uint8_t SwingV
Definition ir_Daikin.h:597
uint8_t Powerful
Definition ir_Daikin.h:602
uint8_t Fan
Definition ir_Daikin.h:598
uint8_t pad2[2]
Definition ir_Daikin.h:607
uint8_t Sum
Definition ir_Daikin.h:617
uint8_t Quiet
Definition ir_Daikin.h:604
uint8_t pad0[5]
Definition ir_Daikin.h:585
uint8_t Econo
Definition ir_Daikin.h:611
uint8_t Mode
Definition ir_Daikin.h:589
Native representation of a Daikin160 A/C message.
Definition ir_Daikin.h:382
uint8_t Sum2
Definition ir_Daikin.h:411
uint8_t Fan
Definition ir_Daikin.h:406
uint8_t pad0[6]
Definition ir_Daikin.h:386
uint8_t Power
Definition ir_Daikin.h:392
uint8_t pad1[5]
Definition ir_Daikin.h:390
uint8_t Mode
Definition ir_Daikin.h:394
uint8_t pad2[2]
Definition ir_Daikin.h:400
uint8_t Temp
Definition ir_Daikin.h:403
uint8_t Sum1
Definition ir_Daikin.h:388
uint8_t SwingV
Definition ir_Daikin.h:398
uint8_t raw[kDaikin160StateLength]
The state of the IR remote.
Definition ir_Daikin.h:383
Native representation of a Daikin176 A/C message.
Definition ir_Daikin.h:434
uint8_t Mode
Definition ir_Daikin.h:468
uint8_t AltMode
Definition ir_Daikin.h:461
uint8_t SwingH
Definition ir_Daikin.h:477
uint8_t Sum1
Definition ir_Daikin.h:449
uint8_t Id2
Definition ir_Daikin.h:455
uint8_t Id1
Definition ir_Daikin.h:442
uint8_t Power
Definition ir_Daikin.h:466
uint8_t pad3[2]
Definition ir_Daikin.h:480
uint8_t raw[kDaikin176StateLength]
The state of the IR remote.
Definition ir_Daikin.h:435
uint8_t Fan
Definition ir_Daikin.h:478
uint8_t pad2[2]
Definition ir_Daikin.h:471
uint8_t Temp
Definition ir_Daikin.h:474
uint8_t Sum2
Definition ir_Daikin.h:482
uint8_t ModeButton
Definition ir_Daikin.h:464
Native representation of a Daikin216 A/C message.
Definition ir_Daikin.h:328
uint8_t SwingV
Definition ir_Daikin.h:349
uint8_t Sum2
Definition ir_Daikin.h:362
uint8_t pad2[3]
Definition ir_Daikin.h:355
uint8_t Powerful
Definition ir_Daikin.h:357
uint8_t pad1[5]
Definition ir_Daikin.h:336
uint8_t SwingH
Definition ir_Daikin.h:352
uint8_t Fan
Definition ir_Daikin.h:350
uint8_t pad0[7]
Definition ir_Daikin.h:332
uint8_t raw[kDaikin216StateLength]
The state of the IR remote.
Definition ir_Daikin.h:329
uint8_t Power
Definition ir_Daikin.h:338
uint8_t Temp
Definition ir_Daikin.h:344
uint8_t Mode
Definition ir_Daikin.h:340
uint8_t pad3[4]
Definition ir_Daikin.h:360
uint8_t Sum1
Definition ir_Daikin.h:334
Native representation of a Daikin2 A/C message.
Definition ir_Daikin.h:185
uint64_t Clean
Definition ir_Daikin.h:207
uint64_t SleepTimer
Definition ir_Daikin.h:266
uint64_t Humidity
Definition ir_Daikin.h:242
uint64_t Mold
Definition ir_Daikin.h:205
uint64_t EyeAuto
Definition ir_Daikin.h:215
uint64_t SwingH
Definition ir_Daikin.h:219
uint64_t Power
Definition ir_Daikin.h:231
uint64_t CurrentTime
Definition ir_Daikin.h:195
uint64_t OnTime
Definition ir_Daikin.h:251
uint64_t FreshAirHigh
Definition ir_Daikin.h:209
uint8_t raw[kDaikin2StateLength]
The state of the IR remote.
Definition ir_Daikin.h:188
uint64_t FreshAir
Definition ir_Daikin.h:203
uint64_t Fan
Definition ir_Daikin.h:245
uint64_t OffTimer
Definition ir_Daikin.h:233
uint8_t Sum2
Definition ir_Daikin.h:272
uint64_t OnTimer
Definition ir_Daikin.h:232
uint64_t Econo
Definition ir_Daikin.h:263
uint64_t HumidOn
Definition ir_Daikin.h:240
uint64_t Eye
Definition ir_Daikin.h:262
uint64_t Temp
Definition ir_Daikin.h:239
uint64_t OffTime
Definition ir_Daikin.h:252
uint64_t Sum1
Definition ir_Daikin.h:224
uint8_t pad[3]
Definition ir_Daikin.h:187
uint64_t Powerful
Definition ir_Daikin.h:254
uint64_t Mode
Definition ir_Daikin.h:235
uint64_t Power2
Definition ir_Daikin.h:197
uint64_t Purify
Definition ir_Daikin.h:265
uint64_t SwingV
Definition ir_Daikin.h:221
uint64_t Light
Definition ir_Daikin.h:200
uint64_t Beep
Definition ir_Daikin.h:201
uint64_t Quiet
Definition ir_Daikin.h:256
Native representation of a Daikin64 A/C message.
Definition ir_Daikin.h:634
uint8_t ClockHours
Definition ir_Daikin.h:641
uint8_t OnHalfHour
Definition ir_Daikin.h:643
uint8_t Fan
Definition ir_Daikin.h:639
uint8_t Temp
Definition ir_Daikin.h:648
uint8_t Mode
Definition ir_Daikin.h:638
uint8_t Power
Definition ir_Daikin.h:652
uint8_t ClockMins
Definition ir_Daikin.h:640
uint8_t OnTimer
Definition ir_Daikin.h:644
uint8_t SwingV
Definition ir_Daikin.h:649
uint8_t OffTimer
Definition ir_Daikin.h:647
uint8_t OffHours
Definition ir_Daikin.h:645
uint8_t OnHours
Definition ir_Daikin.h:642
uint64_t raw
The state of the IR remote.
Definition ir_Daikin.h:635
uint8_t Sleep
Definition ir_Daikin.h:650
uint8_t Sum
Definition ir_Daikin.h:653
uint8_t OffHalfHour
Definition ir_Daikin.h:646
Native representation of a Daikin A/C message.
Definition ir_Daikin.h:72
uint64_t Temp
Definition ir_Daikin.h:103
uint64_t Sum1
Definition ir_Daikin.h:82
uint64_t Powerful
Definition ir_Daikin.h:117
uint64_t OffTime
Definition ir_Daikin.h:115
uint64_t Sum2
Definition ir_Daikin.h:91
uint8_t WeeklyTimer
Definition ir_Daikin.h:129
uint64_t Comfort
Definition ir_Daikin.h:79
uint8_t raw[kDaikinStateLength]
The state of the IR remote.
Definition ir_Daikin.h:73
uint8_t Econo
Definition ir_Daikin.h:127
uint8_t Mold
Definition ir_Daikin.h:132
uint64_t Power
Definition ir_Daikin.h:96
uint8_t Sum3
Definition ir_Daikin.h:135
uint64_t OnTime
Definition ir_Daikin.h:114
uint8_t Sensor
Definition ir_Daikin.h:126
uint64_t OnTimer
Definition ir_Daikin.h:97
uint64_t SwingV
Definition ir_Daikin.h:108
uint64_t OffTimer
Definition ir_Daikin.h:98
uint64_t Fan
Definition ir_Daikin.h:109
uint64_t CurrentDay
Definition ir_Daikin.h:88
uint64_t Mode
Definition ir_Daikin.h:100
uint64_t SwingH
Definition ir_Daikin.h:111
uint64_t CurrentTime
Definition ir_Daikin.h:87
uint64_t Quiet
Definition ir_Daikin.h:119