IRremoteESP8266
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: RAR-2P2 remote (HITACHI_AC264)
25// Brand: Hitachi, Model: RAK-25NH5 A/C (HITACHI_AC264)
26// Brand: Hitachi, Model: RAR-3U3 remote (HITACHI_AC296)
27// Brand: Hitachi, Model: RAS-70YHA3 A/C (HITACHI_AC296)
28
29#ifndef IR_HITACHI_H_
30#define IR_HITACHI_H_
31
32#define __STDC_LIMIT_MACROS
33#include <stdint.h>
34#ifndef UNIT_TEST
35#include <Arduino.h>
36#endif
37#include "IRremoteESP8266.h"
38#include "IRsend.h"
39#ifdef UNIT_TEST
40#include "IRsend_test.h"
41#endif
42
46 struct {
47 // Byte 0~9
48 uint8_t pad0[10];
49 // Byte 10
50 uint8_t Mode :8;
51 // Byte 11
52 uint8_t Temp :8;
53 // Byte 12
54 uint8_t :8;
55 // Byte 13
56 uint8_t Fan :8;
57 // Byte 14
58 uint8_t :7;
59 uint8_t SwingV :1;
60 // Byte 15
61 uint8_t :7;
62 uint8_t SwingH :1;
63 // Byte 16
64 uint8_t :8;
65 // Byte 17
66 uint8_t Power :1;
67 uint8_t :7;
68 // Byte 18~26
69 uint8_t pad1[9];
70 // Byte 27
71 uint8_t Sum :8;
72 };
73};
74
75// Constants
76const uint16_t kHitachiAcFreq = 38000; // Hz.
77const uint8_t kHitachiAcAuto = 2;
78const uint8_t kHitachiAcHeat = 3;
79const uint8_t kHitachiAcCool = 4;
80const uint8_t kHitachiAcDry = 5;
81const uint8_t kHitachiAcFan = 0xC;
82const uint8_t kHitachiAcFanAuto = 1;
83const uint8_t kHitachiAcFanLow = 2;
84const uint8_t kHitachiAcFanMed = 3;
85const uint8_t kHitachiAcFanHigh = 5;
86const uint8_t kHitachiAcMinTemp = 16; // 16C
87const uint8_t kHitachiAcMaxTemp = 32; // 32C
88const uint8_t kHitachiAcAutoTemp = 23; // 23C
89
93 struct {
94 // Byte 0~10
95 uint8_t pad0[11];
96 // Byte 11
97 uint8_t Button :8;
98 // Byte 12
99 uint8_t :8;
100 // Byte 13
101 uint8_t :2;
102 uint8_t Temp :6;
103 // Byte 14~24
104 uint8_t pad1[11];
105 // Byte 25
106 uint8_t Mode :4;
107 uint8_t Fan :4;
108 // Byte 26
109 uint8_t :8;
110 // Byte 27
111 uint8_t :4;
112 uint8_t Power :1;
113 uint8_t :3;
114 // Byte 28~34
115 uint8_t pad2[7];
116 // Byte 35
117 uint8_t SwingH :3;
118 uint8_t :5;
119 // Byte 36
120 uint8_t :8;
121 // Byte 37
122 uint8_t :5;
123 uint8_t SwingV :1;
124 uint8_t :2;
125 };
126};
127
128// HitachiAc424 & HitachiAc344
129const uint8_t kHitachiAc424ButtonPowerMode = 0x13;
130const uint8_t kHitachiAc424ButtonFan = 0x42;
131const uint8_t kHitachiAc424ButtonTempDown = 0x43;
132const uint8_t kHitachiAc424ButtonTempUp = 0x44;
133const uint8_t kHitachiAc424ButtonSwingV = 0x81;
134const uint8_t kHitachiAc424ButtonSwingH = 0x8C;
141
142const uint8_t kHitachiAc424MinTemp = 16; // 16C
143const uint8_t kHitachiAc424MaxTemp = 32; // 32C
146const uint8_t kHitachiAc424FanTemp = 27; // 27C
147
148const uint8_t kHitachiAc424Fan = 1;
149const uint8_t kHitachiAc424Cool = 3;
150const uint8_t kHitachiAc424Dry = 5;
151const uint8_t kHitachiAc424Heat = 6;
156
157const uint8_t kHitachiAc424FanMin = 1;
158const uint8_t kHitachiAc424FanLow = 2;
159const uint8_t kHitachiAc424FanMedium = 3;
160const uint8_t kHitachiAc424FanHigh = 4;
161const uint8_t kHitachiAc424FanAuto = 5;
162const uint8_t kHitachiAc424FanMax = 6;
163const uint8_t kHitachiAc424FanMaxDry = 2;
170
171const uint8_t kHitachiAc344SwingHAuto = 0; // 0b000
172const uint8_t kHitachiAc344SwingHRightMax = 1; // 0b001
173const uint8_t kHitachiAc344SwingHRight = 2; // 0b010
174const uint8_t kHitachiAc344SwingHMiddle = 3; // 0b011
175const uint8_t kHitachiAc344SwingHLeft = 4; // 0b100
176const uint8_t kHitachiAc344SwingHLeftMax = 5; // 0b101
177
178
182 struct {
183 // Byte 0~2
184 uint8_t pad[3];
185 // Byte 3
186 uint8_t :6;
187 uint8_t Model :2;
188 // Byte 4
189 uint8_t :8;
190 // Byte 5
191 uint8_t Fan :4;
192 uint8_t Mode :4;
193 // Byte 6
194 uint8_t :2;
195 uint8_t Temp :5; // stored in LSB order.
196 uint8_t :1;
197 // Byte 7
198 uint8_t OffTimerLow :8; // nr. of minutes
199 // Byte 8
200 uint8_t OffTimerHigh :8; // & in LSB order.
201 // Byte 9
202 uint8_t OnTimerLow :8; // nr. of minutes
203 // Byte 10
204 uint8_t OnTimerHigh :8; // & in LSB order.
205 // Byte 11
206 uint8_t SwingToggle :1;
207 uint8_t Sleep :3;
208 uint8_t PowerToggle :1;
209 uint8_t Power :1;
210 uint8_t SwingV :1;
211 uint8_t SwingH :1;
212 // Byte 12
213 uint8_t Sum :8;
214 };
215};
216// HitachiAc1
217// Model
218const uint8_t kHitachiAc1Model_A = 0b10;
219const uint8_t kHitachiAc1Model_B = 0b01;
220
221// Mode & Fan
222const uint8_t kHitachiAc1Dry = 0b0010; // 2
223const uint8_t kHitachiAc1Fan = 0b0100; // 4
224const uint8_t kHitachiAc1Cool = 0b0110; // 6
225const uint8_t kHitachiAc1Heat = 0b1001; // 9
226const uint8_t kHitachiAc1Auto = 0b1110; // 14
227const uint8_t kHitachiAc1FanAuto = 1; // 0b0001
228const uint8_t kHitachiAc1FanHigh = 2; // 0b0010
229const uint8_t kHitachiAc1FanMed = 4; // 0b0100
230const uint8_t kHitachiAc1FanLow = 8; // 0b1000
231
232// Temp
233const uint8_t kHitachiAc1TempSize = 5; // Mask 0b01111100
234const uint8_t kHitachiAc1TempDelta = 7;
235const uint8_t kHitachiAc1TempAuto = 25; // Celsius
236// Timer
237const uint8_t kHitachiAc1TimerSize = 16; // Mask 0b1111111111111111
238// Sleep
239const uint8_t kHitachiAc1SleepOff = 0b000;
240const uint8_t kHitachiAc1Sleep1 = 0b001;
241const uint8_t kHitachiAc1Sleep2 = 0b010;
242const uint8_t kHitachiAc1Sleep3 = 0b011;
243const uint8_t kHitachiAc1Sleep4 = 0b100;
244// Checksum
246
247
251 struct {
252 // Bytes 0~10
253 uint8_t pad0[11];
254 // Byte 11
255 uint8_t Button :8;
256 // Byte 12
257 uint8_t :8;
258 // Byte 13
259 uint8_t :2;
260 uint8_t Temp :6;
261 // Byte 14
262 uint8_t :8;
263 // Bytes 14~24
264 uint8_t pad1[10];
265 // Byte 25
266 uint8_t Mode :4;
267 uint8_t Fan :4;
268 // Byte 26
269 uint8_t :8;
270 // Byte 27
271 uint8_t :4;
272 uint8_t Power :1;
273 uint8_t :3;
274 // Byte 28
275 uint8_t :8;
276 // Bytes 29~32
277 uint8_t pad2[4];
278 };
279};
280
281// HitachiAc264
298
299// HitachiAc296
302 struct {
303 // Byte 0~12
304 uint8_t pad0[13];
305 // Byte 13
306 uint8_t :2;
307 uint8_t Temp :5; // LSB
308 uint8_t :1;
309 uint8_t :8;
310 // Byte 15~16
311 uint8_t :8;
312 uint8_t :8;
313 // Byte 17~24
314 uint8_t OffTimerLow :8; // LSB
315 uint8_t /* Parity */ :8;
316 uint8_t OffTimerHigh :8;
317 uint8_t /* Parity */ :8;
318 uint8_t OnTimerLow :8; // LSB
319 uint8_t /* Parity */ :8;
320 uint8_t OnTimerHigh :4;
321 uint8_t OffTimerActive :1;
322 uint8_t OnTimerActive :1;
323 uint8_t :2;
324 uint8_t /* Parity */ :8;
325 // Byte 25~26
326 uint8_t Mode :4;
327 uint8_t Fan :3;
328 uint8_t :1;
329 uint8_t :8;
330 // Byte 27~28
331 uint8_t :4;
332 uint8_t Power :1;
333 uint8_t :2;
334 uint8_t TimerActive :1;
335 uint8_t :8;
336 // Byte 29~34
337 uint8_t pad1[6];
338 // Byte 35~36
339 uint8_t :4;
340 uint8_t Humidity :4; // LSB
341 uint8_t :8;
342 };
343};
344
345// Mode & Fan
346const uint8_t kHitachiAc296Cool = 0b0011;
347const uint8_t kHitachiAc296DryCool = 0b0100;
348const uint8_t kHitachiAc296Dehumidify = 0b0101;
349const uint8_t kHitachiAc296Heat = 0b0110;
350const uint8_t kHitachiAc296Auto = 0b0111;
351const uint8_t kHitachiAc296AutoDehumidifying = 0b1001;
352const uint8_t kHitachiAc296QuickLaundry = 0b1010;
353const uint8_t kHitachiAc296CondensationControl = 0b1100;
354
355const uint8_t kHitachiAc296FanSilent = 0b001;
356const uint8_t kHitachiAc296FanLow = 0b010;
357const uint8_t kHitachiAc296FanMedium = 0b011;
358const uint8_t kHitachiAc296FanHigh = 0b100;
359const uint8_t kHitachiAc296FanAuto = 0b101;
360
361const uint8_t kHitachiAc296TempAuto = 1; // Special value for "Auto" op mode.
362const uint8_t kHitachiAc296MinTemp = 16;
363const uint8_t kHitachiAc296MaxTemp = 31; // Max value you can store in 5 bits.
364
365const uint8_t kHitachiAc296PowerOn = 1;
366const uint8_t kHitachiAc296PowerOff = 0;
367
368
369// Classes
373 public:
374 explicit IRHitachiAc(const uint16_t pin, const bool inverted = false,
375 const bool use_modulation = true);
376 void stateReset(void);
377#if SEND_HITACHI_AC
378 void send(const uint16_t repeat = kHitachiAcDefaultRepeat);
383 int8_t calibrate(void) { return _irsend.calibrate(); }
384#endif // SEND_HITACHI_AC
385 void begin(void);
386 void on(void);
387 void off(void);
388 void setPower(const bool on);
389 bool getPower(void) const;
390 void setTemp(const uint8_t temp);
391 uint8_t getTemp(void) const;
392 void setFan(const uint8_t speed);
393 uint8_t getFan(void) const;
394 void setMode(const uint8_t mode);
395 uint8_t getMode(void) const;
396 void setSwingVertical(const bool on);
397 bool getSwingVertical(void) const;
398 void setSwingHorizontal(const bool on);
399 bool getSwingHorizontal(void) const;
400 uint8_t* getRaw(void);
401 void setRaw(const uint8_t new_code[],
402 const uint16_t length = kHitachiAcStateLength);
403 static bool validChecksum(const uint8_t state[],
404 const uint16_t length = kHitachiAcStateLength);
405 static uint8_t calcChecksum(const uint8_t state[],
406 const uint16_t length = kHitachiAcStateLength);
407 static uint8_t convertMode(const stdAc::opmode_t mode);
408 static uint8_t convertFan(const stdAc::fanspeed_t speed);
409 static stdAc::opmode_t toCommonMode(const uint8_t mode);
410 static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed);
411 stdAc::state_t toCommon(void) const;
412 String toString(void) const;
413#ifndef UNIT_TEST
414
415 private:
417#else // UNIT_TEST
419 IRsendTest _irsend;
421#endif // UNIT_TEST
423 void checksum(const uint16_t length = kHitachiAcStateLength);
425};
426
430 public:
431 explicit IRHitachiAc1(const uint16_t pin, const bool inverted = false,
432 const bool use_modulation = true);
433
434 void stateReset(void);
435#if SEND_HITACHI_AC1
436 void send(const uint16_t repeat = kHitachiAcDefaultRepeat);
441 int8_t calibrate(void) { return _irsend.calibrate(); }
442#endif // SEND_HITACHI_AC1
443 void begin(void);
444 void on(void);
445 void off(void);
446 void setModel(const hitachi_ac1_remote_model_t model);
448 void setPower(const bool on);
449 bool getPower(void) const;
450 void setPowerToggle(const bool on);
451 bool getPowerToggle(void) const;
452 void setTemp(const uint8_t temp);
453 uint8_t getTemp(void) const;
454 void setFan(const uint8_t speed, const bool force = false);
455 uint8_t getFan(void) const;
456 void setMode(const uint8_t mode);
457 uint8_t getMode(void) const;
458 void setSwingToggle(const bool toggle);
459 bool getSwingToggle(void) const;
460 void setSwingV(const bool on);
461 bool getSwingV(void) const;
462 void setSwingH(const bool on);
463 bool getSwingH(void) const;
464 void setSleep(const uint8_t mode);
465 uint8_t getSleep(void) const;
466 void setOnTimer(const uint16_t mins);
467 uint16_t getOnTimer(void) const;
468 void setOffTimer(const uint16_t mins);
469 uint16_t getOffTimer(void) const;
470 uint8_t* getRaw(void);
471 void setRaw(const uint8_t new_code[],
472 const uint16_t length = kHitachiAc1StateLength);
473 static bool validChecksum(const uint8_t state[],
474 const uint16_t length = kHitachiAc1StateLength);
475 static uint8_t calcChecksum(const uint8_t state[],
476 const uint16_t length = kHitachiAc1StateLength);
477 static uint8_t convertMode(const stdAc::opmode_t mode);
478 static uint8_t convertFan(const stdAc::fanspeed_t speed);
479 static stdAc::opmode_t toCommonMode(const uint8_t mode);
480 static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed);
481 stdAc::state_t toCommon(void) const;
482 String toString(void) const;
483#ifndef UNIT_TEST
484
485 private:
487#else // UNIT_TEST
489 IRsendTest _irsend;
491#endif // UNIT_TEST
493 void checksum(const uint16_t length = kHitachiAc1StateLength);
494};
495
498 friend class IRHitachiAc264;
499 friend class IRHitachiAc344;
500 public:
501 explicit IRHitachiAc424(const uint16_t pin, const bool inverted = false,
502 const bool use_modulation = true);
503 virtual void stateReset(void);
504#if SEND_HITACHI_AC424
505 virtual void send(const uint16_t repeat = kHitachiAcDefaultRepeat);
510 int8_t calibrate(void) { return _irsend.calibrate(); }
511#endif // SEND_HITACHI_AC424
512 void begin(void);
513 void on(void);
514 void off(void);
515 void setPower(const bool on);
516 bool getPower(void) const;
517 void setTemp(const uint8_t temp, bool setPrevious = true);
518 uint8_t getTemp(void) const;
519 virtual void setFan(const uint8_t speed);
520 uint8_t getFan(void) const;
521 uint8_t getButton(void) const;
522 void setButton(const uint8_t button);
523 void setSwingVToggle(const bool on);
524 bool getSwingVToggle(void) const;
525 void setMode(const uint8_t mode);
526 uint8_t getMode(void) const;
527 uint8_t* getRaw(void);
528 virtual void setRaw(const uint8_t new_code[],
529 const uint16_t length = kHitachiAc424StateLength);
530 static uint8_t convertMode(const stdAc::opmode_t mode);
531 virtual uint8_t convertFan(const stdAc::fanspeed_t speed) const;
532 static stdAc::opmode_t toCommonMode(const uint8_t mode);
533 virtual stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed) const;
534 virtual stdAc::state_t toCommon(void) const;
535 virtual String toString(void) const;
536#ifndef UNIT_TEST
537
538 private:
540#else // UNIT_TEST
542 IRsendTest _irsend;
544#endif // UNIT_TEST
546 void setInvertedStates(void);
547 String _toString(void) const;
549};
550
553 public:
554 explicit IRHitachiAc3(const uint16_t pin, const bool inverted = false,
555 const bool use_modulation = true);
556
557 void stateReset(void);
558#if SEND_HITACHI_AC3
559 void send(const uint16_t repeat = kHitachiAcDefaultRepeat);
564 int8_t calibrate(void) { return _irsend.calibrate(); }
565#endif // SEND_HITACHI_AC3
566 void begin(void);
567 uint8_t getMode(void);
568 uint8_t* getRaw(void);
569 void setRaw(const uint8_t new_code[],
570 const uint16_t length = kHitachiAc3StateLength);
571 static bool hasInvertedStates(const uint8_t state[], const uint16_t length);
572#ifndef UNIT_TEST
573
574 private:
576#else // UNIT_TEST
578 IRsendTest _irsend;
580#endif // UNIT_TEST
582 void setInvertedStates(const uint16_t length = kHitachiAc3StateLength);
583};
584
587 public:
588 explicit IRHitachiAc344(const uint16_t pin, const bool inverted = false,
589 const bool use_modulation = true);
590 void stateReset(void) override;
591 void setRaw(const uint8_t new_code[],
592 const uint16_t length = kHitachiAc344StateLength) override;
593 stdAc::state_t toCommon(void) const override;
594#if SEND_HITACHI_AC344
595 void send(const uint16_t repeat = kHitachiAcDefaultRepeat) override;
596#endif // SEND_HITACHI_AC344
597 void setSwingV(const bool on);
598 bool getSwingV(void) const;
599 void setSwingH(const uint8_t position);
600 uint8_t getSwingH(void) const;
601 static uint8_t convertSwingH(const stdAc::swingh_t position);
602 static stdAc::swingh_t toCommonSwingH(const uint8_t pos);
603 String toString(void) const override;
604};
605
608 public:
609 explicit IRHitachiAc264(const uint16_t pin, const bool inverted = false,
610 const bool use_modulation = true);
611 void stateReset(void) override;
612 void setRaw(const uint8_t new_code[],
613 const uint16_t length = kHitachiAc264StateLength) override;
614 void setFan(const uint8_t speed) override;
615 uint8_t convertFan(const stdAc::fanspeed_t speed) const override;
616 stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed) const override;
617 stdAc::state_t toCommon(void) const override;
618#if SEND_HITACHI_AC264
619 void send(const uint16_t repeat = kHitachiAcDefaultRepeat) override;
620#endif // SEND_HITACHI_AC264
621 String toString(void) const override;
622};
623
625 public:
626 explicit IRHitachiAc296(const uint16_t pin, const bool inverted = false,
627 const bool use_modulation = true);
628 void stateReset(void);
629
630#if SEND_HITACHI_AC296
631 void send(const uint16_t repeat = kHitachiAcDefaultRepeat);
632#endif // SEND_HITACHI_AC296
633 void begin(void);
634 void on(void);
635 void off(void);
636 void setPower(const bool on);
637 bool getPower(void) const;
638 void setTemp(const uint8_t temp);
639 uint8_t getTemp(void) const;
640 void setFan(const uint8_t speed);
641 uint8_t getFan(void) const;
642 void setMode(const uint8_t mode);
643 uint8_t getMode(void) const;
644 static bool hasInvertedStates(const uint8_t state[], const uint16_t length);
645 uint8_t* getRaw(void);
646 void setRaw(const uint8_t new_code[],
647 const uint16_t length = kHitachiAc296StateLength);
648 static uint8_t convertMode(const stdAc::opmode_t mode);
649 static uint8_t convertFan(const stdAc::fanspeed_t speed);
650 static stdAc::opmode_t toCommonMode(const uint8_t mode);
651 static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed);
652 stdAc::state_t toCommon(void) const;
653 String toString(void) const;
654#ifndef UNIT_TEST
655
656 private:
658#else // UNIT_TEST
660 IRsendTest _irsend;
662#endif // UNIT_TEST
663
665 void setInvertedStates(void);
666};
667#endif // IR_HITACHI_H_
const uint16_t kHitachiAc344StateLength
Definition IRremoteESP8266.h:1308
const uint16_t kHitachiAc296StateLength
Definition IRremoteESP8266.h:1306
const uint16_t kHitachiAcStateLength
Definition IRremoteESP8266.h:1293
const uint16_t kHitachiAc3StateLength
Definition IRremoteESP8266.h:1300
const uint16_t kHitachiAc1StateLength
Definition IRremoteESP8266.h:1296
const uint16_t kHitachiAcDefaultRepeat
Definition IRremoteESP8266.h:1295
const uint16_t kHitachiAc264StateLength
Definition IRremoteESP8266.h:1304
std::string String
Definition IRremoteESP8266.h:1564
const uint16_t kHitachiAc424StateLength
Definition IRremoteESP8266.h:1310
hitachi_ac1_remote_model_t
HITACHI_AC1 A/C model numbers.
Definition IRsend.h:169
Class for handling detailed Hitachi 104-bit A/C messages.
Definition ir_Hitachi.h:429
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:486
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:441
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:492
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:607
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:624
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:657
uint8_t getMode(void) const
Get the operating mode setting of the A/C.
Definition ir_Hitachi.cpp:1809
HitachiAC296Protocol _
Definition ir_Hitachi.h:664
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:586
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:552
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition ir_Hitachi.h:564
uint8_t getMode(void)
uint8_t remote_state[kHitachiAc3StateLength]
The state in native code.
Definition ir_Hitachi.h:581
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:575
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:497
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:498
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:539
friend class IRHitachiAc344
Definition ir_Hitachi.h:499
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:545
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition ir_Hitachi.h:510
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:548
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:372
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:416
uint8_t _previoustemp
Definition ir_Hitachi.h:424
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:422
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:383
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:249
int8_t calibrate(uint16_t hz=38000U)
Calculate & set any offsets to account for execution times during sending.
Definition IRsend.cpp:209
const uint8_t kHitachiAc264Heat
Definition ir_Hitachi.h:292
const uint8_t kHitachiAc1FanLow
Definition ir_Hitachi.h:230
const uint8_t kHitachiAc344ButtonTempDown
Definition ir_Hitachi.h:137
const uint8_t kHitachiAc296MaxTemp
Definition ir_Hitachi.h:363
const uint8_t kHitachiAcFanLow
Definition ir_Hitachi.h:83
const uint8_t kHitachiAc344ButtonSwingH
Definition ir_Hitachi.h:140
const uint8_t kHitachiAc1Cool
Definition ir_Hitachi.h:224
const uint8_t kHitachiAc264Fan
Definition ir_Hitachi.h:289
const uint8_t kHitachiAc1Sleep3
Definition ir_Hitachi.h:242
const uint8_t kHitachiAcDry
Definition ir_Hitachi.h:80
const uint8_t kHitachiAc296DryCool
Definition ir_Hitachi.h:347
const uint8_t kHitachiAc1Sleep2
Definition ir_Hitachi.h:241
const uint8_t kHitachiAc296AutoDehumidifying
Definition ir_Hitachi.h:351
const uint8_t kHitachiAc1Sleep4
Definition ir_Hitachi.h:243
const uint8_t kHitachiAc424MaxTemp
Definition ir_Hitachi.h:143
const uint8_t kHitachiAc1Auto
Definition ir_Hitachi.h:226
const uint8_t kHitachiAc1TempDelta
Definition ir_Hitachi.h:234
const uint8_t kHitachiAc344Fan
Definition ir_Hitachi.h:152
const uint8_t kHitachiAcCool
Definition ir_Hitachi.h:79
const uint8_t kHitachiAc264ButtonTempUp
Definition ir_Hitachi.h:285
const uint8_t kHitachiAc1Model_B
Definition ir_Hitachi.h:219
const uint8_t kHitachiAc424ButtonPowerMode
Definition ir_Hitachi.h:129
const uint8_t kHitachiAc264FanMedium
Definition ir_Hitachi.h:295
const uint8_t kHitachiAc296FanSilent
Definition ir_Hitachi.h:355
const uint8_t kHitachiAc264ButtonTempDown
Definition ir_Hitachi.h:284
const uint8_t kHitachiAc264FanAuto
Definition ir_Hitachi.h:297
const uint8_t kHitachiAc424Fan
Definition ir_Hitachi.h:148
const uint8_t kHitachiAc344Dry
Definition ir_Hitachi.h:154
const uint8_t kHitachiAc344ButtonPowerMode
Definition ir_Hitachi.h:135
const uint8_t kHitachiAc296CondensationControl
Definition ir_Hitachi.h:353
const uint8_t kHitachiAc264ButtonPowerMode
Definition ir_Hitachi.h:282
const uint8_t kHitachiAc424MinTemp
Definition ir_Hitachi.h:142
const uint8_t kHitachiAc424FanMedium
Definition ir_Hitachi.h:159
const uint8_t kHitachiAc264MinTemp
Definition ir_Hitachi.h:287
const uint16_t kHitachiAcFreq
Definition ir_Hitachi.h:76
const uint8_t kHitachiAc296FanMedium
Definition ir_Hitachi.h:357
const uint8_t kHitachiAc264Cool
Definition ir_Hitachi.h:290
const uint8_t kHitachiAc344MaxTemp
Definition ir_Hitachi.h:145
const uint8_t kHitachiAc424ButtonFan
Definition ir_Hitachi.h:130
const uint8_t kHitachiAc344SwingHAuto
Definition ir_Hitachi.h:171
const uint8_t kHitachiAc296FanAuto
Definition ir_Hitachi.h:359
const uint8_t kHitachiAc424Dry
Definition ir_Hitachi.h:150
const uint8_t kHitachiAc424ButtonSwingV
Definition ir_Hitachi.h:133
const uint8_t kHitachiAc424Heat
Definition ir_Hitachi.h:151
const uint8_t kHitachiAc344ButtonFan
Definition ir_Hitachi.h:136
const uint8_t kHitachiAc1Model_A
Definition ir_Hitachi.h:218
const uint8_t kHitachiAc296Auto
Definition ir_Hitachi.h:350
const uint8_t kHitachiAc424FanMax
Definition ir_Hitachi.h:162
const uint8_t kHitachiAc296QuickLaundry
Definition ir_Hitachi.h:352
const uint8_t kHitachiAcMaxTemp
Definition ir_Hitachi.h:87
const uint8_t kHitachiAc344FanAuto
Definition ir_Hitachi.h:168
const uint8_t kHitachiAc424Cool
Definition ir_Hitachi.h:149
const uint8_t kHitachiAcFan
Definition ir_Hitachi.h:81
const uint8_t kHitachiAcFanAuto
Definition ir_Hitachi.h:82
const uint8_t kHitachiAc344Heat
Definition ir_Hitachi.h:155
const uint8_t kHitachiAc1FanAuto
Definition ir_Hitachi.h:227
const uint8_t kHitachiAc296FanHigh
Definition ir_Hitachi.h:358
const uint8_t kHitachiAc264FanMin
Definition ir_Hitachi.h:293
const uint8_t kHitachiAc344MinTemp
Definition ir_Hitachi.h:144
const uint8_t kHitachiAc344ButtonTempUp
Definition ir_Hitachi.h:138
const uint8_t kHitachiAc264Dry
Definition ir_Hitachi.h:291
const uint8_t kHitachiAc344SwingHMiddle
Definition ir_Hitachi.h:174
const uint8_t kHitachiAc1Dry
Definition ir_Hitachi.h:222
const uint8_t kHitachiAc344FanHigh
Definition ir_Hitachi.h:167
const uint8_t kHitachiAcFanHigh
Definition ir_Hitachi.h:85
const uint8_t kHitachiAc296Dehumidify
Definition ir_Hitachi.h:348
const uint8_t kHitachiAc424FanTemp
Definition ir_Hitachi.h:146
const uint8_t kHitachiAc264ButtonSwingV
Definition ir_Hitachi.h:286
const uint8_t kHitachiAc264MaxTemp
Definition ir_Hitachi.h:288
const uint8_t kHitachiAc344SwingHRightMax
Definition ir_Hitachi.h:172
const uint8_t kHitachiAc344Cool
Definition ir_Hitachi.h:153
const uint8_t kHitachiAc344ButtonSwingV
Definition ir_Hitachi.h:139
const uint8_t kHitachiAc1SleepOff
Definition ir_Hitachi.h:239
const uint8_t kHitachiAc264ButtonFan
Definition ir_Hitachi.h:283
const uint8_t kHitachiAcMinTemp
Definition ir_Hitachi.h:86
const uint8_t kHitachiAc296Cool
Definition ir_Hitachi.h:346
const uint8_t kHitachiAc264FanLow
Definition ir_Hitachi.h:294
const uint8_t kHitachiAc344FanMedium
Definition ir_Hitachi.h:166
const uint8_t kHitachiAcAutoTemp
Definition ir_Hitachi.h:88
const uint8_t kHitachiAc424FanHigh
Definition ir_Hitachi.h:160
const uint8_t kHitachiAc424FanMin
Definition ir_Hitachi.h:157
const uint8_t kHitachiAc296TempAuto
Definition ir_Hitachi.h:361
const uint8_t kHitachiAc1Sleep1
Definition ir_Hitachi.h:240
const uint8_t kHitachiAc1Heat
Definition ir_Hitachi.h:225
const uint8_t kHitachiAc296FanLow
Definition ir_Hitachi.h:356
const uint8_t kHitachiAc344FanMin
Definition ir_Hitachi.h:164
const uint8_t kHitachiAc296MinTemp
Definition ir_Hitachi.h:362
const uint8_t kHitachiAc1Fan
Definition ir_Hitachi.h:223
const uint8_t kHitachiAc424ButtonTempUp
Definition ir_Hitachi.h:132
const uint8_t kHitachiAcFanMed
Definition ir_Hitachi.h:84
const uint8_t kHitachiAc424FanLow
Definition ir_Hitachi.h:158
const uint8_t kHitachiAc344FanLow
Definition ir_Hitachi.h:165
const uint8_t kHitachiAc1FanHigh
Definition ir_Hitachi.h:228
const uint8_t kHitachiAc296Heat
Definition ir_Hitachi.h:349
const uint8_t kHitachiAc344SwingHLeftMax
Definition ir_Hitachi.h:176
const uint8_t kHitachiAc1TempAuto
Definition ir_Hitachi.h:235
const uint8_t kHitachiAc424ButtonTempDown
Definition ir_Hitachi.h:131
const uint8_t kHitachiAc424FanAuto
Definition ir_Hitachi.h:161
const uint8_t kHitachiAcHeat
Definition ir_Hitachi.h:78
const uint8_t kHitachiAc344FanMax
Definition ir_Hitachi.h:169
const uint8_t kHitachiAc264FanHigh
Definition ir_Hitachi.h:296
const uint8_t kHitachiAc424ButtonSwingH
Definition ir_Hitachi.h:134
const uint8_t kHitachiAc344SwingHRight
Definition ir_Hitachi.h:173
const uint8_t kHitachiAc344SwingHLeft
Definition ir_Hitachi.h:175
const uint8_t kHitachiAc424FanMaxDry
Definition ir_Hitachi.h:163
const uint8_t kHitachiAc296PowerOff
Definition ir_Hitachi.h:366
const uint8_t kHitachiAcAuto
Definition ir_Hitachi.h:77
const uint8_t kHitachiAc1ChecksumStartByte
Definition ir_Hitachi.h:245
const uint8_t kHitachiAc1FanMed
Definition ir_Hitachi.h:229
const uint8_t kHitachiAc296PowerOn
Definition ir_Hitachi.h:365
const uint8_t kHitachiAc1TimerSize
Definition ir_Hitachi.h:237
const uint8_t kHitachiAc1TempSize
Definition ir_Hitachi.h:233
fanspeed_t
Common A/C settings for Fan Speeds.
Definition IRsend.h:61
opmode_t
Common A/C settings for A/C operating modes.
Definition IRsend.h:49
swingh_t
Common A/C settings for Horizontal Swing.
Definition IRsend.h:100
Structure to hold a common A/C state.
Definition IRsend.h:114
Native representation of a Hitachi 104-bit A/C message.
Definition ir_Hitachi.h:180
uint8_t Mode
Definition ir_Hitachi.h:192
uint8_t OffTimerHigh
Definition ir_Hitachi.h:200
uint8_t pad[3]
Definition ir_Hitachi.h:184
uint8_t SwingToggle
Definition ir_Hitachi.h:206
uint8_t Power
Definition ir_Hitachi.h:209
uint8_t OnTimerLow
Definition ir_Hitachi.h:202
uint8_t Sleep
Definition ir_Hitachi.h:207
uint8_t SwingV
Definition ir_Hitachi.h:210
uint8_t OnTimerHigh
Definition ir_Hitachi.h:204
uint8_t SwingH
Definition ir_Hitachi.h:211
uint8_t Model
Definition ir_Hitachi.h:187
uint8_t Temp
Definition ir_Hitachi.h:195
uint8_t raw[kHitachiAc1StateLength]
The state in native code.
Definition ir_Hitachi.h:181
uint8_t Fan
Definition ir_Hitachi.h:191
uint8_t PowerToggle
Definition ir_Hitachi.h:208
uint8_t OffTimerLow
Definition ir_Hitachi.h:198
uint8_t Sum
Definition ir_Hitachi.h:213
Native representation of a Hitachi 53-byte/424-bit A/C message.
Definition ir_Hitachi.h:91
uint8_t Power
Definition ir_Hitachi.h:112
uint8_t raw[kHitachiAc424StateLength]
The state in native code.
Definition ir_Hitachi.h:92
uint8_t Fan
Definition ir_Hitachi.h:107
uint8_t Temp
Definition ir_Hitachi.h:102
uint8_t Mode
Definition ir_Hitachi.h:106
uint8_t Button
Definition ir_Hitachi.h:97
uint8_t pad2[7]
Definition ir_Hitachi.h:115
uint8_t pad1[11]
Definition ir_Hitachi.h:104
uint8_t pad0[11]
Definition ir_Hitachi.h:95
uint8_t SwingH
Definition ir_Hitachi.h:117
uint8_t SwingV
Definition ir_Hitachi.h:123
Native representation of a Hitachi 164-bit A/C message.
Definition ir_Hitachi.h:249
uint8_t pad1[10]
Definition ir_Hitachi.h:264
uint8_t pad0[11]
Definition ir_Hitachi.h:253
uint8_t Fan
Definition ir_Hitachi.h:267
uint8_t Temp
Definition ir_Hitachi.h:260
uint8_t Button
Definition ir_Hitachi.h:255
uint8_t Mode
Definition ir_Hitachi.h:266
uint8_t Power
Definition ir_Hitachi.h:272
uint8_t pad2[4]
Definition ir_Hitachi.h:277
uint8_t raw[kHitachiAc264StateLength]
The state in native code.
Definition ir_Hitachi.h:250
Definition ir_Hitachi.h:300
uint8_t pad0[13]
Definition ir_Hitachi.h:304
uint8_t OffTimerHigh
Definition ir_Hitachi.h:316
uint8_t Fan
Definition ir_Hitachi.h:327
uint8_t OnTimerLow
Definition ir_Hitachi.h:318
uint8_t Humidity
Definition ir_Hitachi.h:340
uint8_t TimerActive
Definition ir_Hitachi.h:334
uint8_t Mode
Definition ir_Hitachi.h:326
uint8_t Power
Definition ir_Hitachi.h:332
uint8_t Temp
Definition ir_Hitachi.h:307
uint8_t OffTimerActive
Definition ir_Hitachi.h:321
uint8_t OffTimerLow
Definition ir_Hitachi.h:314
uint8_t raw[kHitachiAc296StateLength]
Definition ir_Hitachi.h:301
uint8_t OnTimerActive
Definition ir_Hitachi.h:322
uint8_t pad1[6]
Definition ir_Hitachi.h:337
uint8_t OnTimerHigh
Definition ir_Hitachi.h:320
Native representation of a Hitachi 224-bit A/C message.
Definition ir_Hitachi.h:44
uint8_t pad1[9]
Definition ir_Hitachi.h:69
uint8_t SwingV
Definition ir_Hitachi.h:59
uint8_t Mode
Definition ir_Hitachi.h:50
uint8_t Sum
Definition ir_Hitachi.h:71
uint8_t Temp
Definition ir_Hitachi.h:52
uint8_t pad0[10]
Definition ir_Hitachi.h:48
uint8_t raw[kHitachiAcStateLength]
The state in native code.
Definition ir_Hitachi.h:45
uint8_t Power
Definition ir_Hitachi.h:66
uint8_t SwingH
Definition ir_Hitachi.h:62
uint8_t Fan
Definition ir_Hitachi.h:56