IRremoteIDF
Infrared send & receive for ESP-IDF
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// Brand: Daikin, Model: ARC466A58 remote (DAIKIN312)
58
59#ifndef IR_DAIKIN_H_
60#define IR_DAIKIN_H_
61
62#include "IRplatform.h"
63#include "IRrecv.h"
64#include "IRremoteESP8266.h"
65#include "IRsend.h"
66#ifdef UNIT_TEST
67#include "IRsend_test.h"
68#endif
69
73 struct {
74 // Byte 0~5
75 uint64_t :48;
76 // Byte 6
77 uint64_t :4;
78 uint64_t Comfort :1;
79 uint64_t :3;
80 // Byte 7
81 uint64_t Sum1 :8; // checksum of the first part
82
83 // Byte 8~12
84 uint64_t :40;
85 // Byte 13~14
86 uint64_t CurrentTime :11; // Current time, mins past midnight
87 uint64_t CurrentDay :3; // Day of the week (SUN=1, MON=2, ..., SAT=7)
88 uint64_t :2;
89 // Byte 15
90 uint64_t Sum2 :8; // checksum of the second part
91
92 // Byte 16~20
93 uint64_t :40;
94 // Byte 21
95 uint64_t Power :1;
96 uint64_t OnTimer :1;
97 uint64_t OffTimer :1;
98 uint64_t :1; // always 1
99 uint64_t Mode :3;
100 uint64_t :1;
101 // Byte 22
102 uint64_t Temp :8; // Temp should be between 20 - 64 (10 C - 32 C)
103 // Byte 23
104 uint64_t :8;
105
106 // Byte 24
107 uint64_t SwingV :4; // 0000 = off, 1111 = on
108 uint64_t Fan :4;
109 // Byte 25
110 uint64_t SwingH :4; // 0000 = off, 1111 = on
111 uint64_t :4;
112 // Byte 26~28
113 uint64_t OnTime :12; // timer mins past midnight
114 uint64_t OffTime :12; // timer mins past midnight
115 // Byte 29
116 uint64_t Powerful :1;
117 uint64_t :4;
118 uint64_t Quiet :1;
119 uint64_t :2;
120 // Byte 30~31
121 uint64_t :0;
122
123 // Byte 32
124 uint8_t :1;
125 uint8_t Sensor :1;
126 uint8_t Econo :1;
127 uint8_t :4;
128 uint8_t WeeklyTimer :1;
129 // Byte 33
130 uint8_t :1;
131 uint8_t Mold :1;
132 uint8_t :6;
133 // Byte 34
134 uint8_t Sum3 :8; // checksum of the third part
135 };
136};
137
138// Constants
139const uint8_t kDaikinAuto = 0b000; // temp 25
140const uint8_t kDaikinDry = 0b010; // temp 0xc0 = 96 degrees c
141const uint8_t kDaikinCool = 0b011;
142const uint8_t kDaikinHeat = 0b100; // temp 23
143const uint8_t kDaikinFan = 0b110; // temp not shown, but 25
144const uint8_t kDaikinMinTemp = 10; // Celsius
145const uint8_t kDaikinMaxTemp = 32; // Celsius
146const uint8_t kDaikinFanMin = 1;
147const uint8_t kDaikinFanMed = 3;
148const uint8_t kDaikinFanMax = 5;
149const uint8_t kDaikinFanAuto = 0b1010; // 10 / 0xA
150const uint8_t kDaikinFanQuiet = 0b1011; // 11 / 0xB
151const uint8_t kDaikinSwingOn = 0b1111;
152const uint8_t kDaikinSwingOff = 0b0000;
153const uint16_t kDaikinHeaderLength = 5;
154const uint8_t kDaikinSections = 3;
155const uint8_t kDaikinSection1Length = 8;
156const uint8_t kDaikinSection2Length = 8;
159const uint8_t kDaikinByteChecksum1 = 7;
160const uint8_t kDaikinByteChecksum2 = 15;
161// const uint8_t kDaikinBitEye = 0b10000000;
162const uint16_t kDaikinUnusedTime = 0x600;
163const uint8_t kDaikinBeepQuiet = 1;
164const uint8_t kDaikinBeepLoud = 2;
165const uint8_t kDaikinBeepOff = 3;
166const uint8_t kDaikinLightBright = 1;
167const uint8_t kDaikinLightDim = 2;
168const uint8_t kDaikinLightOff = 3;
171const uint8_t kDaikinTolerance = 35;
173const uint16_t kDaikinHdrMark = 3650; // kDaikinBitMark * 8
174const uint16_t kDaikinHdrSpace = 1623; // kDaikinBitMark * 4
175const uint16_t kDaikinBitMark = 428;
176const uint16_t kDaikinZeroSpace = 428;
177const uint16_t kDaikinOneSpace = 1280;
178const uint16_t kDaikinGap = 29000;
179// Note bits in each octet swapped so can be sent as a single value
180const uint64_t kDaikinFirstHeader64 =
181 0b1101011100000000000000001100010100000000001001111101101000010001;
182
185 struct{
186 uint8_t pad[3];
188 };
189 struct {
190 // Byte -3~4
191 uint64_t :64;
192
193 // Byte 5~6
194 uint64_t CurrentTime :12;
195 uint64_t :3;
196 uint64_t Power2 :1;
197 // Byte 7
198 uint64_t :4;
199 uint64_t Light :2;
200 uint64_t Beep :2;
201 // Byte 8
202 uint64_t FreshAir :1;
203 uint64_t :2;
204 uint64_t Mold :1;
205 uint64_t :1;
206 uint64_t Clean :1;
207 uint64_t :1;
208 uint64_t FreshAirHigh :1;
209 // Byte 9~12
210 uint64_t :32;
211
212 // Byte 13
213 uint64_t :7;
214 uint64_t EyeAuto :1;
215 // Byte 14~16
216 uint64_t :24;
217 // Byte 17
218 uint64_t SwingH :8;
219 // Byte 18
220 uint64_t SwingV :4;
221 uint64_t :4;
222 // Byte 19
223 uint64_t Sum1 :8;
224 // Byte 20
225 uint64_t :8;
226
227 // Byte 21~24
228 uint64_t :32;
229 // Byte 25
230 uint64_t Power :1;
231 uint64_t OnTimer :1;
232 uint64_t OffTimer :1;
233 uint64_t :1;
234 uint64_t Mode :3;
235 uint64_t :1;
236 // Byte 26
237 uint64_t :1;
238 uint64_t Temp :6;
239 uint64_t HumidOn :1;
240 // Byte 27
241 uint64_t Humidity :8;
242 // Byte 28
243 uint64_t :4;
244 uint64_t Fan :4;
245
246 // Byte 29
247 uint64_t :8;
248 // Byte 30~32
250 uint64_t OnTime :12;
251 uint64_t OffTime :12;
252 // Byte 33
253 uint64_t Powerful :1;
254 uint64_t :4;
255 uint64_t Quiet :1;
256 uint64_t :2;
257 // Byte 34~35
258 uint64_t :16;
259 // Byte 36
260 uint64_t :1;
261 uint64_t Eye :1;
262 uint64_t Econo :1;
263 uint64_t :1;
264 uint64_t Purify :1;
265 uint64_t SleepTimer :1;
266 uint64_t :2;
267
268 // Byte 37
269 uint8_t :8;
270 // Byte 38
271 uint8_t Sum2 :8;
272 };
273};
274
275const uint16_t kDaikin2Freq = 36700; // Modulation Frequency in Hz.
276const uint16_t kDaikin2LeaderMark = 10024;
277const uint16_t kDaikin2LeaderSpace = 25180;
279const uint16_t kDaikin2HdrMark = 3500;
280const uint16_t kDaikin2HdrSpace = 1728;
281const uint16_t kDaikin2BitMark = 460;
282const uint16_t kDaikin2OneSpace = 1270;
283const uint16_t kDaikin2ZeroSpace = 420;
284const uint16_t kDaikin2Sections = 2;
285const uint16_t kDaikin2Section1Length = 20;
286const uint16_t kDaikin2Section2Length = 19;
287const uint8_t kDaikin2Tolerance = 5; // Extra percentage tolerance
288const uint8_t kDaikin2SwingVHighest = 0x1;
289const uint8_t kDaikin2SwingVHigh = 0x2;
290const uint8_t kDaikin2SwingVUpperMiddle = 0x3;
291const uint8_t kDaikin2SwingVLowerMiddle = 0x4;
292const uint8_t kDaikin2SwingVLow = 0x5;
293const uint8_t kDaikin2SwingVLowest = 0x6;
294const uint8_t kDaikin2SwingVBreeze = 0xC;
295const uint8_t kDaikin2SwingVCirculate = 0xD;
296const uint8_t kDaikin2SwingVOff = 0xE;
297const uint8_t kDaikin2SwingVAuto = 0xF; // A.k.a "Swing"
299
300
301const uint8_t kDaikin2SwingHWide = 0xA3;
302const uint8_t kDaikin2SwingHLeftMax = 0xA8;
303const uint8_t kDaikin2SwingHLeft = 0xA9;
304const uint8_t kDaikin2SwingHMiddle = 0xAA;
305const uint8_t kDaikin2SwingHRight = 0xAB;
306const uint8_t kDaikin2SwingHRightMax = 0xAC;
307const uint8_t kDaikin2SwingHAuto = 0xBE; // A.k.a "Swing"
308const uint8_t kDaikin2SwingHOff = 0xBF;
310
311// Ref:
312// https://github.com/crankyoldgit/IRremoteESP8266/issues/1535#issuecomment-882092486
313// https://docs.google.com/spreadsheets/d/1kxHgFqiUB9ETXYEkszAIN5gE-t2ykvnPCnOV-sPUE0A/edit?usp=sharing
314const uint8_t kDaikin2HumidityOff = 0x00;
315const uint8_t kDaikin2HumidityHeatLow = 0x28; // Humidify (Heat) only (40%?)
316const uint8_t kDaikin2HumidityHeatMedium = 0x2D; // Humidify (Heat) only (45%?)
317const uint8_t kDaikin2HumidityHeatHigh = 0x32; // Humidify (Heat) only (50%?)
318const uint8_t kDaikin2HumidityDryLow = 0x32; // Dry only (50%?)
319const uint8_t kDaikin2HumidityDryMedium = 0x37; // Dry only (55%?)
320const uint8_t kDaikin2HumidityDryHigh = 0x3C; // Dry only (60%?)
321const uint8_t kDaikin2HumidityAuto = 0xFF;
322
323
324const uint8_t kDaikin2MinCoolTemp = 18; // Min temp (in C) when in Cool mode.
325
329 struct {
330 // Byte 0~6
331 uint8_t pad0[7];
332 // Byte 7
333 uint8_t Sum1 :8;
334 // Byte 8~12
335 uint8_t pad1[5];
336 // Byte 13
337 uint8_t Power :1;
338 uint8_t :3;
339 uint8_t Mode :3;
340 uint8_t :1;
341 // Byte 14
342 uint8_t :1;
343 uint8_t Temp :6;
344 uint8_t :1;
345 // Byte 15
346 uint8_t :8;
347 // Byte 16
348 uint8_t SwingV :4;
349 uint8_t Fan :4;
350 // Byte 17
351 uint8_t SwingH :4;
352 uint8_t :4;
353 // Byte 18~20
354 uint8_t pad2[3];
355 // Byte 21
356 uint8_t Powerful :1;
357 uint8_t :0;
358 // Byte 22~25
359 uint8_t pad3[4];
360 // Byte 26
361 uint8_t Sum2 :8;
362 };
363};
364
365const uint16_t kDaikin216Freq = 38000; // Modulation Frequency in Hz.
366const uint16_t kDaikin216HdrMark = 3440;
367const uint16_t kDaikin216HdrSpace = 1750;
368const uint16_t kDaikin216BitMark = 420;
369const uint16_t kDaikin216OneSpace = 1300;
370const uint16_t kDaikin216ZeroSpace = 450;
371const uint16_t kDaikin216Gap = 29650;
372const uint16_t kDaikin216Sections = 2;
373const uint16_t kDaikin216Section1Length = 8;
376
377const uint8_t kDaikin216SwingOn = 0b1111;
378const uint8_t kDaikin216SwingOff = 0b0000;
379
383 struct {
384 // Byte 0~5
385 uint8_t pad0[6];
386 // Byte 6
387 uint8_t Sum1 :8;
388 // Byte 7~11
389 uint8_t pad1[5];
390 // Byte 12
391 uint8_t Power :1;
392 uint8_t :3;
393 uint8_t Mode :3;
394 uint8_t :1;
395 // Byte 13
396 uint8_t :4;
397 uint8_t SwingV :4;
398 // Byte 14~15
399 uint8_t pad2[2];
400 // Byte 16
401 uint8_t :1;
402 uint8_t Temp :6;
403 uint8_t :1;
404 // Byte 17
405 uint8_t Fan :4;
406 uint8_t :4;
407 // Byte 18
408 uint8_t :8;
409 // Byte 19
410 uint8_t Sum2 :8;
411 };
412};
413
414const uint16_t kDaikin160Freq = 38000; // Modulation Frequency in Hz.
415const uint16_t kDaikin160HdrMark = 5000;
416const uint16_t kDaikin160HdrSpace = 2145;
417const uint16_t kDaikin160BitMark = 342;
418const uint16_t kDaikin160OneSpace = 1786;
419const uint16_t kDaikin160ZeroSpace = 700;
420const uint16_t kDaikin160Gap = 29650;
421const uint16_t kDaikin160Sections = 2;
422const uint16_t kDaikin160Section1Length = 7;
425const uint8_t kDaikin160SwingVLowest = 0x1;
426const uint8_t kDaikin160SwingVLow = 0x2;
427const uint8_t kDaikin160SwingVMiddle = 0x3;
428const uint8_t kDaikin160SwingVHigh = 0x4;
429const uint8_t kDaikin160SwingVHighest = 0x5;
430const uint8_t kDaikin160SwingVAuto = 0xF;
431
435 struct {
436 // Byte 0~2
437 uint8_t :8;
438 uint8_t :8;
439 uint8_t :8;
440 // Byte 3
441 uint8_t Id1 :1;
442 uint8_t :7;
443 // Byte 4
444 uint8_t :8;
445 // Byte 5
446 uint8_t :8;
447 // Byte 6
448 uint8_t Sum1 :8;
449 // Byte 7-9
450 uint8_t :8;
451 uint8_t :8;
452 uint8_t :8;
453 // Byte 10
454 uint8_t Id2 :1;
455 uint8_t :7;
456 // Byte 11
457 uint8_t :8;
458 // Byte 12
459 uint8_t :4;
460 uint8_t AltMode :3;
461 uint8_t :1;
462 // Byte 13
463 uint8_t ModeButton :8;
464 // Byte 14
465 uint8_t Power :1;
466 uint8_t :3;
467 uint8_t Mode :3;
468 uint8_t :1;
469 // Byte 15~16
470 uint8_t pad2[2];
471 // Byte 17
472 uint8_t :1;
473 uint8_t Temp :6;
474 uint8_t :1;
475 // Byte 18
476 uint8_t SwingH :4;
477 uint8_t Fan :4;
478 // Byte 19~20
479 uint8_t pad3[2];
480 // Byte 21
481 uint8_t Sum2 :8;
482 };
483};
484
485const uint16_t kDaikin176Freq = 38000; // Modulation Frequency in Hz.
486const uint16_t kDaikin176HdrMark = 5070;
487const uint16_t kDaikin176HdrSpace = 2140;
488const uint16_t kDaikin176BitMark = 370;
489const uint16_t kDaikin176OneSpace = 1780;
490const uint16_t kDaikin176ZeroSpace = 710;
491const uint16_t kDaikin176Gap = 29410;
492const uint16_t kDaikin176Sections = 2;
493const uint16_t kDaikin176Section1Length = 7;
496const uint8_t kDaikin176Fan = 0b000; // 0
497const uint8_t kDaikin176Heat = 0b001; // 1
498const uint8_t kDaikin176Cool = 0b010; // 2
499const uint8_t kDaikin176Auto = 0b011; // 3
500const uint8_t kDaikin176Dry = 0b111; // 7
501const uint8_t kDaikin176ModeButton = 0b00000100;
502const uint8_t kDaikin176DryFanTemp = 17; // Dry/Fan mode is always 17 Celsius.
503const uint8_t kDaikin176FanMax = 3;
504const uint8_t kDaikin176SwingHAuto = 0x5;
505const uint8_t kDaikin176SwingHOff = 0x6;
506
510 struct {
511 // Byte 0
512 uint8_t :8;
513 // Byte 1
514 uint8_t Mode :4;
515 uint8_t Fan :4;
516 // Byte 2
517 uint8_t ClockMins :8;
518 // Byte 3
519 uint8_t ClockHours :8;
520 // Byte 4
521 uint8_t OnHours :6;
522 uint8_t OnHalfHour :1;
523 uint8_t OnTimer :1;
524 // Byte 5
525 uint8_t OffHours :6;
526 uint8_t OffHalfHour :1;
527 uint8_t OffTimer :1;
528 // Byte 6
529 uint8_t Temp :8;
530 // Byte 7
531 uint8_t SwingV :1;
532 uint8_t Sleep :1;
533 uint8_t :1; // always 1
534 uint8_t Power :1;
535 uint8_t Sum1 :4;
536 // Byte 8
537 uint8_t :8;
538 // Byte 9
539 uint8_t Ceiling :1;
540 uint8_t :1;
541 uint8_t Econo :1;
542 uint8_t Wall :1;
543 uint8_t :4;
544 // Byte 10~14
545 uint8_t pad[5];
546 // Byte 15
547 uint8_t Sum2 :8;
548 };
549};
550
551const uint16_t kDaikin128Freq = 38000; // Modulation Frequency in Hz.
552const uint16_t kDaikin128LeaderMark = 9800;
553const uint16_t kDaikin128LeaderSpace = 9800;
554const uint16_t kDaikin128HdrMark = 4600;
555const uint16_t kDaikin128HdrSpace = 2500;
556const uint16_t kDaikin128BitMark = 350;
557const uint16_t kDaikin128OneSpace = 954;
558const uint16_t kDaikin128ZeroSpace = 382;
559const uint16_t kDaikin128Gap = 20300;
561const uint16_t kDaikin128Sections = 2;
562const uint16_t kDaikin128SectionLength = 8;
563const uint8_t kDaikin128Dry = 0b00000001;
564const uint8_t kDaikin128Cool = 0b00000010;
565const uint8_t kDaikin128Fan = 0b00000100;
566const uint8_t kDaikin128Heat = 0b00001000;
567const uint8_t kDaikin128Auto = 0b00001010;
568const uint8_t kDaikin128FanAuto = 0b0001;
569const uint8_t kDaikin128FanHigh = 0b0010;
570const uint8_t kDaikin128FanMed = 0b0100;
571const uint8_t kDaikin128FanLow = 0b1000;
572const uint8_t kDaikin128FanPowerful = 0b0011;
573const uint8_t kDaikin128FanQuiet = 0b1001;
574const uint8_t kDaikin128MinTemp = 16; // C
575const uint8_t kDaikin128MaxTemp = 30; // C
576const uint8_t kDaikin128BitWall = 0b00001000;
577const uint8_t kDaikin128BitCeiling = 0b00000001;
578
582 struct {
583 // Byte 0~4
584 uint8_t pad0[5];
585 // Byte 5
586 uint8_t Power :1;
587 uint8_t :3;
588 uint8_t Mode :3;
589 uint8_t :1;
590 // Byte 6
591 uint8_t :1;
592 uint8_t Temp :7;
593 // Byte 7
594 uint8_t :8;
595 // Byte 8
596 uint8_t SwingV :4;
597 uint8_t Fan :4;
598 // Byte 9~12
599 uint8_t pad1[4];
600 // Byte 13
601 uint8_t Powerful :1;
602 uint8_t :4;
603 uint8_t Quiet :1;
604 uint8_t :2;
605 // Byte 14~15
606 uint8_t pad2[2];
607 // Byte 16
608 uint8_t :1;
609 uint8_t Comfort :1;
610 uint8_t Econo :1;
611 uint8_t Sensor :1;
612 uint8_t :4;
613 // Byte 17
614 uint8_t :8;
615 // Byte 18
616 uint8_t Sum :8;
617 };
618};
619
620const uint16_t kDaikin152Freq = 38000; // Modulation Frequency in Hz.
621const uint8_t kDaikin152LeaderBits = 5;
622const uint16_t kDaikin152HdrMark = 3492;
623const uint16_t kDaikin152HdrSpace = 1718;
624const uint16_t kDaikin152BitMark = 433;
625const uint16_t kDaikin152OneSpace = 1529;
627const uint16_t kDaikin152Gap = 25182;
628
629const uint8_t kDaikin152DryTemp = kDaikin2MinCoolTemp; // Celsius
630const uint8_t kDaikin152FanTemp = 0x60; // 96 Celsius
631
634 uint64_t raw;
635 struct {
636 uint8_t :8;
637 uint8_t Mode :4;
638 uint8_t Fan :4;
639 uint8_t ClockMins :8;
640 uint8_t ClockHours :8;
641 uint8_t OnHours :6;
642 uint8_t OnHalfHour :1;
643 uint8_t OnTimer :1;
644 uint8_t OffHours :6;
645 uint8_t OffHalfHour :1;
646 uint8_t OffTimer :1;
647 uint8_t Temp :8;
648 uint8_t SwingV :1;
649 uint8_t Sleep :1;
650 uint8_t :1;
651 uint8_t Power :1;
652 uint8_t Sum :4;
653 };
654};
655
664const uint16_t kDaikin64Freq = kDaikin128Freq; // Hz.
665const uint8_t kDaikin64Overhead = 9;
666const int8_t kDaikin64ToleranceDelta = 5; // +5%
667
668const uint64_t kDaikin64KnownGoodState = 0x7C16161607204216;
669const uint8_t kDaikin64Dry = 0b0001;
670const uint8_t kDaikin64Cool = 0b0010;
671const uint8_t kDaikin64Fan = 0b0100;
672const uint8_t kDaikin64Heat = 0b1000;
673const uint8_t kDaikin64FanAuto = 0b0001;
674const uint8_t kDaikin64FanLow = 0b1000;
675const uint8_t kDaikin64FanMed = 0b0100;
676const uint8_t kDaikin64FanHigh = 0b0010;
677const uint8_t kDaikin64FanQuiet = 0b1001;
678const uint8_t kDaikin64FanTurbo = 0b0011;
679const uint8_t kDaikin64MinTemp = 16; // Celsius
680const uint8_t kDaikin64MaxTemp = 30; // Celsius
681const uint8_t kDaikin64ChecksumOffset = 60;
682const uint8_t kDaikin64ChecksumSize = 4; // Mask 0b1111 << 59
683
684const uint16_t kDaikin200Freq = 38000; // Modulation Frequency in Hz.
685const uint16_t kDaikin200HdrMark = 4920;
686const uint16_t kDaikin200HdrSpace = 2230;
687const uint16_t kDaikin200BitMark = 290;
688const uint16_t kDaikin200OneSpace = 1850;
689const uint16_t kDaikin200ZeroSpace = 780;
690const uint16_t kDaikin200Gap = 29400;
691const uint16_t kDaikin200Sections = 2;
692const uint16_t kDaikin200Section1Length = 7;
695
698 struct{
699 uint8_t pad[3];
701 };
702 struct {
703 // Byte -3~4
704 uint64_t :64;
705
706 // Byte 5~6
707 uint64_t CurrentTime :12;
708 uint64_t :3;
709 uint64_t Power2 :1;
710 // Byte 7: Eye timer duration (bits 6–7); remaining bits unused.
711 // Observed remote encodings: 0x00 = off, 0x40 = 1 hr, 0x80 = 3 hr.
712 uint64_t :6;
713 uint64_t EyeTimer :2;
714 // Byte 8
715 uint64_t FreshAir :1;
716 uint64_t :2;
717 uint64_t Mold :1;
718 uint64_t :1; // HeatHigh indicator
719 uint64_t :1; // always 1 (0x20)
720 uint64_t :1; // unknown; always 0 in observed signals
721 uint64_t FreshAirHigh :1;
722 // Byte 9: Which button was last pressed (the "announce item").
723 // The AC uses this to decide what state to verbally announce.
724 // See kDaikin312Announce* constants and setAnnounce().
725 uint64_t AnnounceItem :8;
726 // Byte 10: Always 0x00
727 uint64_t :8;
728 // Byte 11
729 uint64_t :8;
730 // Byte 12
731 uint64_t Light :2;
732 uint64_t Beep :2;
733 uint64_t :4;
734
735 // Byte 13
736 uint64_t :8;
737
738 // Byte 14
739 uint64_t :4;
740 uint64_t Clean :1; // AirCleanMode
741 uint64_t :3;
742 // Byte 15~16
743 uint64_t :16;
744 // Byte 17: Always 0x00
745 uint64_t :8;
746 // Byte 18: Always 0x00
747 uint64_t :8;
748 // Byte 19
749 uint64_t Sum1 :8;
750 // Byte 20: Always 0x11
751 uint64_t :8;
752
753 // Byte 21~24
754 // Byte 21: Always 0xDA
755 // Byte 22: Always 0x27
756 // Byte 23: Always 0x00
757 // Byte 24: Always 0x00
758 uint64_t :32;
759
760 // Byte 25
761 uint64_t Power :1;
762 uint64_t OnTimer :1;
763 uint64_t OffTimer :1;
764 uint64_t :1;
765 uint64_t Mode :3;
766 uint64_t :1;
767 // Byte 26
768 uint64_t Temp :7;
769 uint64_t HumidOn :1;
770 // Byte 27
771 uint64_t Humidity :8;
772 // Byte 28
773 uint64_t SwingV :4;
774 uint64_t Fan :4;
775
776 // Byte 29
777 uint64_t SwingH :4;
778 uint64_t :4;
779 // Byte 30~32
781 uint64_t OnTime :12;
782 uint64_t OffTime :12;
783 // Byte 33
784 uint64_t Powerful :1;
785 uint64_t :4;
786 uint64_t Quiet :1;
787 uint64_t :2;
788 // Byte 34~35
789 // Byte 35: Always 0xC5
790 uint64_t :3;
791 uint64_t Announce :1; // Verbal announcement of current state
792 uint64_t :12;
793 // Byte 36
794 uint64_t :1;
795 uint64_t Eye :1;
796 uint64_t Econo :1;
797 uint64_t EyeAuto :1;
798 uint64_t Purify :1;
799 uint64_t SleepTimer :1;
800 uint64_t :2;
801
802 // Byte 37: Always 0x08
803 uint8_t :8;
804 // Byte 38
805 uint8_t Sum2 :8;
806 };
807};
808
809const uint16_t kDaikin312Freq = 36700; // Modulation Frequency in Hz.
810const uint16_t kDaikin312LeaderMark = 10024;
811const uint16_t kDaikin312LeaderSpace = 25180;
813
814const uint16_t kDaikin312HdrMark = 3518;
815const uint16_t kDaikin312HdrSpace = 1688;
816const uint16_t kDaikin312BitMark = 453;
817const uint16_t kDaikin312ZeroSpace = 414;
818const uint16_t kDaikin312OneSpace = 1275;
819const uint16_t kDaikin312HdrGap = 25100;
820const uint16_t kDaikin312SectionGap = 35512;
821const uint16_t kDaikin312Sections = 2;
822const uint16_t kDaikin312Section1Length = 20;
825
826
827const uint8_t kDaikin312Tolerance = 5; // Extra percentage tolerance
828// Values for the button-category byte (raw[9]), passed to setAnnounce().
829// The AC uses this byte to decide what state to verbally announce.
830// Pass kDaikin312AnnounceDisable to suppress the announcement entirely.
831const uint8_t kDaikin312AnnounceDisable = 0x00;
832const uint8_t kDaikin312AnnouncePower = 0x02;
833const uint8_t kDaikin312AnnounceTemp = 0x03;
834const uint8_t kDaikin312AnnounceOffTimer = 0x04;
835const uint8_t kDaikin312AnnounceSwingV = 0x06;
836const uint8_t kDaikin312AnnounceFan = 0x07;
837const uint8_t kDaikin312AnnounceCancel = 0x0C;
838const uint8_t kDaikin312AnnounceAuto = 0x0D;
839const uint8_t kDaikin312AnnounceCool = 0x0E;
840const uint8_t kDaikin312AnnounceDry = 0x0F;
841const uint8_t kDaikin312AnnounceHeat = 0x10;
842const uint8_t kDaikin312AnnounceHeatHigh = 0x12;
843const uint8_t kDaikin312AnnounceHumidity = 0x13;
844const uint8_t kDaikin312AnnounceCirculation = 0x14;
845const uint8_t kDaikin312AnnounceSwingSensor = 0x15;
846const uint8_t kDaikin312AnnounceSwingH = 0x16;
847const uint8_t kDaikin312AnnounceFilter = 0x17;
848const uint8_t kDaikin312AnnouncePowerful = 0x19;
849const uint8_t kDaikin312AnnounceFanOnly = 0x1A;
850const uint8_t kDaikin312AnnounceEye = 0x24;
851const uint8_t kDaikin312AnnounceLight = 0x30;
852const uint8_t kDaikin312AnnounceBeep = 0x31;
853const uint8_t kDaikin312AnnounceAnnounce = 0x32;
854const uint8_t kDaikin312AnnounceSleep = 0x2F;
855const uint8_t kDaikin312SwingVHighest = 0x1;
856const uint8_t kDaikin312SwingVHigh = 0x2;
857const uint8_t kDaikin312SwingVUpperMiddle = 0x3;
858const uint8_t kDaikin312SwingVLowerMiddle = 0x4;
859const uint8_t kDaikin312SwingVLow = 0x5;
860const uint8_t kDaikin312SwingVLowest = 0x6;
861const uint8_t kDaikin312SwingVBreeze = 0xC;
862const uint8_t kDaikin312SwingVCirculate = 0xD;
863const uint8_t kDaikin312SwingVOff = 0x0;
864const uint8_t kDaikin312SwingVAuto = 0xF; // A.k.a "Swing"
866
867const uint8_t kDaikin312SwingHWide = 0xA3;
868const uint8_t kDaikin312SwingHLeftMax = 0xA8;
869const uint8_t kDaikin312SwingHLeft = 0xA9;
870const uint8_t kDaikin312SwingHMiddle = 0xAA;
871const uint8_t kDaikin312SwingHRight = 0xAB;
872const uint8_t kDaikin312SwingHRightMax = 0xAC;
873const uint8_t kDaikin312SwingHAuto = 0xF; // A.k.a "Swing"
874const uint8_t kDaikin312SwingHOff = 0x0;
876
877// Ref:
878// https://github.com/crankyoldgit/IRremoteESP8266/issues/1535#issuecomment-882092486
879// https://docs.google.com/spreadsheets/d/1kxHgFqiUB9ETXYEkszAIN5gE-t2ykvnPCnOV-sPUE0A/edit?usp=sharing
880const uint8_t kDaikin312HumidityOff = 0x00;
881// Humidify (Heat) only (40%?)
882const uint8_t kDaikin312HumidityHeatLow = 0x28;
883// Humidify (Heat) only (45%?)
884const uint8_t kDaikin312HumidityHeatMedium = 0x2D;
885// Humidify (Heat) only (50%?)
886const uint8_t kDaikin312HumidityHeatHigh = 0x32;
887const uint8_t kDaikin312HumidityDryLow = 0x32; // Dry only (50%?)
888const uint8_t kDaikin312HumidityDryMedium = 0x37; // Dry only (55%?)
889const uint8_t kDaikin312HumidityDryHigh = 0x3C; // Dry only (60%?)
890const uint8_t kDaikin312HumidityAuto = 0xFF;
891
892// Min temp (in C) when in Cool mode.
893const uint8_t kDaikin312MinCoolTemp = 18;
894
895// Eye timer duration (byte 7, bits 6-7). @see setEyeTimer()
896const uint8_t kDaikin312EyeTimerOff = 0; // 0x00
897const uint8_t kDaikin312EyeTimer1Hr = 1; // 0x40
898const uint8_t kDaikin312EyeTimer3Hr = 2; // 0x80
899
903 public:
904 explicit IRDaikin312(const uint16_t pin, const bool inverted = false,
905 const bool use_modulation = true);
906
907#if SEND_DAIKIN312
908 void send(const uint16_t repeat = kDaikin312DefaultRepeat);
913 int8_t calibrate(void) { return _irsend.calibrate(); }
914#endif
915 void begin(void);
916 void on(void);
917 void off(void);
918 void setPower(const bool state);
919 bool getPower(void) const;
920 void setTemp(const float temp);
921 float getTemp(void) const;
922 void setFan(const uint8_t fan);
923 uint8_t getFan(void) const;
924 uint8_t getMode(void) const;
925 void setMode(const uint8_t mode);
926 void setSwingVertical(const uint8_t position);
927 uint8_t getSwingVertical(void) const;
928 void setSwingHorizontal(const uint8_t position);
929 uint8_t getSwingHorizontal(void) const;
930 bool getQuiet(void) const;
931 void setQuiet(const bool on);
932 bool getPowerful(void) const;
933 void setPowerful(const bool on);
934 void setEcono(const bool on);
935 bool getEcono(void) const;
936 void setEye(const bool on);
937 bool getEye(void) const;
938 void setEyeAuto(const bool on);
939 bool getEyeAuto(void) const;
940 void setEyeTimer(const uint8_t duration);
941 uint8_t getEyeTimer(void) const;
942 void setPurify(const bool on);
943 bool getPurify(void) const;
944 void setMold(const bool on);
945 bool getMold(void) const;
946 void enableOnTimer(const uint16_t starttime);
947 void disableOnTimer(void);
948 uint16_t getOnTime(void) const;
949 bool getOnTimerEnabled(void) const;
950 void enableSleepTimer(const uint16_t sleeptime);
951 void disableSleepTimer(void);
952 uint16_t getSleepTime(void) const;
953 bool getSleepTimerEnabled(void) const;
954 void enableOffTimer(const uint16_t endtime);
955 void disableOffTimer(void);
956 uint16_t getOffTime(void) const;
957 bool getOffTimerEnabled(void) const;
958 void setCurrentTime(const uint16_t time);
959 uint16_t getCurrentTime(void) const;
960 void setBeep(const uint8_t beep);
961 uint8_t getBeep(void) const;
962 void setLight(const uint8_t light);
963 uint8_t getLight(void) const;
964 void setAnnounce(const uint8_t category);
965 uint8_t getAnnounce(void) const;
966 void setClean(const bool on);
967 bool getClean(void) const;
968 void setFreshAir(const bool on);
969 bool getFreshAir(void) const;
970 void setFreshAirHigh(const bool on);
971 bool getFreshAirHigh(void) const;
972 uint8_t getHumidity(void) const;
973 void setHumidity(const uint8_t percent);
974 uint8_t* getRaw(void);
975 void setRaw(const uint8_t new_code[]);
976 static bool validChecksum(uint8_t state[],
977 const uint16_t length = kDaikin312StateLength);
978 static uint8_t convertMode(const stdAc::opmode_t mode);
979 static uint8_t convertFan(const stdAc::fanspeed_t speed);
980 static uint8_t convertSwingV(const stdAc::swingv_t position);
981 static uint8_t convertSwingH(const stdAc::swingh_t position);
982 static stdAc::swingv_t toCommonSwingV(const uint8_t setting);
983 static stdAc::swingh_t toCommonSwingH(const uint8_t setting);
984 stdAc::state_t toCommon(void) const;
985 String toString(void) const;
986#ifndef UNIT_TEST
987
988 private:
990#else
992 IRsendTest _irsend;
994#endif
995 // # of bytes per command
997 void stateReset(void);
998 void checksum(void);
999 void clearOnTimerFlag(void);
1000 void clearSleepTimerFlag(void);
1001};
1002
1003// Legacy defines.
1004#define DAIKIN_COOL kDaikinCool
1005#define DAIKIN_HEAT kDaikinHeat
1006#define DAIKIN_FAN kDaikinFan
1007#define DAIKIN_AUTO kDaikinAuto
1008#define DAIKIN_DRY kDaikinDry
1009#define DAIKIN_MIN_TEMP kDaikinMinTemp
1010#define DAIKIN_MAX_TEMP kDaikinMaxTemp
1011#define DAIKIN_FAN_MIN kDaikinFanMin
1012#define DAIKIN_FAN_MAX kDaikinFanMax
1013#define DAIKIN_FAN_AUTO kDaikinFanAuto
1014#define DAIKIN_FAN_QUIET kDaikinFanQuiet
1015
1018 public:
1019 explicit IRDaikinESP(const uint16_t pin, const bool inverted = false,
1020 const bool use_modulation = true);
1021
1022#if SEND_DAIKIN
1023 void send(const uint16_t repeat = kDaikinDefaultRepeat);
1028 int8_t calibrate(void) { return _irsend.calibrate(); }
1029#endif
1030 void begin(void);
1031 void on(void);
1032 void off(void);
1033 void setPower(const bool on);
1034 bool getPower(void) const;
1035 void setTemp(const float temp);
1036 float getTemp(void) const;
1037 void setFan(const uint8_t fan);
1038 uint8_t getFan(void) const;
1039 void setMode(const uint8_t mode);
1040 uint8_t getMode(void) const;
1041 void setSwingVertical(const bool on);
1042 bool getSwingVertical(void) const;
1043 void setSwingHorizontal(const bool on);
1044 bool getSwingHorizontal(void) const;
1045 bool getQuiet(void) const;
1046 void setQuiet(const bool on);
1047 bool getPowerful(void) const;
1048 void setPowerful(const bool on);
1049 void setSensor(const bool on);
1050 bool getSensor(void) const;
1051 void setEcono(const bool on);
1052 bool getEcono(void) const;
1053 void setMold(const bool on);
1054 bool getMold(void) const;
1055 void setComfort(const bool on);
1056 bool getComfort(void) const;
1057 void enableOnTimer(const uint16_t starttime);
1058 void disableOnTimer(void);
1059 uint16_t getOnTime(void) const;
1060 bool getOnTimerEnabled(void) const;
1061 void enableOffTimer(const uint16_t endtime);
1062 void disableOffTimer(void);
1063 uint16_t getOffTime(void) const;
1064 bool getOffTimerEnabled(void) const;
1065 void setCurrentTime(const uint16_t mins_since_midnight);
1066 uint16_t getCurrentTime(void) const;
1067 void setCurrentDay(const uint8_t day_of_week);
1068 uint8_t getCurrentDay(void) const;
1069 void setWeeklyTimerEnable(const bool on);
1070 bool getWeeklyTimerEnable(void) const;
1071 uint8_t* getRaw(void);
1072 void setRaw(const uint8_t new_code[],
1073 const uint16_t length = kDaikinStateLength);
1074 static bool validChecksum(uint8_t state[],
1075 const uint16_t length = kDaikinStateLength);
1076 static uint8_t convertMode(const stdAc::opmode_t mode);
1077 static uint8_t convertFan(const stdAc::fanspeed_t speed);
1078 static stdAc::opmode_t toCommonMode(const uint8_t mode);
1079 static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed);
1080 stdAc::state_t toCommon(void) const;
1081 String toString(void) const;
1082#ifndef UNIT_TEST
1083
1084 private:
1086#else
1088 IRsendTest _irsend;
1090#endif
1091 // # of bytes per command
1093 void stateReset(void);
1094 void checksum(void);
1095};
1096
1100 public:
1101 explicit IRDaikin2(const uint16_t pin, const bool inverted = false,
1102 const bool use_modulation = true);
1103
1104#if SEND_DAIKIN2
1105 void send(const uint16_t repeat = kDaikin2DefaultRepeat);
1110 int8_t calibrate(void) { return _irsend.calibrate(); }
1111#endif
1112 void begin(void);
1113 void on(void);
1114 void off(void);
1115 void setPower(const bool state);
1116 bool getPower(void) const;
1117 void setTemp(const uint8_t temp);
1118 uint8_t getTemp(void) const;
1119 void setFan(const uint8_t fan);
1120 uint8_t getFan(void) const;
1121 uint8_t getMode(void) const;
1122 void setMode(const uint8_t mode);
1123 void setSwingVertical(const uint8_t position);
1124 uint8_t getSwingVertical(void) const;
1125 void setSwingHorizontal(const uint8_t position);
1126 uint8_t getSwingHorizontal(void) const;
1127 bool getQuiet(void) const;
1128 void setQuiet(const bool on);
1129 bool getPowerful(void) const;
1130 void setPowerful(const bool on);
1131 void setEcono(const bool on);
1132 bool getEcono(void) const;
1133 void setEye(const bool on);
1134 bool getEye(void) const;
1135 void setEyeAuto(const bool on);
1136 bool getEyeAuto(void) const;
1137 void setPurify(const bool on);
1138 bool getPurify(void) const;
1139 void setMold(const bool on);
1140 bool getMold(void) const;
1141 void enableOnTimer(const uint16_t starttime);
1142 void disableOnTimer(void);
1143 uint16_t getOnTime(void) const;
1144 bool getOnTimerEnabled(void) const;
1145 void enableSleepTimer(const uint16_t sleeptime);
1146 void disableSleepTimer(void);
1147 uint16_t getSleepTime(void) const;
1148 bool getSleepTimerEnabled(void) const;
1149 void enableOffTimer(const uint16_t endtime);
1150 void disableOffTimer(void);
1151 uint16_t getOffTime(void) const;
1152 bool getOffTimerEnabled(void) const;
1153 void setCurrentTime(const uint16_t time);
1154 uint16_t getCurrentTime(void) const;
1155 void setBeep(const uint8_t beep);
1156 uint8_t getBeep(void) const;
1157 void setLight(const uint8_t light);
1158 uint8_t getLight(void) const;
1159 void setClean(const bool on);
1160 bool getClean(void) const;
1161 void setFreshAir(const bool on);
1162 bool getFreshAir(void) const;
1163 void setFreshAirHigh(const bool on);
1164 bool getFreshAirHigh(void) const;
1165 uint8_t getHumidity(void) const;
1166 void setHumidity(const uint8_t percent);
1167 uint8_t* getRaw(void);
1168 void setRaw(const uint8_t new_code[]);
1169 static bool validChecksum(uint8_t state[],
1170 const uint16_t length = kDaikin2StateLength);
1171 static uint8_t convertMode(const stdAc::opmode_t mode);
1172 static uint8_t convertFan(const stdAc::fanspeed_t speed);
1173 static uint8_t convertSwingV(const stdAc::swingv_t position);
1174 static uint8_t convertSwingH(const stdAc::swingh_t position);
1175 static stdAc::swingv_t toCommonSwingV(const uint8_t setting);
1176 static stdAc::swingh_t toCommonSwingH(const uint8_t setting);
1177 stdAc::state_t toCommon(void) const;
1178 String toString(void) const;
1179#ifndef UNIT_TEST
1180
1181 private:
1183#else
1185 IRsendTest _irsend;
1187#endif
1188 // # of bytes per command
1190 void stateReset(void);
1191 void checksum(void);
1192 void clearOnTimerFlag(void);
1193 void clearSleepTimerFlag(void);
1194};
1195
1198 public:
1199 explicit IRDaikin216(const uint16_t pin, const bool inverted = false,
1200 const bool use_modulation = true);
1201
1202#if SEND_DAIKIN216
1203 void send(const uint16_t repeat = kDaikin216DefaultRepeat);
1208 int8_t calibrate(void) { return _irsend.calibrate(); }
1209#endif
1210 void begin(void);
1211 uint8_t* getRaw(void);
1212 void setRaw(const uint8_t new_code[]);
1213 static bool validChecksum(uint8_t state[],
1214 const uint16_t length = kDaikin216StateLength);
1215 void on(void);
1216 void off(void);
1217 void setPower(const bool on);
1218 bool getPower(void) const;
1219 void setTemp(const uint8_t temp);
1220 uint8_t getTemp(void) const;
1221 void setMode(const uint8_t mode);
1222 uint8_t getMode(void) const;
1223 static uint8_t convertMode(const stdAc::opmode_t mode);
1224 void setFan(const uint8_t fan);
1225 uint8_t getFan(void) const;
1226 static uint8_t convertFan(const stdAc::fanspeed_t speed);
1227 void setSwingVertical(const bool on);
1228 bool getSwingVertical(void) const;
1229 void setSwingHorizontal(const bool on);
1230 bool getSwingHorizontal(void) const;
1231 void setQuiet(const bool on);
1232 bool getQuiet(void) const;
1233 void setPowerful(const bool on);
1234 bool getPowerful(void) const;
1235 stdAc::state_t toCommon(void) const;
1236 String toString(void) const;
1237#ifndef UNIT_TEST
1238
1239 private:
1241#else
1243 IRsendTest _irsend;
1245#endif
1246 // # of bytes per command
1248 void stateReset(void);
1249 void checksum(void);
1250};
1251
1254 public:
1255 explicit IRDaikin160(const uint16_t pin, const bool inverted = false,
1256 const bool use_modulation = true);
1257
1258#if SEND_DAIKIN160
1259 void send(const uint16_t repeat = kDaikin160DefaultRepeat);
1264 int8_t calibrate(void) { return _irsend.calibrate(); }
1265#endif
1266 void begin(void);
1267 uint8_t* getRaw(void);
1268 void setRaw(const uint8_t new_code[]);
1269 static bool validChecksum(uint8_t state[],
1270 const uint16_t length = kDaikin160StateLength);
1271 void on(void);
1272 void off(void);
1273 void setPower(const bool on);
1274 bool getPower(void) const;
1275 void setTemp(const uint8_t temp);
1276 uint8_t getTemp(void) const;
1277 void setMode(const uint8_t mode);
1278 uint8_t getMode(void) const;
1279 static uint8_t convertMode(const stdAc::opmode_t mode);
1280 void setFan(const uint8_t fan);
1281 uint8_t getFan(void) const;
1282 static uint8_t convertFan(const stdAc::fanspeed_t speed);
1283 void setSwingVertical(const uint8_t position);
1284 uint8_t getSwingVertical(void) const;
1285 static uint8_t convertSwingV(const stdAc::swingv_t position);
1286 static stdAc::swingv_t toCommonSwingV(const uint8_t setting);
1287 stdAc::state_t toCommon(void) const;
1288 String toString(void) const;
1289#ifndef UNIT_TEST
1290
1291 private:
1293#else
1295 IRsendTest _irsend;
1297#endif
1298 // # of bytes per command
1300 void stateReset(void);
1301 void checksum(void);
1302};
1303
1306 public:
1307 explicit IRDaikin176(const uint16_t pin, const bool inverted = false,
1308 const bool use_modulation = true);
1309
1310#if SEND_DAIKIN176
1311 void send(const uint16_t repeat = kDaikin176DefaultRepeat);
1316 int8_t calibrate(void) { return _irsend.calibrate(); }
1317#endif
1318 void begin(void);
1319 uint8_t* getRaw(void);
1320 void setRaw(const uint8_t new_code[]);
1321 static bool validChecksum(uint8_t state[],
1322 const uint16_t length = kDaikin176StateLength);
1323 void on(void);
1324 void off(void);
1325 void setPower(const bool on);
1326 bool getPower(void) const;
1327 void setTemp(const uint8_t temp);
1328 uint8_t getTemp(void) const;
1329 void setMode(const uint8_t mode);
1330 uint8_t getMode(void) const;
1331 static uint8_t convertMode(const stdAc::opmode_t mode);
1332 void setFan(const uint8_t fan);
1333 uint8_t getFan(void) const;
1334 static uint8_t convertFan(const stdAc::fanspeed_t speed);
1335 void setSwingHorizontal(const uint8_t position);
1336 uint8_t getSwingHorizontal(void) const;
1337 uint8_t getId(void) const;
1338 void setId(const uint8_t num);
1339 static uint8_t convertSwingH(const stdAc::swingh_t position);
1340 static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed);
1341 static stdAc::opmode_t toCommonMode(const uint8_t mode);
1342 static stdAc::swingh_t toCommonSwingH(const uint8_t setting);
1343 stdAc::state_t toCommon(void) const;
1344 String toString(void) const;
1345
1346#ifndef UNIT_TEST
1347
1348 private:
1350#else
1352 IRsendTest _irsend;
1354#endif
1355 // # of bytes per command
1357 uint8_t _saved_temp;
1358 void stateReset(void);
1359 void checksum(void);
1360};
1361
1365 public:
1366 explicit IRDaikin128(const uint16_t pin, const bool inverted = false,
1367 const bool use_modulation = true);
1368#if SEND_DAIKIN128
1369 void send(const uint16_t repeat = kDaikin128DefaultRepeat);
1374 int8_t calibrate(void) { return _irsend.calibrate(); }
1375#endif // SEND_DAIKIN128
1376 void begin(void);
1377 void setPowerToggle(const bool toggle);
1378 bool getPowerToggle(void) const;
1379 void setTemp(const uint8_t temp);
1380 uint8_t getTemp(void) const;
1381 void setFan(const uint8_t fan);
1382 uint8_t getFan(void) const;
1383 uint8_t getMode(void) const;
1384 void setMode(const uint8_t mode);
1385 void setSwingVertical(const bool on);
1386 bool getSwingVertical(void) const;
1387 bool getSleep(void) const;
1388 void setSleep(const bool on);
1389 bool getQuiet(void) const;
1390 void setQuiet(const bool on);
1391 bool getPowerful(void) const;
1392 void setPowerful(const bool on);
1393 void setEcono(const bool on);
1394 bool getEcono(void) const;
1395 void setOnTimer(const uint16_t mins_since_midnight);
1396 uint16_t getOnTimer(void) const;
1397 bool getOnTimerEnabled(void) const;
1398 void setOnTimerEnabled(const bool on);
1399 void setOffTimer(const uint16_t mins_since_midnight);
1400 uint16_t getOffTimer(void) const;
1401 bool getOffTimerEnabled(void) const;
1402 void setOffTimerEnabled(const bool on);
1403 void setClock(const uint16_t mins_since_midnight);
1404 uint16_t getClock(void) const;
1405 void setLightToggle(const uint8_t unit_type);
1406 uint8_t getLightToggle(void) const;
1407 uint8_t* getRaw(void);
1408 void setRaw(const uint8_t new_code[]);
1409 static bool validChecksum(uint8_t state[]);
1410 static uint8_t convertMode(const stdAc::opmode_t mode);
1411 static uint8_t convertFan(const stdAc::fanspeed_t speed);
1412 static stdAc::opmode_t toCommonMode(const uint8_t mode);
1413 static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed);
1414 stdAc::state_t toCommon(const stdAc::state_t *prev = NULL) const;
1415 String toString(void) const;
1416#ifndef UNIT_TEST
1417
1418 private:
1420#else
1422 IRsendTest _irsend;
1424#endif
1425 // # of bytes per command
1427 void stateReset(void);
1428 static uint8_t calcFirstChecksum(const uint8_t state[]);
1429 static uint8_t calcSecondChecksum(const uint8_t state[]);
1430 void checksum(void);
1431};
1432
1435 public:
1436 explicit IRDaikin152(const uint16_t pin, const bool inverted = false,
1437 const bool use_modulation = true);
1438
1439#if SEND_DAIKIN152
1440 void send(const uint16_t repeat = kDaikin152DefaultRepeat);
1445 int8_t calibrate(void) { return _irsend.calibrate(); }
1446#endif
1447 void begin(void);
1448 uint8_t* getRaw(void);
1449 void setRaw(const uint8_t new_code[]);
1450 static bool validChecksum(uint8_t state[],
1451 const uint16_t length = kDaikin152StateLength);
1452 void on(void);
1453 void off(void);
1454 void setPower(const bool on);
1455 bool getPower(void) const;
1456 void setTemp(const uint8_t temp);
1457 uint8_t getTemp(void) const;
1458 void setFan(const uint8_t fan);
1459 uint8_t getFan(void) const;
1460 void setMode(const uint8_t mode);
1461 uint8_t getMode(void) const;
1462 void setSwingV(const bool on);
1463 bool getSwingV(void) const;
1464 bool getQuiet(void) const;
1465 void setQuiet(const bool on);
1466 bool getPowerful(void) const;
1467 void setPowerful(const bool on);
1468 void setSensor(const bool on);
1469 bool getSensor(void) const;
1470 void setEcono(const bool on);
1471 bool getEcono(void) const;
1472 void setComfort(const bool on);
1473 bool getComfort(void) const;
1474 static uint8_t convertMode(const stdAc::opmode_t mode);
1475 static uint8_t convertFan(const stdAc::fanspeed_t speed);
1476 stdAc::state_t toCommon(void) const;
1477 String toString(void) const;
1478#ifndef UNIT_TEST
1479
1480 private:
1482#else
1484 IRsendTest _irsend;
1486#endif
1487 // # of bytes per command
1489 void stateReset(void);
1490 void checksum(void);
1491};
1492
1495 public:
1496 explicit IRDaikin64(const uint16_t pin, const bool inverted = false,
1497 const bool use_modulation = true);
1498
1499#if SEND_DAIKIN64
1500 void send(const uint16_t repeat = kDaikin64DefaultRepeat);
1505 int8_t calibrate(void) { return _irsend.calibrate(); }
1506#endif // SEND_DAIKIN64
1507 void begin(void);
1508 uint64_t getRaw(void);
1509 void setRaw(const uint64_t new_state);
1510 static uint8_t calcChecksum(const uint64_t state);
1511 static bool validChecksum(const uint64_t state);
1512 void setPowerToggle(const bool on);
1513 bool getPowerToggle(void) const;
1514 void setTemp(const uint8_t temp);
1515 uint8_t getTemp(void) const;
1516 void setFan(const uint8_t fan);
1517 uint8_t getFan(void) const;
1518 void setMode(const uint8_t mode);
1519 uint8_t getMode(void) const;
1520 void setSwingVertical(const bool on);
1521 bool getSwingVertical(void) const;
1522 void setSleep(const bool on);
1523 bool getSleep(void) const;
1524 bool getQuiet(void) const;
1525 void setQuiet(const bool on);
1526 bool getTurbo(void) const;
1527 void setTurbo(const bool on);
1528 void setClock(const uint16_t mins_since_midnight);
1529 uint16_t getClock(void) const;
1530 void setOnTimeEnabled(const bool on);
1531 bool getOnTimeEnabled(void) const;
1532 void setOnTime(const uint16_t mins_since_midnight);
1533 uint16_t getOnTime(void) const;
1534 void setOffTimeEnabled(const bool on);
1535 bool getOffTimeEnabled(void) const;
1536 void setOffTime(const uint16_t mins_since_midnight);
1537 uint16_t getOffTime(void) const;
1538 static uint8_t convertMode(const stdAc::opmode_t mode);
1539 static uint8_t convertFan(const stdAc::fanspeed_t speed);
1540 static stdAc::opmode_t toCommonMode(const uint8_t mode);
1541 static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed);
1542 stdAc::state_t toCommon(const stdAc::state_t *prev = NULL) const;
1543 String toString(void) const;
1544#ifndef UNIT_TEST
1545
1546 private:
1548#else
1550 IRsendTest _irsend;
1552#endif
1554 void stateReset(void);
1555 void checksum(void);
1556};
1557#endif // IR_DAIKIN_H_
std::string String
The protocol code builds human readable output with String. On ESP-IDF that is just std::string.
Definition IRplatform.h:21
const uint16_t kMarkExcess
Definition IRrecv.h:22
const uint16_t kDaikin176DefaultRepeat
Definition IRremoteESP8266.h:1238
const uint16_t kDaikin160StateLength
Definition IRremoteESP8266.h:1227
const uint16_t kDaikin2DefaultRepeat
Definition IRremoteESP8266.h:1224
const uint16_t kDaikin2StateLength
Definition IRremoteESP8266.h:1222
const uint16_t kDaikin128StateLength
Definition IRremoteESP8266.h:1230
const uint16_t kDaikin200StateLength
Definition IRremoteESP8266.h:1239
const uint16_t kDaikin128DefaultRepeat
Definition IRremoteESP8266.h:1232
const uint16_t kDaikin216StateLength
Definition IRremoteESP8266.h:1242
const uint16_t kDaikin160DefaultRepeat
Definition IRremoteESP8266.h:1229
const uint16_t kDaikin152DefaultRepeat
Definition IRremoteESP8266.h:1235
const uint16_t kDaikin216DefaultRepeat
Definition IRremoteESP8266.h:1244
const uint16_t kDaikin312StateLength
Definition IRremoteESP8266.h:1245
const uint16_t kDaikin176StateLength
Definition IRremoteESP8266.h:1236
const uint16_t kDaikin312DefaultRepeat
Definition IRremoteESP8266.h:1247
const uint16_t kDaikin64DefaultRepeat
Definition IRremoteESP8266.h:1226
const uint16_t kDaikin152StateLength
Definition IRremoteESP8266.h:1233
const uint16_t kDaikinStateLength
Definition IRremoteESP8266.h:1217
const uint16_t kDaikinDefaultRepeat
Definition IRremoteESP8266.h:1221
Class for handling detailed Daikin 128-bit A/C messages.
Definition ir_Daikin.h:1364
uint16_t getOnTimer(void) const
Get the On Timer time to be sent to the A/C unit.
Definition ir_Daikin.cpp:2803
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:2889
void setFan(const uint8_t fan)
Set the speed of the fan.
Definition ir_Daikin.cpp:2656
uint8_t * getRaw(void)
Get a PTR to the internal state/code for this protocol.
Definition ir_Daikin.cpp:2562
void setOnTimerEnabled(const bool on)
Set the enable status of the On Timer.
Definition ir_Daikin.cpp:2780
void setEcono(const bool on)
Set the Economy mode of the A/C.
Definition ir_Daikin.cpp:2722
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a stdAc::opmode_t enum into its native mode.
Definition ir_Daikin.cpp:2616
bool getQuiet(void) const
Get the Quiet mode status of the A/C.
Definition ir_Daikin.cpp:2743
static stdAc::opmode_t toCommonMode(const uint8_t mode)
Convert a native mode into its stdAc equivalent.
Definition ir_Daikin.cpp:2629
static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed)
Convert a native fan speed into its stdAc equivalent.
Definition ir_Daikin.cpp:2693
IRsend _irsend
instance of the IR send class
Definition ir_Daikin.h:1419
void setOnTimer(const uint16_t mins_since_midnight)
Set the On Timer time for the A/C unit.
Definition ir_Daikin.cpp:2797
uint16_t getClock(void) const
Get the clock time to be sent to the A/C unit.
Definition ir_Daikin.cpp:2774
static uint8_t calcFirstChecksum(const uint8_t state[])
Definition ir_Daikin.cpp:2522
void setRaw(const uint8_t new_code[])
Set the internal state from a valid code for this protocol.
Definition ir_Daikin.cpp:2569
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition ir_Daikin.h:1374
void setOffTimer(const uint16_t mins_since_midnight)
Set the Off Timer time for the A/C unit.
Definition ir_Daikin.cpp:2815
uint8_t getLightToggle(void) const
Get the Light toggle setting of the A/C.
Definition ir_Daikin.cpp:2841
bool getSleep(void) const
Get the Sleep mode of the A/C.
Definition ir_Daikin.cpp:2718
bool getEcono(void) const
Get the Economical mode of the A/C.
Definition ir_Daikin.cpp:2729
void setPowerToggle(const bool toggle)
Set the Power toggle setting of the A/C.
Definition ir_Daikin.cpp:2583
void setLightToggle(const uint8_t unit_type)
Set the Light toggle setting of the A/C.
Definition ir_Daikin.cpp:2826
bool getSwingVertical(void) const
Get the Vertical Swing mode of the A/C.
Definition ir_Daikin.cpp:2710
bool getOffTimerEnabled(void) const
Get the enable status of the Off Timer.
Definition ir_Daikin.cpp:2811
void checksum(void)
Calculate and set the checksum values for the internal state.
Definition ir_Daikin.cpp:2546
uint16_t getOffTimer(void) const
Get the Off Timer time to be sent to the A/C unit.
Definition ir_Daikin.cpp:2821
bool getPowerToggle(void) const
Get the Power toggle setting of the A/C.
Definition ir_Daikin.cpp:2587
void setQuiet(const bool on)
Set the Quiet mode of the A/C.
Definition ir_Daikin.cpp:2733
void setSwingVertical(const bool on)
Set the Vertical Swing mode of the A/C.
Definition ir_Daikin.cpp:2706
void setMode(const uint8_t mode)
Set the operating mode of the A/C.
Definition ir_Daikin.cpp:2595
static uint8_t convertFan(const stdAc::fanspeed_t speed)
Convert a stdAc::fanspeed_t enum into it's native speed.
Definition ir_Daikin.cpp:2679
Daikin128Protocol _
Definition ir_Daikin.h:1426
void setClock(const uint16_t mins_since_midnight)
Set the clock on the A/C unit.
Definition ir_Daikin.cpp:2763
void setOffTimerEnabled(const bool on)
Set the enable status of the Off Timer.
Definition ir_Daikin.cpp:2807
void send(const uint16_t repeat=kDaikin128DefaultRepeat)
Send the current internal state as an IR message.
Definition ir_Daikin.cpp:2576
bool getPowerful(void) const
Get the Powerful (Turbo) mode of the A/C.
Definition ir_Daikin.cpp:2757
uint8_t getTemp(void) const
Get the current temperature setting.
Definition ir_Daikin.cpp:2648
void stateReset(void)
Reset the internal state to a fixed known good state.
Definition ir_Daikin.cpp:2552
void setTemp(const uint8_t temp)
Set the temperature.
Definition ir_Daikin.cpp:2641
void begin(void)
Set up hardware to be able to send a message.
Definition ir_Daikin.cpp:2520
void setSleep(const bool on)
Set the Sleep mode of the A/C.
Definition ir_Daikin.cpp:2714
static bool validChecksum(uint8_t state[])
Verify the checksum is valid for a given state.
Definition ir_Daikin.cpp:2535
String toString(void) const
Convert the current internal state into a human readable string.
Definition ir_Daikin.cpp:2854
uint8_t getMode(void) const
Get the operating mode setting of the A/C.
Definition ir_Daikin.cpp:2591
static uint8_t calcSecondChecksum(const uint8_t state[])
Definition ir_Daikin.cpp:2527
void setPowerful(const bool on)
Set the Powerful (Turbo) mode of the A/C.
Definition ir_Daikin.cpp:2747
bool getOnTimerEnabled(void) const
Get the enable status of the On Timer.
Definition ir_Daikin.cpp:2784
uint8_t getFan(void) const
Get the current fan speed setting.
Definition ir_Daikin.cpp:2652
Class for handling detailed Daikin 152-bit A/C messages.
Definition ir_Daikin.h:1434
void off(void)
Change the power setting to Off.
Definition ir_Daikin.cpp:3126
void begin(void)
Set up hardware to be able to send a message.
Definition ir_Daikin.cpp:3072
bool getPowerful(void) const
Get the Powerful (Turbo) mode of the A/C.
Definition ir_Daikin.cpp:3251
stdAc::state_t toCommon(void) const
Convert the current internal state into its stdAc::state_t equivalent.
Definition ir_Daikin.cpp:3292
void on(void)
Change the power setting to On.
Definition ir_Daikin.cpp:3123
String toString(void) const
Convert the current internal state into a human readable string.
Definition ir_Daikin.cpp:3318
void send(const uint16_t repeat=kDaikin152DefaultRepeat)
Send the current internal state as an IR message.
Definition ir_Daikin.cpp:3077
uint8_t getTemp(void) const
Get the current temperature setting.
Definition ir_Daikin.cpp:3180
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a stdAc::opmode_t enum into its native mode.
Definition ir_Daikin.cpp:3164
void checksum(void)
Calculate and set the checksum values for the internal state.
Definition ir_Daikin.cpp:3095
bool getQuiet(void) const
Get the Quiet mode status of the A/C.
Definition ir_Daikin.cpp:3235
void setFan(const uint8_t fan)
Set the speed of the fan.
Definition ir_Daikin.cpp:3185
void setQuiet(const bool on)
Set the Quiet mode of the A/C.
Definition ir_Daikin.cpp:3227
uint8_t getFan(void) const
Get the current fan speed setting.
Definition ir_Daikin.cpp:3199
bool getPower(void) const
Get the value of the current power setting.
Definition ir_Daikin.cpp:3134
bool getEcono(void) const
Get the Economical mode of the A/C.
Definition ir_Daikin.cpp:3263
static uint8_t convertFan(const stdAc::fanspeed_t speed)
Convert a stdAc::fanspeed_t enum into it's native speed.
Definition ir_Daikin.cpp:3211
void setPowerful(const bool on)
Set the Powerful (Turbo) mode of the A/C.
Definition ir_Daikin.cpp:3239
bool getComfort(void) const
Get the Comfort mode of the A/C.
Definition ir_Daikin.cpp:3288
void setEcono(const bool on)
Set the Economy mode of the A/C.
Definition ir_Daikin.cpp:3255
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition ir_Daikin.h:1445
void setPower(const bool on)
Change the power setting.
Definition ir_Daikin.cpp:3130
void setComfort(const bool on)
Set the Comfort mode of the A/C.
Definition ir_Daikin.cpp:3275
void setTemp(const uint8_t temp)
Set the temperature.
Definition ir_Daikin.cpp:3170
IRsend _irsend
instance of the IR send class
Definition ir_Daikin.h:1481
bool getSwingV(void) const
Get the Vertical Swing mode of the A/C.
Definition ir_Daikin.cpp:3223
void setRaw(const uint8_t new_code[])
Set the internal state from a valid code for this protocol.
Definition ir_Daikin.cpp:3118
void setMode(const uint8_t mode)
Set the operating mode of the A/C.
Definition ir_Daikin.cpp:3142
void setSwingV(const bool on)
Set the Vertical Swing mode of the A/C.
Definition ir_Daikin.cpp:3217
Daikin152Protocol _
Definition ir_Daikin.h:1488
void stateReset(void)
Reset the internal state to a fixed known good state.
Definition ir_Daikin.cpp:3100
static bool validChecksum(uint8_t state[], const uint16_t length=kDaikin152StateLength)
Verify the checksum is valid for a given state.
Definition ir_Daikin.cpp:3086
uint8_t getMode(void) const
Get the operating mode setting of the A/C.
Definition ir_Daikin.cpp:3138
bool getSensor(void) const
Get the Sensor mode of the A/C.
Definition ir_Daikin.cpp:3271
void setSensor(const bool on)
Set the Sensor mode of the A/C.
Definition ir_Daikin.cpp:3267
uint8_t * getRaw(void)
Get a PTR to the internal state/code for this protocol.
Definition ir_Daikin.cpp:3111
Class for handling detailed Daikin 160-bit A/C messages.
Definition ir_Daikin.h:1253
bool getPower(void) const
Get the value of the current power setting.
Definition ir_Daikin.cpp:1847
static bool validChecksum(uint8_t state[], const uint16_t length=kDaikin160StateLength)
Verify the checksum is valid for a given state.
Definition ir_Daikin.cpp:1772
void send(const uint16_t repeat=kDaikin160DefaultRepeat)
Send the current internal state as an IR message.
Definition ir_Daikin.cpp:1830
void setSwingVertical(const uint8_t position)
Set the Vertical Swing mode of the A/C.
Definition ir_Daikin.cpp:1926
uint8_t getMode(void) const
Get the operating mode setting of the A/C.
Definition ir_Daikin.cpp:1851
void setRaw(const uint8_t new_code[])
Set the internal state from a valid code for this protocol.
Definition ir_Daikin.cpp:1823
uint8_t getFan(void) const
Get the current fan speed setting.
Definition ir_Daikin.cpp:1903
void on(void)
Change the power setting to On.
Definition ir_Daikin.cpp:1836
IRsend _irsend
instance of the IR send class
Definition ir_Daikin.h:1292
static uint8_t convertFan(const stdAc::fanspeed_t speed)
Convert a stdAc::fanspeed_t enum into it's native speed.
Definition ir_Daikin.cpp:1912
Daikin160Protocol _
Definition ir_Daikin.h:1299
uint8_t getTemp(void) const
Get the current temperature setting.
Definition ir_Daikin.cpp:1885
void setMode(const uint8_t mode)
Set the operating mode of the A/C.
Definition ir_Daikin.cpp:1855
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition ir_Daikin.h:1264
static uint8_t convertSwingV(const stdAc::swingv_t position)
Convert a stdAc::swingv_t enum into it's native setting.
Definition ir_Daikin.cpp:1947
void begin(void)
Set up hardware to be able to send a message.
Definition ir_Daikin.cpp:1766
stdAc::state_t toCommon(void) const
Convert the current internal state into its stdAc::state_t equivalent.
Definition ir_Daikin.cpp:1977
void stateReset(void)
Reset the internal state to a fixed known good state.
Definition ir_Daikin.cpp:1794
void setFan(const uint8_t fan)
Set the speed of the fan.
Definition ir_Daikin.cpp:1890
void off(void)
Change the power setting to Off.
Definition ir_Daikin.cpp:1839
String toString(void) const
Convert the current internal state into a human readable string.
Definition ir_Daikin.cpp:2003
void checksum(void)
Calculate and set the checksum values for the internal state.
Definition ir_Daikin.cpp:1787
void setTemp(const uint8_t temp)
Set the temperature.
Definition ir_Daikin.cpp:1877
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a stdAc::opmode_t enum into its native mode.
Definition ir_Daikin.cpp:1871
uint8_t * getRaw(void)
Get a PTR to the internal state/code for this protocol.
Definition ir_Daikin.cpp:1816
uint8_t getSwingVertical(void) const
Get the Vertical Swing mode of the A/C.
Definition ir_Daikin.cpp:1942
void setPower(const bool on)
Change the power setting.
Definition ir_Daikin.cpp:1843
static stdAc::swingv_t toCommonSwingV(const uint8_t setting)
Convert a native vertical swing postion to it's common equivalent.
Definition ir_Daikin.cpp:1963
Class for handling detailed Daikin 176-bit A/C messages.
Definition ir_Daikin.h:1305
void setFan(const uint8_t fan)
Set the speed of the fan.
Definition ir_Daikin.cpp:2282
uint8_t getMode(void) const
Get the operating mode setting of the A/C.
Definition ir_Daikin.cpp:2209
void begin(void)
Set up hardware to be able to send a message.
Definition ir_Daikin.cpp:2120
void checksum(void)
Calculate and set the checksum values for the internal state.
Definition ir_Daikin.cpp:2141
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition ir_Daikin.h:1316
String toString(void) const
Convert the current internal state into a human readable string.
Definition ir_Daikin.cpp:2395
static uint8_t convertSwingH(const stdAc::swingh_t position)
Convert a stdAc::swingh_t enum into it's native setting.
Definition ir_Daikin.cpp:2338
IRsend _irsend
instance of the IR send class
Definition ir_Daikin.h:1349
void on(void)
Change the power setting to On.
Definition ir_Daikin.cpp:2191
void off(void)
Change the power setting to Off..
Definition ir_Daikin.cpp:2194
uint8_t getSwingHorizontal(void) const
Get the Horizontal Swing mode of the A/C.
Definition ir_Daikin.cpp:2324
void setRaw(const uint8_t new_code[])
Set the internal state from a valid code for this protocol.
Definition ir_Daikin.cpp:2177
void setPower(const bool on)
Change the power setting.
Definition ir_Daikin.cpp:2198
void setId(const uint8_t num)
Set the Unit Id of the A/C.
Definition ir_Daikin.cpp:2333
static stdAc::swingh_t toCommonSwingH(const uint8_t setting)
Convert a native horizontal swing postion to it's common equivalent.
Definition ir_Daikin.cpp:2349
static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed)
Convert a native fan speed into its stdAc equivalent.
Definition ir_Daikin.cpp:2361
void setMode(const uint8_t mode)
Set the operating mode of the A/C.
Definition ir_Daikin.cpp:2213
void stateReset(void)
Reset the internal state to a fixed known good state.
Definition ir_Daikin.cpp:2148
Daikin176Protocol _
Definition ir_Daikin.h:1356
uint8_t _saved_temp
The previously user requested temp value.
Definition ir_Daikin.h:1357
uint8_t getTemp(void) const
Get the current temperature setting.
Definition ir_Daikin.cpp:2277
void setSwingHorizontal(const uint8_t position)
Set the Horizontal Swing mode of the A/C.
Definition ir_Daikin.cpp:2312
bool getPower(void) const
Get the value of the current power setting.
Definition ir_Daikin.cpp:2205
static stdAc::opmode_t toCommonMode(const uint8_t mode)
Convert a native mode into its stdAc equivalent.
Definition ir_Daikin.cpp:2251
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a stdAc::opmode_t enum into its native mode.
Definition ir_Daikin.cpp:2238
static bool validChecksum(uint8_t state[], const uint16_t length=kDaikin176StateLength)
Verify the checksum is valid for a given state.
Definition ir_Daikin.cpp:2126
void setTemp(const uint8_t temp)
Set the temperature.
Definition ir_Daikin.cpp:2263
uint8_t * getRaw(void)
Get a PTR to the internal state/code for this protocol.
Definition ir_Daikin.cpp:2170
uint8_t getId(void) const
Get the Unit Id of the A/C.
Definition ir_Daikin.cpp:2328
static uint8_t convertFan(const stdAc::fanspeed_t speed)
Convert a stdAc::fanspeed_t enum into it's native speed.
Definition ir_Daikin.cpp:2302
stdAc::state_t toCommon(void) const
Convert the current internal state into its stdAc::state_t equivalent.
Definition ir_Daikin.cpp:2368
uint8_t getFan(void) const
Get the current fan speed setting.
Definition ir_Daikin.cpp:2297
void send(const uint16_t repeat=kDaikin176DefaultRepeat)
Send the current internal state as an IR message.
Definition ir_Daikin.cpp:2185
Class for handling detailed Daikin 216-bit A/C messages.
Definition ir_Daikin.h:1197
bool getPowerful(void) const
Get the Powerful (Turbo) mode of the A/C.
Definition ir_Daikin.cpp:1623
void setQuiet(const bool on)
Set the Quiet mode of the A/C.
Definition ir_Daikin.cpp:1598
void off(void)
Change the power setting to Off.
Definition ir_Daikin.cpp:1496
void on(void)
Change the power setting to On.
Definition ir_Daikin.cpp:1493
void setPower(const bool on)
Change the power setting.
Definition ir_Daikin.cpp:1500
uint8_t * getRaw(void)
Get a PTR to the internal state/code for this protocol.
Definition ir_Daikin.cpp:1481
void setMode(const uint8_t mode)
Set the operating mode of the A/C.
Definition ir_Daikin.cpp:1512
Daikin216Protocol _
Definition ir_Daikin.h:1247
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition ir_Daikin.h:1208
void setRaw(const uint8_t new_code[])
Set the internal state from a valid code for this protocol.
Definition ir_Daikin.cpp:1488
stdAc::state_t toCommon(void) const
Convert the current internal state into its stdAc::state_t equivalent.
Definition ir_Daikin.cpp:1627
uint8_t getMode(void) const
Get the operating mode setting of the A/C.
Definition ir_Daikin.cpp:1508
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a stdAc::opmode_t enum into its native mode.
Definition ir_Daikin.cpp:1529
static uint8_t convertFan(const stdAc::fanspeed_t speed)
Convert a stdAc::fanspeed_t enum into it's native speed.
Definition ir_Daikin.cpp:1571
void setPowerful(const bool on)
Set the Powerful (Turbo) mode of the A/C.
Definition ir_Daikin.cpp:1615
static bool validChecksum(uint8_t state[], const uint16_t length=kDaikin216StateLength)
Verify the checksum is valid for a given state.
Definition ir_Daikin.cpp:1443
void stateReset(void)
Reset the internal state to a fixed known good state.
Definition ir_Daikin.cpp:1465
void setSwingVertical(const bool on)
Set the Vertical Swing mode of the A/C.
Definition ir_Daikin.cpp:1577
void setTemp(const uint8_t temp)
Set the temperature.
Definition ir_Daikin.cpp:1535
void setFan(const uint8_t fan)
Set the speed of the fan.
Definition ir_Daikin.cpp:1548
bool getPower(void) const
Get the value of the current power setting.
Definition ir_Daikin.cpp:1504
void send(const uint16_t repeat=kDaikin216DefaultRepeat)
Send the current internal state as an IR message.
Definition ir_Daikin.cpp:1434
void begin(void)
Set up hardware to be able to send a message.
Definition ir_Daikin.cpp:1429
uint8_t getFan(void) const
Get the current fan speed setting.
Definition ir_Daikin.cpp:1562
IRsend _irsend
instance of the IR send class
Definition ir_Daikin.h:1240
uint8_t getTemp(void) const
Get the current temperature setting.
Definition ir_Daikin.cpp:1543
bool getQuiet(void) const
Get the Quiet mode status of the A/C.
Definition ir_Daikin.cpp:1611
String toString(void) const
Convert the current internal state into a human readable string.
Definition ir_Daikin.cpp:1655
void checksum(void)
Calculate and set the checksum values for the internal state.
Definition ir_Daikin.cpp:1458
bool getSwingVertical(void) const
Get the Vertical Swing mode of the A/C.
Definition ir_Daikin.cpp:1583
void setSwingHorizontal(const bool on)
Set the Horizontal Swing mode of the A/C.
Definition ir_Daikin.cpp:1587
bool getSwingHorizontal(void) const
Get the Horizontal Swing mode of the A/C.
Definition ir_Daikin.cpp:1593
Class for handling detailed Daikin 312-bit A/C messages.
Definition ir_Daikin.h:1099
void setFreshAirHigh(const bool on)
Set the (High) Fresh Air mode of the A/C.
Definition ir_Daikin.cpp:1037
void checksum(void)
Calculate and set the checksum values for the internal state.
Definition ir_Daikin.cpp:735
bool getFreshAirHigh(void) const
Get the (High) Fresh Air mode status of the A/C.
Definition ir_Daikin.cpp:1041
void begin(void)
Set up hardware to be able to send a message.
Definition ir_Daikin.cpp:706
uint8_t getLight(void) const
Get the Light status of the A/C.
Definition ir_Daikin.cpp:1005
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a stdAc::opmode_t enum into its native mode.
Definition ir_Daikin.cpp:1160
void setRaw(const uint8_t new_code[])
Set the internal state from a valid code for this protocol.
Definition ir_Daikin.cpp:784
void disableSleepTimer(void)
Disable the sleep timer.
Definition ir_Daikin.cpp:1080
void disableOnTimer(void)
Disable the On timer.
Definition ir_Daikin.cpp:958
void clearOnTimerFlag(void)
Clear the On Timer flag.
Definition ir_Daikin.cpp:955
static stdAc::swingv_t toCommonSwingV(const uint8_t setting)
Convert a native vertical swing postion to it's common equivalent.
Definition ir_Daikin.cpp:910
void setHumidity(const uint8_t percent)
Set the Humidity percentage setting of the A/C.
Definition ir_Daikin.cpp:1129
void setClean(const bool on)
Set the Auto clean mode of the A/C.
Definition ir_Daikin.cpp:1021
void setMode(const uint8_t mode)
Set the operating mode of the A/C.
Definition ir_Daikin.cpp:811
uint16_t getSleepTime(void) const
Get the Sleep Timer time to be sent to the A/C unit.
Definition ir_Daikin.cpp:1084
void clearSleepTimerFlag(void)
Clear the sleep timer flag.
Definition ir_Daikin.cpp:1077
void setSwingVertical(const uint8_t position)
Set the Vertical Swing mode of the A/C.
Definition ir_Daikin.cpp:869
void setPower(const bool state)
Change the power setting.
Definition ir_Daikin.cpp:796
uint8_t getSwingVertical(void) const
Get the Vertical Swing mode of the A/C.
Definition ir_Daikin.cpp:887
void setEcono(const bool on)
Set the Economy mode of the A/C.
Definition ir_Daikin.cpp:1061
void setBeep(const uint8_t beep)
Set the Beep mode of the A/C.
Definition ir_Daikin.cpp:1001
bool getFreshAir(void) const
Get the Fresh Air mode status of the A/C.
Definition ir_Daikin.cpp:1033
uint8_t getFan(void) const
Get the current fan speed setting.
Definition ir_Daikin.cpp:858
void setEye(const bool on)
Set the Eye (Sensor) mode of the A/C.
Definition ir_Daikin.cpp:1053
void setQuiet(const bool on)
Set the Quiet mode of the A/C.
Definition ir_Daikin.cpp:1092
bool getOnTimerEnabled(void) const
Get the enable status of the On Timer.
Definition ir_Daikin.cpp:970
void setPowerful(const bool on)
Set the Powerful (Turbo) mode of the A/C.
Definition ir_Daikin.cpp:1104
Daikin2Protocol _
Definition ir_Daikin.h:1189
void setFreshAir(const bool on)
Set the Fresh Air mode of the A/C.
Definition ir_Daikin.cpp:1029
bool getMold(void) const
Get the Mould (filter) mode status of the A/C.
Definition ir_Daikin.cpp:1017
bool getPurify(void) const
Get the Purify (Filter) mode status of the A/C.
Definition ir_Daikin.cpp:1120
bool getPower(void) const
Get the value of the current power setting.
Definition ir_Daikin.cpp:803
bool getClean(void) const
Get the Auto Clean mode status of the A/C.
Definition ir_Daikin.cpp:1025
void setSwingHorizontal(const uint8_t position)
Set the Horizontal Swing mode of the A/C.
Definition ir_Daikin.cpp:925
bool getSleepTimerEnabled(void) const
Get the Sleep timer enabled status of the A/C.
Definition ir_Daikin.cpp:1088
static uint8_t convertSwingH(const stdAc::swingh_t position)
Convert a stdAc::swingh_t enum into it's native setting.
Definition ir_Daikin.cpp:1174
bool getEye(void) const
Get the Eye (Sensor) mode status of the A/C.
Definition ir_Daikin.cpp:1057
uint16_t getOnTime(void) const
Get the On Timer time to be sent to the A/C unit.
Definition ir_Daikin.cpp:966
void setLight(const uint8_t light)
Set the Light (LED) mode of the A/C.
Definition ir_Daikin.cpp:1009
void setTemp(const uint8_t temp)
Set the temperature.
Definition ir_Daikin.cpp:828
uint16_t getOffTime(void) const
Get the Off Timer time to be sent to the A/C unit.
Definition ir_Daikin.cpp:989
static stdAc::swingh_t toCommonSwingH(const uint8_t setting)
Convert a native horizontal swing postion to it's common equivalent.
Definition ir_Daikin.cpp:1190
void setCurrentTime(const uint16_t time)
Set the clock on the A/C unit.
Definition ir_Daikin.cpp:935
void disableOffTimer(void)
Disable the Off timer.
Definition ir_Daikin.cpp:981
stdAc::state_t toCommon(void) const
Convert the current internal state into its stdAc::state_t equivalent.
Definition ir_Daikin.cpp:1205
bool getPowerful(void) const
Get the Powerful (Turbo) mode of the A/C.
Definition ir_Daikin.cpp:1112
void enableOnTimer(const uint16_t starttime)
Set the enable status & time of the On Timer.
Definition ir_Daikin.cpp:948
void stateReset(void)
Reset the internal state to a fixed known good state.
Definition ir_Daikin.cpp:741
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition ir_Daikin.h:1110
void setEyeAuto(const bool on)
Set the Automatic Eye (Sensor) mode of the A/C.
Definition ir_Daikin.cpp:1045
void enableSleepTimer(const uint16_t sleeptime)
Set the enable status & time of the Sleep Timer.
Definition ir_Daikin.cpp:1070
bool getEcono(void) const
Get the Economical mode of the A/C.
Definition ir_Daikin.cpp:1065
void on(void)
Change the power setting to On.
Definition ir_Daikin.cpp:789
static uint8_t convertSwingV(const stdAc::swingv_t position)
Convert a stdAc::swingv_t enum into it's native setting.
Definition ir_Daikin.cpp:892
IRsend _irsend
instance of the IR send class
Definition ir_Daikin.h:1182
void send(const uint16_t repeat=kDaikin2DefaultRepeat)
Send the current internal state as an IR message.
Definition ir_Daikin.cpp:711
bool getOffTimerEnabled(void) const
Get the enable status of the Off Timer.
Definition ir_Daikin.cpp:993
uint8_t getMode(void) const
Get the operating mode setting of the A/C.
Definition ir_Daikin.cpp:807
uint16_t getCurrentTime(void) const
Get the clock time to be sent to the A/C unit.
Definition ir_Daikin.cpp:943
String toString(void) const
Convert the current internal state into a human readable string.
Definition ir_Daikin.cpp:1231
uint8_t getBeep(void) const
Get the Beep status of the A/C.
Definition ir_Daikin.cpp:997
void setPurify(const bool on)
Set the Purify (Filter) mode of the A/C.
Definition ir_Daikin.cpp:1116
static uint8_t convertFan(const stdAc::fanspeed_t speed)
Convert a stdAc::fanspeed_t enum into it's native speed.
Definition ir_Daikin.cpp:1167
bool getEyeAuto(void) const
Get the Automaitc Eye (Sensor) mode status of the A/C.
Definition ir_Daikin.cpp:1049
void setMold(const bool on)
Set the Mould (filter) mode of the A/C.
Definition ir_Daikin.cpp:1013
uint8_t getTemp(void) const
Get the current temperature setting.
Definition ir_Daikin.cpp:840
static bool validChecksum(uint8_t state[], const uint16_t length=kDaikin2StateLength)
Verify the checksum is valid for a given state.
Definition ir_Daikin.cpp:720
uint8_t getSwingHorizontal(void) const
Get the Horizontal Swing mode of the A/C.
Definition ir_Daikin.cpp:931
uint8_t getHumidity(void) const
Get the Humidity percentage setting of the A/C.
Definition ir_Daikin.cpp:1124
bool getQuiet(void) const
Get the Quiet mode status of the A/C.
Definition ir_Daikin.cpp:1100
void off(void)
Change the power setting to Off.
Definition ir_Daikin.cpp:792
uint8_t * getRaw(void)
Get a PTR to the internal state/code for this protocol.
Definition ir_Daikin.cpp:777
void setFan(const uint8_t fan)
Set the speed of the fan.
Definition ir_Daikin.cpp:845
void enableOffTimer(const uint16_t endtime)
Set the enable status & time of the Off Timer.
Definition ir_Daikin.cpp:974
Class for handling detailed Daikin 312-bit A/C messages.
Definition ir_Daikin.h:902
static uint8_t convertSwingH(const stdAc::swingh_t position)
Convert a stdAc::swingh_t enum into it's native setting.
Definition ir_Daikin.cpp:4368
uint8_t getEyeTimer(void) const
Get the Eye (Sensor) timer duration of the A/C.
Definition ir_Daikin.cpp:4251
void enableOffTimer(const uint16_t endtime)
Set the enable status & time of the Off Timer.
Definition ir_Daikin.cpp:4131
uint8_t getSwingVertical(void) const
Get the Vertical Swing mode of the A/C.
Definition ir_Daikin.cpp:4044
static uint8_t convertFan(const stdAc::fanspeed_t speed)
Convert a stdAc::fanspeed_t enum into it's native speed.
Definition ir_Daikin.cpp:4361
void disableOnTimer(void)
Disable the On timer.
Definition ir_Daikin.cpp:4115
void setClean(const bool on)
Set the Auto clean mode of the A/C.
Definition ir_Daikin.cpp:4200
void off(void)
Change the power setting to Off.
Definition ir_Daikin.cpp:3947
String toString(void) const
Convert the current internal state into a human readable string.
Definition ir_Daikin.cpp:4428
void setCurrentTime(const uint16_t time)
Set the clock on the A/C unit.
Definition ir_Daikin.cpp:4092
bool getPurify(void) const
Get the Purify (Filter) mode status of the A/C.
Definition ir_Daikin.cpp:4314
uint16_t getOffTime(void) const
Get the Off Timer time to be sent to the A/C unit.
Definition ir_Daikin.cpp:4146
bool getFreshAirHigh(void) const
Get the (High) Fresh Air mode status of the A/C.
Definition ir_Daikin.cpp:4220
uint8_t getAnnounce(void) const
Get the current announce category.
Definition ir_Daikin.cpp:4171
bool getEye(void) const
Get the Eye (Sensor) mode status of the A/C.
Definition ir_Daikin.cpp:4236
uint8_t getFan(void) const
Get the current fan speed setting.
Definition ir_Daikin.cpp:4015
void setAnnounce(const uint8_t category)
Set the verbal announcement item. The AC uses this to decide what state update to read aloud after re...
Definition ir_Daikin.cpp:4185
bool getFreshAir(void) const
Get the Fresh Air mode status of the A/C.
Definition ir_Daikin.cpp:4212
stdAc::state_t toCommon(void) const
Convert the current internal state into its stdAc::state_t equivalent.
Definition ir_Daikin.cpp:4400
bool getMold(void) const
Get the Mould (filter) mode status of the A/C.
Definition ir_Daikin.cpp:4196
void setEyeTimer(const uint8_t duration)
Set the Eye (Sensor) timer duration of the A/C.
Definition ir_Daikin.cpp:4241
uint8_t getMode(void) const
Get the operating mode setting of the A/C.
Definition ir_Daikin.cpp:3962
uint8_t getSwingHorizontal(void) const
Get the Horizontal Swing mode of the A/C.
Definition ir_Daikin.cpp:4088
bool getPowerful(void) const
Get the Powerful (Turbo) mode of the A/C.
Definition ir_Daikin.cpp:4306
void setRaw(const uint8_t new_code[])
Set the internal state from a valid code for this protocol.
Definition ir_Daikin.cpp:3939
bool getOffTimerEnabled(void) const
Get the enable status of the Off Timer.
Definition ir_Daikin.cpp:4150
bool getSleepTimerEnabled(void) const
Get the Sleep timer enabled status of the A/C.
Definition ir_Daikin.cpp:4282
void checksum(void)
Calculate and set the checksum values for the internal state.
Definition ir_Daikin.cpp:3866
void setPurify(const bool on)
Set the Purify (Filter) mode of the A/C.
Definition ir_Daikin.cpp:4310
void setMode(const uint8_t mode)
Set the operating mode of the A/C.
Definition ir_Daikin.cpp:3966
void setFreshAir(const bool on)
Set the Fresh Air mode of the A/C.
Definition ir_Daikin.cpp:4208
void begin(void)
Set up hardware to be able to send a message.
Definition ir_Daikin.cpp:3836
void enableSleepTimer(const uint16_t sleeptime)
Set the enable status & time of the Sleep Timer.
Definition ir_Daikin.cpp:4264
void setEye(const bool on)
Set the Eye (Sensor) mode of the A/C.
Definition ir_Daikin.cpp:4232
static stdAc::swingh_t toCommonSwingH(const uint8_t setting)
Convert a native horizontal swing postion to it's common equivalent.
Definition ir_Daikin.cpp:4385
static bool validChecksum(uint8_t state[], const uint16_t length=kDaikin312StateLength)
Verify the checksum is valid for a given state.
Definition ir_Daikin.cpp:3850
void setBeep(const uint8_t beep)
Set the Beep mode of the A/C.
Definition ir_Daikin.cpp:4158
void setEyeAuto(const bool on)
Set the Automatic Eye (Sensor) mode of the A/C.
Definition ir_Daikin.cpp:4224
uint16_t getCurrentTime(void) const
Get the clock time to be sent to the A/C unit.
Definition ir_Daikin.cpp:4100
void setQuiet(const bool on)
Set the Quiet mode of the A/C.
Definition ir_Daikin.cpp:4286
void disableOffTimer(void)
Disable the Off timer.
Definition ir_Daikin.cpp:4138
void send(const uint16_t repeat=kDaikin312DefaultRepeat)
Send the current internal state as an IR message.
Definition ir_Daikin.cpp:3841
uint16_t getSleepTime(void) const
Get the Sleep Timer time to be sent to the A/C unit.
Definition ir_Daikin.cpp:4278
void setFreshAirHigh(const bool on)
Set the (High) Fresh Air mode of the A/C.
Definition ir_Daikin.cpp:4216
void disableSleepTimer(void)
Disable the sleep timer.
Definition ir_Daikin.cpp:4274
void setEcono(const bool on)
Set the Economy mode of the A/C.
Definition ir_Daikin.cpp:4255
IRsend _irsend
instance of the IR send class
Definition ir_Daikin.h:989
bool getClean(void) const
Get the Auto Clean mode status of the A/C.
Definition ir_Daikin.cpp:4204
void stateReset(void)
Reset the internal state to a fixed known good state.
Definition ir_Daikin.cpp:3873
uint8_t getHumidity(void) const
Get the Humidity percentage setting of the A/C.
Definition ir_Daikin.cpp:4318
void setLight(const uint8_t light)
Set the Light (LED) mode of the A/C.
Definition ir_Daikin.cpp:4166
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition ir_Daikin.h:913
void setPower(const bool state)
Change the power setting.
Definition ir_Daikin.cpp:3951
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a stdAc::opmode_t enum into its native mode.
Definition ir_Daikin.cpp:4354
float getTemp(void) const
Get the current temperature setting.
Definition ir_Daikin.cpp:3997
uint8_t getLight(void) const
Get the Light status of the A/C.
Definition ir_Daikin.cpp:4162
void on(void)
Change the power setting to On.
Definition ir_Daikin.cpp:3944
Daikin312Protocol _
Definition ir_Daikin.h:996
bool getEyeAuto(void) const
Get the Automatic Eye (Sensor) mode status of the A/C.
Definition ir_Daikin.cpp:4228
void setTemp(const float temp)
Set the temperature.
Definition ir_Daikin.cpp:3984
void setPowerful(const bool on)
Set the Powerful (Turbo) mode of the A/C.
Definition ir_Daikin.cpp:4298
void setFan(const uint8_t fan)
Set the speed of the fan.
Definition ir_Daikin.cpp:4002
bool getOnTimerEnabled(void) const
Get the enable status of the On Timer.
Definition ir_Daikin.cpp:4127
void setHumidity(const uint8_t percent)
Set the Humidity percentage setting of the A/C.
Definition ir_Daikin.cpp:4323
void setSwingHorizontal(const uint8_t position)
Set the Horizontal Swing mode of the A/C.
Definition ir_Daikin.cpp:4082
static stdAc::swingv_t toCommonSwingV(const uint8_t setting)
Convert a native vertical swing postion to it's common equivalent.
Definition ir_Daikin.cpp:4067
void enableOnTimer(const uint16_t starttime)
Set the enable status & time of the On Timer.
Definition ir_Daikin.cpp:4105
void clearOnTimerFlag(void)
Clear the On Timer flag.
Definition ir_Daikin.cpp:4112
void setMold(const bool on)
Set the Mould (filter) mode of the A/C.
Definition ir_Daikin.cpp:4192
void clearSleepTimerFlag(void)
Clear the sleep timer flag.
Definition ir_Daikin.cpp:4271
bool getQuiet(void) const
Get the Quiet mode status of the A/C.
Definition ir_Daikin.cpp:4294
bool getEcono(void) const
Get the Economical mode of the A/C.
Definition ir_Daikin.cpp:4259
bool getPower(void) const
Get the value of the current power setting.
Definition ir_Daikin.cpp:3958
uint8_t getBeep(void) const
Get the Beep status of the A/C.
Definition ir_Daikin.cpp:4154
void setSwingVertical(const uint8_t position)
Set the Vertical Swing mode of the A/C.
Definition ir_Daikin.cpp:4026
static uint8_t convertSwingV(const stdAc::swingv_t position)
Convert a stdAc::swingv_t enum into it's native setting.
Definition ir_Daikin.cpp:4049
uint16_t getOnTime(void) const
Get the On Timer time to be sent to the A/C unit.
Definition ir_Daikin.cpp:4123
uint8_t * getRaw(void)
Get a PTR to the internal state/code for this protocol.
Definition ir_Daikin.cpp:3932
Class for handling detailed Daikin 64-bit A/C messages.
Definition ir_Daikin.h:1494
void setMode(const uint8_t mode)
Set the operating mode of the A/C.
Definition ir_Daikin.cpp:3499
bool getPowerToggle(void) const
Get the Power toggle setting of the A/C.
Definition ir_Daikin.cpp:3479
static uint8_t convertFan(const stdAc::fanspeed_t speed)
Convert a stdAc::fanspeed_t enum into it's native speed.
Definition ir_Daikin.cpp:3561
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition ir_Daikin.h:1505
Daikin64Protocol _
Definition ir_Daikin.h:1553
uint16_t getOnTime(void) const
Get the On Timer time to be sent to the A/C unit.
Definition ir_Daikin.cpp:3655
bool getOnTimeEnabled(void) const
Get the enable status of the On Timer.
Definition ir_Daikin.cpp:3651
bool getQuiet(void) const
Get the Quiet mode status of the A/C.
Definition ir_Daikin.cpp:3602
uint8_t getTemp(void) const
Get the current temperature setting.
Definition ir_Daikin.cpp:3491
void setOffTime(const uint16_t mins_since_midnight)
Set the Off Timer time for the A/C unit.
Definition ir_Daikin.cpp:3677
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a stdAc::opmode_t enum into its native mode.
Definition ir_Daikin.cpp:3515
void setRaw(const uint64_t new_state)
Set the internal state from a valid code for this protocol.
Definition ir_Daikin.cpp:3471
void stateReset(void)
Reset the internal state to a fixed known good state.
Definition ir_Daikin.cpp:3460
void setClock(const uint16_t mins_since_midnight)
Set the clock on the A/C unit.
Definition ir_Daikin.cpp:3632
bool getSleep(void) const
Get the Sleep mode of the A/C.
Definition ir_Daikin.cpp:3628
IRsend _irsend
instance of the IR send class
Definition ir_Daikin.h:1547
bool getSwingVertical(void) const
Get the Vertical Swing mode of the A/C.
Definition ir_Daikin.cpp:3620
void setTurbo(const bool on)
Set the Turbo (Powerful) mode of the A/C.
Definition ir_Daikin.cpp:3592
bool getTurbo(void) const
Get the Turbo (Powerful) mode status of the A/C.
Definition ir_Daikin.cpp:3588
void checksum(void)
Calculate and set the checksum values for the internal state.
Definition ir_Daikin.cpp:3457
uint16_t getOffTime(void) const
Get the Off Timer time to be sent to the A/C unit.
Definition ir_Daikin.cpp:3673
void setQuiet(const bool on)
Set the Quiet mode of the A/C.
Definition ir_Daikin.cpp:3606
void setSleep(const bool on)
Set the Sleep mode of the A/C.
Definition ir_Daikin.cpp:3624
static stdAc::opmode_t toCommonMode(const uint8_t mode)
Convert a native mode into its stdAc equivalent.
Definition ir_Daikin.cpp:3527
void setOnTimeEnabled(const bool on)
Set the enable status of the On Timer.
Definition ir_Daikin.cpp:3647
bool getOffTimeEnabled(void) const
Get the enable status of the Off Timer.
Definition ir_Daikin.cpp:3669
void send(const uint16_t repeat=kDaikin64DefaultRepeat)
Send the current internal state as an IR message.
Definition ir_Daikin.cpp:3431
void begin(void)
Set up hardware to be able to send a message.
Definition ir_Daikin.cpp:3426
uint64_t getRaw(void)
Get a copy of the internal state as a valid code for this protocol.
Definition ir_Daikin.cpp:3464
void setOnTime(const uint16_t mins_since_midnight)
Set the On Timer time for the A/C unit.
Definition ir_Daikin.cpp:3659
uint16_t getClock(void) const
Get the clock time to be sent to the A/C unit.
Definition ir_Daikin.cpp:3641
static bool validChecksum(const uint64_t state)
Verify the checksum is valid for a given state.
Definition ir_Daikin.cpp:3450
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:3717
static uint8_t calcChecksum(const uint64_t state)
Calculate the checksum for a given state.
Definition ir_Daikin.cpp:3439
uint8_t getFan(void) const
Get the current fan speed setting.
Definition ir_Daikin.cpp:3539
void setPowerToggle(const bool on)
Set the Power toggle setting of the A/C.
Definition ir_Daikin.cpp:3475
static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed)
Convert a native fan speed into its stdAc equivalent.
Definition ir_Daikin.cpp:3575
void setTemp(const uint8_t temp)
Set the temperature.
Definition ir_Daikin.cpp:3483
uint8_t getMode(void) const
Get the operating mode setting of the A/C.
Definition ir_Daikin.cpp:3495
void setOffTimeEnabled(const bool on)
Set the enable status of the Off Timer.
Definition ir_Daikin.cpp:3665
String toString(void) const
Convert the current internal state into a human readable string.
Definition ir_Daikin.cpp:3683
void setFan(const uint8_t fan)
Set the speed of the fan.
Definition ir_Daikin.cpp:3543
void setSwingVertical(const bool on)
Set the Vertical Swing mode of the A/C.
Definition ir_Daikin.cpp:3616
Class for handling detailed Daikin 280-bit A/C messages.
Definition ir_Daikin.h:1017
void disableOnTimer(void)
Clear and disable the On timer.
Definition ir_Daikin.cpp:395
void setWeeklyTimerEnable(const bool on)
Set the enable status of the Weekly Timer.
Definition ir_Daikin.cpp:467
void setEcono(const bool on)
Set the Economy mode of the A/C.
Definition ir_Daikin.cpp:351
bool getOnTimerEnabled(void) const
Get the enable status of the On Timer.
Definition ir_Daikin.cpp:408
void setMold(const bool on)
Set the Mould mode of the A/C.
Definition ir_Daikin.cpp:365
void disableOffTimer(void)
Clear and disable the Off timer.
Definition ir_Daikin.cpp:420
void setFan(const uint8_t fan)
Set the speed of the fan.
Definition ir_Daikin.cpp:240
void setTemp(const float temp)
Set the temperature.
Definition ir_Daikin.cpp:227
bool getSwingVertical(void) const
Get the Vertical Swing mode of the A/C.
Definition ir_Daikin.cpp:290
uint8_t getCurrentDay(void) const
Get the current day of the week to be sent to the A/C unit.
Definition ir_Daikin.cpp:461
IRsend _irsend
instance of the IR send class
Definition ir_Daikin.h:1085
uint8_t getFan(void) const
Get the current fan speed setting.
Definition ir_Daikin.cpp:254
static stdAc::opmode_t toCommonMode(const uint8_t mode)
Convert a native mode into its stdAc equivalent.
Definition ir_Daikin.cpp:508
void setQuiet(const bool on)
Set the Quiet mode of the A/C.
Definition ir_Daikin.cpp:308
void stateReset(void)
Reset the internal state to a fixed known good state.
Definition ir_Daikin.cpp:161
void setPowerful(const bool on)
Set the Powerful (Turbo) mode of the A/C.
Definition ir_Daikin.cpp:322
void on(void)
Change the power setting to On.
Definition ir_Daikin.cpp:208
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:454
float getTemp(void) const
Get the current temperature setting.
Definition ir_Daikin.cpp:235
bool getWeeklyTimerEnable(void) const
Get the enable status of the Weekly Timer.
Definition ir_Daikin.cpp:474
void setSwingHorizontal(const bool on)
Set the Horizontal Swing mode of the A/C.
Definition ir_Daikin.cpp:296
void off(void)
Change the power setting to Off.
Definition ir_Daikin.cpp:211
bool getComfort(void) const
Get the Comfort mode of the A/C.
Definition ir_Daikin.cpp:383
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition ir_Daikin.h:1028
bool getSensor(void) const
Get the Sensor mode of the A/C.
Definition ir_Daikin.cpp:345
static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed)
Convert a native fan speed into its stdAc equivalent.
Definition ir_Daikin.cpp:521
bool getMold(void) const
Get the Mould mode status of the A/C.
Definition ir_Daikin.cpp:371
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:197
void enableOffTimer(const uint16_t endtime)
Set the enable status & time of the Off Timer.
Definition ir_Daikin.cpp:414
uint16_t getOffTime(void) const
Get the Off Timer time to be sent to the A/C unit.
Definition ir_Daikin.cpp:427
void setSwingVertical(const bool on)
Set the Vertical Swing mode of the A/C.
Definition ir_Daikin.cpp:284
void send(const uint16_t repeat=kDaikinDefaultRepeat)
Send the current internal state as an IR message.
Definition ir_Daikin.cpp:123
void setPower(const bool on)
Change the power setting.
Definition ir_Daikin.cpp:215
String toString(void) const
Convert the current internal state into a human readable string.
Definition ir_Daikin.cpp:563
uint16_t getCurrentTime(void) const
Get the clock time to be sent to the A/C unit.
Definition ir_Daikin.cpp:447
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a stdAc::opmode_t enum into its native mode.
Definition ir_Daikin.cpp:481
void setComfort(const bool on)
Set the Comfort mode of the A/C.
Definition ir_Daikin.cpp:377
void enableOnTimer(const uint16_t starttime)
Set the enable status & time of the On Timer.
Definition ir_Daikin.cpp:389
uint8_t * getRaw(void)
Get a PTR to the internal state/code for this protocol.
Definition ir_Daikin.cpp:189
uint16_t getOnTime(void) const
Get the On Timer time to be sent to the A/C unit.
Definition ir_Daikin.cpp:402
static uint8_t convertFan(const stdAc::fanspeed_t speed)
Convert a stdAc::fanspeed_t enum into it's native speed.
Definition ir_Daikin.cpp:494
stdAc::state_t toCommon(void) const
Convert the current internal state into its stdAc::state_t equivalent.
Definition ir_Daikin.cpp:535
DaikinESPProtocol _
Definition ir_Daikin.h:1092
uint8_t getMode(void) const
Get the operating mode setting of the A/C.
Definition ir_Daikin.cpp:262
void checksum(void)
Calculate and set the checksum values for the internal state.
Definition ir_Daikin.cpp:153
bool getPower(void) const
Get the value of the current power setting.
Definition ir_Daikin.cpp:221
void begin(void)
Set up hardware to be able to send a message.
Definition ir_Daikin.cpp:118
static bool validChecksum(uint8_t state[], const uint16_t length=kDaikinStateLength)
Verify the checksum is valid for a given state.
Definition ir_Daikin.cpp:132
bool getQuiet(void) const
Get the Quiet mode status of the A/C.
Definition ir_Daikin.cpp:316
bool getOffTimerEnabled(void) const
Get the enable status of the Off Timer.
Definition ir_Daikin.cpp:433
void setSensor(const bool on)
Set the Sensor mode of the A/C.
Definition ir_Daikin.cpp:339
void setCurrentTime(const uint16_t mins_since_midnight)
Set the clock on the A/C unit.
Definition ir_Daikin.cpp:439
void setMode(const uint8_t mode)
Set the operating mode of the A/C.
Definition ir_Daikin.cpp:268
bool getEcono(void) const
Get the Economical mode of the A/C.
Definition ir_Daikin.cpp:359
bool getPowerful(void) const
Get the Powerful (Turbo) mode of the A/C.
Definition ir_Daikin.cpp:333
bool getSwingHorizontal(void) const
Get the Horizontal Swing mode of the A/C.
Definition ir_Daikin.cpp:302
Class for sending all basic IR protocols.
Definition IRsend.h:256
int8_t calibrate(uint16_t hz=38000U)
Calculate & set any offsets to account for execution times during sending.
Definition IRsend.cpp:286
const uint8_t kDaikin312SwingVLow
Definition ir_Daikin.h:859
const uint16_t kDaikin176Gap
Definition ir_Daikin.h:491
const uint8_t kDaikin160SwingVLow
Definition ir_Daikin.h:426
const uint8_t kDaikinHeat
Definition ir_Daikin.h:142
const uint8_t kDaikin312AnnounceCool
Cool mode.
Definition ir_Daikin.h:839
const uint16_t kDaikin160OneSpace
Definition ir_Daikin.h:418
const uint16_t kDaikin160Section1Length
Definition ir_Daikin.h:422
const uint64_t kDaikin64KnownGoodState
Definition ir_Daikin.h:668
const uint16_t kDaikinHdrMark
Definition ir_Daikin.h:173
const uint8_t kDaikin312HumidityDryHigh
Definition ir_Daikin.h:889
const uint64_t kDaikinFirstHeader64
Definition ir_Daikin.h:180
const uint8_t kDaikin64ChecksumSize
Definition ir_Daikin.h:682
const uint8_t kDaikin128BitCeiling
Definition ir_Daikin.h:577
const uint16_t kDaikin152HdrSpace
Definition ir_Daikin.h:623
const uint16_t kDaikin216Sections
Definition ir_Daikin.h:372
const uint8_t kDaikin2HumidityOff
Definition ir_Daikin.h:314
const uint8_t kDaikin312HumidityHeatMedium
Definition ir_Daikin.h:884
const uint8_t kDaikinLightDim
Definition ir_Daikin.h:167
const uint8_t kDaikinBeepQuiet
Definition ir_Daikin.h:163
const uint8_t kDaikin312SwingHOff
Definition ir_Daikin.h:874
const uint16_t kDaikin128HdrSpace
Definition ir_Daikin.h:555
const uint8_t kDaikin312SwingHAuto
Definition ir_Daikin.h:873
const uint8_t kDaikin64FanHigh
Definition ir_Daikin.h:676
const uint16_t kDaikin312LeaderMark
Definition ir_Daikin.h:810
const uint16_t kDaikin64ZeroSpace
Definition ir_Daikin.h:660
const uint8_t kDaikin176Heat
Definition ir_Daikin.h:497
const uint16_t kDaikin176Sections
Definition ir_Daikin.h:492
const uint8_t kDaikin2SwingVHighest
Definition ir_Daikin.h:288
const uint8_t kDaikin312AnnounceEye
Eye mode.
Definition ir_Daikin.h:850
const uint8_t kDaikin64FanQuiet
Definition ir_Daikin.h:677
const uint8_t kDaikin312EyeTimer3Hr
Definition ir_Daikin.h:898
const uint8_t kDaikin312SwingVAuto
Definition ir_Daikin.h:864
const uint16_t kDaikin128ZeroSpace
Definition ir_Daikin.h:558
const uint8_t kDaikin128Auto
Definition ir_Daikin.h:567
const uint16_t kDaikin64HdrSpace
Definition ir_Daikin.h:658
const uint8_t kDaikin64Cool
Definition ir_Daikin.h:670
const uint16_t kDaikin216OneSpace
Definition ir_Daikin.h:369
const uint16_t kDaikin152OneSpace
Definition ir_Daikin.h:625
const uint16_t kDaikin128SectionLength
Definition ir_Daikin.h:562
const uint8_t kDaikin64MinTemp
Definition ir_Daikin.h:679
const uint8_t kDaikinLightBright
Definition ir_Daikin.h:166
const uint16_t kDaikin2BitMark
Definition ir_Daikin.h:281
const uint16_t kDaikin200BitMark
Definition ir_Daikin.h:687
const uint16_t kDaikin312Sections
Definition ir_Daikin.h:821
const uint8_t kDaikin176Dry
Definition ir_Daikin.h:500
const uint16_t kDaikin216HdrMark
Definition ir_Daikin.h:366
const uint8_t kDaikin128Cool
Definition ir_Daikin.h:564
const uint16_t kDaikin312HdrGap
Definition ir_Daikin.h:819
const uint16_t kDaikin128LeaderSpace
Definition ir_Daikin.h:553
const uint8_t kDaikin64Heat
Definition ir_Daikin.h:672
const uint8_t kDaikin2HumidityHeatMedium
Definition ir_Daikin.h:316
const uint8_t kDaikin160SwingVHighest
Definition ir_Daikin.h:429
const uint16_t kDaikin200Section1Length
Definition ir_Daikin.h:692
const uint8_t kDaikin2SwingVSwing
Definition ir_Daikin.h:298
const uint16_t kDaikin160ZeroSpace
Definition ir_Daikin.h:419
const uint8_t kDaikin2SwingVHigh
Definition ir_Daikin.h:289
const uint16_t kDaikin312HdrMark
Definition ir_Daikin.h:814
const uint8_t kDaikin312HumidityDryLow
Definition ir_Daikin.h:887
const uint8_t kDaikin312AnnounceLight
Display light setting.
Definition ir_Daikin.h:851
const uint8_t kDaikinSection2Length
Definition ir_Daikin.h:156
const uint16_t kDaikin216HdrSpace
Definition ir_Daikin.h:367
const uint8_t kDaikin2SwingVOff
Definition ir_Daikin.h:296
const uint8_t kDaikin312AnnounceHeatHigh
High power heat mode.
Definition ir_Daikin.h:842
const uint8_t kDaikin312AnnounceDisable
No announcement.
Definition ir_Daikin.h:831
const uint8_t kDaikin176SwingHAuto
Definition ir_Daikin.h:504
const uint8_t kDaikin2HumidityDryHigh
Definition ir_Daikin.h:320
const uint8_t kDaikin2HumidityHeatLow
Definition ir_Daikin.h:315
const uint8_t kDaikin312SwingVBreeze
Definition ir_Daikin.h:861
const uint8_t kDaikin312AnnounceSwingH
Horizontal swing.
Definition ir_Daikin.h:846
const uint8_t kDaikin312SwingHMiddle
Definition ir_Daikin.h:870
const uint16_t kDaikin312HdrSpace
Definition ir_Daikin.h:815
const uint8_t kDaikin2SwingHSwing
Definition ir_Daikin.h:309
const uint8_t kDaikin312EyeTimer1Hr
Definition ir_Daikin.h:897
const uint16_t kDaikin312ZeroSpace
Definition ir_Daikin.h:817
const uint8_t kDaikin152LeaderBits
Definition ir_Daikin.h:621
const uint8_t kDaikin312AnnounceDry
Dry mode.
Definition ir_Daikin.h:840
const uint16_t kDaikin216ZeroSpace
Definition ir_Daikin.h:370
const uint8_t kDaikin176DryFanTemp
Definition ir_Daikin.h:502
const uint16_t kDaikin2Section1Length
Definition ir_Daikin.h:285
const uint16_t kDaikinHeaderLength
Definition ir_Daikin.h:153
const uint8_t kDaikin2HumidityDryMedium
Definition ir_Daikin.h:319
const uint8_t kDaikin64MaxTemp
Definition ir_Daikin.h:680
const uint8_t kDaikin216SwingOn
Definition ir_Daikin.h:377
const uint16_t kDaikin176BitMark
Definition ir_Daikin.h:488
const uint16_t kDaikin176Section1Length
Definition ir_Daikin.h:493
const uint16_t kDaikin176ZeroSpace
Definition ir_Daikin.h:490
const uint8_t kDaikin128FanMed
Definition ir_Daikin.h:570
const uint8_t kDaikinBeepLoud
Definition ir_Daikin.h:164
const uint8_t kDaikin128FanLow
Definition ir_Daikin.h:571
const uint8_t kDaikin312AnnounceFilter
Filter button.
Definition ir_Daikin.h:847
const uint16_t kDaikin128BitMark
Definition ir_Daikin.h:556
const uint16_t kDaikinMarkExcess
Definition ir_Daikin.h:172
const uint16_t kDaikin2LeaderMark
Definition ir_Daikin.h:276
const uint8_t kDaikin128FanQuiet
Definition ir_Daikin.h:573
const uint16_t kDaikin2HdrSpace
Definition ir_Daikin.h:280
const uint8_t kDaikin2SwingVBreeze
Definition ir_Daikin.h:294
const uint16_t kDaikin200Sections
Definition ir_Daikin.h:691
const uint16_t kDaikin312Section2Length
Definition ir_Daikin.h:823
const uint8_t kDaikin312AnnounceSwingV
Vertical swing.
Definition ir_Daikin.h:835
const uint8_t kDaikin64FanLow
Definition ir_Daikin.h:674
const uint16_t kDaikin128Freq
Definition ir_Daikin.h:551
const uint16_t kDaikin216Section1Length
Definition ir_Daikin.h:373
const uint8_t kDaikinCurIndex
Definition ir_Daikin.h:170
const uint8_t kDaikin64ChecksumOffset
Definition ir_Daikin.h:681
const uint8_t kDaikin176ModeButton
Definition ir_Daikin.h:501
const uint8_t kDaikin312AnnounceHumidity
Humidity setting.
Definition ir_Daikin.h:843
const uint8_t kDaikin312SwingVHighest
Definition ir_Daikin.h:855
const uint8_t kDaikinFan
Definition ir_Daikin.h:143
const uint8_t kDaikin160SwingVMiddle
Definition ir_Daikin.h:427
const uint16_t kDaikin128HdrMark
Definition ir_Daikin.h:554
const uint16_t kDaikin128Gap
Definition ir_Daikin.h:559
const uint16_t kDaikin312Gap
Definition ir_Daikin.h:812
const uint16_t kDaikin176HdrSpace
Definition ir_Daikin.h:487
const uint16_t kDaikinOneSpace
Definition ir_Daikin.h:177
const uint8_t kDaikin176Auto
Definition ir_Daikin.h:499
const uint16_t kDaikin160Freq
Definition ir_Daikin.h:414
const uint8_t kDaikin312HumidityAuto
Definition ir_Daikin.h:890
const uint16_t kDaikin64BitMark
Definition ir_Daikin.h:657
const uint8_t kDaikin64FanAuto
Definition ir_Daikin.h:673
const uint16_t kDaikin2OneSpace
Definition ir_Daikin.h:282
const uint16_t kDaikin200Freq
Definition ir_Daikin.h:684
const uint16_t kDaikin312SectionGap
Definition ir_Daikin.h:820
const uint8_t kDaikin2SwingVCirculate
Definition ir_Daikin.h:295
const uint8_t kDaikin312HumidityHeatHigh
Definition ir_Daikin.h:886
const uint16_t kDaikin2Sections
Definition ir_Daikin.h:284
const uint8_t kDaikin2MinCoolTemp
Definition ir_Daikin.h:324
const uint8_t kDaikin312SwingVOff
Definition ir_Daikin.h:863
const uint16_t kDaikin64Freq
Definition ir_Daikin.h:664
const uint8_t kDaikin312SwingHWide
Definition ir_Daikin.h:867
const uint16_t kDaikin160Section2Length
Definition ir_Daikin.h:423
const uint8_t kDaikin128MaxTemp
Definition ir_Daikin.h:575
const uint16_t kDaikin176Freq
Definition ir_Daikin.h:485
const uint8_t kDaikin2SwingVLowest
Definition ir_Daikin.h:293
const uint8_t kDaikin312AnnounceSleep
Sleep mode.
Definition ir_Daikin.h:854
const uint8_t kDaikin128FanHigh
Definition ir_Daikin.h:569
const uint16_t kDaikin312Freq
Definition ir_Daikin.h:809
const uint8_t kDaikin312AnnounceOffTimer
Off-timer.
Definition ir_Daikin.h:834
const uint16_t kDaikin128Sections
Definition ir_Daikin.h:561
const uint8_t kDaikinBeepOff
Definition ir_Daikin.h:165
const uint8_t kDaikin2SwingHAuto
Definition ir_Daikin.h:307
const uint8_t kDaikin312AnnouncePower
Power state.
Definition ir_Daikin.h:832
const uint8_t kDaikinFanMin
Definition ir_Daikin.h:146
const uint8_t kDaikin128BitWall
Definition ir_Daikin.h:576
const uint8_t kDaikin2SwingHRightMax
Definition ir_Daikin.h:306
const uint8_t kDaikin216SwingOff
Definition ir_Daikin.h:378
const uint16_t kDaikin160BitMark
Definition ir_Daikin.h:417
const uint16_t kDaikin152HdrMark
Definition ir_Daikin.h:622
const uint8_t kDaikin176SwingHOff
Definition ir_Daikin.h:505
const uint8_t kDaikin152DryTemp
Definition ir_Daikin.h:629
const uint16_t kDaikin176OneSpace
Definition ir_Daikin.h:489
const uint8_t kDaikin312EyeTimerOff
Definition ir_Daikin.h:896
const uint8_t kDaikinFanAuto
Definition ir_Daikin.h:149
const uint8_t kDaikinByteChecksum1
Definition ir_Daikin.h:159
const uint16_t kDaikin2Section2Length
Definition ir_Daikin.h:286
const uint16_t kDaikin160Gap
Definition ir_Daikin.h:420
const uint8_t kDaikin2SwingHRight
Definition ir_Daikin.h:305
const uint8_t kDaikin312SwingVSwing
Definition ir_Daikin.h:865
const uint16_t kDaikin312OneSpace
Definition ir_Daikin.h:818
const uint8_t kDaikin312SwingVUpperMiddle
Definition ir_Daikin.h:857
const uint16_t kDaikin2ZeroSpace
Definition ir_Daikin.h:283
const uint8_t kDaikin2SwingHWide
Definition ir_Daikin.h:301
const uint8_t kDaikin312AnnounceCancel
Cancel/clear off-timer.
Definition ir_Daikin.h:837
const uint16_t kDaikin160HdrMark
Definition ir_Daikin.h:415
const uint8_t kDaikin312SwingVCirculate
Definition ir_Daikin.h:862
const uint8_t kDaikin176FanMax
Definition ir_Daikin.h:503
const uint8_t kDaikin64FanMed
Definition ir_Daikin.h:675
const uint16_t kDaikin2LeaderSpace
Definition ir_Daikin.h:277
const uint16_t kDaikin176Section2Length
Definition ir_Daikin.h:494
const uint8_t kDaikin2SwingVUpperMiddle
Definition ir_Daikin.h:290
const uint8_t kDaikin312AnnouncePowerful
Powerful mode.
Definition ir_Daikin.h:848
const uint16_t kDaikin176HdrMark
Definition ir_Daikin.h:486
const uint8_t kDaikin312SwingHRightMax
Definition ir_Daikin.h:872
const uint8_t kDaikin64Fan
Definition ir_Daikin.h:671
const uint16_t kDaikin216Freq
Definition ir_Daikin.h:365
const uint16_t kDaikin152Freq
Definition ir_Daikin.h:620
const uint8_t kDaikin312AnnounceFanOnly
Fan-only/air purifier.
Definition ir_Daikin.h:849
const uint8_t kDaikin64Dry
Definition ir_Daikin.h:669
const uint16_t kDaikin200HdrMark
Definition ir_Daikin.h:685
const uint8_t kDaikin312HumidityOff
Definition ir_Daikin.h:880
const uint8_t kDaikinCool
Definition ir_Daikin.h:141
const uint8_t kDaikin312AnnounceTemp
Temperature setting.
Definition ir_Daikin.h:833
const uint8_t kDaikin160SwingVAuto
Definition ir_Daikin.h:430
const uint8_t kDaikin312SwingVLowerMiddle
Definition ir_Daikin.h:858
const uint16_t kDaikin200Section2Length
Definition ir_Daikin.h:693
const uint8_t kDaikin2SwingVAuto
Definition ir_Daikin.h:297
const uint8_t kDaikin2HumidityHeatHigh
Definition ir_Daikin.h:317
const uint8_t kDaikin2SwingHLeft
Definition ir_Daikin.h:303
const uint8_t kDaikinMaxTemp
Definition ir_Daikin.h:145
const uint8_t kDaikin2SwingHLeftMax
Definition ir_Daikin.h:302
const uint8_t kDaikin128MinTemp
Definition ir_Daikin.h:574
const uint8_t kDaikinSections
Definition ir_Daikin.h:154
const uint16_t kDaikin216Section2Length
Definition ir_Daikin.h:374
const uint8_t kDaikinFanQuiet
Definition ir_Daikin.h:150
const uint16_t kDaikin312LeaderSpace
Definition ir_Daikin.h:811
const uint8_t kDaikin312SwingVHigh
Definition ir_Daikin.h:856
const uint8_t kDaikinByteChecksum2
Definition ir_Daikin.h:160
const uint16_t kDaikin64OneSpace
Definition ir_Daikin.h:659
const uint8_t kDaikinSection1Length
Definition ir_Daikin.h:155
const uint8_t kDaikinFanMax
Definition ir_Daikin.h:148
const uint16_t kDaikin128LeaderMark
Definition ir_Daikin.h:552
const uint8_t kDaikinDry
Definition ir_Daikin.h:140
const uint16_t kDaikin2HdrMark
Definition ir_Daikin.h:279
const uint8_t kDaikin176Cool
Definition ir_Daikin.h:498
const uint8_t kDaikinFanMed
Definition ir_Daikin.h:147
const uint8_t kDaikin312AnnounceSwingSensor
Sensor-based wind dir.
Definition ir_Daikin.h:845
const uint16_t kDaikin216Gap
Definition ir_Daikin.h:371
const uint16_t kDaikin2Freq
Definition ir_Daikin.h:275
const uint16_t kDaikin312Section1Length
Definition ir_Daikin.h:822
const uint8_t kDaikin2SwingHMiddle
Definition ir_Daikin.h:304
const uint8_t kDaikin312SwingHRight
Definition ir_Daikin.h:871
const uint8_t kDaikinSwingOff
Definition ir_Daikin.h:152
const uint16_t kDaikin200OneSpace
Definition ir_Daikin.h:688
const uint8_t kDaikin312MinCoolTemp
Definition ir_Daikin.h:893
const uint16_t kDaikin64HdrMark
Definition ir_Daikin.h:656
const uint8_t kDaikin160SwingVHigh
Definition ir_Daikin.h:428
const uint8_t kDaikin312HumidityDryMedium
Definition ir_Daikin.h:888
const uint8_t kDaikin128Fan
Definition ir_Daikin.h:565
const uint8_t kDaikin2Tolerance
Definition ir_Daikin.h:287
const uint16_t kDaikinHdrSpace
Definition ir_Daikin.h:174
const uint8_t kDaikin128Dry
Definition ir_Daikin.h:563
const uint8_t kDaikin160SwingVLowest
Definition ir_Daikin.h:425
const uint16_t kDaikin128OneSpace
Definition ir_Daikin.h:557
const uint16_t kDaikin64LdrMark
Definition ir_Daikin.h:661
const uint8_t kDaikin2SwingVLow
Definition ir_Daikin.h:292
const uint8_t kDaikin312SwingHLeft
Definition ir_Daikin.h:869
const uint8_t kDaikin176Fan
Definition ir_Daikin.h:496
const uint16_t kDaikinZeroSpace
Definition ir_Daikin.h:176
const uint8_t kDaikin312AnnounceHeat
Heat mode.
Definition ir_Daikin.h:841
const uint8_t kDaikin312SwingHSwing
Definition ir_Daikin.h:875
const uint8_t kDaikin2HumidityDryLow
Definition ir_Daikin.h:318
const uint16_t kDaikin128FooterMark
Definition ir_Daikin.h:560
const uint8_t kDaikin152FanTemp
Definition ir_Daikin.h:630
const uint8_t kDaikin312Tolerance
Definition ir_Daikin.h:827
const uint8_t kDaikin312SwingVLowest
Definition ir_Daikin.h:860
const uint16_t kDaikin64LdrSpace
Definition ir_Daikin.h:663
const uint8_t kDaikin128Heat
Definition ir_Daikin.h:566
const uint16_t kDaikin216BitMark
Definition ir_Daikin.h:368
const uint8_t kDaikin2HumidityAuto
Definition ir_Daikin.h:321
const uint16_t kDaikin312BitMark
Definition ir_Daikin.h:816
const uint8_t kDaikin312SwingHLeftMax
Definition ir_Daikin.h:868
const uint8_t kDaikin312AnnounceFan
Fan speed.
Definition ir_Daikin.h:836
const uint8_t kDaikin312AnnounceBeep
Beep setting.
Definition ir_Daikin.h:852
const uint8_t kDaikin128FanPowerful
Definition ir_Daikin.h:572
const int8_t kDaikin64ToleranceDelta
Definition ir_Daikin.h:666
const uint8_t kDaikin312HumidityHeatLow
Definition ir_Daikin.h:882
const uint16_t kDaikinBitMark
Definition ir_Daikin.h:175
const uint16_t kDaikin64Gap
Definition ir_Daikin.h:662
const uint8_t kDaikin312AnnounceAuto
Auto (comfort) mode.
Definition ir_Daikin.h:838
const uint8_t kDaikin2SwingHOff
Definition ir_Daikin.h:308
const uint8_t kDaikinLightOff
Definition ir_Daikin.h:168
const uint8_t kDaikin64FanTurbo
Definition ir_Daikin.h:678
const uint8_t kDaikin312AnnounceAnnounce
Announcement setting.
Definition ir_Daikin.h:853
const uint8_t kDaikinSection3Length
Definition ir_Daikin.h:157
const uint8_t kDaikin312AnnounceCirculation
Air circulation.
Definition ir_Daikin.h:844
const uint8_t kDaikinTolerance
Definition ir_Daikin.h:171
const uint16_t kDaikin200HdrSpace
Definition ir_Daikin.h:686
const uint16_t kDaikin200Gap
Definition ir_Daikin.h:690
const uint16_t kDaikin152ZeroSpace
Definition ir_Daikin.h:626
const uint8_t kDaikin128FanAuto
Definition ir_Daikin.h:568
const uint16_t kDaikinGap
Definition ir_Daikin.h:178
const uint16_t kDaikin152Gap
Definition ir_Daikin.h:627
const uint16_t kDaikin160HdrSpace
Definition ir_Daikin.h:416
const uint8_t kDaikin64Overhead
Definition ir_Daikin.h:665
const uint8_t kDaikinSwingOn
Definition ir_Daikin.h:151
const uint8_t kDaikinMinTemp
Definition ir_Daikin.h:144
const uint8_t kDaikinAuto
Definition ir_Daikin.h:139
const uint16_t kDaikin200ZeroSpace
Definition ir_Daikin.h:689
const uint16_t kDaikinUnusedTime
Definition ir_Daikin.h:162
const uint8_t kDaikin2SwingVLowerMiddle
Definition ir_Daikin.h:291
const uint16_t kDaikin160Sections
Definition ir_Daikin.h:421
const uint8_t kDaikinCurBit
Definition ir_Daikin.h:169
const uint16_t kDaikin152BitMark
Definition ir_Daikin.h:624
const uint16_t kDaikin2Gap
Definition ir_Daikin.h:278
fanspeed_t
Common A/C settings for Fan Speeds.
Definition IRsend.h:67
opmode_t
Common A/C settings for A/C operating modes.
Definition IRsend.h:55
swingh_t
Common A/C settings for Horizontal Swing.
Definition IRsend.h:106
swingv_t
Common A/C settings for Vertical Swing.
Definition IRsend.h:80
Structure to hold a common A/C state.
Definition IRsend.h:120
Native representation of a Daikin128 A/C message.
Definition ir_Daikin.h:508
uint8_t Mode
Definition ir_Daikin.h:514
uint8_t Sum2
Definition ir_Daikin.h:547
uint8_t ClockHours
Definition ir_Daikin.h:519
uint8_t OnHours
Definition ir_Daikin.h:521
uint8_t OffHours
Definition ir_Daikin.h:525
uint8_t Temp
Definition ir_Daikin.h:529
uint8_t OnTimer
Definition ir_Daikin.h:523
uint8_t raw[kDaikin128StateLength]
The state of the IR remote.
Definition ir_Daikin.h:509
uint8_t Sleep
Definition ir_Daikin.h:532
uint8_t Sum1
Definition ir_Daikin.h:535
uint8_t Econo
Definition ir_Daikin.h:541
uint8_t OnHalfHour
Definition ir_Daikin.h:522
uint8_t Ceiling
Definition ir_Daikin.h:539
uint8_t OffHalfHour
Definition ir_Daikin.h:526
uint8_t SwingV
Definition ir_Daikin.h:531
uint8_t OffTimer
Definition ir_Daikin.h:527
uint8_t Power
Definition ir_Daikin.h:534
uint8_t Fan
Definition ir_Daikin.h:515
uint8_t Wall
Definition ir_Daikin.h:542
uint8_t pad[5]
Definition ir_Daikin.h:545
uint8_t ClockMins
Definition ir_Daikin.h:517
Native representation of a Daikin152 A/C message.
Definition ir_Daikin.h:580
uint8_t Comfort
Definition ir_Daikin.h:609
uint8_t raw[kDaikin152StateLength]
The state of the IR remote.
Definition ir_Daikin.h:581
uint8_t Sensor
Definition ir_Daikin.h:611
uint8_t pad1[4]
Definition ir_Daikin.h:599
uint8_t Temp
Definition ir_Daikin.h:592
uint8_t Power
Definition ir_Daikin.h:586
uint8_t SwingV
Definition ir_Daikin.h:596
uint8_t Powerful
Definition ir_Daikin.h:601
uint8_t Fan
Definition ir_Daikin.h:597
uint8_t pad2[2]
Definition ir_Daikin.h:606
uint8_t Sum
Definition ir_Daikin.h:616
uint8_t Quiet
Definition ir_Daikin.h:603
uint8_t pad0[5]
Definition ir_Daikin.h:584
uint8_t Econo
Definition ir_Daikin.h:610
uint8_t Mode
Definition ir_Daikin.h:588
Native representation of a Daikin160 A/C message.
Definition ir_Daikin.h:381
uint8_t Sum2
Definition ir_Daikin.h:410
uint8_t Fan
Definition ir_Daikin.h:405
uint8_t pad0[6]
Definition ir_Daikin.h:385
uint8_t Power
Definition ir_Daikin.h:391
uint8_t pad1[5]
Definition ir_Daikin.h:389
uint8_t Mode
Definition ir_Daikin.h:393
uint8_t pad2[2]
Definition ir_Daikin.h:399
uint8_t Temp
Definition ir_Daikin.h:402
uint8_t Sum1
Definition ir_Daikin.h:387
uint8_t SwingV
Definition ir_Daikin.h:397
uint8_t raw[kDaikin160StateLength]
The state of the IR remote.
Definition ir_Daikin.h:382
Native representation of a Daikin176 A/C message.
Definition ir_Daikin.h:433
uint8_t Mode
Definition ir_Daikin.h:467
uint8_t AltMode
Definition ir_Daikin.h:460
uint8_t SwingH
Definition ir_Daikin.h:476
uint8_t Sum1
Definition ir_Daikin.h:448
uint8_t Id2
Definition ir_Daikin.h:454
uint8_t Id1
Definition ir_Daikin.h:441
uint8_t Power
Definition ir_Daikin.h:465
uint8_t pad3[2]
Definition ir_Daikin.h:479
uint8_t raw[kDaikin176StateLength]
The state of the IR remote.
Definition ir_Daikin.h:434
uint8_t Fan
Definition ir_Daikin.h:477
uint8_t pad2[2]
Definition ir_Daikin.h:470
uint8_t Temp
Definition ir_Daikin.h:473
uint8_t Sum2
Definition ir_Daikin.h:481
uint8_t ModeButton
Definition ir_Daikin.h:463
Native representation of a Daikin216 A/C message.
Definition ir_Daikin.h:327
uint8_t SwingV
Definition ir_Daikin.h:348
uint8_t Sum2
Definition ir_Daikin.h:361
uint8_t pad2[3]
Definition ir_Daikin.h:354
uint8_t Powerful
Definition ir_Daikin.h:356
uint8_t pad1[5]
Definition ir_Daikin.h:335
uint8_t SwingH
Definition ir_Daikin.h:351
uint8_t Fan
Definition ir_Daikin.h:349
uint8_t pad0[7]
Definition ir_Daikin.h:331
uint8_t raw[kDaikin216StateLength]
The state of the IR remote.
Definition ir_Daikin.h:328
uint8_t Power
Definition ir_Daikin.h:337
uint8_t Temp
Definition ir_Daikin.h:343
uint8_t Mode
Definition ir_Daikin.h:339
uint8_t pad3[4]
Definition ir_Daikin.h:359
uint8_t Sum1
Definition ir_Daikin.h:333
Native representation of a Daikin2 A/C message.
Definition ir_Daikin.h:184
uint64_t Clean
Definition ir_Daikin.h:206
uint64_t SleepTimer
Definition ir_Daikin.h:265
uint64_t Humidity
Definition ir_Daikin.h:241
uint64_t Mold
Definition ir_Daikin.h:204
uint64_t EyeAuto
Definition ir_Daikin.h:214
uint64_t SwingH
Definition ir_Daikin.h:218
uint64_t Power
Definition ir_Daikin.h:230
uint64_t CurrentTime
Definition ir_Daikin.h:194
uint64_t OnTime
Definition ir_Daikin.h:250
uint64_t FreshAirHigh
Definition ir_Daikin.h:208
uint8_t raw[kDaikin2StateLength]
The state of the IR remote.
Definition ir_Daikin.h:187
uint64_t FreshAir
Definition ir_Daikin.h:202
uint64_t Fan
Definition ir_Daikin.h:244
uint64_t OffTimer
Definition ir_Daikin.h:232
uint8_t Sum2
Definition ir_Daikin.h:271
uint64_t OnTimer
Definition ir_Daikin.h:231
uint64_t Econo
Definition ir_Daikin.h:262
uint64_t HumidOn
Definition ir_Daikin.h:239
uint64_t Eye
Definition ir_Daikin.h:261
uint64_t Temp
Definition ir_Daikin.h:238
uint64_t OffTime
Definition ir_Daikin.h:251
uint64_t Sum1
Definition ir_Daikin.h:223
uint8_t pad[3]
Definition ir_Daikin.h:186
uint64_t Powerful
Definition ir_Daikin.h:253
uint64_t Mode
Definition ir_Daikin.h:234
uint64_t Power2
Definition ir_Daikin.h:196
uint64_t Purify
Definition ir_Daikin.h:264
uint64_t SwingV
Definition ir_Daikin.h:220
uint64_t Light
Definition ir_Daikin.h:199
uint64_t Beep
Definition ir_Daikin.h:200
uint64_t Quiet
Definition ir_Daikin.h:255
Native representation of a Daikin312 A/C message.
Definition ir_Daikin.h:697
uint64_t Humidity
Definition ir_Daikin.h:771
uint64_t Clean
Definition ir_Daikin.h:740
uint64_t Power2
Definition ir_Daikin.h:709
uint64_t Fan
Definition ir_Daikin.h:774
uint64_t OnTimer
Definition ir_Daikin.h:762
uint64_t Power
Definition ir_Daikin.h:761
uint8_t pad[3]
Definition ir_Daikin.h:699
uint64_t SwingV
Definition ir_Daikin.h:773
uint64_t Sum1
Definition ir_Daikin.h:749
uint64_t SleepTimer
Definition ir_Daikin.h:799
uint64_t Beep
Definition ir_Daikin.h:732
uint64_t AnnounceItem
Definition ir_Daikin.h:725
uint64_t Mold
Definition ir_Daikin.h:717
uint64_t Eye
Definition ir_Daikin.h:795
uint64_t OffTime
Definition ir_Daikin.h:782
uint64_t Light
Definition ir_Daikin.h:731
uint64_t Announce
Definition ir_Daikin.h:791
uint8_t Sum2
Definition ir_Daikin.h:805
uint64_t Powerful
Definition ir_Daikin.h:784
uint64_t Quiet
Definition ir_Daikin.h:786
uint64_t OffTimer
Definition ir_Daikin.h:763
uint64_t EyeAuto
Definition ir_Daikin.h:797
uint64_t OnTime
Definition ir_Daikin.h:781
uint64_t Temp
Definition ir_Daikin.h:768
uint64_t FreshAir
Definition ir_Daikin.h:715
uint64_t SwingH
Definition ir_Daikin.h:777
uint64_t Econo
Definition ir_Daikin.h:796
uint64_t EyeTimer
Definition ir_Daikin.h:713
uint64_t Mode
Definition ir_Daikin.h:765
uint64_t FreshAirHigh
Definition ir_Daikin.h:721
uint64_t Purify
Definition ir_Daikin.h:798
uint8_t raw[kDaikin312StateLength]
The state of the IR remote.
Definition ir_Daikin.h:700
uint64_t HumidOn
Definition ir_Daikin.h:769
uint64_t CurrentTime
Definition ir_Daikin.h:707
Native representation of a Daikin64 A/C message.
Definition ir_Daikin.h:633
uint8_t ClockHours
Definition ir_Daikin.h:640
uint8_t OnHalfHour
Definition ir_Daikin.h:642
uint8_t Fan
Definition ir_Daikin.h:638
uint8_t Temp
Definition ir_Daikin.h:647
uint8_t Mode
Definition ir_Daikin.h:637
uint8_t Power
Definition ir_Daikin.h:651
uint8_t ClockMins
Definition ir_Daikin.h:639
uint8_t OnTimer
Definition ir_Daikin.h:643
uint8_t SwingV
Definition ir_Daikin.h:648
uint8_t OffTimer
Definition ir_Daikin.h:646
uint8_t OffHours
Definition ir_Daikin.h:644
uint8_t OnHours
Definition ir_Daikin.h:641
uint64_t raw
The state of the IR remote.
Definition ir_Daikin.h:634
uint8_t Sleep
Definition ir_Daikin.h:649
uint8_t Sum
Definition ir_Daikin.h:652
uint8_t OffHalfHour
Definition ir_Daikin.h:645
Native representation of a Daikin A/C message.
Definition ir_Daikin.h:71
uint64_t Temp
Definition ir_Daikin.h:102
uint64_t Sum1
Definition ir_Daikin.h:81
uint64_t Powerful
Definition ir_Daikin.h:116
uint64_t OffTime
Definition ir_Daikin.h:114
uint64_t Sum2
Definition ir_Daikin.h:90
uint8_t WeeklyTimer
Definition ir_Daikin.h:128
uint64_t Comfort
Definition ir_Daikin.h:78
uint8_t raw[kDaikinStateLength]
The state of the IR remote.
Definition ir_Daikin.h:72
uint8_t Econo
Definition ir_Daikin.h:126
uint8_t Mold
Definition ir_Daikin.h:131
uint64_t Power
Definition ir_Daikin.h:95
uint8_t Sum3
Definition ir_Daikin.h:134
uint64_t OnTime
Definition ir_Daikin.h:113
uint8_t Sensor
Definition ir_Daikin.h:125
uint64_t OnTimer
Definition ir_Daikin.h:96
uint64_t SwingV
Definition ir_Daikin.h:107
uint64_t OffTimer
Definition ir_Daikin.h:97
uint64_t Fan
Definition ir_Daikin.h:108
uint64_t CurrentDay
Definition ir_Daikin.h:87
uint64_t Mode
Definition ir_Daikin.h:99
uint64_t SwingH
Definition ir_Daikin.h:110
uint64_t CurrentTime
Definition ir_Daikin.h:86
uint64_t Quiet
Definition ir_Daikin.h:118