IRremoteESP8266
Classes | Variables
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  HaierAc176Protocol
 Native representation of a Haier 176 bit A/C message. More...
 
union  HaierAc160Protocol
 Native representation of a Haier 160 bit A/C message. More...
 
class  IRHaierAC
 Class for handling detailed Haier A/C messages. More...
 
class  IRHaierAC176
 Class for handling detailed Haier 176 bit A/C messages. More...
 
class  IRHaierACYRW02
 Class for handling detailed Haier ACYRW02 A/C messages. More...
 
class  IRHaierAC160
 Class for handling detailed Haier 160 bit 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 kHaierAcSwingVOff = 0b00
 
const uint8_t kHaierAcSwingVUp = 0b01
 
const uint8_t kHaierAcSwingVDown = 0b10
 
const uint8_t kHaierAcSwingVChg = 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 kHaierAcYrw02MinTempC = 16
 
const uint8_t kHaierAcYrw02MaxTempC = 30
 
const uint8_t kHaierAcYrw02MinTempF = 60
 
const uint8_t kHaierAcYrw02MaxTempF = 86
 
const uint8_t kHaierAcYrw02DefTempC = 25
 
const uint8_t kHaierAcYrw02ModelA = 0xA6
 
const uint8_t kHaierAcYrw02ModelB = 0x59
 
const uint8_t kHaierAc176Prefix = 0xB7
 
const uint8_t kHaierAc160Prefix = 0xB5
 
const uint8_t kHaierAcYrw02SwingVOff = 0x0
 
const uint8_t kHaierAcYrw02SwingVTop = 0x1
 
const uint8_t kHaierAcYrw02SwingVMiddle = 0x2
 
const uint8_t kHaierAcYrw02SwingVBottom = 0x3
 
const uint8_t kHaierAcYrw02SwingVDown = 0xA
 
const uint8_t kHaierAcYrw02SwingVAuto = 0xC
 
const uint8_t kHaierAc160SwingVOff = 0b0000
 
const uint8_t kHaierAc160SwingVTop = 0b0001
 
const uint8_t kHaierAc160SwingVHighest = 0b0010
 
const uint8_t kHaierAc160SwingVHigh = 0b0100
 
const uint8_t kHaierAc160SwingVMiddle = 0b0110
 
const uint8_t kHaierAc160SwingVLow = 0b1000
 
const uint8_t kHaierAc160SwingVLowest = 0b0011
 
const uint8_t kHaierAc160SwingVAuto = 0b1100
 
const uint8_t kHaierAcYrw02SwingHMiddle = 0x0
 
const uint8_t kHaierAcYrw02SwingHLeftMax = 0x3
 
const uint8_t kHaierAcYrw02SwingHLeft = 0x4
 
const uint8_t kHaierAcYrw02SwingHRight = 0x5
 
const uint8_t kHaierAcYrw02SwingHRightMax = 0x6
 
const uint8_t kHaierAcYrw02SwingHAuto = 0x7
 
const uint8_t kHaierAcYrw02FanHigh = 0b001
 
const uint8_t kHaierAcYrw02FanMed = 0b010
 
const uint8_t kHaierAcYrw02FanLow = 0b011
 
const uint8_t kHaierAcYrw02FanAuto = 0b101
 
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 = 0b00000
 
const uint8_t kHaierAcYrw02ButtonTempDown = 0b00001
 
const uint8_t kHaierAcYrw02ButtonSwingV = 0b00010
 
const uint8_t kHaierAcYrw02ButtonSwingH = 0b00011
 
const uint8_t kHaierAcYrw02ButtonFan = 0b00100
 
const uint8_t kHaierAcYrw02ButtonPower = 0b00101
 
const uint8_t kHaierAcYrw02ButtonMode = 0b00110
 
const uint8_t kHaierAcYrw02ButtonHealth = 0b00111
 
const uint8_t kHaierAcYrw02ButtonTurbo = 0b01000
 
const uint8_t kHaierAcYrw02ButtonSleep = 0b01011
 
const uint8_t kHaierAcYrw02ButtonTimer = 0b10000
 
const uint8_t kHaierAcYrw02ButtonLock = 0b10100
 
const uint8_t kHaierAc160ButtonLight = 0b10101
 
const uint8_t kHaierAc160ButtonAuxHeating = 0b10110
 
const uint8_t kHaierAc160ButtonClean = 0b11001
 
const uint8_t kHaierAcYrw02ButtonCFAB = 0b11010
 
const uint8_t kHaierAcYrw02NoTimers = 0b000
 
const uint8_t kHaierAcYrw02OffTimer = 0b001
 
const uint8_t kHaierAcYrw02OnTimer = 0b010
 
const uint8_t kHaierAcYrw02OnThenOffTimer = 0b100
 
const uint8_t kHaierAcYrw02OffThenOnTimer = 0b101
 

Detailed Description

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

Variable Documentation

◆ kHaierAc160ButtonAuxHeating

const uint8_t kHaierAc160ButtonAuxHeating = 0b10110

◆ kHaierAc160ButtonClean

const uint8_t kHaierAc160ButtonClean = 0b11001

◆ kHaierAc160ButtonLight

const uint8_t kHaierAc160ButtonLight = 0b10101

◆ kHaierAc160Prefix

const uint8_t kHaierAc160Prefix = 0xB5

◆ kHaierAc160SwingVAuto

const uint8_t kHaierAc160SwingVAuto = 0b1100

◆ kHaierAc160SwingVHigh

const uint8_t kHaierAc160SwingVHigh = 0b0100

◆ kHaierAc160SwingVHighest

const uint8_t kHaierAc160SwingVHighest = 0b0010

◆ kHaierAc160SwingVLow

const uint8_t kHaierAc160SwingVLow = 0b1000

◆ kHaierAc160SwingVLowest

const uint8_t kHaierAc160SwingVLowest = 0b0011

◆ kHaierAc160SwingVMiddle

const uint8_t kHaierAc160SwingVMiddle = 0b0110

◆ kHaierAc160SwingVOff

const uint8_t kHaierAc160SwingVOff = 0b0000

◆ kHaierAc160SwingVTop

const uint8_t kHaierAc160SwingVTop = 0b0001

◆ kHaierAc176Prefix

const uint8_t kHaierAc176Prefix = 0xB7

◆ 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

◆ kHaierAcSwingVChg

const uint8_t kHaierAcSwingVChg = 0b11

◆ kHaierAcSwingVDown

const uint8_t kHaierAcSwingVDown = 0b10

◆ kHaierAcSwingVOff

const uint8_t kHaierAcSwingVOff = 0b00

◆ kHaierAcSwingVUp

const uint8_t kHaierAcSwingVUp = 0b01

◆ kHaierAcYrw02Auto

const uint8_t kHaierAcYrw02Auto = 0b000

◆ kHaierAcYrw02ButtonCFAB

const uint8_t kHaierAcYrw02ButtonCFAB = 0b11010

◆ kHaierAcYrw02ButtonFan

const uint8_t kHaierAcYrw02ButtonFan = 0b00100

◆ kHaierAcYrw02ButtonHealth

const uint8_t kHaierAcYrw02ButtonHealth = 0b00111

◆ kHaierAcYrw02ButtonLock

const uint8_t kHaierAcYrw02ButtonLock = 0b10100

◆ kHaierAcYrw02ButtonMode

const uint8_t kHaierAcYrw02ButtonMode = 0b00110

◆ kHaierAcYrw02ButtonPower

const uint8_t kHaierAcYrw02ButtonPower = 0b00101

◆ kHaierAcYrw02ButtonSleep

const uint8_t kHaierAcYrw02ButtonSleep = 0b01011

◆ kHaierAcYrw02ButtonSwingH

const uint8_t kHaierAcYrw02ButtonSwingH = 0b00011

◆ kHaierAcYrw02ButtonSwingV

const uint8_t kHaierAcYrw02ButtonSwingV = 0b00010

◆ kHaierAcYrw02ButtonTempDown

const uint8_t kHaierAcYrw02ButtonTempDown = 0b00001

◆ kHaierAcYrw02ButtonTempUp

const uint8_t kHaierAcYrw02ButtonTempUp = 0b00000

◆ kHaierAcYrw02ButtonTimer

const uint8_t kHaierAcYrw02ButtonTimer = 0b10000

◆ kHaierAcYrw02ButtonTurbo

const uint8_t kHaierAcYrw02ButtonTurbo = 0b01000

◆ kHaierAcYrw02Cool

const uint8_t kHaierAcYrw02Cool = 0b001

◆ kHaierAcYrw02DefTempC

const uint8_t kHaierAcYrw02DefTempC = 25

◆ 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

◆ kHaierAcYrw02MaxTempC

const uint8_t kHaierAcYrw02MaxTempC = 30

◆ kHaierAcYrw02MaxTempF

const uint8_t kHaierAcYrw02MaxTempF = 86

◆ kHaierAcYrw02MinTempC

const uint8_t kHaierAcYrw02MinTempC = 16

◆ kHaierAcYrw02MinTempF

const uint8_t kHaierAcYrw02MinTempF = 60

◆ kHaierAcYrw02ModelA

const uint8_t kHaierAcYrw02ModelA = 0xA6

◆ kHaierAcYrw02ModelB

const uint8_t kHaierAcYrw02ModelB = 0x59

◆ kHaierAcYrw02NoTimers

const uint8_t kHaierAcYrw02NoTimers = 0b000

◆ kHaierAcYrw02OffThenOnTimer

const uint8_t kHaierAcYrw02OffThenOnTimer = 0b101

◆ kHaierAcYrw02OffTimer

const uint8_t kHaierAcYrw02OffTimer = 0b001

◆ kHaierAcYrw02OnThenOffTimer

const uint8_t kHaierAcYrw02OnThenOffTimer = 0b100

◆ kHaierAcYrw02OnTimer

const uint8_t kHaierAcYrw02OnTimer = 0b010

◆ kHaierAcYrw02SwingHAuto

const uint8_t kHaierAcYrw02SwingHAuto = 0x7

◆ kHaierAcYrw02SwingHLeft

const uint8_t kHaierAcYrw02SwingHLeft = 0x4

◆ kHaierAcYrw02SwingHLeftMax

const uint8_t kHaierAcYrw02SwingHLeftMax = 0x3

◆ kHaierAcYrw02SwingHMiddle

const uint8_t kHaierAcYrw02SwingHMiddle = 0x0

◆ kHaierAcYrw02SwingHRight

const uint8_t kHaierAcYrw02SwingHRight = 0x5

◆ kHaierAcYrw02SwingHRightMax

const uint8_t kHaierAcYrw02SwingHRightMax = 0x6

◆ kHaierAcYrw02SwingVAuto

const uint8_t kHaierAcYrw02SwingVAuto = 0xC

◆ kHaierAcYrw02SwingVBottom

const uint8_t kHaierAcYrw02SwingVBottom = 0x3

◆ kHaierAcYrw02SwingVDown

const uint8_t kHaierAcYrw02SwingVDown = 0xA

◆ kHaierAcYrw02SwingVMiddle

const uint8_t kHaierAcYrw02SwingVMiddle = 0x2

◆ kHaierAcYrw02SwingVOff

const uint8_t kHaierAcYrw02SwingVOff = 0x0

◆ kHaierAcYrw02SwingVTop

const uint8_t kHaierAcYrw02SwingVTop = 0x1