30#include "IRsend_test.h"
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
346#define HAIER_AC_YRW02_SWING_OFF kHaierAcYrw02SwingOff
347#define HAIER_AC_YRW02_SWING_TOP kHaierAcYrw02SwingTop
348#define HAIER_AC_YRW02_SWING_MIDDLE kHaierAcYrw02SwingMiddle
349#define HAIER_AC_YRW02_SWING_BOTTOM kHaierAcYrw02SwingBottom
350#define HAIER_AC_YRW02_SWING_DOWN kHaierAcYrw02SwingDown
351#define HAIER_AC_YRW02_SWING_AUTO kHaierAcYrw02SwingAuto
352#define HAIER_AC_YRW02_FAN_HIGH kHaierAcYrw02FanHigh
353#define HAIER_AC_YRW02_FAN_MED kHaierAcYrw02FanMed
354#define HAIER_AC_YRW02_FAN_LOW kHaierAcYrw02FanLow
355#define HAIER_AC_YRW02_FAN_AUTO kHaierAcYrw02FanAuto
356#define HAIER_AC_YRW02_TURBO_OFF kHaierAcYrw02TurboOff
357#define HAIER_AC_YRW02_AUTO kHaierAcYrw02Auto
358#define HAIER_AC_YRW02_COOL kHaierAcYrw02Cool
359#define HAIER_AC_YRW02_DRY kHaierAcYrw02Dry
360#define HAIER_AC_YRW02_HEAT kHaierAcYrw02Heat
361#define HAIER_AC_YRW02_FAN kHaierAcYrw02Fan
362#define HAIER_AC_YRW02_BUTTON_TEMP_UP kHaierAcYrw02ButtonTempUp
363#define HAIER_AC_YRW02_BUTTON_TEMP_DOWN kHaierAcYrw02ButtonTempDown
364#define HAIER_AC_YRW02_BUTTON_SWING kHaierAcYrw02ButtonSwing
365#define HAIER_AC_YRW02_BUTTON_FAN kHaierAcYrw02ButtonFan
366#define HAIER_AC_YRW02_BUTTON_POWER kHaierAcYrw02ButtonPower
367#define HAIER_AC_YRW02_BUTTON_MODE kHaierAcYrw02ButtonMode
368#define HAIER_AC_YRW02_BUTTON_HEALTH kHaierAcYrw02ButtonHealth
369#define HAIER_AC_YRW02_BUTTON_TURBO kHaierAcYrw02ButtonTurbo
370#define HAIER_AC_YRW02_BUTTON_SLEEP kHaierAcYrw02ButtonSleep
376 explicit IRHaierAC(
const uint16_t pin,
const bool inverted =
false,
377 const bool use_modulation =
true);
392 void setTemp(
const uint8_t temp);
395 void setFan(
const uint8_t speed);
396 uint8_t
getFan(
void)
const;
399 void setMode(
const uint8_t mode);
419 void setRaw(
const uint8_t new_code[]);
447 explicit IRHaierAC176(
const uint16_t pin,
const bool inverted =
false,
448 const bool use_modulation =
true);
468 void setTemp(
const uint8_t temp,
const bool fahrenheit =
false);
471 void setFan(
const uint8_t speed);
472 uint8_t
getFan(
void)
const;
475 void setMode(
const uint8_t mode);
513 virtual void setRaw(
const uint8_t new_code[]);
544 explicit IRHaierACYRW02(
const uint16_t pin,
const bool inverted =
false,
545 const bool use_modulation =
true);
546#if SEND_HAIER_AC_YRW02
554 void setRaw(
const uint8_t new_code[])
override;
556 const uint8_t state[],
563 explicit IRHaierAC160(
const uint16_t pin,
const bool inverted =
false,
564 const bool use_modulation =
true);
581 void setTemp(
const uint8_t temp,
const bool fahrenheit =
false);
584 void setFan(
const uint8_t speed);
585 uint8_t
getFan(
void)
const;
588 void setMode(
const uint8_t mode);
626 virtual void setRaw(
const uint8_t new_code[]);
const uint16_t kHaierAcYrw02DefaultRepeat
Definition IRremoteESP8266.h:1285
const uint16_t kHaierAc160DefaultRepeat
Definition IRremoteESP8266.h:1288
const uint16_t kHaierAcDefaultRepeat
Definition IRremoteESP8266.h:1282
const uint16_t kHaierACYRW02StateLength
Definition IRremoteESP8266.h:1283
const uint16_t kHaierAC176StateLength
Definition IRremoteESP8266.h:1289
const uint16_t kHaierAC160StateLength
Definition IRremoteESP8266.h:1286
const uint16_t kHaierAc176DefaultRepeat
Definition IRremoteESP8266.h:1291
const uint16_t kHaierACStateLength
Definition IRremoteESP8266.h:1280
haier_ac176_remote_model_t
HAIER_AC176 A/C model numbers.
Definition IRsend.h:169
Class for handling detailed Haier 160 bit A/C messages.
Definition ir_Haier.h:561
void setTurbo(const bool on)
Set the Turbo setting of the A/C.
Definition ir_Haier.cpp:1735
void setFan(const uint8_t speed)
Set the speed of the fan.
Definition ir_Haier.cpp:1793
void stateReset(void)
Reset the internal state to a fixed known good state.
Definition ir_Haier.cpp:1516
void setButton(const uint8_t button)
Set the Button/Command setting of the A/C.
Definition ir_Haier.cpp:1542
static bool validChecksum(const uint8_t state[], const uint16_t length=kHaierAC160StateLength)
void setSwingV(const uint8_t pos)
Set the Vertical Swing mode of the A/C.
Definition ir_Haier.cpp:1822
void setQuiet(const bool on)
Set the Quiet setting of the A/C.
Definition ir_Haier.cpp:1752
virtual void setRaw(const uint8_t new_code[])
Set the internal state from a valid code for this protocol.
Definition ir_Haier.cpp:1536
uint8_t getMode(void) const
Get the operating mode setting of the A/C.
Definition ir_Haier.cpp:1589
void setOffTimer(const uint16_t mins)
Set the number of minutes of the Off Timer setting.
Definition ir_Haier.cpp:1894
uint16_t getOffTimer(void) const
Get the number of minutes of the Off Timer setting.
Definition ir_Haier.cpp:1918
void setUseFahrenheit(const bool on)
Set the default temperature units to use.
Definition ir_Haier.cpp:1594
bool getClean(void) const
Get the Clean setting of the A/C.
Definition ir_Haier.cpp:1698
void setMode(const uint8_t mode)
Set the operating mode of the A/C.
Definition ir_Haier.cpp:1567
uint8_t getTemp(void) const
Get the current temperature setting. The unit of temperature is specified by UseFahrenheit value.
Definition ir_Haier.cpp:1642
bool getUseFahrenheit(void) const
Get the default temperature units in use.
Definition ir_Haier.cpp:1598
virtual void send(const uint16_t repeat=kHaierAc160DefaultRepeat)
Send the current internal state as an IR message.
Definition ir_Haier.cpp:1503
HaierAc160Protocol _
Definition ir_Haier.h:648
void checksum(void)
Calculate and set the checksum values for the internal state.
Definition ir_Haier.cpp:1509
uint8_t * getRaw(void)
Get a PTR to the internal state/code for this protocol.
Definition ir_Haier.cpp:1529
bool getHealth(void) const
Get the Health (filter) setting of the A/C.
Definition ir_Haier.cpp:1814
void setPower(const bool on)
Change the power setting.
Definition ir_Haier.cpp:1706
void setTemp(const uint8_t temp, const bool fahrenheit=false)
Set the temperature.
Definition ir_Haier.cpp:1603
void off(void)
Change the power setting to Off.
Definition ir_Haier.cpp:1715
void setSleep(const bool on)
Set the Sleep setting of the A/C.
Definition ir_Haier.cpp:1723
bool getLock(void) const
Get the Lock setting of the A/C.
Definition ir_Haier.cpp:1924
void setLock(const bool on)
Set the Lock setting of the A/C.
Definition ir_Haier.cpp:1928
void on(void)
Change the power setting to On.
Definition ir_Haier.cpp:1712
bool getQuiet(void) const
Get the Quiet setting of the A/C.
Definition ir_Haier.cpp:1747
stdAc::state_t toCommon(const stdAc::state_t *prev=NULL) const
Convert the current internal state into its stdAc::state_t equivalent.
Definition ir_Haier.cpp:2019
bool getSleep(void) const
Get the Sleep setting of the A/C.
Definition ir_Haier.cpp:1719
static stdAc::swingv_t toCommonSwingV(const uint8_t pos)
Convert a stdAc::swingv_t enum into it's native setting.
Definition ir_Haier.cpp:2003
static bool toCommonTurbo(const uint8_t speed)
uint8_t getTimerMode(void) const
Get the Timer operating mode.
Definition ir_Haier.cpp:1860
void begin(void)
Set up hardware to be able to send a message.
Definition ir_Haier.cpp:1498
uint8_t getSwingV(void) const
Get the Vertical Swing position setting of the A/C.
Definition ir_Haier.cpp:1818
bool getTurbo(void) const
Get the Turbo setting of the A/C.
Definition ir_Haier.cpp:1730
void setOnTimer(const uint16_t mins)
Set the number of minutes of the On Timer setting.
Definition ir_Haier.cpp:1864
static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed)
Convert a native fan speed into its stdAc equivalent.
Definition ir_Haier.cpp:1991
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a stdAc::opmode_t enum into its native mode.
Definition ir_Haier.cpp:1936
uint8_t getFan(void) const
Get the current fan speed setting.
Definition ir_Haier.cpp:1789
uint16_t getOnTimer(void) const
Get the number of minutes of the On Timer setting.
Definition ir_Haier.cpp:1888
void setTimerMode(const uint8_t setting)
Set the Timer operating mode.
Definition ir_Haier.cpp:1841
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition ir_Haier.h:571
String toString(void) const
Convert the current internal state into a human readable string.
Definition ir_Haier.cpp:2054
void setLightToggle(const bool on)
Set the Light Toggle setting of the A/C.
Definition ir_Haier.cpp:1783
void setHealth(const bool on)
Set the Health (filter) setting of the A/C.
Definition ir_Haier.cpp:1807
bool getAuxHeating(void) const
Get the value of the Aux Heating setting.
Definition ir_Haier.cpp:1764
static stdAc::opmode_t toCommonMode(const uint8_t mode)
Convert a native mode into its stdAc equivalent.
Definition ir_Haier.cpp:1978
void setAuxHeating(const bool on)
Change the Aux Heating setting.
Definition ir_Haier.cpp:1768
uint8_t getButton(void) const
Get the Button/Command setting of the A/C.
Definition ir_Haier.cpp:1563
static bool toCommonQuiet(const uint8_t speed)
static uint8_t convertFan(const stdAc::fanspeed_t speed)
Convert a stdAc::fanspeed_t enum into it's native speed.
Definition ir_Haier.cpp:1949
bool getLightToggle(void) const
Get the value of the current Light toggle setting.
Definition ir_Haier.cpp:1776
void setClean(const bool on)
Set the Clean setting of the A/C.
Definition ir_Haier.cpp:1690
bool getPower(void) const
Get the value of the current power setting.
Definition ir_Haier.cpp:1702
IRsend _irsend
Instance of the IR send class.
Definition ir_Haier.h:642
static uint8_t convertSwingV(const stdAc::swingv_t position)
Convert a stdAc::swingv_t enum into it's native setting.
Definition ir_Haier.cpp:1963
Class for handling detailed Haier 176 bit A/C messages.
Definition ir_Haier.h:444
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition ir_Haier.h:455
void setModel(const haier_ac176_remote_model_t model)
Set the model of the A/C to emulate.
Definition ir_Haier.cpp:650
void setPower(const bool on)
Change the power setting.
Definition ir_Haier.cpp:806
IRsend _irsend
Instance of the IR send class.
Definition ir_Haier.h:531
uint8_t getSwing(void) const
These functions are for backward compatibility. Use getSwingV() and setSwingV() instead.
Definition ir_Haier.cpp:883
String toString(void) const
Convert the current internal state into a human readable string.
Definition ir_Haier.cpp:1171
void begin(void)
Set up hardware to be able to send a message.
Definition ir_Haier.cpp:559
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:890
static uint8_t convertFan(const stdAc::fanspeed_t speed)
Convert a stdAc::fanspeed_t enum into it's native speed.
Definition ir_Haier.cpp:1048
void setSwingH(const uint8_t pos)
Set the Horizontal Swing mode of the A/C.
Definition ir_Haier.cpp:924
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a stdAc::opmode_t enum into its native mode.
Definition ir_Haier.cpp:1035
void stateReset(void)
Reset the internal state to a fixed known good state.
Definition ir_Haier.cpp:595
uint8_t * getRaw(void)
Get a PTR to the internal state/code for this protocol.
Definition ir_Haier.cpp:608
uint8_t getTemp(void) const
Get the current temperature setting. The unit of temperature is specified by UseFahrenheit value.
Definition ir_Haier.cpp:743
void setOnTimer(const uint16_t mins)
Set the number of minutes of the On Timer setting.
Definition ir_Haier.cpp:963
void setFan(const uint8_t speed)
Set the speed of the fan.
Definition ir_Haier.cpp:868
bool getLock(void) const
Get the Lock setting of the A/C.
Definition ir_Haier.cpp:1023
void setUseFahrenheit(const bool on)
Set the default temperature units to use.
Definition ir_Haier.cpp:695
static stdAc::swingv_t toCommonSwingV(const uint8_t pos)
Convert a stdAc::swingv_t enum into it's native setting.
Definition ir_Haier.cpp:1117
void setButton(const uint8_t button)
Set the Button/Command setting of the A/C.
Definition ir_Haier.cpp:621
void setSwingV(const uint8_t pos)
Set the Vertical Swing mode of the A/C.
Definition ir_Haier.cpp:898
stdAc::state_t toCommon(void) const
Convert the current internal state into its stdAc::state_t equivalent.
Definition ir_Haier.cpp:1145
uint8_t getButton(void) const
Get the Button/Command setting of the A/C.
Definition ir_Haier.cpp:663
void setHealth(const bool on)
Set the Health (filter) setting of the A/C.
Definition ir_Haier.cpp:791
void setTurbo(const bool on)
Set the Turbo setting of the A/C.
Definition ir_Haier.cpp:835
uint8_t getTimerMode(void) const
Get the Timer operating mode.
Definition ir_Haier.cpp:959
void setQuiet(const bool on)
Set the Quiet setting of the A/C.
Definition ir_Haier.cpp:852
static bool toCommonQuiet(const uint8_t speed)
virtual void setRaw(const uint8_t new_code[])
Set the internal state from a valid code for this protocol.
Definition ir_Haier.cpp:615
static uint8_t convertSwingV(const stdAc::swingv_t position)
Convert a stdAc::swingv_t enum into it's native setting.
Definition ir_Haier.cpp:1062
static bool toCommonTurbo(const uint8_t speed)
HaierAc176Protocol _
Definition ir_Haier.h:537
static uint8_t convertSwingH(const stdAc::swingh_t position)
Convert a stdAc::swingh_t enum into it's native setting.
Definition ir_Haier.cpp:1077
void setMode(const uint8_t mode)
Set the operating mode of the A/C.
Definition ir_Haier.cpp:669
haier_ac176_remote_model_t getModel(void) const
Get/Detect the model of the A/C.
Definition ir_Haier.cpp:641
uint8_t getFan(void) const
Get the current fan speed setting.
Definition ir_Haier.cpp:864
virtual void send(const uint16_t repeat=kHaierAc176DefaultRepeat)
Send the current internal state as an IR message.
Definition ir_Haier.cpp:564
void setTimerMode(const uint8_t setting)
Set the Timer operating mode.
Definition ir_Haier.cpp:940
uint8_t getSwingH(void) const
Get the Horizontal Swing position setting of the A/C.
Definition ir_Haier.cpp:920
uint8_t getMode(void) const
Get the operating mode setting of the A/C.
Definition ir_Haier.cpp:690
bool getTurbo(void) const
Get the Turbo setting of the A/C.
Definition ir_Haier.cpp:830
void off(void)
Change the power setting to Off.
Definition ir_Haier.cpp:815
void checksum(void)
Calculate and set the checksum values for the internal state.
Definition ir_Haier.cpp:570
bool getQuiet(void) const
Get the Quiet setting of the A/C.
Definition ir_Haier.cpp:847
uint16_t getOnTimer(void) const
Get the number of minutes of the On Timer setting.
Definition ir_Haier.cpp:987
void setLock(const bool on)
Set the Lock setting of the A/C.
Definition ir_Haier.cpp:1027
friend class IRHaierACYRW02
Definition ir_Haier.h:445
bool getPower(void) const
Get the value of the current power setting.
Definition ir_Haier.cpp:802
void setTemp(const uint8_t temp, const bool fahrenheit=false)
Set the temperature.
Definition ir_Haier.cpp:704
bool getHealth(void) const
Get the Health (filter) setting of the A/C.
Definition ir_Haier.cpp:798
void setSleep(const bool on)
Set the Sleep setting of the A/C.
Definition ir_Haier.cpp:823
static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed)
Convert a native fan speed into its stdAc equivalent.
Definition ir_Haier.cpp:1105
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:580
bool getUseFahrenheit(void) const
Get the default temperature units in use.
Definition ir_Haier.cpp:699
static stdAc::swingh_t toCommonSwingH(const uint8_t pos)
Convert a stdAc::swingh_t enum into it's native setting.
Definition ir_Haier.cpp:1131
void setOffTimer(const uint16_t mins)
Set the number of minutes of the Off Timer setting.
Definition ir_Haier.cpp:993
void on(void)
Change the power setting to On.
Definition ir_Haier.cpp:812
bool getSleep(void) const
Get the Sleep setting of the A/C.
Definition ir_Haier.cpp:819
uint8_t getSwingV(void) const
Get the Vertical Swing position setting of the A/C.
Definition ir_Haier.cpp:894
uint16_t getOffTimer(void) const
Get the number of minutes of the Off Timer setting.
Definition ir_Haier.cpp:1017
static stdAc::opmode_t toCommonMode(const uint8_t mode)
Convert a native mode into its stdAc equivalent.
Definition ir_Haier.cpp:1092
Class for handling detailed Haier ACYRW02 A/C messages.
Definition ir_Haier.h:542
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition ir_Haier.h:552
void send(const uint16_t repeat=kHaierAcYrw02DefaultRepeat) override
Send the current internal state as an IR message.
Definition ir_Haier.cpp:1321
void setRaw(const uint8_t new_code[]) override
Set the internal state from a valid code for this protocol.
Definition ir_Haier.cpp:1328
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:1336
Class for handling detailed Haier A/C messages.
Definition ir_Haier.h:374
uint8_t getCommand(void) const
Get the Command/Button setting of the A/C.
Definition ir_Haier.cpp:185
void setRaw(const uint8_t new_code[])
Set the internal state from a valid code for this protocol.
Definition ir_Haier.cpp:160
int16_t getOnTimer(void) const
Get the On Timer value/setting of the A/C.
Definition ir_Haier.cpp:284
void cancelTimers(void)
Cancel/disable the On & Off timers.
Definition ir_Haier.cpp:325
uint8_t getFan(void) const
Get the current fan speed setting.
Definition ir_Haier.cpp:207
uint8_t getMode(void) const
Get the operating mode setting of the A/C.
Definition ir_Haier.cpp:228
static uint8_t convertSwingV(const stdAc::swingv_t position)
Convert a stdAc::swingv_t enum into it's native setting.
Definition ir_Haier.cpp:388
void setMode(const uint8_t mode)
Set the operating mode of the A/C.
Definition ir_Haier.cpp:218
void setFan(const uint8_t speed)
Set the speed of the fan.
Definition ir_Haier.cpp:191
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition ir_Haier.h:384
int16_t getOffTimer(void) const
Get the Off Timer value/setting of the A/C.
Definition ir_Haier.cpp:294
void setHealth(const bool on)
Set the Health (filter) setting of the A/C.
Definition ir_Haier.cpp:258
static stdAc::opmode_t toCommonMode(const uint8_t mode)
Convert a native mode into its stdAc equivalent.
Definition ir_Haier.cpp:403
HaierProtocol _
Definition ir_Haier.h:439
void setCurrTime(const uint16_t mins)
Set the clock value for the A/C.
Definition ir_Haier.cpp:333
static uint8_t convertFan(const stdAc::fanspeed_t speed)
Convert a stdAc::fanspeed_t enum into it's native speed.
Definition ir_Haier.cpp:374
void stateReset(void)
Reset the internal state to a fixed known good state.
Definition ir_Haier.cpp:141
uint8_t getSwingV(void) const
Get the Vertical Swing position setting of the A/C.
Definition ir_Haier.cpp:339
stdAc::state_t toCommon(void) const
Convert the current internal state into its stdAc::state_t equivalent.
Definition ir_Haier.cpp:439
void setTemp(const uint8_t temp)
Set the temperature.
Definition ir_Haier.cpp:234
void send(const uint16_t repeat=kHaierAcDefaultRepeat)
Send the current internal state as an IR message.
Definition ir_Haier.cpp:121
void setOffTimer(const uint16_t mins)
Set & enable the Off Timer.
Definition ir_Haier.cpp:317
void setOnTimer(const uint16_t mins)
Set & enable the On Timer.
Definition ir_Haier.cpp:308
uint8_t getTemp(void) const
Get the current temperature setting.
Definition ir_Haier.cpp:252
static stdAc::swingv_t toCommonSwingV(const uint8_t pos)
Convert a stdAc::swingv_t enum into it's native setting.
Definition ir_Haier.cpp:428
void setSwingV(const uint8_t state)
Set the Vertical Swing mode of the A/C.
Definition ir_Haier.cpp:345
void checksum(void)
Calculate and set the checksum values for the internal state.
Definition ir_Haier.cpp:127
void begin(void)
Set up hardware to be able to send a message.
Definition ir_Haier.cpp:116
uint8_t * getRaw(void)
Get a PTR to the internal state/code for this protocol.
Definition ir_Haier.cpp:153
void setSleep(const bool on)
Set the Sleep setting of the A/C.
Definition ir_Haier.cpp:271
uint16_t getCurrTime(void) const
Get the clock value of the A/C.
Definition ir_Haier.cpp:304
static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed)
Convert a native fan speed into its stdAc equivalent.
Definition ir_Haier.cpp:416
static bool validChecksum(uint8_t state[], const uint16_t length=kHaierACStateLength)
Verify the checksum is valid for a given state.
Definition ir_Haier.cpp:135
void setCommand(const uint8_t command)
Set the Command/Button setting of the A/C.
Definition ir_Haier.cpp:166
IRsend _irsend
Instance of the IR send class.
Definition ir_Haier.h:433
String toString(void) const
Convert the current internal state into a human readable string.
Definition ir_Haier.cpp:466
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a stdAc::opmode_t enum into its native mode.
Definition ir_Haier.cpp:361
bool getSleep(void) const
Get the Sleep setting of the A/C.
Definition ir_Haier.cpp:278
bool getHealth(void) const
Get the Health (filter) setting of the A/C.
Definition ir_Haier.cpp:265
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 kHaierAc160ButtonLight
Definition ir_Haier.h:195
const uint8_t kHaierAcYrw02ButtonLock
Definition ir_Haier.h:194
const uint8_t kHaierAc160ButtonAuxHeating
Definition ir_Haier.h:196
const uint8_t kHaierAcHeat
Definition ir_Haier.h:97
const uint8_t kHaierAcYrw02ButtonFan
Definition ir_Haier.h:187
const uint8_t kHaierAc176Prefix
Definition ir_Haier.h:146
const uint8_t kHaierAc160SwingVLow
Definition ir_Haier.h:161
const uint8_t kHaierAcYrw02SwingVAuto
Definition ir_Haier.h:154
const uint8_t kHaierAc160SwingVHigh
Definition ir_Haier.h:159
const uint8_t kHaierAc160SwingVTop
Definition ir_Haier.h:157
const uint8_t kHaierAcYrw02Cool
Definition ir_Haier.h:178
const uint8_t kHaierAcYrw02OffThenOnTimer
Definition ir_Haier.h:204
const uint8_t kHaierAcYrw02Fan
Definition ir_Haier.h:181
const uint8_t kHaierAcYrw02NoTimers
Definition ir_Haier.h:200
const uint8_t kHaierAc160SwingVAuto
Definition ir_Haier.h:163
const uint8_t kHaierAcYrw02ButtonTempUp
Definition ir_Haier.h:183
const uint8_t kHaierAcDry
Definition ir_Haier.h:96
const uint8_t kHaierAc160SwingVLowest
Definition ir_Haier.h:162
const uint8_t kHaierAcCmdFan
Definition ir_Haier.h:80
const uint8_t kHaierAcCmdMode
Definition ir_Haier.h:79
const uint8_t kHaierAcYrw02MaxTempC
Definition ir_Haier.h:139
const uint8_t kHaierAcYrw02MaxTempF
Definition ir_Haier.h:141
const uint8_t kHaierAcYrw02ButtonSwingV
Definition ir_Haier.h:185
const uint8_t kHaierAcYrw02ButtonSleep
Definition ir_Haier.h:192
const uint8_t kHaierAcFanMed
Definition ir_Haier.h:102
const uint8_t kHaierAcYrw02SwingHRight
Definition ir_Haier.h:168
const uint8_t kHaierAcYrw02SwingHMiddle
Definition ir_Haier.h:165
const uint8_t kHaierAcYrw02FanMed
Definition ir_Haier.h:173
const uint8_t kHaierAcYrw02Dry
Definition ir_Haier.h:179
const uint8_t kHaierAcSwingVChg
Definition ir_Haier.h:92
const uint8_t kHaierAcSwingVUp
Definition ir_Haier.h:90
const uint8_t kHaierAc160SwingVMiddle
Definition ir_Haier.h:160
const uint8_t kHaierAcYrw02ButtonTimer
Definition ir_Haier.h:193
const uint8_t kHaierAcYrw02ButtonMode
Definition ir_Haier.h:189
const uint8_t kHaierAcYrw02ButtonSwingH
Definition ir_Haier.h:186
const uint8_t kHaierAcCmdOn
Definition ir_Haier.h:78
const uint8_t kHaierAcCmdHealth
Definition ir_Haier.h:86
const uint8_t kHaierAcCool
Definition ir_Haier.h:95
const uint8_t kHaierAcPrefix
Definition ir_Haier.h:72
const uint8_t kHaierAcDefTemp
Definition ir_Haier.h:75
const uint8_t kHaierAc160SwingVHighest
Definition ir_Haier.h:158
const uint8_t kHaierAcFanAuto
Definition ir_Haier.h:100
const uint8_t kHaierAcYrw02SwingVMiddle
Definition ir_Haier.h:151
const uint8_t kHaierAcMaxTemp
Definition ir_Haier.h:76
const uint8_t kHaierAcCmdOff
Definition ir_Haier.h:77
const uint8_t kHaierAcYrw02FanLow
Definition ir_Haier.h:174
const uint8_t kHaierAcCmdTimerSet
Definition ir_Haier.h:84
const uint8_t kHaierAcSwingVDown
Definition ir_Haier.h:91
const uint8_t kHaierAcYrw02OnTimer
Definition ir_Haier.h:202
const uint8_t kHaierAcYrw02MinTempF
Definition ir_Haier.h:140
const uint8_t kHaierAcYrw02Auto
Definition ir_Haier.h:177
const uint8_t kHaierAcYrw02Heat
Definition ir_Haier.h:180
const uint8_t kHaierAcYrw02MinTempC
Definition ir_Haier.h:138
const uint8_t kHaierAcYrw02OnThenOffTimer
Definition ir_Haier.h:203
const uint8_t kHaierAcFanHigh
Definition ir_Haier.h:103
const uint8_t kHaierAcYrw02SwingVDown
Definition ir_Haier.h:153
const uint8_t kHaierAcYrw02SwingHLeftMax
Definition ir_Haier.h:166
const uint8_t kHaierAcCmdTempUp
Definition ir_Haier.h:81
const uint8_t kHaierAcYrw02DefTempC
Definition ir_Haier.h:142
const uint8_t kHaierAcMinTemp
Definition ir_Haier.h:74
const uint8_t kHaierAcYrw02SwingHAuto
Definition ir_Haier.h:170
const uint8_t kHaierAcYrw02ButtonHealth
Definition ir_Haier.h:190
const uint8_t kHaierAcYrw02FanHigh
Definition ir_Haier.h:172
const uint8_t kHaierAcCmdTimerCancel
Definition ir_Haier.h:85
const uint8_t kHaierAc160SwingVOff
Definition ir_Haier.h:156
const uint8_t kHaierAcCmdSleep
Definition ir_Haier.h:83
const uint8_t kHaierAcYrw02ButtonCFAB
Definition ir_Haier.h:198
const uint8_t kHaierAcYrw02SwingHLeft
Definition ir_Haier.h:167
const uint8_t kHaierAcAuto
Definition ir_Haier.h:94
const uint8_t kHaierAcSleepBit
Definition ir_Haier.h:107
const uint8_t kHaierAcYrw02SwingVBottom
Definition ir_Haier.h:152
const uint8_t kHaierAcYrw02SwingHRightMax
Definition ir_Haier.h:169
const uint8_t kHaierAcYrw02FanAuto
Definition ir_Haier.h:175
const uint8_t kHaierAcYrw02ButtonTurbo
Definition ir_Haier.h:191
const uint16_t kHaierAcMaxTime
Definition ir_Haier.h:105
const uint8_t kHaierAcFanLow
Definition ir_Haier.h:101
const uint8_t kHaierAcYrw02ModelA
Definition ir_Haier.h:144
const uint8_t kHaierAcYrw02ModelB
Definition ir_Haier.h:145
const uint8_t kHaierAcYrw02OffTimer
Definition ir_Haier.h:201
const uint8_t kHaierAcCmdTempDown
Definition ir_Haier.h:82
const uint8_t kHaierAc160Prefix
Definition ir_Haier.h:147
const uint8_t kHaierAcYrw02SwingVTop
Definition ir_Haier.h:150
const uint8_t kHaierAcYrw02ButtonPower
Definition ir_Haier.h:188
const uint8_t kHaierAcFan
Definition ir_Haier.h:98
const uint8_t kHaierAcYrw02ButtonTempDown
Definition ir_Haier.h:184
const uint8_t kHaierAcYrw02SwingVOff
Definition ir_Haier.h:149
const uint8_t kHaierAcCmdSwing
Definition ir_Haier.h:87
const uint8_t kHaierAc160ButtonClean
Definition ir_Haier.h:197
const uint8_t kHaierAcSwingVOff
Definition ir_Haier.h:89
fanspeed_t
Common A/C settings for Fan Speeds.
Definition IRsend.h:67
opmode_t
Common A/C settings for A/C operating modes.
Definition IRsend.h:55
swingh_t
Common A/C settings for Horizontal Swing.
Definition IRsend.h:106
swingv_t
Common A/C settings for Vertical Swing.
Definition IRsend.h:80
Structure to hold a common A/C state.
Definition IRsend.h:120
Native representation of a Haier 160 bit A/C message.
Definition ir_Haier.h:277
uint8_t raw[kHaierAC160StateLength]
The state in native form.
Definition ir_Haier.h:278
uint8_t Fan2
Definition ir_Haier.h:335
uint8_t Sum
Definition ir_Haier.h:326
uint8_t SwingH
Definition ir_Haier.h:287
uint8_t Mode
Definition ir_Haier.h:306
uint8_t SwingV
Definition ir_Haier.h:283
uint8_t Turbo
Definition ir_Haier.h:302
uint8_t Sleep
Definition ir_Haier.h:310
uint8_t OffTimerMins
Definition ir_Haier.h:301
uint8_t Sum2
Definition ir_Haier.h:341
uint8_t TimerMode
Definition ir_Haier.h:292
uint8_t OffTimerHrs
Definition ir_Haier.h:298
uint8_t Clean2
Definition ir_Haier.h:331
uint8_t Fan
Definition ir_Haier.h:299
uint8_t ExtraDegreeF
Definition ir_Haier.h:314
uint8_t Button
Definition ir_Haier.h:322
uint8_t Model
Definition ir_Haier.h:281
uint8_t Clean
Definition ir_Haier.h:316
uint8_t Health
Definition ir_Haier.h:290
uint8_t OnTimerHrs
Definition ir_Haier.h:305
uint8_t Lock
Definition ir_Haier.h:323
uint8_t AuxHeating
Definition ir_Haier.h:296
uint8_t Quiet
Definition ir_Haier.h:303
uint8_t Prefix
Definition ir_Haier.h:328
uint8_t Temp
Definition ir_Haier.h:284
uint8_t UseFahrenheit
Definition ir_Haier.h:317
uint8_t Power
Definition ir_Haier.h:295
uint8_t OnTimerMins
Definition ir_Haier.h:308
Native representation of a Haier 176 bit A/C message.
Definition ir_Haier.h:207
uint8_t Quiet
Definition ir_Haier.h:233
uint8_t Lock
Definition ir_Haier.h:252
uint8_t Turbo
Definition ir_Haier.h:232
uint8_t raw[kHaierAC176StateLength]
The state in native form.
Definition ir_Haier.h:208
uint8_t Button
Definition ir_Haier.h:251
uint8_t ExtraDegreeF
Definition ir_Haier.h:244
uint8_t Mode
Definition ir_Haier.h:236
uint8_t Sum2
Definition ir_Haier.h:272
uint8_t Prefix2
Definition ir_Haier.h:257
uint8_t Fan
Definition ir_Haier.h:229
uint8_t SwingH
Definition ir_Haier.h:217
uint8_t Health
Definition ir_Haier.h:220
uint8_t TimerMode
Definition ir_Haier.h:222
uint8_t Temp
Definition ir_Haier.h:214
uint8_t UseFahrenheit
Definition ir_Haier.h:246
uint8_t Sum
Definition ir_Haier.h:255
uint8_t OnTimerMins
Definition ir_Haier.h:238
uint8_t OffTimerHrs
Definition ir_Haier.h:228
uint8_t OffTimerMins
Definition ir_Haier.h:231
uint8_t SwingV
Definition ir_Haier.h:213
uint8_t Fan2
Definition ir_Haier.h:262
uint8_t Model
Definition ir_Haier.h:211
uint8_t Power
Definition ir_Haier.h:225
uint8_t Sleep
Definition ir_Haier.h:240
uint8_t OnTimerHrs
Definition ir_Haier.h:235
Native representation of a Haier HSU07-HEA03 A/C message.
Definition ir_Haier.h:34
uint8_t CurrHours
Definition ir_Haier.h:44
uint8_t Fan
Definition ir_Haier.h:57
uint8_t Health
Definition ir_Haier.h:53
uint8_t Sum
Definition ir_Haier.h:66
uint8_t OnMins
Definition ir_Haier.h:62
uint8_t Prefix
Definition ir_Haier.h:39
uint8_t OffMins
Definition ir_Haier.h:56
uint8_t OffTimer
Definition ir_Haier.h:49
uint8_t CurrMins
Definition ir_Haier.h:48
uint8_t Sleep
Definition ir_Haier.h:63
uint8_t Mode
Definition ir_Haier.h:60
uint8_t unknown
Definition ir_Haier.h:45
uint8_t OnTimer
Definition ir_Haier.h:50
uint8_t Command
Definition ir_Haier.h:41
uint8_t OffHours
Definition ir_Haier.h:52
uint8_t OnHours
Definition ir_Haier.h:59
uint8_t remote_state[kHaierACStateLength]
< The state in native IR code form
Definition ir_Haier.h:36
uint8_t SwingV
Definition ir_Haier.h:46
uint8_t Temp
Definition ir_Haier.h:42