IRremoteIDF
Infrared send & receive for ESP-IDF
Loading...
Searching...
No Matches
ir_Hitachi.h
Go to the documentation of this file.
1// Copyright 2018-2020 David Conran
12
13// Supports:
14// Brand: Hitachi, Model: RAS-35THA6 remote
15// Brand: Hitachi, Model: LT0541-HTA remote (HITACHI_AC1)
16// Brand: Hitachi, Model: Series VI A/C (Circa 2007) (HITACHI_AC1)
17// Brand: Hitachi, Model: RAR-8P2 remote (HITACHI_AC424)
18// Brand: Hitachi, Model: RAS-AJ25H A/C (HITACHI_AC424)
19// Brand: Hitachi, Model: PC-LH3B (HITACHI_AC3)
20// Brand: Hitachi, Model: KAZE-312KSDP A/C (HITACHI_AC1)
21// Brand: Hitachi, Model: R-LT0541-HTA/Y.K.1.1-1 V2.3 remote (HITACHI_AC1)
22// Brand: Hitachi, Model: RAS-22NK A/C (HITACHI_AC344)
23// Brand: Hitachi, Model: RF11T1 remote (HITACHI_AC344)
24// Brand: Hitachi, Model: RF07T4 remote (HITACHI_AC344)
25// Brand: Hitachi, Model: RAR-2P2 remote (HITACHI_AC264)
26// Brand: Hitachi, Model: RAK-25NH5 A/C (HITACHI_AC264)
27// Brand: Hitachi, Model: RAR-3U3 remote (HITACHI_AC296)
28// Brand: Hitachi, Model: RAS-70YHA3 A/C (HITACHI_AC296)
29
30#ifndef IR_HITACHI_H_
31#define IR_HITACHI_H_
32
33#define __STDC_LIMIT_MACROS
34#include <stdint.h>
35#include "IRplatform.h"
36#include "IRremoteESP8266.h"
37#include "IRsend.h"
38#ifdef UNIT_TEST
39#include "IRsend_test.h"
40#endif
41
45 struct {
46 // Byte 0~9
47 uint8_t pad0[10];
48 // Byte 10
49 uint8_t Mode :8;
50 // Byte 11
51 uint8_t Temp :8;
52 // Byte 12
53 uint8_t :8;
54 // Byte 13
55 uint8_t Fan :8;
56 // Byte 14
57 uint8_t :7;
58 uint8_t SwingV :1;
59 // Byte 15
60 uint8_t :7;
61 uint8_t SwingH :1;
62 // Byte 16
63 uint8_t :8;
64 // Byte 17
65 uint8_t Power :1;
66 uint8_t :7;
67 // Byte 18~26
68 uint8_t pad1[9];
69 // Byte 27
70 uint8_t Sum :8;
71 };
72};
73
74// Constants
75const uint16_t kHitachiAcFreq = 38000; // Hz.
76const uint8_t kHitachiAcAuto = 2;
77const uint8_t kHitachiAcHeat = 3;
78const uint8_t kHitachiAcCool = 4;
79const uint8_t kHitachiAcDry = 5;
80const uint8_t kHitachiAcFan = 0xC;
81const uint8_t kHitachiAcFanAuto = 1;
82const uint8_t kHitachiAcFanLow = 2;
83const uint8_t kHitachiAcFanMed = 3;
84const uint8_t kHitachiAcFanHigh = 5;
85const uint8_t kHitachiAcMinTemp = 16; // 16C
86const uint8_t kHitachiAcMaxTemp = 32; // 32C
87const uint8_t kHitachiAcAutoTemp = 23; // 23C
88
92 struct {
93 // Byte 0~10
94 uint8_t pad0[11];
95 // Byte 11
96 uint8_t Button :8;
97 // Byte 12
98 uint8_t :8;
99 // Byte 13
100 uint8_t :2;
101 uint8_t Temp :6;
102 // Byte 14~24
103 uint8_t pad1[11];
104 // Byte 25
105 uint8_t Mode :4;
106 uint8_t Fan :4;
107 // Byte 26
108 uint8_t :8;
109 // Byte 27
110 uint8_t :4;
111 uint8_t Power :1;
112 uint8_t :3;
113 // Byte 28~34
114 uint8_t pad2[7];
115 // Byte 35
116 uint8_t SwingH :3;
117 uint8_t :5;
118 // Byte 36
119 uint8_t :8;
120 // Byte 37
121 uint8_t :5;
122 uint8_t SwingV :1;
123 uint8_t :2;
124 };
125};
126
127// HitachiAc424 & HitachiAc344
128const uint8_t kHitachiAc424ButtonPowerMode = 0x13;
129const uint8_t kHitachiAc424ButtonFan = 0x42;
130const uint8_t kHitachiAc424ButtonTempDown = 0x43;
131const uint8_t kHitachiAc424ButtonTempUp = 0x44;
132const uint8_t kHitachiAc424ButtonSwingV = 0x81;
133const uint8_t kHitachiAc424ButtonSwingH = 0x8C;
140
141const uint8_t kHitachiAc424MinTemp = 16; // 16C
142const uint8_t kHitachiAc424MaxTemp = 32; // 32C
145const uint8_t kHitachiAc424FanTemp = 27; // 27C
146
147const uint8_t kHitachiAc424Fan = 1;
148const uint8_t kHitachiAc424Cool = 3;
149const uint8_t kHitachiAc424Dry = 5;
150const uint8_t kHitachiAc424Heat = 6;
155
156const uint8_t kHitachiAc424FanMin = 1;
157const uint8_t kHitachiAc424FanLow = 2;
158const uint8_t kHitachiAc424FanMedium = 3;
159const uint8_t kHitachiAc424FanHigh = 4;
160const uint8_t kHitachiAc424FanAuto = 5;
161const uint8_t kHitachiAc424FanMax = 6;
162const uint8_t kHitachiAc424FanMaxDry = 2;
169
170const uint8_t kHitachiAc344SwingHAuto = 0; // 0b000
171const uint8_t kHitachiAc344SwingHRightMax = 1; // 0b001
172const uint8_t kHitachiAc344SwingHRight = 2; // 0b010
173const uint8_t kHitachiAc344SwingHMiddle = 3; // 0b011
174const uint8_t kHitachiAc344SwingHLeft = 4; // 0b100
175const uint8_t kHitachiAc344SwingHLeftMax = 5; // 0b101
176
177
181 struct {
182 // Byte 0~2
183 uint8_t pad[3];
184 // Byte 3
185 uint8_t :6;
186 uint8_t Model :2;
187 // Byte 4
188 uint8_t :8;
189 // Byte 5
190 uint8_t Fan :4;
191 uint8_t Mode :4;
192 // Byte 6
193 uint8_t :2;
194 uint8_t Temp :5; // stored in LSB order.
195 uint8_t :1;
196 // Byte 7
197 uint8_t OffTimerLow :8; // nr. of minutes
198 // Byte 8
199 uint8_t OffTimerHigh :8; // & in LSB order.
200 // Byte 9
201 uint8_t OnTimerLow :8; // nr. of minutes
202 // Byte 10
203 uint8_t OnTimerHigh :8; // & in LSB order.
204 // Byte 11
205 uint8_t SwingToggle :1;
206 uint8_t Sleep :3;
207 uint8_t PowerToggle :1;
208 uint8_t Power :1;
209 uint8_t SwingV :1;
210 uint8_t SwingH :1;
211 // Byte 12
212 uint8_t Sum :8;
213 };
214};
215// HitachiAc1
216// Model
217const uint8_t kHitachiAc1Model_A = 0b10;
218const uint8_t kHitachiAc1Model_B = 0b01;
219
220// Mode & Fan
221const uint8_t kHitachiAc1Dry = 0b0010; // 2
222const uint8_t kHitachiAc1Fan = 0b0100; // 4
223const uint8_t kHitachiAc1Cool = 0b0110; // 6
224const uint8_t kHitachiAc1Heat = 0b1001; // 9
225const uint8_t kHitachiAc1Auto = 0b1110; // 14
226const uint8_t kHitachiAc1FanAuto = 1; // 0b0001
227const uint8_t kHitachiAc1FanHigh = 2; // 0b0010
228const uint8_t kHitachiAc1FanMed = 4; // 0b0100
229const uint8_t kHitachiAc1FanLow = 8; // 0b1000
230
231// Temp
232const uint8_t kHitachiAc1TempSize = 5; // Mask 0b01111100
233const uint8_t kHitachiAc1TempDelta = 7;
234const uint8_t kHitachiAc1TempAuto = 25; // Celsius
235// Timer
236const uint8_t kHitachiAc1TimerSize = 16; // Mask 0b1111111111111111
237// Sleep
238const uint8_t kHitachiAc1SleepOff = 0b000;
239const uint8_t kHitachiAc1Sleep1 = 0b001;
240const uint8_t kHitachiAc1Sleep2 = 0b010;
241const uint8_t kHitachiAc1Sleep3 = 0b011;
242const uint8_t kHitachiAc1Sleep4 = 0b100;
243// Checksum
245
246
250 struct {
251 // Bytes 0~10
252 uint8_t pad0[11];
253 // Byte 11
254 uint8_t Button :8;
255 // Byte 12
256 uint8_t :8;
257 // Byte 13
258 uint8_t :2;
259 uint8_t Temp :6;
260 // Byte 14
261 uint8_t :8;
262 // Bytes 14~24
263 uint8_t pad1[10];
264 // Byte 25
265 uint8_t Mode :4;
266 uint8_t Fan :4;
267 // Byte 26
268 uint8_t :8;
269 // Byte 27
270 uint8_t :4;
271 uint8_t Power :1;
272 uint8_t :3;
273 // Byte 28
274 uint8_t :8;
275 // Bytes 29~32
276 uint8_t pad2[4];
277 };
278};
279
280// HitachiAc264
297
298// HitachiAc296
301 struct {
302 // Byte 0~12
303 uint8_t pad0[13];
304 // Byte 13
305 uint8_t :2;
306 uint8_t Temp :5; // LSB
307 uint8_t :1;
308 uint8_t :8;
309 // Byte 15~16
310 uint8_t :8;
311 uint8_t :8;
312 // Byte 17~24
313 uint8_t OffTimerLow :8; // LSB
314 uint8_t /* Parity */ :8;
315 uint8_t OffTimerHigh :8;
316 uint8_t /* Parity */ :8;
317 uint8_t OnTimerLow :8; // LSB
318 uint8_t /* Parity */ :8;
319 uint8_t OnTimerHigh :4;
320 uint8_t OffTimerActive :1;
321 uint8_t OnTimerActive :1;
322 uint8_t :2;
323 uint8_t /* Parity */ :8;
324 // Byte 25~26
325 uint8_t Mode :4;
326 uint8_t Fan :3;
327 uint8_t :1;
328 uint8_t :8;
329 // Byte 27~28
330 uint8_t :4;
331 uint8_t Power :1;
332 uint8_t :2;
333 uint8_t TimerActive :1;
334 uint8_t :8;
335 // Byte 29~34
336 uint8_t pad1[6];
337 // Byte 35~36
338 uint8_t :4;
339 uint8_t Humidity :4; // LSB
340 uint8_t :8;
341 };
342};
343
344// Mode & Fan
345const uint8_t kHitachiAc296Cool = 0b0011;
346const uint8_t kHitachiAc296DryCool = 0b0100;
347const uint8_t kHitachiAc296Dehumidify = 0b0101;
348const uint8_t kHitachiAc296Heat = 0b0110;
349const uint8_t kHitachiAc296Auto = 0b0111;
350const uint8_t kHitachiAc296AutoDehumidifying = 0b1001;
351const uint8_t kHitachiAc296QuickLaundry = 0b1010;
352const uint8_t kHitachiAc296CondensationControl = 0b1100;
353
354const uint8_t kHitachiAc296FanSilent = 0b001;
355const uint8_t kHitachiAc296FanLow = 0b010;
356const uint8_t kHitachiAc296FanMedium = 0b011;
357const uint8_t kHitachiAc296FanHigh = 0b100;
358const uint8_t kHitachiAc296FanAuto = 0b101;
359
360const uint8_t kHitachiAc296TempAuto = 1; // Special value for "Auto" op mode.
361const uint8_t kHitachiAc296MinTemp = 16;
362const uint8_t kHitachiAc296MaxTemp = 31; // Max value you can store in 5 bits.
363
364const uint8_t kHitachiAc296PowerOn = 1;
365const uint8_t kHitachiAc296PowerOff = 0;
366
367
368// Classes
372 public:
373 explicit IRHitachiAc(const uint16_t pin, const bool inverted = false,
374 const bool use_modulation = true);
375 void stateReset(void);
376#if SEND_HITACHI_AC
377 void send(const uint16_t repeat = kHitachiAcDefaultRepeat);
382 int8_t calibrate(void) { return _irsend.calibrate(); }
383#endif // SEND_HITACHI_AC
384 void begin(void);
385 void on(void);
386 void off(void);
387 void setPower(const bool on);
388 bool getPower(void) const;
389 void setTemp(const uint8_t temp);
390 uint8_t getTemp(void) const;
391 void setFan(const uint8_t speed);
392 uint8_t getFan(void) const;
393 void setMode(const uint8_t mode);
394 uint8_t getMode(void) const;
395 void setSwingVertical(const bool on);
396 bool getSwingVertical(void) const;
397 void setSwingHorizontal(const bool on);
398 bool getSwingHorizontal(void) const;
399 uint8_t* getRaw(void);
400 void setRaw(const uint8_t new_code[],
401 const uint16_t length = kHitachiAcStateLength);
402 static bool validChecksum(const uint8_t state[],
403 const uint16_t length = kHitachiAcStateLength);
404 static uint8_t calcChecksum(const uint8_t state[],
405 const uint16_t length = kHitachiAcStateLength);
406 static uint8_t convertMode(const stdAc::opmode_t mode);
407 static uint8_t convertFan(const stdAc::fanspeed_t speed);
408 static stdAc::opmode_t toCommonMode(const uint8_t mode);
409 static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed);
410 stdAc::state_t toCommon(void) const;
411 String toString(void) const;
412#ifndef UNIT_TEST
413
414 private:
416#else // UNIT_TEST
418 IRsendTest _irsend;
420#endif // UNIT_TEST
422 void checksum(const uint16_t length = kHitachiAcStateLength);
424};
425
429 public:
430 explicit IRHitachiAc1(const uint16_t pin, const bool inverted = false,
431 const bool use_modulation = true);
432
433 void stateReset(void);
434#if SEND_HITACHI_AC1
435 void send(const uint16_t repeat = kHitachiAcDefaultRepeat);
440 int8_t calibrate(void) { return _irsend.calibrate(); }
441#endif // SEND_HITACHI_AC1
442 void begin(void);
443 void on(void);
444 void off(void);
445 void setModel(const hitachi_ac1_remote_model_t model);
447 void setPower(const bool on);
448 bool getPower(void) const;
449 void setPowerToggle(const bool on);
450 bool getPowerToggle(void) const;
451 void setTemp(const uint8_t temp);
452 uint8_t getTemp(void) const;
453 void setFan(const uint8_t speed, const bool force = false);
454 uint8_t getFan(void) const;
455 void setMode(const uint8_t mode);
456 uint8_t getMode(void) const;
457 void setSwingToggle(const bool toggle);
458 bool getSwingToggle(void) const;
459 void setSwingV(const bool on);
460 bool getSwingV(void) const;
461 void setSwingH(const bool on);
462 bool getSwingH(void) const;
463 void setSleep(const uint8_t mode);
464 uint8_t getSleep(void) const;
465 void setOnTimer(const uint16_t mins);
466 uint16_t getOnTimer(void) const;
467 void setOffTimer(const uint16_t mins);
468 uint16_t getOffTimer(void) const;
469 uint8_t* getRaw(void);
470 void setRaw(const uint8_t new_code[],
471 const uint16_t length = kHitachiAc1StateLength);
472 static bool validChecksum(const uint8_t state[],
473 const uint16_t length = kHitachiAc1StateLength);
474 static uint8_t calcChecksum(const uint8_t state[],
475 const uint16_t length = kHitachiAc1StateLength);
476 static uint8_t convertMode(const stdAc::opmode_t mode);
477 static uint8_t convertFan(const stdAc::fanspeed_t speed);
478 static stdAc::opmode_t toCommonMode(const uint8_t mode);
479 static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed);
480 stdAc::state_t toCommon(void) const;
481 String toString(void) const;
482#ifndef UNIT_TEST
483
484 private:
486#else // UNIT_TEST
488 IRsendTest _irsend;
490#endif // UNIT_TEST
492 void checksum(const uint16_t length = kHitachiAc1StateLength);
493};
494
497 friend class IRHitachiAc264;
498 friend class IRHitachiAc344;
499 public:
500 explicit IRHitachiAc424(const uint16_t pin, const bool inverted = false,
501 const bool use_modulation = true);
502 virtual void stateReset(void);
503#if SEND_HITACHI_AC424
504 virtual void send(const uint16_t repeat = kHitachiAcDefaultRepeat);
509 int8_t calibrate(void) { return _irsend.calibrate(); }
510#endif // SEND_HITACHI_AC424
511 void begin(void);
512 void on(void);
513 void off(void);
514 void setPower(const bool on);
515 bool getPower(void) const;
516 void setTemp(const uint8_t temp, bool setPrevious = true);
517 uint8_t getTemp(void) const;
518 virtual void setFan(const uint8_t speed);
519 uint8_t getFan(void) const;
520 uint8_t getButton(void) const;
521 void setButton(const uint8_t button);
522 void setSwingVToggle(const bool on);
523 bool getSwingVToggle(void) const;
524 void setMode(const uint8_t mode);
525 uint8_t getMode(void) const;
526 uint8_t* getRaw(void);
527 virtual void setRaw(const uint8_t new_code[],
528 const uint16_t length = kHitachiAc424StateLength);
529 static uint8_t convertMode(const stdAc::opmode_t mode);
530 virtual uint8_t convertFan(const stdAc::fanspeed_t speed) const;
531 static stdAc::opmode_t toCommonMode(const uint8_t mode);
532 virtual stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed) const;
533 virtual stdAc::state_t toCommon(void) const;
534 virtual String toString(void) const;
535#ifndef UNIT_TEST
536
537 private:
539#else // UNIT_TEST
541 IRsendTest _irsend;
543#endif // UNIT_TEST
545 void setInvertedStates(void);
546 String _toString(void) const;
548};
549
552 public:
553 explicit IRHitachiAc3(const uint16_t pin, const bool inverted = false,
554 const bool use_modulation = true);
555
556 void stateReset(void);
557#if SEND_HITACHI_AC3
558 void send(const uint16_t repeat = kHitachiAcDefaultRepeat);
563 int8_t calibrate(void) { return _irsend.calibrate(); }
564#endif // SEND_HITACHI_AC3
565 void begin(void);
566 uint8_t getMode(void);
567 uint8_t* getRaw(void);
568 void setRaw(const uint8_t new_code[],
569 const uint16_t length = kHitachiAc3StateLength);
570 static bool hasInvertedStates(const uint8_t state[], const uint16_t length);
571#ifndef UNIT_TEST
572
573 private:
575#else // UNIT_TEST
577 IRsendTest _irsend;
579#endif // UNIT_TEST
581 void setInvertedStates(const uint16_t length = kHitachiAc3StateLength);
582};
583
586 public:
587 explicit IRHitachiAc344(const uint16_t pin, const bool inverted = false,
588 const bool use_modulation = true);
589 void stateReset(void) override;
590 void setRaw(const uint8_t new_code[],
591 const uint16_t length = kHitachiAc344StateLength) override;
592 stdAc::state_t toCommon(void) const override;
593#if SEND_HITACHI_AC344
594 void send(const uint16_t repeat = kHitachiAcDefaultRepeat) override;
595#endif // SEND_HITACHI_AC344
596 void setSwingV(const bool on);
597 bool getSwingV(void) const;
598 void setSwingH(const uint8_t position);
599 uint8_t getSwingH(void) const;
600 static uint8_t convertSwingH(const stdAc::swingh_t position);
601 static stdAc::swingh_t toCommonSwingH(const uint8_t pos);
602 String toString(void) const override;
603};
604
607 public:
608 explicit IRHitachiAc264(const uint16_t pin, const bool inverted = false,
609 const bool use_modulation = true);
610 void stateReset(void) override;
611 void setRaw(const uint8_t new_code[],
612 const uint16_t length = kHitachiAc264StateLength) override;
613 void setFan(const uint8_t speed) override;
614 uint8_t convertFan(const stdAc::fanspeed_t speed) const override;
615 stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed) const override;
616 stdAc::state_t toCommon(void) const override;
617#if SEND_HITACHI_AC264
618 void send(const uint16_t repeat = kHitachiAcDefaultRepeat) override;
619#endif // SEND_HITACHI_AC264
620 String toString(void) const override;
621};
622
624 public:
625 explicit IRHitachiAc296(const uint16_t pin, const bool inverted = false,
626 const bool use_modulation = true);
627 void stateReset(void);
628
629#if SEND_HITACHI_AC296
630 void send(const uint16_t repeat = kHitachiAcDefaultRepeat);
631#endif // SEND_HITACHI_AC296
632 void begin(void);
633 void on(void);
634 void off(void);
635 void setPower(const bool on);
636 bool getPower(void) const;
637 void setTemp(const uint8_t temp);
638 uint8_t getTemp(void) const;
639 void setFan(const uint8_t speed);
640 uint8_t getFan(void) const;
641 void setMode(const uint8_t mode);
642 uint8_t getMode(void) const;
643 static bool hasInvertedStates(const uint8_t state[], const uint16_t length);
644 uint8_t* getRaw(void);
645 void setRaw(const uint8_t new_code[],
646 const uint16_t length = kHitachiAc296StateLength);
647 static uint8_t convertMode(const stdAc::opmode_t mode);
648 static uint8_t convertFan(const stdAc::fanspeed_t speed);
649 static stdAc::opmode_t toCommonMode(const uint8_t mode);
650 static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed);
651 stdAc::state_t toCommon(void) const;
652 String toString(void) const;
653#ifndef UNIT_TEST
654
655 private:
657#else // UNIT_TEST
659 IRsendTest _irsend;
661#endif // UNIT_TEST
662
664 void setInvertedStates(void);
665};
666#endif // IR_HITACHI_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 kHitachiAc344StateLength
Definition IRremoteESP8266.h:1307
const uint16_t kHitachiAc296StateLength
Definition IRremoteESP8266.h:1305
const uint16_t kHitachiAcStateLength
Definition IRremoteESP8266.h:1292
const uint16_t kHitachiAc3StateLength
Definition IRremoteESP8266.h:1299
const uint16_t kHitachiAc1StateLength
Definition IRremoteESP8266.h:1295
const uint16_t kHitachiAcDefaultRepeat
Definition IRremoteESP8266.h:1294
const uint16_t kHitachiAc264StateLength
Definition IRremoteESP8266.h:1303
const uint16_t kHitachiAc424StateLength
Definition IRremoteESP8266.h:1309
hitachi_ac1_remote_model_t
HITACHI_AC1 A/C model numbers.
Definition IRsend.h:175
Class for handling detailed Hitachi 104-bit A/C messages.
Definition ir_Hitachi.h:428
bool getPower(void) const
Get the value of the current power setting.
Definition ir_Hitachi.cpp:533
bool getPowerToggle(void) const
Get the value of the current power toggle setting.
Definition ir_Hitachi.cpp:547
void setTemp(const uint8_t temp)
Set the temperature.
Definition ir_Hitachi.cpp:599
bool getSwingH(void) const
Get the Horizontal Swing setting of the A/C.
Definition ir_Hitachi.cpp:670
void setSwingV(const bool on)
Set the Vertical Swing setting of the A/C.
Definition ir_Hitachi.cpp:664
void setMode(const uint8_t mode)
Set the operating mode of the A/C.
Definition ir_Hitachi.cpp:571
String toString(void) const
Convert the current internal state into a human readable string.
Definition ir_Hitachi.cpp:813
void setSwingToggle(const bool toggle)
Set the Swing toggle setting of the A/C.
Definition ir_Hitachi.cpp:652
void begin(void)
Set up hardware to be able to send a message.
Definition ir_Hitachi.cpp:450
void setSleep(const uint8_t mode)
Set the Sleep setting of the A/C.
Definition ir_Hitachi.cpp:690
uint16_t getOffTimer(void) const
Get the Off Timer vtime of the A/C.
Definition ir_Hitachi.cpp:726
uint8_t getTemp(void) const
Get the current temperature setting.
Definition ir_Hitachi.cpp:593
void setPower(const bool on)
Change the power setting.
Definition ir_Hitachi.cpp:539
uint16_t getOnTimer(void) const
Get the On Timer vtime of the A/C.
Definition ir_Hitachi.cpp:711
void setOnTimer(const uint16_t mins)
Set the On Timer time.
Definition ir_Hitachi.cpp:703
static stdAc::opmode_t toCommonMode(const uint8_t mode)
Convert a native mode into its stdAc equivalent.
Definition ir_Hitachi.cpp:761
IRsend _irsend
Instance of the IR send class.
Definition ir_Hitachi.h:485
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a stdAc::opmode_t enum into its native mode.
Definition ir_Hitachi.cpp:734
void setOffTimer(const uint16_t mins)
Set the Off Timer time.
Definition ir_Hitachi.cpp:718
void off(void)
Change the power setting to Off.
Definition ir_Hitachi.cpp:561
bool getSwingV(void) const
Get the Vertical Swing setting of the A/C.
Definition ir_Hitachi.cpp:658
static uint8_t calcChecksum(const uint8_t state[], const uint16_t length=kHitachiAc1StateLength)
Calculate the checksum for a given state.
Definition ir_Hitachi.cpp:456
void setFan(const uint8_t speed, const bool force=false)
Set the speed of the fan.
Definition ir_Hitachi.cpp:617
bool getSwingToggle(void) const
Get the Swing Toggle setting of the A/C.
Definition ir_Hitachi.cpp:646
uint8_t getSleep(void) const
Get the Sleep setting of the A/C.
Definition ir_Hitachi.cpp:683
uint8_t getFan(void) const
Get the current fan speed setting.
Definition ir_Hitachi.cpp:610
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition ir_Hitachi.h:440
static uint8_t convertFan(const stdAc::fanspeed_t speed)
Convert a stdAc::fanspeed_t enum into it's native speed.
Definition ir_Hitachi.cpp:747
void stateReset(void)
Reset the internal state to a fixed known good state.
Definition ir_Hitachi.cpp:435
static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed)
Convert a native fan speed into its stdAc equivalent.
Definition ir_Hitachi.cpp:774
hitachi_ac1_remote_model_t getModel(void) const
Get/Detect the model of the A/C.
Definition ir_Hitachi.cpp:510
void checksum(const uint16_t length=kHitachiAc1StateLength)
Calculate and set the checksum values for the internal state.
Definition ir_Hitachi.cpp:470
static bool validChecksum(const uint8_t state[], const uint16_t length=kHitachiAc1StateLength)
Verify the checksum is valid for a given state.
Definition ir_Hitachi.cpp:478
void send(const uint16_t repeat=kHitachiAcDefaultRepeat)
Send the current internal state as an IR message.
Definition ir_Hitachi.cpp:500
void setModel(const hitachi_ac1_remote_model_t model)
Set the model of the A/C to emulate.
Definition ir_Hitachi.cpp:519
uint8_t getMode(void) const
Get the operating mode setting of the A/C.
Definition ir_Hitachi.cpp:565
Hitachi1Protocol _
Definition ir_Hitachi.h:491
stdAc::state_t toCommon(void) const
Convert the current internal state into its stdAc::state_t equivalent.
Definition ir_Hitachi.cpp:785
uint8_t * getRaw(void)
Get a PTR to the internal state/code for this protocol.
Definition ir_Hitachi.cpp:485
void setRaw(const uint8_t new_code[], const uint16_t length=kHitachiAc1StateLength)
Set the internal state from a valid code for this protocol.
Definition ir_Hitachi.cpp:493
void setPowerToggle(const bool on)
Change the power toggle setting.
Definition ir_Hitachi.cpp:553
void on(void)
Change the power setting to On.
Definition ir_Hitachi.cpp:558
void setSwingH(const bool on)
Set the Horizontal Swing setting of the A/C.
Definition ir_Hitachi.cpp:676
Class for handling detailed Hitachi 264-bit A/C messages.
Definition ir_Hitachi.h:606
void setRaw(const uint8_t new_code[], const uint16_t length=kHitachiAc264StateLength) override
Set the internal state from a valid code for this protocol.
Definition ir_Hitachi.cpp:1643
void stateReset(void) override
Reset the internal state to auto fan, cooling, 23° Celsius.
Definition ir_Hitachi.cpp:1626
stdAc::state_t toCommon(void) const override
Convert the current internal state into its stdAc::state_t equivalent.
Definition ir_Hitachi.cpp:1690
void setFan(const uint8_t speed) override
Set the speed of the fan.
Definition ir_Hitachi.cpp:1649
void send(const uint16_t repeat=kHitachiAcDefaultRepeat) override
Create and send the IR message to the A/C.
Definition ir_Hitachi.cpp:1635
stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed) const override
Convert a native fan speed into its stdAc equivalent.
Definition ir_Hitachi.cpp:1679
String toString(void) const override
Convert the internal state into a human readable string.
Definition ir_Hitachi.cpp:1699
uint8_t convertFan(const stdAc::fanspeed_t speed) const override
Convert a stdAc::fanspeed_t enum into it's native speed.
Definition ir_Hitachi.cpp:1665
Definition ir_Hitachi.h:623
static stdAc::opmode_t toCommonMode(const uint8_t mode)
Convert a native mode into its stdAc equivalent.
Definition ir_Hitachi.cpp:1843
uint8_t * getRaw(void)
Get a PTR to the internal state/code for this protocol.
Definition ir_Hitachi.cpp:1911
void setMode(const uint8_t mode)
Set the operating mode of the A/C.
Definition ir_Hitachi.cpp:1813
IRsend _irsend
Instance of the IR send class.
Definition ir_Hitachi.h:656
uint8_t getMode(void) const
Get the operating mode setting of the A/C.
Definition ir_Hitachi.cpp:1809
HitachiAC296Protocol _
Definition ir_Hitachi.h:663
void setRaw(const uint8_t new_code[], const uint16_t length=kHitachiAc296StateLength)
Set the internal state from a valid code for this protocol.
Definition ir_Hitachi.cpp:1919
void send(const uint16_t repeat=kHitachiAcDefaultRepeat)
Send the current internal state as an IR message.
Definition ir_Hitachi.cpp:1788
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a stdAc::opmode_t enum into its native mode.
Definition ir_Hitachi.cpp:1831
void setFan(const uint8_t speed)
Set the speed of the fan.
Definition ir_Hitachi.cpp:1877
static bool hasInvertedStates(const uint8_t state[], const uint16_t length)
Check if every second byte of the state, after the fixed header is inverted to the previous byte.
Definition ir_Hitachi.cpp:1777
String toString(void) const
Convert the current internal state into a human readable string.
Definition ir_Hitachi.cpp:1952
static uint8_t convertFan(const stdAc::fanspeed_t speed)
Convert a stdAc::fanspeed_t enum into it's native speed.
Definition ir_Hitachi.cpp:1885
uint8_t getTemp(void) const
Get the current temperature setting.
Definition ir_Hitachi.cpp:1856
static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed)
Convert a native fan speed into its stdAc equivalent.
Definition ir_Hitachi.cpp:1899
void off(void)
Change the power setting to Off.
Definition ir_Hitachi.cpp:1805
void setTemp(const uint8_t temp)
Set the temperature.
Definition ir_Hitachi.cpp:1860
bool getPower(void) const
Get the value of the current power setting.
Definition ir_Hitachi.cpp:1795
void begin(void)
Set up hardware to be able to send a message.
Definition ir_Hitachi.cpp:1783
void on(void)
Change the power setting to On.
Definition ir_Hitachi.cpp:1802
void setInvertedStates(void)
Update the internal consistency check for the protocol.
Definition ir_Hitachi.cpp:1768
void stateReset(void)
Reset the internal state to auto fan, heating, & 24° Celsius.
Definition ir_Hitachi.cpp:1735
void setPower(const bool on)
Change the power setting.
Definition ir_Hitachi.cpp:1799
stdAc::state_t toCommon(void) const
Convert the current internal state into its stdAc::state_t equivalent.
Definition ir_Hitachi.cpp:1926
uint8_t getFan(void) const
Get the current fan speed setting.
Definition ir_Hitachi.cpp:1873
Class for handling detailed Hitachi 344-bit A/C messages.
Definition ir_Hitachi.h:585
stdAc::state_t toCommon(void) const override
Convert the current internal state into its stdAc::state_t equivalent.
Definition ir_Hitachi.cpp:1570
static stdAc::swingh_t toCommonSwingH(const uint8_t pos)
Convert a native horizontal swing postion to it's common equivalent.
Definition ir_Hitachi.cpp:1557
static uint8_t convertSwingH(const stdAc::swingh_t position)
Convert a standard A/C horizontal swing into its native setting.
Definition ir_Hitachi.cpp:1543
void setSwingV(const bool on)
Control the vertical swing setting.
Definition ir_Hitachi.cpp:1513
void stateReset(void) override
Reset the internal state to auto fan, cooling, 23° Celsius.
Definition ir_Hitachi.cpp:1490
void setSwingH(const uint8_t position)
Control the horizontal swing setting.
Definition ir_Hitachi.cpp:1526
String toString(void) const override
Convert the internal state into a human readable string.
Definition ir_Hitachi.cpp:1580
bool getSwingV(void) const
Get the current vertical swing setting.
Definition ir_Hitachi.cpp:1520
void setRaw(const uint8_t new_code[], const uint16_t length=kHitachiAc344StateLength) override
Set the internal state from a valid code for this protocol.
Definition ir_Hitachi.cpp:1507
void send(const uint16_t repeat=kHitachiAcDefaultRepeat) override
Create and send the IR message to the A/C.
Definition ir_Hitachi.cpp:1499
uint8_t getSwingH(void) const
Get the current horizontal swing setting.
Definition ir_Hitachi.cpp:1536
Class for handling detailed Hitachi 15to27-byte/120to216-bit A/C messages.
Definition ir_Hitachi.h:551
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition ir_Hitachi.h:563
uint8_t getMode(void)
uint8_t remote_state[kHitachiAc3StateLength]
The state in native code.
Definition ir_Hitachi.h:580
void begin(void)
Set up hardware to be able to send a message.
Definition ir_Hitachi.cpp:1409
void stateReset(void)
Reset the internal state to a fixed known good state.
Definition ir_Hitachi.cpp:1374
IRsend _irsend
Instance of the IR send class.
Definition ir_Hitachi.h:574
uint8_t * getRaw(void)
Get a PTR to the internal state/code for this protocol.
Definition ir_Hitachi.cpp:1413
void send(const uint16_t repeat=kHitachiAcDefaultRepeat)
static bool hasInvertedStates(const uint8_t state[], const uint16_t length)
Check if every second byte of the state, after the fixed header is inverted to the previous byte.
Definition ir_Hitachi.cpp:1403
void setRaw(const uint8_t new_code[], const uint16_t length=kHitachiAc3StateLength)
Set the internal state from a valid code for this protocol.
Definition ir_Hitachi.cpp:1421
void setInvertedStates(const uint16_t length=kHitachiAc3StateLength)
Invert every second byte of the internal state, after the fixed header.
Definition ir_Hitachi.cpp:1394
Class for handling detailed Hitachi 53-byte/424-bit A/C messages.
Definition ir_Hitachi.h:496
bool getPower(void) const
Get the value of the current power setting.
Definition ir_Hitachi.cpp:1078
void off(void)
Change the power setting to Off.
Definition ir_Hitachi.cpp:1091
void begin(void)
Set up hardware to be able to send a message.
Definition ir_Hitachi.cpp:1052
uint8_t getTemp(void) const
Get the current temperature setting.
Definition ir_Hitachi.cpp:1119
void setSwingVToggle(const bool on)
Set the Vertical Swing toggle setting of the A/C.
Definition ir_Hitachi.cpp:1192
static stdAc::opmode_t toCommonMode(const uint8_t mode)
Convert a native mode into its stdAc equivalent.
Definition ir_Hitachi.cpp:1238
uint8_t getFan(void) const
Get the current fan speed setting.
Definition ir_Hitachi.cpp:1140
virtual String toString(void) const
Convert the internal state into a human readable string.
Definition ir_Hitachi.cpp:1333
friend class IRHitachiAc264
Definition ir_Hitachi.h:497
void setMode(const uint8_t mode)
Set the operating mode of the A/C.
Definition ir_Hitachi.cpp:1101
virtual stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed) const
Convert a native fan speed into its stdAc equivalent.
Definition ir_Hitachi.cpp:1251
IRsend _irsend
Instance of the IR send class.
Definition ir_Hitachi.h:538
friend class IRHitachiAc344
Definition ir_Hitachi.h:498
virtual uint8_t convertFan(const stdAc::fanspeed_t speed) const
Convert a stdAc::fanspeed_t enum into it's native speed.
Definition ir_Hitachi.cpp:1224
void setTemp(const uint8_t temp, bool setPrevious=true)
Set the temperature.
Definition ir_Hitachi.cpp:1126
void setPower(const bool on)
Change the power setting.
Definition ir_Hitachi.cpp:1082
uint8_t getButton(void) const
Get the Button/Command setting of the A/C.
Definition ir_Hitachi.cpp:1178
uint8_t getMode(void) const
Get the operating mode setting of the A/C.
Definition ir_Hitachi.cpp:1095
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a stdAc::opmode_t enum into its native mode.
Definition ir_Hitachi.cpp:1211
Hitachi424Protocol _
Definition ir_Hitachi.h:544
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition ir_Hitachi.h:509
bool getSwingVToggle(void) const
Get the Vertical Swing toggle setting of the A/C.
Definition ir_Hitachi.cpp:1204
uint8_t _previoustemp
Definition ir_Hitachi.h:547
uint8_t * getRaw(void)
Get a PTR to the internal state/code for this protocol.
Definition ir_Hitachi.cpp:1056
void setInvertedStates(void)
Update the internal consistency check for the protocol.
Definition ir_Hitachi.cpp:1047
virtual stdAc::state_t toCommon(void) const
Convert the current internal state into its stdAc::state_t equivalent.
Definition ir_Hitachi.cpp:1264
void on(void)
Change the power setting to On.
Definition ir_Hitachi.cpp:1088
virtual void setRaw(const uint8_t new_code[], const uint16_t length=kHitachiAc424StateLength)
Set the internal state from a valid code for this protocol.
Definition ir_Hitachi.cpp:1064
virtual void send(const uint16_t repeat=kHitachiAcDefaultRepeat)
Send the current internal state as an IR message.
Definition ir_Hitachi.cpp:1071
void setButton(const uint8_t button)
Set the Button/Command pressed setting of the A/C.
Definition ir_Hitachi.cpp:1184
String _toString(void) const
Convert the internal state into a human readable string for the settings that are common to protocols...
Definition ir_Hitachi.cpp:1292
virtual void setFan(const uint8_t speed)
Set the speed of the fan.
Definition ir_Hitachi.cpp:1146
virtual void stateReset(void)
Reset the internal state to a fixed known good state.
Definition ir_Hitachi.cpp:1021
Class for handling detailed Hitachi 224-bit A/C messages.
Definition ir_Hitachi.h:371
bool getSwingHorizontal(void) const
Get the Horizontal Swing setting of the A/C.
Definition ir_Hitachi.cpp:320
void stateReset(void)
Reset the internal state to a fixed known good state.
Definition ir_Hitachi.cpp:148
void setFan(const uint8_t speed)
Set the speed of the fan.
Definition ir_Hitachi.cpp:289
IRsend _irsend
Instance of the IR send class.
Definition ir_Hitachi.h:415
uint8_t _previoustemp
Definition ir_Hitachi.h:423
void setMode(const uint8_t mode)
Set the operating mode of the A/C.
Definition ir_Hitachi.cpp:241
static bool validChecksum(const uint8_t state[], const uint16_t length=kHitachiAcStateLength)
Verify the checksum is valid for a given state.
Definition ir_Hitachi.cpp:190
stdAc::state_t toCommon(void) const
Convert the current internal state into its stdAc::state_t equivalent.
Definition ir_Hitachi.cpp:385
void checksum(const uint16_t length=kHitachiAcStateLength)
Calculate and set the checksum values for the internal state.
Definition ir_Hitachi.cpp:182
void setRaw(const uint8_t new_code[], const uint16_t length=kHitachiAcStateLength)
Set the internal state from a valid code for this protocol.
Definition ir_Hitachi.cpp:205
HitachiProtocol _
Definition ir_Hitachi.h:421
uint8_t getTemp(void) const
Get the current temperature setting.
Definition ir_Hitachi.cpp:259
static uint8_t convertFan(const stdAc::fanspeed_t speed)
Convert a stdAc::fanspeed_t enum into it's native speed.
Definition ir_Hitachi.cpp:346
void begin(void)
Set up hardware to be able to send a message.
Definition ir_Hitachi.cpp:167
void off(void)
Change the power setting to Off.
Definition ir_Hitachi.cpp:233
static uint8_t calcChecksum(const uint8_t state[], const uint16_t length=kHitachiAcStateLength)
Calculate the checksum for a given state.
Definition ir_Hitachi.cpp:173
void setSwingVertical(const bool on)
Set the Vertical Swing setting of the A/C.
Definition ir_Hitachi.cpp:314
void on(void)
Change the power setting to On.
Definition ir_Hitachi.cpp:230
bool getPower(void) const
Get the value of the current power setting.
Definition ir_Hitachi.cpp:219
uint8_t * getRaw(void)
Get a PTR to the internal state/code for this protocol.
Definition ir_Hitachi.cpp:197
void setTemp(const uint8_t temp)
Set the temperature.
Definition ir_Hitachi.cpp:265
String toString(void) const
Convert the current internal state into a human readable string.
Definition ir_Hitachi.cpp:411
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition ir_Hitachi.h:382
uint8_t getMode(void) const
Get the operating mode setting of the A/C.
Definition ir_Hitachi.cpp:237
static stdAc::opmode_t toCommonMode(const uint8_t mode)
Convert a native mode into its stdAc equivalent.
Definition ir_Hitachi.cpp:360
bool getSwingVertical(void) const
Get the Vertical Swing setting of the A/C.
Definition ir_Hitachi.cpp:308
void setPower(const bool on)
Change the power setting.
Definition ir_Hitachi.cpp:225
uint8_t getFan(void) const
Get the current fan speed setting.
Definition ir_Hitachi.cpp:285
void setSwingHorizontal(const bool on)
Set the Horizontal Swing setting of the A/C.
Definition ir_Hitachi.cpp:326
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a stdAc::opmode_t enum into its native mode.
Definition ir_Hitachi.cpp:333
static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed)
Convert a native fan speed into its stdAc equivalent.
Definition ir_Hitachi.cpp:373
void send(const uint16_t repeat=kHitachiAcDefaultRepeat)
Send the current internal state as an IR message.
Definition ir_Hitachi.cpp:212
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 kHitachiAc264Heat
Definition ir_Hitachi.h:291
const uint8_t kHitachiAc1FanLow
Definition ir_Hitachi.h:229
const uint8_t kHitachiAc344ButtonTempDown
Definition ir_Hitachi.h:136
const uint8_t kHitachiAc296MaxTemp
Definition ir_Hitachi.h:362
const uint8_t kHitachiAcFanLow
Definition ir_Hitachi.h:82
const uint8_t kHitachiAc344ButtonSwingH
Definition ir_Hitachi.h:139
const uint8_t kHitachiAc1Cool
Definition ir_Hitachi.h:223
const uint8_t kHitachiAc264Fan
Definition ir_Hitachi.h:288
const uint8_t kHitachiAc1Sleep3
Definition ir_Hitachi.h:241
const uint8_t kHitachiAcDry
Definition ir_Hitachi.h:79
const uint8_t kHitachiAc296DryCool
Definition ir_Hitachi.h:346
const uint8_t kHitachiAc1Sleep2
Definition ir_Hitachi.h:240
const uint8_t kHitachiAc296AutoDehumidifying
Definition ir_Hitachi.h:350
const uint8_t kHitachiAc1Sleep4
Definition ir_Hitachi.h:242
const uint8_t kHitachiAc424MaxTemp
Definition ir_Hitachi.h:142
const uint8_t kHitachiAc1Auto
Definition ir_Hitachi.h:225
const uint8_t kHitachiAc1TempDelta
Definition ir_Hitachi.h:233
const uint8_t kHitachiAc344Fan
Definition ir_Hitachi.h:151
const uint8_t kHitachiAcCool
Definition ir_Hitachi.h:78
const uint8_t kHitachiAc264ButtonTempUp
Definition ir_Hitachi.h:284
const uint8_t kHitachiAc1Model_B
Definition ir_Hitachi.h:218
const uint8_t kHitachiAc424ButtonPowerMode
Definition ir_Hitachi.h:128
const uint8_t kHitachiAc264FanMedium
Definition ir_Hitachi.h:294
const uint8_t kHitachiAc296FanSilent
Definition ir_Hitachi.h:354
const uint8_t kHitachiAc264ButtonTempDown
Definition ir_Hitachi.h:283
const uint8_t kHitachiAc264FanAuto
Definition ir_Hitachi.h:296
const uint8_t kHitachiAc424Fan
Definition ir_Hitachi.h:147
const uint8_t kHitachiAc344Dry
Definition ir_Hitachi.h:153
const uint8_t kHitachiAc344ButtonPowerMode
Definition ir_Hitachi.h:134
const uint8_t kHitachiAc296CondensationControl
Definition ir_Hitachi.h:352
const uint8_t kHitachiAc264ButtonPowerMode
Definition ir_Hitachi.h:281
const uint8_t kHitachiAc424MinTemp
Definition ir_Hitachi.h:141
const uint8_t kHitachiAc424FanMedium
Definition ir_Hitachi.h:158
const uint8_t kHitachiAc264MinTemp
Definition ir_Hitachi.h:286
const uint16_t kHitachiAcFreq
Definition ir_Hitachi.h:75
const uint8_t kHitachiAc296FanMedium
Definition ir_Hitachi.h:356
const uint8_t kHitachiAc264Cool
Definition ir_Hitachi.h:289
const uint8_t kHitachiAc344MaxTemp
Definition ir_Hitachi.h:144
const uint8_t kHitachiAc424ButtonFan
Definition ir_Hitachi.h:129
const uint8_t kHitachiAc344SwingHAuto
Definition ir_Hitachi.h:170
const uint8_t kHitachiAc296FanAuto
Definition ir_Hitachi.h:358
const uint8_t kHitachiAc424Dry
Definition ir_Hitachi.h:149
const uint8_t kHitachiAc424ButtonSwingV
Definition ir_Hitachi.h:132
const uint8_t kHitachiAc424Heat
Definition ir_Hitachi.h:150
const uint8_t kHitachiAc344ButtonFan
Definition ir_Hitachi.h:135
const uint8_t kHitachiAc1Model_A
Definition ir_Hitachi.h:217
const uint8_t kHitachiAc296Auto
Definition ir_Hitachi.h:349
const uint8_t kHitachiAc424FanMax
Definition ir_Hitachi.h:161
const uint8_t kHitachiAc296QuickLaundry
Definition ir_Hitachi.h:351
const uint8_t kHitachiAcMaxTemp
Definition ir_Hitachi.h:86
const uint8_t kHitachiAc344FanAuto
Definition ir_Hitachi.h:167
const uint8_t kHitachiAc424Cool
Definition ir_Hitachi.h:148
const uint8_t kHitachiAcFan
Definition ir_Hitachi.h:80
const uint8_t kHitachiAcFanAuto
Definition ir_Hitachi.h:81
const uint8_t kHitachiAc344Heat
Definition ir_Hitachi.h:154
const uint8_t kHitachiAc1FanAuto
Definition ir_Hitachi.h:226
const uint8_t kHitachiAc296FanHigh
Definition ir_Hitachi.h:357
const uint8_t kHitachiAc264FanMin
Definition ir_Hitachi.h:292
const uint8_t kHitachiAc344MinTemp
Definition ir_Hitachi.h:143
const uint8_t kHitachiAc344ButtonTempUp
Definition ir_Hitachi.h:137
const uint8_t kHitachiAc264Dry
Definition ir_Hitachi.h:290
const uint8_t kHitachiAc344SwingHMiddle
Definition ir_Hitachi.h:173
const uint8_t kHitachiAc1Dry
Definition ir_Hitachi.h:221
const uint8_t kHitachiAc344FanHigh
Definition ir_Hitachi.h:166
const uint8_t kHitachiAcFanHigh
Definition ir_Hitachi.h:84
const uint8_t kHitachiAc296Dehumidify
Definition ir_Hitachi.h:347
const uint8_t kHitachiAc424FanTemp
Definition ir_Hitachi.h:145
const uint8_t kHitachiAc264ButtonSwingV
Definition ir_Hitachi.h:285
const uint8_t kHitachiAc264MaxTemp
Definition ir_Hitachi.h:287
const uint8_t kHitachiAc344SwingHRightMax
Definition ir_Hitachi.h:171
const uint8_t kHitachiAc344Cool
Definition ir_Hitachi.h:152
const uint8_t kHitachiAc344ButtonSwingV
Definition ir_Hitachi.h:138
const uint8_t kHitachiAc1SleepOff
Definition ir_Hitachi.h:238
const uint8_t kHitachiAc264ButtonFan
Definition ir_Hitachi.h:282
const uint8_t kHitachiAcMinTemp
Definition ir_Hitachi.h:85
const uint8_t kHitachiAc296Cool
Definition ir_Hitachi.h:345
const uint8_t kHitachiAc264FanLow
Definition ir_Hitachi.h:293
const uint8_t kHitachiAc344FanMedium
Definition ir_Hitachi.h:165
const uint8_t kHitachiAcAutoTemp
Definition ir_Hitachi.h:87
const uint8_t kHitachiAc424FanHigh
Definition ir_Hitachi.h:159
const uint8_t kHitachiAc424FanMin
Definition ir_Hitachi.h:156
const uint8_t kHitachiAc296TempAuto
Definition ir_Hitachi.h:360
const uint8_t kHitachiAc1Sleep1
Definition ir_Hitachi.h:239
const uint8_t kHitachiAc1Heat
Definition ir_Hitachi.h:224
const uint8_t kHitachiAc296FanLow
Definition ir_Hitachi.h:355
const uint8_t kHitachiAc344FanMin
Definition ir_Hitachi.h:163
const uint8_t kHitachiAc296MinTemp
Definition ir_Hitachi.h:361
const uint8_t kHitachiAc1Fan
Definition ir_Hitachi.h:222
const uint8_t kHitachiAc424ButtonTempUp
Definition ir_Hitachi.h:131
const uint8_t kHitachiAcFanMed
Definition ir_Hitachi.h:83
const uint8_t kHitachiAc424FanLow
Definition ir_Hitachi.h:157
const uint8_t kHitachiAc344FanLow
Definition ir_Hitachi.h:164
const uint8_t kHitachiAc1FanHigh
Definition ir_Hitachi.h:227
const uint8_t kHitachiAc296Heat
Definition ir_Hitachi.h:348
const uint8_t kHitachiAc344SwingHLeftMax
Definition ir_Hitachi.h:175
const uint8_t kHitachiAc1TempAuto
Definition ir_Hitachi.h:234
const uint8_t kHitachiAc424ButtonTempDown
Definition ir_Hitachi.h:130
const uint8_t kHitachiAc424FanAuto
Definition ir_Hitachi.h:160
const uint8_t kHitachiAcHeat
Definition ir_Hitachi.h:77
const uint8_t kHitachiAc344FanMax
Definition ir_Hitachi.h:168
const uint8_t kHitachiAc264FanHigh
Definition ir_Hitachi.h:295
const uint8_t kHitachiAc424ButtonSwingH
Definition ir_Hitachi.h:133
const uint8_t kHitachiAc344SwingHRight
Definition ir_Hitachi.h:172
const uint8_t kHitachiAc344SwingHLeft
Definition ir_Hitachi.h:174
const uint8_t kHitachiAc424FanMaxDry
Definition ir_Hitachi.h:162
const uint8_t kHitachiAc296PowerOff
Definition ir_Hitachi.h:365
const uint8_t kHitachiAcAuto
Definition ir_Hitachi.h:76
const uint8_t kHitachiAc1ChecksumStartByte
Definition ir_Hitachi.h:244
const uint8_t kHitachiAc1FanMed
Definition ir_Hitachi.h:228
const uint8_t kHitachiAc296PowerOn
Definition ir_Hitachi.h:364
const uint8_t kHitachiAc1TimerSize
Definition ir_Hitachi.h:236
const uint8_t kHitachiAc1TempSize
Definition ir_Hitachi.h:232
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
Structure to hold a common A/C state.
Definition IRsend.h:120
Native representation of a Hitachi 104-bit A/C message.
Definition ir_Hitachi.h:179
uint8_t Mode
Definition ir_Hitachi.h:191
uint8_t OffTimerHigh
Definition ir_Hitachi.h:199
uint8_t pad[3]
Definition ir_Hitachi.h:183
uint8_t SwingToggle
Definition ir_Hitachi.h:205
uint8_t Power
Definition ir_Hitachi.h:208
uint8_t OnTimerLow
Definition ir_Hitachi.h:201
uint8_t Sleep
Definition ir_Hitachi.h:206
uint8_t SwingV
Definition ir_Hitachi.h:209
uint8_t OnTimerHigh
Definition ir_Hitachi.h:203
uint8_t SwingH
Definition ir_Hitachi.h:210
uint8_t Model
Definition ir_Hitachi.h:186
uint8_t Temp
Definition ir_Hitachi.h:194
uint8_t raw[kHitachiAc1StateLength]
The state in native code.
Definition ir_Hitachi.h:180
uint8_t Fan
Definition ir_Hitachi.h:190
uint8_t PowerToggle
Definition ir_Hitachi.h:207
uint8_t OffTimerLow
Definition ir_Hitachi.h:197
uint8_t Sum
Definition ir_Hitachi.h:212
Native representation of a Hitachi 53-byte/424-bit A/C message.
Definition ir_Hitachi.h:90
uint8_t Power
Definition ir_Hitachi.h:111
uint8_t raw[kHitachiAc424StateLength]
The state in native code.
Definition ir_Hitachi.h:91
uint8_t Fan
Definition ir_Hitachi.h:106
uint8_t Temp
Definition ir_Hitachi.h:101
uint8_t Mode
Definition ir_Hitachi.h:105
uint8_t Button
Definition ir_Hitachi.h:96
uint8_t pad2[7]
Definition ir_Hitachi.h:114
uint8_t pad1[11]
Definition ir_Hitachi.h:103
uint8_t pad0[11]
Definition ir_Hitachi.h:94
uint8_t SwingH
Definition ir_Hitachi.h:116
uint8_t SwingV
Definition ir_Hitachi.h:122
Native representation of a Hitachi 164-bit A/C message.
Definition ir_Hitachi.h:248
uint8_t pad1[10]
Definition ir_Hitachi.h:263
uint8_t pad0[11]
Definition ir_Hitachi.h:252
uint8_t Fan
Definition ir_Hitachi.h:266
uint8_t Temp
Definition ir_Hitachi.h:259
uint8_t Button
Definition ir_Hitachi.h:254
uint8_t Mode
Definition ir_Hitachi.h:265
uint8_t Power
Definition ir_Hitachi.h:271
uint8_t pad2[4]
Definition ir_Hitachi.h:276
uint8_t raw[kHitachiAc264StateLength]
The state in native code.
Definition ir_Hitachi.h:249
Definition ir_Hitachi.h:299
uint8_t pad0[13]
Definition ir_Hitachi.h:303
uint8_t OffTimerHigh
Definition ir_Hitachi.h:315
uint8_t Fan
Definition ir_Hitachi.h:326
uint8_t OnTimerLow
Definition ir_Hitachi.h:317
uint8_t Humidity
Definition ir_Hitachi.h:339
uint8_t TimerActive
Definition ir_Hitachi.h:333
uint8_t Mode
Definition ir_Hitachi.h:325
uint8_t Power
Definition ir_Hitachi.h:331
uint8_t Temp
Definition ir_Hitachi.h:306
uint8_t OffTimerActive
Definition ir_Hitachi.h:320
uint8_t OffTimerLow
Definition ir_Hitachi.h:313
uint8_t raw[kHitachiAc296StateLength]
Definition ir_Hitachi.h:300
uint8_t OnTimerActive
Definition ir_Hitachi.h:321
uint8_t pad1[6]
Definition ir_Hitachi.h:336
uint8_t OnTimerHigh
Definition ir_Hitachi.h:319
Native representation of a Hitachi 224-bit A/C message.
Definition ir_Hitachi.h:43
uint8_t pad1[9]
Definition ir_Hitachi.h:68
uint8_t SwingV
Definition ir_Hitachi.h:58
uint8_t Mode
Definition ir_Hitachi.h:49
uint8_t Sum
Definition ir_Hitachi.h:70
uint8_t Temp
Definition ir_Hitachi.h:51
uint8_t pad0[10]
Definition ir_Hitachi.h:47
uint8_t raw[kHitachiAcStateLength]
The state in native code.
Definition ir_Hitachi.h:44
uint8_t Power
Definition ir_Hitachi.h:65
uint8_t SwingH
Definition ir_Hitachi.h:61
uint8_t Fan
Definition ir_Hitachi.h:55