# IRremoteESP8266: src/ir_Haier.h File Reference

ir_Haier.h File Reference

Support for Haier A/C protocols. The specifics of reverse engineering the protocols details: More...

Go to the source code of this file.

## Classes

union | HaierProtocol
| Native representation of a Haier HSU07-HEA03 A/C message. More...
union | HaierYRW02Protocol
| Native representation of a Haier YRW02 A/C message. More...
class | IRHaierAC
| Class for handling detailed Haier A/C messages. More...
class | IRHaierACYRW02
| Class for handling detailed Haier ACYRW02 A/C messages. More...

## Variables

const uint8_t | kHaierAcPrefix = 0b10100101
const uint8_t | kHaierAcMinTemp = 16
const uint8_t | kHaierAcDefTemp = 25
const uint8_t | kHaierAcMaxTemp = 30
const uint8_t | kHaierAcCmdOff = 0b0000
const uint8_t | kHaierAcCmdOn = 0b0001
const uint8_t | kHaierAcCmdMode = 0b0010
const uint8_t | kHaierAcCmdFan = 0b0011
const uint8_t | kHaierAcCmdTempUp = 0b0110
const uint8_t | kHaierAcCmdTempDown = 0b0111
const uint8_t | kHaierAcCmdSleep = 0b1000
const uint8_t | kHaierAcCmdTimerSet = 0b1001
const uint8_t | kHaierAcCmdTimerCancel = 0b1010
const uint8_t | kHaierAcCmdHealth = 0b1100
const uint8_t | kHaierAcCmdSwing = 0b1101
const uint8_t | kHaierAcSwingOff = 0b00
const uint8_t | kHaierAcSwingUp = 0b01
const uint8_t | kHaierAcSwingDown = 0b10
const uint8_t | kHaierAcSwingChg = 0b11
const uint8_t | kHaierAcAuto = 0
const uint8_t | kHaierAcCool = 1
const uint8_t | kHaierAcDry = 2
const uint8_t | kHaierAcHeat = 3
const uint8_t | kHaierAcFan = 4
const uint8_t | kHaierAcFanAuto = 0
const uint8_t | kHaierAcFanLow = 1
const uint8_t | kHaierAcFanMed = 2
const uint8_t | kHaierAcFanHigh = 3
const uint16_t | kHaierAcMaxTime = (23 * 60) + 59
const uint8_t | kHaierAcSleepBit = 0b01000000
const uint8_t | kHaierAcYrw02Prefix = 0xA6
const uint8_t | kHaierAcYrw02SwingOff = 0x0
const uint8_t | kHaierAcYrw02SwingTop = 0x1
const uint8_t | kHaierAcYrw02SwingMiddle = 0x2
const uint8_t | kHaierAcYrw02SwingBottom = 0x3
const uint8_t | kHaierAcYrw02SwingDown = 0xA
const uint8_t | kHaierAcYrw02SwingAuto = 0xC
const uint8_t | kHaierAcYrw02FanHigh = 0b001
const uint8_t | kHaierAcYrw02FanMed = 0b010
const uint8_t | kHaierAcYrw02FanLow = 0b011
const uint8_t | kHaierAcYrw02FanAuto = 0b101
const uint8_t | kHaierAcYrw02TurboOff = 0x0
const uint8_t | kHaierAcYrw02TurboHigh = 0x1
const uint8_t | kHaierAcYrw02TurboLow = 0x2
const uint8_t | kHaierAcYrw02Auto = 0b000
const uint8_t | kHaierAcYrw02Cool = 0b001
const uint8_t | kHaierAcYrw02Dry = 0b010
const uint8_t | kHaierAcYrw02Heat = 0b100
const uint8_t | kHaierAcYrw02Fan = 0b110
const uint8_t | kHaierAcYrw02ButtonTempUp = 0x0
const uint8_t | kHaierAcYrw02ButtonTempDown = 0x1
const uint8_t | kHaierAcYrw02ButtonSwing = 0x2
const uint8_t | kHaierAcYrw02ButtonFan = 0x4
const uint8_t | kHaierAcYrw02ButtonPower = 0x5
const uint8_t | kHaierAcYrw02ButtonMode = 0x6
const uint8_t | kHaierAcYrw02ButtonHealth = 0x7
const uint8_t | kHaierAcYrw02ButtonTurbo = 0x8
const uint8_t | kHaierAcYrw02ButtonSleep = 0xB

## Detailed Description

Support for Haier A/C protocols. The specifics of reverse engineering the protocols details:

- HSU07-HEA03 by kuzin2006.
- YR-W02/HSU-09HMC203 by non7top.
  See also
    https://github.com/crankyoldgit/IRremoteESP8266/issues/404
    https://www.dropbox.com/s/mecyib3lhdxc8c6/IR%20data%20reverse%20engineering.xlsx?dl=0
    https://github.com/crankyoldgit/IRremoteESP8266/issues/485
    https://www.dropbox.com/sh/w0bt7egp0fjger5/AADRFV6Wg4wZskJVdFvzb8Z0a?dl=0&preview=haer2.ods

## Variable Documentation

## kHaierAcAuto

const uint8_t kHaierAcAuto = 0

## kHaierAcCmdFan

const uint8_t kHaierAcCmdFan = 0b0011

## kHaierAcCmdHealth

const uint8_t kHaierAcCmdHealth = 0b1100

## kHaierAcCmdMode

const uint8_t kHaierAcCmdMode = 0b0010

## kHaierAcCmdOff

const uint8_t kHaierAcCmdOff = 0b0000

## kHaierAcCmdOn

const uint8_t kHaierAcCmdOn = 0b0001

## kHaierAcCmdSleep

const uint8_t kHaierAcCmdSleep = 0b1000

## kHaierAcCmdSwing

const uint8_t kHaierAcCmdSwing = 0b1101

## kHaierAcCmdTempDown

const uint8_t kHaierAcCmdTempDown = 0b0111

## kHaierAcCmdTempUp

const uint8_t kHaierAcCmdTempUp = 0b0110

## kHaierAcCmdTimerCancel

const uint8_t kHaierAcCmdTimerCancel = 0b1010

## kHaierAcCmdTimerSet

const uint8_t kHaierAcCmdTimerSet = 0b1001

## kHaierAcCool

const uint8_t kHaierAcCool = 1

## kHaierAcDefTemp

const uint8_t kHaierAcDefTemp = 25

## kHaierAcDry

const uint8_t kHaierAcDry = 2

## kHaierAcFan

const uint8_t kHaierAcFan = 4

## kHaierAcFanAuto

const uint8_t kHaierAcFanAuto = 0

## kHaierAcFanHigh

const uint8_t kHaierAcFanHigh = 3

## kHaierAcFanLow

const uint8_t kHaierAcFanLow = 1

## kHaierAcFanMed

const uint8_t kHaierAcFanMed = 2

## kHaierAcHeat

const uint8_t kHaierAcHeat = 3

## kHaierAcMaxTemp

const uint8_t kHaierAcMaxTemp = 30

## kHaierAcMaxTime

const uint16_t kHaierAcMaxTime = (23 * 60) + 59

## kHaierAcMinTemp

const uint8_t kHaierAcMinTemp = 16

## kHaierAcPrefix

const uint8_t kHaierAcPrefix = 0b10100101

## kHaierAcSleepBit

const uint8_t kHaierAcSleepBit = 0b01000000

## kHaierAcSwingChg

const uint8_t kHaierAcSwingChg = 0b11

## kHaierAcSwingDown

const uint8_t kHaierAcSwingDown = 0b10

## kHaierAcSwingOff

const uint8_t kHaierAcSwingOff = 0b00

## kHaierAcSwingUp

const uint8_t kHaierAcSwingUp = 0b01

## kHaierAcYrw02Auto

const uint8_t kHaierAcYrw02Auto = 0b000

## kHaierAcYrw02ButtonFan

const uint8_t kHaierAcYrw02ButtonFan = 0x4

## kHaierAcYrw02ButtonHealth

const uint8_t kHaierAcYrw02ButtonHealth = 0x7

## kHaierAcYrw02ButtonMode

const uint8_t kHaierAcYrw02ButtonMode = 0x6

## kHaierAcYrw02ButtonPower

const uint8_t kHaierAcYrw02ButtonPower = 0x5

## kHaierAcYrw02ButtonSleep

const uint8_t kHaierAcYrw02ButtonSleep = 0xB

## kHaierAcYrw02ButtonSwing

const uint8_t kHaierAcYrw02ButtonSwing = 0x2

## kHaierAcYrw02ButtonTempDown

const uint8_t kHaierAcYrw02ButtonTempDown = 0x1

## kHaierAcYrw02ButtonTempUp

const uint8_t kHaierAcYrw02ButtonTempUp = 0x0

## kHaierAcYrw02ButtonTurbo

const uint8_t kHaierAcYrw02ButtonTurbo = 0x8

## kHaierAcYrw02Cool

const uint8_t kHaierAcYrw02Cool = 0b001

## kHaierAcYrw02Dry

const uint8_t kHaierAcYrw02Dry = 0b010

## kHaierAcYrw02Fan

const uint8_t kHaierAcYrw02Fan = 0b110

## kHaierAcYrw02FanAuto

const uint8_t kHaierAcYrw02FanAuto = 0b101

## kHaierAcYrw02FanHigh

const uint8_t kHaierAcYrw02FanHigh = 0b001

## kHaierAcYrw02FanLow

const uint8_t kHaierAcYrw02FanLow = 0b011

## kHaierAcYrw02FanMed

const uint8_t kHaierAcYrw02FanMed = 0b010

## kHaierAcYrw02Heat

const uint8_t kHaierAcYrw02Heat = 0b100

## kHaierAcYrw02Prefix

const uint8_t kHaierAcYrw02Prefix = 0xA6

## kHaierAcYrw02SwingAuto

const uint8_t kHaierAcYrw02SwingAuto = 0xC

## kHaierAcYrw02SwingBottom

const uint8_t kHaierAcYrw02SwingBottom = 0x3

## kHaierAcYrw02SwingDown

const uint8_t kHaierAcYrw02SwingDown = 0xA

## kHaierAcYrw02SwingMiddle

const uint8_t kHaierAcYrw02SwingMiddle = 0x2

## kHaierAcYrw02SwingOff

const uint8_t kHaierAcYrw02SwingOff = 0x0

## kHaierAcYrw02SwingTop

const uint8_t kHaierAcYrw02SwingTop = 0x1

## kHaierAcYrw02TurboHigh

const uint8_t kHaierAcYrw02TurboHigh = 0x1

## kHaierAcYrw02TurboLow

const uint8_t kHaierAcYrw02TurboLow = 0x2

## kHaierAcYrw02TurboOff

const uint8_t kHaierAcYrw02TurboOff = 0x0