IRremoteESP8266
ir_Haier.h
Go to the documentation of this file.
1 // Copyright 2018-2021 crankyoldgit
11 
12 // Supports:
13 // Brand: Haier, Model: HSU07-HEA03 remote (HAIER_AC)
14 // Brand: Haier, Model: YR-W02 remote (HAIER_AC_YRW02)
15 // Brand: Haier, Model: HSU-09HMC203 A/C (HAIER_AC_YRW02)
16 // Brand: Haier, Model: V9014557 M47 8D remote (HAIER_AC176)
17 // Brand: Mabe, Model: MMI18HDBWCA6MI8 A/C (HAIER_AC176)
18 // Brand: Mabe, Model: V12843 HJ200223 remote (HAIER_AC176)
19 // Brand: Daichi, Model: D-H A/C (HAIER_AC176)
20 
21 #ifndef IR_HAIER_H_
22 #define IR_HAIER_H_
23 
24 #ifndef UNIT_TEST
25 #include <Arduino.h>
26 #endif
27 #include "IRremoteESP8266.h"
28 #include "IRsend.h"
29 #ifdef UNIT_TEST
30 #include "IRsend_test.h"
31 #endif
32 
37  struct {
38  // Byte 0
39  uint8_t Prefix;
40  // Byte 1
41  uint8_t Command:4;
42  uint8_t Temp :4;
43  // Byte 2
44  uint8_t CurrHours:5;
45  uint8_t unknown :1; // value=1
46  uint8_t SwingV :2;
47  // Byte 3
48  uint8_t CurrMins:6;
49  uint8_t OffTimer:1;
50  uint8_t OnTimer :1;
51  // Byte 4
52  uint8_t OffHours:5;
53  uint8_t Health :1;
54  uint8_t :0;
55  // Byte 5
56  uint8_t OffMins:6;
57  uint8_t Fan :2;
58  // Byte 6
59  uint8_t OnHours:5;
60  uint8_t Mode :3;
61  // Byte 7
62  uint8_t OnMins:6;
63  uint8_t Sleep :1;
64  uint8_t :0;
65  // Byte 8
66  uint8_t Sum;
67  };
68 };
69 
70 // Constants
71 
72 const uint8_t kHaierAcPrefix = 0b10100101;
73 
74 const uint8_t kHaierAcMinTemp = 16;
75 const uint8_t kHaierAcDefTemp = 25;
76 const uint8_t kHaierAcMaxTemp = 30;
77 const uint8_t kHaierAcCmdOff = 0b0000;
78 const uint8_t kHaierAcCmdOn = 0b0001;
79 const uint8_t kHaierAcCmdMode = 0b0010;
80 const uint8_t kHaierAcCmdFan = 0b0011;
81 const uint8_t kHaierAcCmdTempUp = 0b0110;
82 const uint8_t kHaierAcCmdTempDown = 0b0111;
83 const uint8_t kHaierAcCmdSleep = 0b1000;
84 const uint8_t kHaierAcCmdTimerSet = 0b1001;
85 const uint8_t kHaierAcCmdTimerCancel = 0b1010;
86 const uint8_t kHaierAcCmdHealth = 0b1100;
87 const uint8_t kHaierAcCmdSwing = 0b1101;
88 
89 const uint8_t kHaierAcSwingVOff = 0b00;
90 const uint8_t kHaierAcSwingVUp = 0b01;
91 const uint8_t kHaierAcSwingVDown = 0b10;
92 const uint8_t kHaierAcSwingVChg = 0b11;
93 
94 const uint8_t kHaierAcAuto = 0;
95 const uint8_t kHaierAcCool = 1;
96 const uint8_t kHaierAcDry = 2;
97 const uint8_t kHaierAcHeat = 3;
98 const uint8_t kHaierAcFan = 4;
99 
100 const uint8_t kHaierAcFanAuto = 0;
101 const uint8_t kHaierAcFanLow = 1;
102 const uint8_t kHaierAcFanMed = 2;
103 const uint8_t kHaierAcFanHigh = 3;
104 
105 const uint16_t kHaierAcMaxTime = (23 * 60) + 59;
106 
107 const uint8_t kHaierAcSleepBit = 0b01000000;
108 
109 // Legacy Haier AC defines.
110 #define HAIER_AC_MIN_TEMP kHaierAcMinTemp
111 #define HAIER_AC_DEF_TEMP kHaierAcDefTemp
112 #define HAIER_AC_MAX_TEMP kHaierAcMaxTemp
113 #define HAIER_AC_CMD_OFF kHaierAcCmdOff
114 #define HAIER_AC_CMD_ON kHaierAcCmdOn
115 #define HAIER_AC_CMD_MODE kHaierAcCmdMode
116 #define HAIER_AC_CMD_FAN kHaierAcCmdFan
117 #define HAIER_AC_CMD_TEMP_UP kHaierAcCmdTempUp
118 #define HAIER_AC_CMD_TEMP_DOWN kHaierAcCmdTempDown
119 #define HAIER_AC_CMD_SLEEP kHaierAcCmdSleep
120 #define HAIER_AC_CMD_TIMER_SET kHaierAcCmdTimerSet
121 #define HAIER_AC_CMD_TIMER_CANCEL kHaierAcCmdTimerCancel
122 #define HAIER_AC_CMD_HEALTH kHaierAcCmdHealth
123 #define HAIER_AC_CMD_SWINGV kHaierAcCmdSwing
124 #define HAIER_AC_SWINGV_OFF kHaierAcSwingVOff
125 #define HAIER_AC_SWINGV_UP kHaierAcSwingVUp
126 #define HAIER_AC_SWINGV_DOWN kHaierAcSwingVDown
127 #define HAIER_AC_SWINGV_CHG kHaierAcSwingVChg
128 #define HAIER_AC_AUTO kHaierAcAuto
129 #define HAIER_AC_COOL kHaierAcCool
130 #define HAIER_AC_DRY kHaierAcDry
131 #define HAIER_AC_HEAT kHaierAcHeat
132 #define HAIER_AC_FAN kHaierAcFan
133 #define HAIER_AC_FAN_AUTO kHaierAcFanAuto
134 #define HAIER_AC_FAN_LOW kHaierAcFanLow
135 #define HAIER_AC_FAN_MED kHaierAcFanMed
136 #define HAIER_AC_FAN_HIGH kHaierAcFanHigh
137 
138 const uint8_t kHaierAcYrw02MinTempC = 16;
139 const uint8_t kHaierAcYrw02MaxTempC = 30;
140 const uint8_t kHaierAcYrw02MinTempF = 60;
141 const uint8_t kHaierAcYrw02MaxTempF = 86;
142 const uint8_t kHaierAcYrw02DefTempC = 25;
143 
144 const uint8_t kHaierAcYrw02ModelA = 0xA6;
145 const uint8_t kHaierAcYrw02ModelB = 0x59;
146 const uint8_t kHaierAc176Prefix = 0xB7;
147 
148 const uint8_t kHaierAcYrw02SwingVOff = 0x0;
149 const uint8_t kHaierAcYrw02SwingVTop = 0x1;
150 const uint8_t kHaierAcYrw02SwingVMiddle = 0x2; // Not available in heat mode.
151 const uint8_t kHaierAcYrw02SwingVBottom = 0x3; // Only available in heat mode.
152 const uint8_t kHaierAcYrw02SwingVDown = 0xA;
153 const uint8_t kHaierAcYrw02SwingVAuto = 0xC; // Airflow
154 
155 const uint8_t kHaierAcYrw02SwingHMiddle = 0x0;
156 const uint8_t kHaierAcYrw02SwingHLeftMax = 0x3;
157 const uint8_t kHaierAcYrw02SwingHLeft = 0x4;
158 const uint8_t kHaierAcYrw02SwingHRight = 0x5;
159 const uint8_t kHaierAcYrw02SwingHRightMax = 0x6;
160 const uint8_t kHaierAcYrw02SwingHAuto = 0x7;
161 
162 const uint8_t kHaierAcYrw02FanHigh = 0b001;
163 const uint8_t kHaierAcYrw02FanMed = 0b010;
164 const uint8_t kHaierAcYrw02FanLow = 0b011;
165 const uint8_t kHaierAcYrw02FanAuto = 0b101; // HAIER_AC176 uses `0` in Fan2
166 
167 const uint8_t kHaierAcYrw02Auto = 0b000; // 0
168 const uint8_t kHaierAcYrw02Cool = 0b001; // 1
169 const uint8_t kHaierAcYrw02Dry = 0b010; // 2
170 const uint8_t kHaierAcYrw02Heat = 0b100; // 4
171 const uint8_t kHaierAcYrw02Fan = 0b110; // 5
172 
173 const uint8_t kHaierAcYrw02ButtonTempUp = 0b00000;
174 const uint8_t kHaierAcYrw02ButtonTempDown = 0b00001;
175 const uint8_t kHaierAcYrw02ButtonSwingV = 0b00010;
176 const uint8_t kHaierAcYrw02ButtonSwingH = 0b00011;
177 const uint8_t kHaierAcYrw02ButtonFan = 0b00100;
178 const uint8_t kHaierAcYrw02ButtonPower = 0b00101;
179 const uint8_t kHaierAcYrw02ButtonMode = 0b00110;
180 const uint8_t kHaierAcYrw02ButtonHealth = 0b00111;
181 const uint8_t kHaierAcYrw02ButtonTurbo = 0b01000;
182 const uint8_t kHaierAcYrw02ButtonSleep = 0b01011;
183 const uint8_t kHaierAcYrw02ButtonTimer = 0b10000;
184 const uint8_t kHaierAcYrw02ButtonLock = 0b10100;
185 const uint8_t kHaierAcYrw02ButtonCFAB = 0b11010;
186 
187 const uint8_t kHaierAcYrw02NoTimers = 0b000;
188 const uint8_t kHaierAcYrw02OffTimer = 0b001;
189 const uint8_t kHaierAcYrw02OnTimer = 0b010;
190 const uint8_t kHaierAcYrw02OnThenOffTimer = 0b100;
191 const uint8_t kHaierAcYrw02OffThenOnTimer = 0b101;
192 
196  struct {
197  // Byte 0
198  uint8_t Model :8;
199  // Byte 1
200  uint8_t SwingV :4;
201  uint8_t Temp :4; // 16C~30C
202  // Byte 2
203  uint8_t :5;
204  uint8_t SwingH :3;
205  // Byte 3
206  uint8_t :1;
207  uint8_t Health :1;
208  uint8_t :3;
209  uint8_t TimerMode :3;
210  // Byte 4
211  uint8_t :6;
212  uint8_t Power :1;
213  uint8_t :1;
214  // Byte 5
215  uint8_t OffTimerHrs :5;
216  uint8_t Fan :3;
217  // Byte 6
218  uint8_t OffTimerMins:6;
219  uint8_t Turbo :1;
220  uint8_t Quiet :1;
221  // Byte 7
222  uint8_t OnTimerHrs :5;
223  uint8_t Mode :3;
224  // Byte 8
225  uint8_t OnTimerMins :6;
226  uint8_t :1;
227  uint8_t Sleep :1;
228  // Byte 9
229  uint8_t :8;
230  // Byte 10
231  uint8_t ExtraDegreeF :1;
232  uint8_t :4;
233  uint8_t UseFahrenheit:1;
234  uint8_t :2;
235  // Byte 11
236  uint8_t :8;
237  // Byte 12
238  uint8_t Button :5;
239  uint8_t Lock :1;
240  uint8_t :2;
241  // Byte 13
242  uint8_t Sum :8;
243  // Byte 14
244  uint8_t Prefix2 :8;
245  // Byte 15
246  uint8_t :8;
247  // Byte 16
248  uint8_t :6;
249  uint8_t Fan2 :2;
250  // Byte 17
251  uint8_t :8;
252  // Byte 18
253  uint8_t :8;
254  // Byte 19
255  uint8_t :8;
256  // Byte 20
257  uint8_t :8;
258  // Byte 21
259  uint8_t Sum2 :8;
260  };
261 };
262 
263 // Legacy Haier YRW02 remote defines.
264 #define HAIER_AC_YRW02_SWING_OFF kHaierAcYrw02SwingOff
265 #define HAIER_AC_YRW02_SWING_TOP kHaierAcYrw02SwingTop
266 #define HAIER_AC_YRW02_SWING_MIDDLE kHaierAcYrw02SwingMiddle
267 #define HAIER_AC_YRW02_SWING_BOTTOM kHaierAcYrw02SwingBottom
268 #define HAIER_AC_YRW02_SWING_DOWN kHaierAcYrw02SwingDown
269 #define HAIER_AC_YRW02_SWING_AUTO kHaierAcYrw02SwingAuto
270 #define HAIER_AC_YRW02_FAN_HIGH kHaierAcYrw02FanHigh
271 #define HAIER_AC_YRW02_FAN_MED kHaierAcYrw02FanMed
272 #define HAIER_AC_YRW02_FAN_LOW kHaierAcYrw02FanLow
273 #define HAIER_AC_YRW02_FAN_AUTO kHaierAcYrw02FanAuto
274 #define HAIER_AC_YRW02_TURBO_OFF kHaierAcYrw02TurboOff
275 #define HAIER_AC_YRW02_AUTO kHaierAcYrw02Auto
276 #define HAIER_AC_YRW02_COOL kHaierAcYrw02Cool
277 #define HAIER_AC_YRW02_DRY kHaierAcYrw02Dry
278 #define HAIER_AC_YRW02_HEAT kHaierAcYrw02Heat
279 #define HAIER_AC_YRW02_FAN kHaierAcYrw02Fan
280 #define HAIER_AC_YRW02_BUTTON_TEMP_UP kHaierAcYrw02ButtonTempUp
281 #define HAIER_AC_YRW02_BUTTON_TEMP_DOWN kHaierAcYrw02ButtonTempDown
282 #define HAIER_AC_YRW02_BUTTON_SWING kHaierAcYrw02ButtonSwing
283 #define HAIER_AC_YRW02_BUTTON_FAN kHaierAcYrw02ButtonFan
284 #define HAIER_AC_YRW02_BUTTON_POWER kHaierAcYrw02ButtonPower
285 #define HAIER_AC_YRW02_BUTTON_MODE kHaierAcYrw02ButtonMode
286 #define HAIER_AC_YRW02_BUTTON_HEALTH kHaierAcYrw02ButtonHealth
287 #define HAIER_AC_YRW02_BUTTON_TURBO kHaierAcYrw02ButtonTurbo
288 #define HAIER_AC_YRW02_BUTTON_SLEEP kHaierAcYrw02ButtonSleep
289 
290 // Classes
292 class IRHaierAC {
293  public:
294  explicit IRHaierAC(const uint16_t pin, const bool inverted = false,
295  const bool use_modulation = true);
296 #if SEND_HAIER_AC
297  void send(const uint16_t repeat = kHaierAcDefaultRepeat);
302  int8_t calibrate(void) { return _irsend.calibrate(); }
303 #endif // SEND_HAIER_AC
304  void begin(void);
305  void stateReset(void);
306 
307  void setCommand(const uint8_t command);
308  uint8_t getCommand(void) const;
309 
310  void setTemp(const uint8_t temp);
311  uint8_t getTemp(void) const;
312 
313  void setFan(const uint8_t speed);
314  uint8_t getFan(void) const;
315 
316  uint8_t getMode(void) const;
317  void setMode(const uint8_t mode);
318 
319  bool getSleep(void) const;
320  void setSleep(const bool on);
321  bool getHealth(void) const;
322  void setHealth(const bool on);
323 
324  int16_t getOnTimer(void) const;
325  void setOnTimer(const uint16_t mins);
326  int16_t getOffTimer(void) const;
327  void setOffTimer(const uint16_t mins);
328  void cancelTimers(void);
329 
330  uint16_t getCurrTime(void) const;
331  void setCurrTime(const uint16_t mins);
332 
333  uint8_t getSwingV(void) const;
334  void setSwingV(const uint8_t state);
335 
336  uint8_t* getRaw(void);
337  void setRaw(const uint8_t new_code[]);
338  static bool validChecksum(uint8_t state[],
339  const uint16_t length = kHaierACStateLength);
340  static uint8_t convertMode(const stdAc::opmode_t mode);
341  static uint8_t convertFan(const stdAc::fanspeed_t speed);
342  static uint8_t convertSwingV(const stdAc::swingv_t position);
343  static stdAc::opmode_t toCommonMode(const uint8_t mode);
344  static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed);
345  static stdAc::swingv_t toCommonSwingV(const uint8_t pos);
346  stdAc::state_t toCommon(void) const;
347  String toString(void) const;
348 #ifndef UNIT_TEST
349 
350  private:
352 #else // UNIT_TEST
353  IRsendTest _irsend;
355 #endif
358  void checksum(void);
359 };
360 
363  friend class IRHaierACYRW02;
364  public:
365  explicit IRHaierAC176(const uint16_t pin, const bool inverted = false,
366  const bool use_modulation = true);
367 #if SEND_HAIER_AC176
368  virtual void send(const uint16_t repeat = kHaierAc176DefaultRepeat);
373  int8_t calibrate(void) { return _irsend.calibrate(); }
374 #endif // SEND_HAIER_AC176
375  void begin(void);
376  void stateReset(void);
377 
378  void setModel(const haier_ac176_remote_model_t model);
380 
381  void setButton(const uint8_t button);
382  uint8_t getButton(void) const;
383 
384  void setUseFahrenheit(const bool on);
385  bool getUseFahrenheit(void) const;
386  void setTemp(const uint8_t temp, const bool fahrenheit = false);
387  uint8_t getTemp(void) const;
388 
389  void setFan(const uint8_t speed);
390  uint8_t getFan(void) const;
391 
392  uint8_t getMode(void) const;
393  void setMode(const uint8_t mode);
394 
395  bool getPower(void) const;
396  void setPower(const bool on);
397  void on(void);
398  void off(void);
399 
400  bool getSleep(void) const;
401  void setSleep(const bool on);
402  bool getHealth(void) const;
403  void setHealth(const bool on);
404 
405  bool getTurbo(void) const;
406  void setTurbo(const bool on);
407  bool getQuiet(void) const;
408  void setQuiet(const bool on);
409 
410  uint8_t getSwingV(void) const;
411  void setSwingV(const uint8_t pos);
412  uint8_t getSwingH(void) const;
413  void setSwingH(const uint8_t pos);
414 
417  uint8_t getSwing(void) const;
418  void setSwing(const uint8_t pos);
419 
420  void setTimerMode(const uint8_t setting);
421  uint8_t getTimerMode(void) const;
422  void setOnTimer(const uint16_t mins);
423  uint16_t getOnTimer(void) const;
424  void setOffTimer(const uint16_t mins);
425  uint16_t getOffTimer(void) const;
426 
427  bool getLock(void) const;
428  void setLock(const bool on);
429 
430  uint8_t* getRaw(void);
431  virtual void setRaw(const uint8_t new_code[]);
432  static bool validChecksum(const uint8_t state[],
433  const uint16_t length = kHaierAC176StateLength);
434  static uint8_t convertMode(const stdAc::opmode_t mode);
435  static uint8_t convertFan(const stdAc::fanspeed_t speed);
436  static uint8_t convertSwingV(const stdAc::swingv_t position);
437  static uint8_t convertSwingH(const stdAc::swingh_t position);
438  static stdAc::opmode_t toCommonMode(const uint8_t mode);
439  static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed);
440  static stdAc::swingv_t toCommonSwingV(const uint8_t pos);
441  static stdAc::swingh_t toCommonSwingH(const uint8_t pos);
442  static bool toCommonTurbo(const uint8_t speed);
443  static bool toCommonQuiet(const uint8_t speed);
444  stdAc::state_t toCommon(void) const;
445  String toString(void) const;
446 #ifndef UNIT_TEST
447 
448  private:
450 #else // UNIT_TEST
451  IRsendTest _irsend;
453 #endif // UNIT_TEST
456  void checksum(void);
457 };
458 
460 class IRHaierACYRW02 : public IRHaierAC176 {
461  public:
462  explicit IRHaierACYRW02(const uint16_t pin, const bool inverted = false,
463  const bool use_modulation = true);
464 #if SEND_HAIER_AC_YRW02
465  void send(const uint16_t repeat = kHaierAcYrw02DefaultRepeat) override;
470  int8_t calibrate(void) { return _irsend.calibrate(); }
471 #endif // SEND_HAIER_AC_YRW02
472  void setRaw(const uint8_t new_code[]) override;
473  static bool validChecksum(
474  const uint8_t state[],
475  const uint16_t length = kHaierACYRW02StateLength);
476 };
477 #endif // IR_HAIER_H_
kHaierAcCmdFan
const uint8_t kHaierAcCmdFan
Definition: ir_Haier.h:80
IRHaierAC176::setButton
void setButton(const uint8_t button)
Set the Button/Command setting of the A/C.
Definition: ir_Haier.cpp:610
kHaierAcFanHigh
const uint8_t kHaierAcFanHigh
Definition: ir_Haier.h:103
IRHaierAC176::getLock
bool getLock(void) const
Get the Lock setting of the A/C.
Definition: ir_Haier.cpp:1007
kHaierAcYrw02DefaultRepeat
const uint16_t kHaierAcYrw02DefaultRepeat
Definition: IRremoteESP8266.h:1073
IRHaierAC176::begin
void begin(void)
Set up hardware to be able to send a message.
Definition: ir_Haier.cpp:548
IRHaierAC::getOffTimer
int16_t getOffTimer(void) const
Get the Off Timer value/setting of the A/C.
Definition: ir_Haier.cpp:283
kHaierAcSwingVUp
const uint8_t kHaierAcSwingVUp
Definition: ir_Haier.h:90
IRHaierAC::getMode
uint8_t getMode(void) const
Get the operating mode setting of the A/C.
Definition: ir_Haier.cpp:217
IRHaierAC176::getOffTimer
uint16_t getOffTimer(void) const
Get the number of minutes of the Off Timer setting.
Definition: ir_Haier.cpp:1001
kHaierAcYrw02Fan
const uint8_t kHaierAcYrw02Fan
Definition: ir_Haier.h:171
HaierAc176Protocol::Sleep
uint8_t Sleep
Definition: ir_Haier.h:227
kHaierAcDefaultRepeat
const uint16_t kHaierAcDefaultRepeat
Definition: IRremoteESP8266.h:1070
HaierAc176Protocol::raw
uint8_t raw[kHaierAC176StateLength]
The state in native form.
Definition: ir_Haier.h:195
kHaierAcYrw02FanMed
const uint8_t kHaierAcYrw02FanMed
Definition: ir_Haier.h:163
kHaierAcYrw02SwingVTop
const uint8_t kHaierAcYrw02SwingVTop
Definition: ir_Haier.h:149
kHaierAcAuto
const uint8_t kHaierAcAuto
Definition: ir_Haier.h:94
kHaierAcYrw02ButtonTurbo
const uint8_t kHaierAcYrw02ButtonTurbo
Definition: ir_Haier.h:181
HaierAc176Protocol::Quiet
uint8_t Quiet
Definition: ir_Haier.h:220
IRHaierACYRW02::calibrate
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition: ir_Haier.h:470
stdAc::swingv_t
swingv_t
Common A/C settings for Vertical Swing.
Definition: IRsend.h:70
IRHaierAC176::validChecksum
static bool validChecksum(const uint8_t state[], const uint16_t length=kHaierAC176StateLength)
Verify the checksum is valid for a given state.
Definition: ir_Haier.cpp:569
kHaierAcYrw02OnTimer
const uint8_t kHaierAcYrw02OnTimer
Definition: ir_Haier.h:189
kHaierAcYrw02OffThenOnTimer
const uint8_t kHaierAcYrw02OffThenOnTimer
Definition: ir_Haier.h:191
kHaierACStateLength
const uint16_t kHaierACStateLength
Definition: IRremoteESP8266.h:1068
IRHaierACYRW02::validChecksum
static bool validChecksum(const uint8_t state[], const uint16_t length=kHaierACYRW02StateLength)
Verify the checksum is valid for a given state.
Definition: ir_Haier.cpp:1320
IRHaierAC176::getSwingV
uint8_t getSwingV(void) const
Get the Vertical Swing position setting of the A/C.
Definition: ir_Haier.cpp:878
kHaierAcCmdTempDown
const uint8_t kHaierAcCmdTempDown
Definition: ir_Haier.h:82
IRHaierAC::setRaw
void setRaw(const uint8_t new_code[])
Set the internal state from a valid code for this protocol.
Definition: ir_Haier.cpp:149
IRHaierAC::stateReset
void stateReset(void)
Reset the internal state to a fixed known good state.
Definition: ir_Haier.cpp:130
kHaierAcCmdMode
const uint8_t kHaierAcCmdMode
Definition: ir_Haier.h:79
stdAc::fanspeed_t
fanspeed_t
Common A/C settings for Fan Speeds.
Definition: IRsend.h:58
kHaierAcYrw02ButtonHealth
const uint8_t kHaierAcYrw02ButtonHealth
Definition: ir_Haier.h:180
kHaierAcYrw02SwingHMiddle
const uint8_t kHaierAcYrw02SwingHMiddle
Definition: ir_Haier.h:155
IRHaierAC::getCurrTime
uint16_t getCurrTime(void) const
Get the clock value of the A/C.
Definition: ir_Haier.cpp:293
IRHaierAC::setFan
void setFan(const uint8_t speed)
Set the speed of the fan.
Definition: ir_Haier.cpp:180
HaierAc176Protocol::Fan
uint8_t Fan
Definition: ir_Haier.h:216
IRHaierAC176::on
void on(void)
Change the power setting to On.
Definition: ir_Haier.cpp:796
IRHaierAC176::getTurbo
bool getTurbo(void) const
Get the Turbo setting of the A/C.
Definition: ir_Haier.cpp:814
HaierAc176Protocol::Mode
uint8_t Mode
Definition: ir_Haier.h:223
kHaierAcCmdSleep
const uint8_t kHaierAcCmdSleep
Definition: ir_Haier.h:83
IRHaierAC176::setMode
void setMode(const uint8_t mode)
Set the operating mode of the A/C.
Definition: ir_Haier.cpp:658
IRHaierAC::convertFan
static uint8_t convertFan(const stdAc::fanspeed_t speed)
Convert a stdAc::fanspeed_t enum into it's native speed.
Definition: ir_Haier.cpp:363
HaierAc176Protocol::OffTimerHrs
uint8_t OffTimerHrs
Definition: ir_Haier.h:215
kHaierAC176StateLength
const uint16_t kHaierAC176StateLength
Definition: IRremoteESP8266.h:1074
HaierProtocol::Prefix
uint8_t Prefix
Definition: ir_Haier.h:39
IRHaierAC176::getOnTimer
uint16_t getOnTimer(void) const
Get the number of minutes of the On Timer setting.
Definition: ir_Haier.cpp:971
IRHaierAC::getTemp
uint8_t getTemp(void) const
Get the current temperature setting.
Definition: ir_Haier.cpp:241
HaierProtocol::Temp
uint8_t Temp
Definition: ir_Haier.h:42
IRHaierAC::getFan
uint8_t getFan(void) const
Get the current fan speed setting.
Definition: ir_Haier.cpp:196
HaierProtocol::OnTimer
uint8_t OnTimer
Definition: ir_Haier.h:50
kHaierAcYrw02Auto
const uint8_t kHaierAcYrw02Auto
Definition: ir_Haier.h:167
HaierAc176Protocol::ExtraDegreeF
uint8_t ExtraDegreeF
Definition: ir_Haier.h:231
IRHaierAC176::_
HaierAc176Protocol _
Definition: ir_Haier.h:455
IRHaierAC::getRaw
uint8_t * getRaw(void)
Get a PTR to the internal state/code for this protocol.
Definition: ir_Haier.cpp:142
kHaierAcCmdSwing
const uint8_t kHaierAcCmdSwing
Definition: ir_Haier.h:87
IRHaierAC176::off
void off(void)
Change the power setting to Off.
Definition: ir_Haier.cpp:799
IRHaierAC176::getRaw
uint8_t * getRaw(void)
Get a PTR to the internal state/code for this protocol.
Definition: ir_Haier.cpp:597
IRHaierAC176::getUseFahrenheit
bool getUseFahrenheit(void) const
Get the default temperature units in use.
Definition: ir_Haier.cpp:688
kHaierAcSwingVChg
const uint8_t kHaierAcSwingVChg
Definition: ir_Haier.h:92
IRHaierAC176::setTimerMode
void setTimerMode(const uint8_t setting)
Set the Timer operating mode.
Definition: ir_Haier.cpp:924
IRHaierAC176::setSleep
void setSleep(const bool on)
Set the Sleep setting of the A/C.
Definition: ir_Haier.cpp:807
IRHaierAC176::toCommonTurbo
static bool toCommonTurbo(const uint8_t speed)
IRHaierAC::setSleep
void setSleep(const bool on)
Set the Sleep setting of the A/C.
Definition: ir_Haier.cpp:260
IRHaierAC176::getSwingH
uint8_t getSwingH(void) const
Get the Horizontal Swing position setting of the A/C.
Definition: ir_Haier.cpp:904
HaierAc176Protocol::Power
uint8_t Power
Definition: ir_Haier.h:212
HaierProtocol::CurrMins
uint8_t CurrMins
Definition: ir_Haier.h:48
kHaierAcYrw02DefTempC
const uint8_t kHaierAcYrw02DefTempC
Definition: ir_Haier.h:142
HaierAc176Protocol::Prefix2
uint8_t Prefix2
Definition: ir_Haier.h:244
IRsend.h
IRHaierAC176::setUseFahrenheit
void setUseFahrenheit(const bool on)
Set the default temperature units to use.
Definition: ir_Haier.cpp:684
IRHaierAC176::calibrate
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition: ir_Haier.h:373
IRHaierAC176::setTemp
void setTemp(const uint8_t temp, const bool fahrenheit=false)
Set the temperature.
Definition: ir_Haier.cpp:693
HaierProtocol::Mode
uint8_t Mode
Definition: ir_Haier.h:60
IRHaierAC176::setLock
void setLock(const bool on)
Set the Lock setting of the A/C.
Definition: ir_Haier.cpp:1011
IRHaierAC176::toString
String toString(void) const
Convert the current internal state into a human readable string.
Definition: ir_Haier.cpp:1155
kHaierAcYrw02SwingVMiddle
const uint8_t kHaierAcYrw02SwingVMiddle
Definition: ir_Haier.h:150
kHaierAcYrw02SwingVBottom
const uint8_t kHaierAcYrw02SwingVBottom
Definition: ir_Haier.h:151
IRHaierAC::setSwingV
void setSwingV(const uint8_t state)
Set the Vertical Swing mode of the A/C.
Definition: ir_Haier.cpp:334
IRHaierAC176::toCommonSwingV
static stdAc::swingv_t toCommonSwingV(const uint8_t pos)
Convert a stdAc::swingv_t enum into it's native setting.
Definition: ir_Haier.cpp:1101
IRHaierAC::toString
String toString(void) const
Convert the current internal state into a human readable string.
Definition: ir_Haier.cpp:455
kHaierAcCmdTimerSet
const uint8_t kHaierAcCmdTimerSet
Definition: ir_Haier.h:84
IRHaierAC::setMode
void setMode(const uint8_t mode)
Set the operating mode of the A/C.
Definition: ir_Haier.cpp:207
kHaierAcCmdTempUp
const uint8_t kHaierAcCmdTempUp
Definition: ir_Haier.h:81
IRHaierAC::cancelTimers
void cancelTimers(void)
Cancel/disable the On & Off timers.
Definition: ir_Haier.cpp:314
IRsend
Class for sending all basic IR protocols.
Definition: IRsend.h:208
IRHaierAC176::getSleep
bool getSleep(void) const
Get the Sleep setting of the A/C.
Definition: ir_Haier.cpp:803
IRHaierAC::_irsend
IRsend _irsend
Instance of the IR send class.
Definition: ir_Haier.h:351
IRHaierAC::convertMode
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a stdAc::opmode_t enum into its native mode.
Definition: ir_Haier.cpp:350
IRHaierAC176::checksum
void checksum(void)
Calculate and set the checksum values for the internal state.
Definition: ir_Haier.cpp:559
IRsend::calibrate
int8_t calibrate(uint16_t hz=38000U)
Calculate & set any offsets to account for execution times during sending.
Definition: IRsend.cpp:207
IRHaierAC176::getPower
bool getPower(void) const
Get the value of the current power setting.
Definition: ir_Haier.cpp:786
kHaierAcFanLow
const uint8_t kHaierAcFanLow
Definition: ir_Haier.h:101
kHaierAcYrw02OffTimer
const uint8_t kHaierAcYrw02OffTimer
Definition: ir_Haier.h:188
IRHaierAC176::setTurbo
void setTurbo(const bool on)
Set the Turbo setting of the A/C.
Definition: ir_Haier.cpp:819
kHaierAcYrw02SwingHRightMax
const uint8_t kHaierAcYrw02SwingHRightMax
Definition: ir_Haier.h:159
HaierProtocol::SwingV
uint8_t SwingV
Definition: ir_Haier.h:46
kHaierAcYrw02ModelA
const uint8_t kHaierAcYrw02ModelA
Definition: ir_Haier.h:144
String
std::string String
Definition: IRremoteESP8266.h:1309
IRHaierAC::getHealth
bool getHealth(void) const
Get the Health (filter) setting of the A/C.
Definition: ir_Haier.cpp:254
kHaierAcYrw02ButtonSleep
const uint8_t kHaierAcYrw02ButtonSleep
Definition: ir_Haier.h:182
IRHaierAC176::setFan
void setFan(const uint8_t speed)
Set the speed of the fan.
Definition: ir_Haier.cpp:852
kHaierAcPrefix
const uint8_t kHaierAcPrefix
Definition: ir_Haier.h:72
IRHaierAC176::setRaw
virtual void setRaw(const uint8_t new_code[])
Set the internal state from a valid code for this protocol.
Definition: ir_Haier.cpp:604
kHaierAcYrw02SwingVDown
const uint8_t kHaierAcYrw02SwingVDown
Definition: ir_Haier.h:152
kHaierACYRW02StateLength
const uint16_t kHaierACYRW02StateLength
Definition: IRremoteESP8266.h:1071
HaierAc176Protocol
Native representation of a Haier 176 bit A/C message.
Definition: ir_Haier.h:194
IRHaierAC::setOnTimer
void setOnTimer(const uint16_t mins)
Set & enable the On Timer.
Definition: ir_Haier.cpp:297
IRHaierAC176::setPower
void setPower(const bool on)
Change the power setting.
Definition: ir_Haier.cpp:790
IRHaierACYRW02::send
void send(const uint16_t repeat=kHaierAcYrw02DefaultRepeat) override
Send the current internal state as an IR message.
Definition: ir_Haier.cpp:1305
kHaierAcYrw02MinTempF
const uint8_t kHaierAcYrw02MinTempF
Definition: ir_Haier.h:140
IRremoteESP8266.h
stdAc::swingh_t
swingh_t
Common A/C settings for Horizontal Swing.
Definition: IRsend.h:83
HaierAc176Protocol::Fan2
uint8_t Fan2
Definition: ir_Haier.h:249
IRHaierAC176::getHealth
bool getHealth(void) const
Get the Health (filter) setting of the A/C.
Definition: ir_Haier.cpp:782
kHaierAcSwingVDown
const uint8_t kHaierAcSwingVDown
Definition: ir_Haier.h:91
kHaierAcYrw02FanHigh
const uint8_t kHaierAcYrw02FanHigh
Definition: ir_Haier.h:162
kHaierAcFan
const uint8_t kHaierAcFan
Definition: ir_Haier.h:98
kHaierAcYrw02FanLow
const uint8_t kHaierAcYrw02FanLow
Definition: ir_Haier.h:164
kHaierAcYrw02MinTempC
const uint8_t kHaierAcYrw02MinTempC
Definition: ir_Haier.h:138
HaierProtocol::Fan
uint8_t Fan
Definition: ir_Haier.h:57
IRHaierAC::getSwingV
uint8_t getSwingV(void) const
Get the Vertical Swing position setting of the A/C.
Definition: ir_Haier.cpp:328
IRHaierAC176::setHealth
void setHealth(const bool on)
Set the Health (filter) setting of the A/C.
Definition: ir_Haier.cpp:775
kHaierAcCool
const uint8_t kHaierAcCool
Definition: ir_Haier.h:95
HaierAc176Protocol::Model
uint8_t Model
Definition: ir_Haier.h:198
kHaierAcDefTemp
const uint8_t kHaierAcDefTemp
Definition: ir_Haier.h:75
HaierAc176Protocol::Button
uint8_t Button
Definition: ir_Haier.h:238
IRHaierAC::convertSwingV
static uint8_t convertSwingV(const stdAc::swingv_t position)
Convert a stdAc::swingv_t enum into it's native setting.
Definition: ir_Haier.cpp:377
IRHaierAC::getSleep
bool getSleep(void) const
Get the Sleep setting of the A/C.
Definition: ir_Haier.cpp:267
IRHaierAC::setHealth
void setHealth(const bool on)
Set the Health (filter) setting of the A/C.
Definition: ir_Haier.cpp:247
HaierAc176Protocol::UseFahrenheit
uint8_t UseFahrenheit
Definition: ir_Haier.h:233
kHaierAcYrw02ButtonTempUp
const uint8_t kHaierAcYrw02ButtonTempUp
Definition: ir_Haier.h:173
IRHaierAC176::setSwingH
void setSwingH(const uint8_t pos)
Set the Horizontal Swing mode of the A/C.
Definition: ir_Haier.cpp:908
HaierAc176Protocol::Temp
uint8_t Temp
Definition: ir_Haier.h:201
kHaierAcMinTemp
const uint8_t kHaierAcMinTemp
Definition: ir_Haier.h:74
kHaierAcYrw02ButtonSwingH
const uint8_t kHaierAcYrw02ButtonSwingH
Definition: ir_Haier.h:176
IRHaierAC::validChecksum
static bool validChecksum(uint8_t state[], const uint16_t length=kHaierACStateLength)
Verify the checksum is valid for a given state.
Definition: ir_Haier.cpp:124
kHaierAcYrw02SwingVAuto
const uint8_t kHaierAcYrw02SwingVAuto
Definition: ir_Haier.h:153
HaierAc176Protocol::SwingV
uint8_t SwingV
Definition: ir_Haier.h:200
IRHaierAC::_
HaierProtocol _
Definition: ir_Haier.h:357
IRHaierAC176::getTemp
uint8_t getTemp(void) const
Get the current temperature setting. The unit of temperature is specified by UseFahrenheit value.
Definition: ir_Haier.cpp:730
HaierProtocol::Health
uint8_t Health
Definition: ir_Haier.h:53
kHaierAc176DefaultRepeat
const uint16_t kHaierAc176DefaultRepeat
Definition: IRremoteESP8266.h:1076
IRHaierAC176::toCommonFanSpeed
static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed)
Convert a native fan speed into its stdAc equivalent.
Definition: ir_Haier.cpp:1089
IRHaierAC176::stateReset
void stateReset(void)
Reset the internal state to a fixed known good state.
Definition: ir_Haier.cpp:584
IRHaierAC176::convertFan
static uint8_t convertFan(const stdAc::fanspeed_t speed)
Convert a stdAc::fanspeed_t enum into it's native speed.
Definition: ir_Haier.cpp:1032
IRHaierAC176::toCommonQuiet
static bool toCommonQuiet(const uint8_t speed)
HaierAc176Protocol::SwingH
uint8_t SwingH
Definition: ir_Haier.h:204
kHaierAcCmdHealth
const uint8_t kHaierAcCmdHealth
Definition: ir_Haier.h:86
HaierProtocol::unknown
uint8_t unknown
Definition: ir_Haier.h:45
HaierProtocol::CurrHours
uint8_t CurrHours
Definition: ir_Haier.h:44
HaierProtocol::remote_state
uint8_t remote_state[kHaierACStateLength]
< The state in native IR code form
Definition: ir_Haier.h:36
HaierAc176Protocol::Health
uint8_t Health
Definition: ir_Haier.h:207
kHaierAcCmdOn
const uint8_t kHaierAcCmdOn
Definition: ir_Haier.h:78
HaierAc176Protocol::Sum
uint8_t Sum
Definition: ir_Haier.h:242
IRHaierAC176::setSwingV
void setSwingV(const uint8_t pos)
Set the Vertical Swing mode of the A/C.
Definition: ir_Haier.cpp:882
kHaierAcYrw02SwingHLeftMax
const uint8_t kHaierAcYrw02SwingHLeftMax
Definition: ir_Haier.h:156
IRHaierAC176::getTimerMode
uint8_t getTimerMode(void) const
Get the Timer operating mode.
Definition: ir_Haier.cpp:943
kHaierAcYrw02SwingHRight
const uint8_t kHaierAcYrw02SwingHRight
Definition: ir_Haier.h:158
IRHaierAC176::getButton
uint8_t getButton(void) const
Get the Button/Command setting of the A/C.
Definition: ir_Haier.cpp:652
HaierAc176Protocol::OnTimerHrs
uint8_t OnTimerHrs
Definition: ir_Haier.h:222
kHaierAcYrw02ButtonSwingV
const uint8_t kHaierAcYrw02ButtonSwingV
Definition: ir_Haier.h:175
kHaierAcYrw02ButtonLock
const uint8_t kHaierAcYrw02ButtonLock
Definition: ir_Haier.h:184
kHaierAcSwingVOff
const uint8_t kHaierAcSwingVOff
Definition: ir_Haier.h:89
IRHaierAC176::toCommonMode
static stdAc::opmode_t toCommonMode(const uint8_t mode)
Convert a native mode into its stdAc equivalent.
Definition: ir_Haier.cpp:1076
kHaierAcFanMed
const uint8_t kHaierAcFanMed
Definition: ir_Haier.h:102
kHaierAcYrw02ButtonCFAB
const uint8_t kHaierAcYrw02ButtonCFAB
Definition: ir_Haier.h:185
IRHaierAC176::getFan
uint8_t getFan(void) const
Get the current fan speed setting.
Definition: ir_Haier.cpp:848
HaierAc176Protocol::Turbo
uint8_t Turbo
Definition: ir_Haier.h:219
kHaierAcYrw02ButtonTempDown
const uint8_t kHaierAcYrw02ButtonTempDown
Definition: ir_Haier.h:174
IRHaierAC176::_irsend
IRsend _irsend
Instance of the IR send class.
Definition: ir_Haier.h:449
IRHaierAC
Class for handling detailed Haier A/C messages.
Definition: ir_Haier.h:292
HaierProtocol::OnMins
uint8_t OnMins
Definition: ir_Haier.h:62
IRHaierAC176::IRHaierAC176
IRHaierAC176(const uint16_t pin, const bool inverted=false, const bool use_modulation=true)
Class constructor.
Definition: ir_Haier.cpp:543
IRHaierAC176::setOffTimer
void setOffTimer(const uint16_t mins)
Set the number of minutes of the Off Timer setting.
Definition: ir_Haier.cpp:977
IRHaierAC::setOffTimer
void setOffTimer(const uint16_t mins)
Set & enable the Off Timer.
Definition: ir_Haier.cpp:306
HaierAc176Protocol::OnTimerMins
uint8_t OnTimerMins
Definition: ir_Haier.h:225
kHaierAcYrw02FanAuto
const uint8_t kHaierAcYrw02FanAuto
Definition: ir_Haier.h:165
kHaierAc176Prefix
const uint8_t kHaierAc176Prefix
Definition: ir_Haier.h:146
kHaierAcMaxTemp
const uint8_t kHaierAcMaxTemp
Definition: ir_Haier.h:76
kHaierAcYrw02ButtonFan
const uint8_t kHaierAcYrw02ButtonFan
Definition: ir_Haier.h:177
kHaierAcYrw02Cool
const uint8_t kHaierAcYrw02Cool
Definition: ir_Haier.h:168
IRHaierAC176
Class for handling detailed Haier 176 bit A/C messages.
Definition: ir_Haier.h:362
kHaierAcYrw02ButtonTimer
const uint8_t kHaierAcYrw02ButtonTimer
Definition: ir_Haier.h:183
IRHaierAC::toCommonMode
static stdAc::opmode_t toCommonMode(const uint8_t mode)
Convert a native mode into its stdAc equivalent.
Definition: ir_Haier.cpp:392
IRHaierAC176::setQuiet
void setQuiet(const bool on)
Set the Quiet setting of the A/C.
Definition: ir_Haier.cpp:836
HaierProtocol::OffHours
uint8_t OffHours
Definition: ir_Haier.h:52
IRHaierAC176::setSwing
void setSwing(const uint8_t pos)
For backward compatibility. Use setSwingV() instead. Set the Vertical Swing mode of the A/C.
Definition: ir_Haier.cpp:874
kHaierAcFanAuto
const uint8_t kHaierAcFanAuto
Definition: ir_Haier.h:100
kHaierAcYrw02SwingHLeft
const uint8_t kHaierAcYrw02SwingHLeft
Definition: ir_Haier.h:157
kHaierAcYrw02OnThenOffTimer
const uint8_t kHaierAcYrw02OnThenOffTimer
Definition: ir_Haier.h:190
kHaierAcCmdOff
const uint8_t kHaierAcCmdOff
Definition: ir_Haier.h:77
HaierProtocol::Sleep
uint8_t Sleep
Definition: ir_Haier.h:63
kHaierAcYrw02SwingHAuto
const uint8_t kHaierAcYrw02SwingHAuto
Definition: ir_Haier.h:160
IRHaierAC::toCommon
stdAc::state_t toCommon(void) const
Convert the current internal state into its stdAc::state_t equivalent.
Definition: ir_Haier.cpp:428
IRHaierACYRW02::setRaw
void setRaw(const uint8_t new_code[]) override
Set the internal state from a valid code for this protocol.
Definition: ir_Haier.cpp:1312
IRHaierAC176::toCommonSwingH
static stdAc::swingh_t toCommonSwingH(const uint8_t pos)
Convert a stdAc::swingh_t enum into it's native setting.
Definition: ir_Haier.cpp:1115
IRHaierAC176::IRHaierACYRW02
friend class IRHaierACYRW02
Definition: ir_Haier.h:363
IRHaierAC::getOnTimer
int16_t getOnTimer(void) const
Get the On Timer value/setting of the A/C.
Definition: ir_Haier.cpp:273
IRHaierAC176::send
virtual void send(const uint16_t repeat=kHaierAc176DefaultRepeat)
Send the current internal state as an IR message.
Definition: ir_Haier.cpp:553
kHaierAcYrw02Heat
const uint8_t kHaierAcYrw02Heat
Definition: ir_Haier.h:170
IRHaierAC::checksum
void checksum(void)
Calculate and set the checksum values for the internal state.
Definition: ir_Haier.cpp:116
IRHaierAC::setCommand
void setCommand(const uint8_t command)
Set the Command/Button setting of the A/C.
Definition: ir_Haier.cpp:155
IRHaierAC::calibrate
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition: ir_Haier.h:302
kHaierAcYrw02MaxTempF
const uint8_t kHaierAcYrw02MaxTempF
Definition: ir_Haier.h:141
kHaierAcSleepBit
const uint8_t kHaierAcSleepBit
Definition: ir_Haier.h:107
kHaierAcDry
const uint8_t kHaierAcDry
Definition: ir_Haier.h:96
IRHaierAC176::setModel
void setModel(const haier_ac176_remote_model_t model)
Set the model of the A/C to emulate.
Definition: ir_Haier.cpp:639
IRHaierAC176::convertMode
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a stdAc::opmode_t enum into its native mode.
Definition: ir_Haier.cpp:1019
IRHaierAC::toCommonSwingV
static stdAc::swingv_t toCommonSwingV(const uint8_t pos)
Convert a stdAc::swingv_t enum into it's native setting.
Definition: ir_Haier.cpp:417
kHaierAcYrw02NoTimers
const uint8_t kHaierAcYrw02NoTimers
Definition: ir_Haier.h:187
kHaierAcYrw02ButtonMode
const uint8_t kHaierAcYrw02ButtonMode
Definition: ir_Haier.h:179
kHaierAcHeat
const uint8_t kHaierAcHeat
Definition: ir_Haier.h:97
IRHaierAC176::getSwing
uint8_t getSwing(void) const
These functions are for backward compatibility. Use getSwingV() and setSwingV() instead.
Definition: ir_Haier.cpp:867
HaierAc176Protocol::Sum2
uint8_t Sum2
Definition: ir_Haier.h:259
HaierProtocol
Native representation of a Haier HSU07-HEA03 A/C message.
Definition: ir_Haier.h:34
IRHaierAC::begin
void begin(void)
Set up hardware to be able to send a message.
Definition: ir_Haier.cpp:105
kHaierAcMaxTime
const uint16_t kHaierAcMaxTime
Definition: ir_Haier.h:105
IRHaierAC::setCurrTime
void setCurrTime(const uint16_t mins)
Set the clock value for the A/C.
Definition: ir_Haier.cpp:322
HaierAc176Protocol::Lock
uint8_t Lock
Definition: ir_Haier.h:239
IRHaierACYRW02
Class for handling detailed Haier ACYRW02 A/C messages.
Definition: ir_Haier.h:460
IRHaierAC::IRHaierAC
IRHaierAC(const uint16_t pin, const bool inverted=false, const bool use_modulation=true)
Class constructor.
Definition: ir_Haier.cpp:100
IRHaierAC::setTemp
void setTemp(const uint8_t temp)
Set the temperature.
Definition: ir_Haier.cpp:223
IRHaierAC::getCommand
uint8_t getCommand(void) const
Get the Command/Button setting of the A/C.
Definition: ir_Haier.cpp:174
IRHaierAC176::setOnTimer
void setOnTimer(const uint16_t mins)
Set the number of minutes of the On Timer setting.
Definition: ir_Haier.cpp:947
IRHaierAC176::getMode
uint8_t getMode(void) const
Get the operating mode setting of the A/C.
Definition: ir_Haier.cpp:679
HaierAc176Protocol::TimerMode
uint8_t TimerMode
Definition: ir_Haier.h:209
IRHaierAC176::getQuiet
bool getQuiet(void) const
Get the Quiet setting of the A/C.
Definition: ir_Haier.cpp:831
kHaierAcYrw02Dry
const uint8_t kHaierAcYrw02Dry
Definition: ir_Haier.h:169
HaierProtocol::OnHours
uint8_t OnHours
Definition: ir_Haier.h:59
HaierProtocol::OffTimer
uint8_t OffTimer
Definition: ir_Haier.h:49
stdAc::state_t
Structure to hold a common A/C state.
Definition: IRsend.h:97
IRHaierAC176::getModel
haier_ac176_remote_model_t getModel(void) const
Get/Detect the model of the A/C.
Definition: ir_Haier.cpp:630
HaierProtocol::Command
uint8_t Command
Definition: ir_Haier.h:41
kHaierAcYrw02SwingVOff
const uint8_t kHaierAcYrw02SwingVOff
Definition: ir_Haier.h:148
IRHaierAC176::convertSwingH
static uint8_t convertSwingH(const stdAc::swingh_t position)
Convert a stdAc::swingh_t enum into it's native setting.
Definition: ir_Haier.cpp:1061
HaierProtocol::OffMins
uint8_t OffMins
Definition: ir_Haier.h:56
HaierProtocol::Sum
uint8_t Sum
Definition: ir_Haier.h:66
IRHaierAC::toCommonFanSpeed
static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed)
Convert a native fan speed into its stdAc equivalent.
Definition: ir_Haier.cpp:405
kHaierAcYrw02ButtonPower
const uint8_t kHaierAcYrw02ButtonPower
Definition: ir_Haier.h:178
kHaierAcYrw02ModelB
const uint8_t kHaierAcYrw02ModelB
Definition: ir_Haier.h:145
kHaierAcYrw02MaxTempC
const uint8_t kHaierAcYrw02MaxTempC
Definition: ir_Haier.h:139
IRHaierAC176::toCommon
stdAc::state_t toCommon(void) const
Convert the current internal state into its stdAc::state_t equivalent.
Definition: ir_Haier.cpp:1129
kHaierAcCmdTimerCancel
const uint8_t kHaierAcCmdTimerCancel
Definition: ir_Haier.h:85
HaierAc176Protocol::OffTimerMins
uint8_t OffTimerMins
Definition: ir_Haier.h:218
IRHaierAC176::convertSwingV
static uint8_t convertSwingV(const stdAc::swingv_t position)
Convert a stdAc::swingv_t enum into it's native setting.
Definition: ir_Haier.cpp:1046
haier_ac176_remote_model_t
haier_ac176_remote_model_t
HAIER_AC176 A/C model numbers.
Definition: IRsend.h:140
stdAc::opmode_t
opmode_t
Common A/C settings for A/C operating modes.
Definition: IRsend.h:46
IRHaierAC::send
void send(const uint16_t repeat=kHaierAcDefaultRepeat)
Send the current internal state as an IR message.
Definition: ir_Haier.cpp:110