IRremoteESP8266
|
Support for Daikin A/C protocols. More...
Go to the source code of this file.
Classes | |
class | IRDaikinESP |
Class for handling detailed Daikin 280-bit A/C messages. More... | |
class | IRDaikin2 |
Class for handling detailed Daikin 312-bit A/C messages. Code by crankyoldgit, Reverse engineering analysis by sheppy99. More... | |
class | IRDaikin216 |
Class for handling detailed Daikin 216-bit A/C messages. More... | |
class | IRDaikin160 |
Class for handling detailed Daikin 160-bit A/C messages. More... | |
class | IRDaikin176 |
Class for handling detailed Daikin 176-bit A/C messages. More... | |
class | IRDaikin128 |
Class for handling detailed Daikin 128-bit A/C messages. Code by crankyoldgit. Analysis by Daniel Vena. More... | |
class | IRDaikin152 |
Class for handling detailed Daikin 152-bit A/C messages. More... | |
class | IRDaikin64 |
Class for handling detailed Daikin 64-bit A/C messages. More... | |
Support for Daikin A/C protocols.
const uint8_t kDaikin128Auto = 0b00001010 |
const uint8_t kDaikin128BitCeiling = 0b00000001 |
const uint8_t kDaikin128BitEcono = 1 << kDaikin128BitEconoOffset |
const uint8_t kDaikin128BitEconoOffset = 2 |
const uint8_t kDaikin128BitHalfHour = 1 << kDaikin128HalfHourOffset |
const uint16_t kDaikin128BitMark = 350 |
const uint8_t kDaikin128BitPowerToggle = 1 << kDaikin128BitPowerToggleOffset |
const uint8_t kDaikin128BitPowerToggleOffset = 3 |
const uint8_t kDaikin128BitSleep = 1 << kDaikin128BitSleepOffset |
const uint8_t kDaikin128BitSleepOffset = 1 |
const uint8_t kDaikin128BitSwing = 1 << kDaikin128BitSwingOffset |
const uint8_t kDaikin128BitSwingOffset = 0 |
const uint8_t kDaikin128BitTimerEnabled = 1 << kDaikin128BitTimerEnabledOffset |
const uint8_t kDaikin128BitTimerEnabledOffset = 7 |
const uint8_t kDaikin128BitWall = 0b00001000 |
const uint8_t kDaikin128ByteClockHours = 3 |
const uint8_t kDaikin128ByteClockMins = 2 |
const uint8_t kDaikin128ByteEconoLight = 9 |
const uint8_t kDaikin128ByteModeFan = 1 |
const uint8_t kDaikin128ByteOffTimer = 5 |
const uint8_t kDaikin128ByteOnTimer = 4 |
const uint8_t kDaikin128BytePowerSwingSleep = 7 |
const uint8_t kDaikin128ByteTemp = 6 |
const uint8_t kDaikin128Cool = 0b00000010 |
const uint8_t kDaikin128Dry = 0b00000001 |
const uint8_t kDaikin128Fan = 0b00000100 |
const uint8_t kDaikin128FanAuto = 0b0001 |
const uint8_t kDaikin128FanHigh = 0b0010 |
const uint8_t kDaikin128FanLow = 0b1000 |
const uint8_t kDaikin128FanMed = 0b0100 |
const uint8_t kDaikin128FanPowerful = 0b0011 |
const uint8_t kDaikin128FanQuiet = 0b1001 |
const uint16_t kDaikin128FooterMark = kDaikin128HdrMark |
const uint16_t kDaikin128Freq = 38000 |
const uint16_t kDaikin128Gap = 20300 |
const uint8_t kDaikin128HalfHourOffset = 6 |
const uint16_t kDaikin128HdrMark = 4600 |
const uint16_t kDaikin128HdrSpace = 2500 |
const uint8_t kDaikin128Heat = 0b00001000 |
const uint8_t kDaikin128HoursOffset = 0 |
const uint8_t kDaikin128HoursSize = 6 |
const uint16_t kDaikin128LeaderMark = 9800 |
const uint16_t kDaikin128LeaderSpace = 9800 |
const uint8_t kDaikin128MaskFan = 0b11110000 |
const uint8_t kDaikin128MaskLight = kDaikin128BitWall | kDaikin128BitCeiling |
const uint8_t kDaikin128MaxTemp = 30 |
const uint8_t kDaikin128MinTemp = 16 |
const uint8_t kDaikin128ModeSize = 4 |
const uint16_t kDaikin128OneSpace = 954 |
const uint16_t kDaikin128SectionLength = 8 |
const uint16_t kDaikin128Sections = 2 |
const uint8_t kDaikin128TimerOffset = 0 |
const uint8_t kDaikin128TimerSize = 7 |
const uint16_t kDaikin128ZeroSpace = 382 |
const uint16_t kDaikin152BitMark = 433 |
const uint8_t kDaikin152ComfortByte = kDaikin152EconoByte |
const uint8_t kDaikin152ComfortOffset = 1 |
const uint8_t kDaikin152DryTemp = kDaikin2MinCoolTemp |
const uint8_t kDaikin152EconoByte = 16 |
const uint8_t kDaikin152FanByte = 8 |
const uint8_t kDaikin152FanTemp = 0x60 |
const uint16_t kDaikin152Freq = 38000 |
const uint16_t kDaikin152Gap = 25182 |
const uint16_t kDaikin152HdrMark = 3492 |
const uint16_t kDaikin152HdrSpace = 1718 |
const uint8_t kDaikin152LeaderBits = 5 |
const uint8_t kDaikin152ModeByte = 5 |
const uint16_t kDaikin152OneSpace = 1529 |
const uint8_t kDaikin152PowerByte = kDaikin152ModeByte |
const uint8_t kDaikin152PowerfulByte = kDaikin152QuietByte |
const uint8_t kDaikin152QuietByte = 13 |
const uint8_t kDaikin152SensorByte = kDaikin152EconoByte |
const uint8_t kDaikin152SensorOffset = 3 |
const uint8_t kDaikin152SwingVByte = kDaikin152FanByte |
const uint8_t kDaikin152TempByte = 6 |
const uint8_t kDaikin152TempSize = 7 |
const uint16_t kDaikin152ZeroSpace = kDaikin152BitMark |
const uint16_t kDaikin160BitMark = 342 |
const uint8_t kDaikin160ByteFan = 17 |
const uint8_t kDaikin160ByteMode = kDaikin160BytePower |
const uint8_t kDaikin160BytePower = 12 |
const uint8_t kDaikin160ByteSwingV = 13 |
const uint8_t kDaikin160ByteTemp = 16 |
const uint16_t kDaikin160Freq = 38000 |
const uint16_t kDaikin160Gap = 29650 |
const uint16_t kDaikin160HdrMark = 5000 |
const uint16_t kDaikin160HdrSpace = 2145 |
const uint8_t kDaikin160MaskFan = 0b00001111 |
const uint8_t kDaikin160MaskSwingV = 0b11110000 |
const uint16_t kDaikin160OneSpace = 1786 |
const uint16_t kDaikin160Section1Length = 7 |
const uint16_t kDaikin160Section2Length |
const uint16_t kDaikin160Sections = 2 |
const uint8_t kDaikin160SwingVAuto = 0xF |
const uint8_t kDaikin160SwingVHigh = 0x4 |
const uint8_t kDaikin160SwingVHighest = 0x5 |
const uint8_t kDaikin160SwingVLow = 0x2 |
const uint8_t kDaikin160SwingVLowest = 0x1 |
const uint8_t kDaikin160SwingVMiddle = 0x3 |
const uint8_t kDaikin160TempOffset = 1 |
const uint8_t kDaikin160TempSize = 6 |
const uint16_t kDaikin160ZeroSpace = 700 |
const uint16_t kDaikin176BitMark = 370 |
const uint8_t kDaikin176ByteFan = 18 |
const uint8_t kDaikin176ByteMode = 12 |
const uint8_t kDaikin176ByteModeButton = 13 |
const uint8_t kDaikin176BytePower = 14 |
const uint8_t kDaikin176ByteSwingH = 18 |
const uint8_t kDaikin176ByteTemp = 17 |
const uint8_t kDaikin176Cool = 0b111 |
const uint8_t kDaikin176DryFanTemp = 17 |
const uint8_t kDaikin176FanMax = 3 |
const uint16_t kDaikin176Freq = 38000 |
const uint16_t kDaikin176Gap = 29410 |
const uint16_t kDaikin176HdrMark = 5070 |
const uint16_t kDaikin176HdrSpace = 2140 |
const uint8_t kDaikin176MaskFan = 0b11110000 |
const uint8_t kDaikin176MaskMode = 0b01110000 |
const uint8_t kDaikin176ModeButton = 0b00000100 |
const uint16_t kDaikin176OneSpace = 1780 |
const uint16_t kDaikin176Section1Length = 7 |
const uint16_t kDaikin176Section2Length |
const uint16_t kDaikin176Sections = 2 |
const uint8_t kDaikin176SwingHAuto = 0x5 |
const uint8_t kDaikin176SwingHOff = 0x6 |
const uint8_t kDaikin176TempOffset = 1 |
const uint8_t kDaikin176TempSize = 6 |
const uint16_t kDaikin176ZeroSpace = 710 |
const uint16_t kDaikin216BitMark = 420 |
const uint8_t kDaikin216ByteFan = 16 |
const uint8_t kDaikin216ByteMode = kDaikin216BytePower |
const uint8_t kDaikin216BytePower = 13 |
const uint8_t kDaikin216BytePowerful = 21 |
const uint8_t kDaikin216ByteSwingH = 17 |
const uint8_t kDaikin216ByteSwingV = 16 |
const uint8_t kDaikin216ByteTemp = 14 |
const uint16_t kDaikin216Freq = 38000 |
const uint16_t kDaikin216Gap = 29650 |
const uint16_t kDaikin216HdrMark = 3440 |
const uint16_t kDaikin216HdrSpace = 1750 |
const uint8_t kDaikin216MaskFan = 0b11110000 |
const uint16_t kDaikin216OneSpace = 1300 |
const uint16_t kDaikin216Section1Length = 8 |
const uint16_t kDaikin216Section2Length |
const uint16_t kDaikin216Sections = 2 |
const uint8_t kDaikin216SwingOff = 0b0000 |
const uint8_t kDaikin216SwingOn = 0b1111 |
const uint8_t kDaikin216SwingSize = 4 |
const uint8_t kDaikin216TempOffset = 1 |
const uint8_t kDaikin216TempSize = 6 |
const uint16_t kDaikin216ZeroSpace = 450 |
const uint8_t kDaikin2BeepOffset = 6 |
const uint8_t kDaikin2BeepSize = 2 |
const uint8_t kDaikin2BitClean = 1 << kDaikin2BitCleanOffset |
const uint8_t kDaikin2BitCleanOffset = 5 |
const uint8_t kDaikin2BitEye = 1 << kDaikin2BitEyeOffset |
const uint8_t kDaikin2BitEyeAuto = 1 << kDaikin2BitEyeAutoOffset |
const uint8_t kDaikin2BitEyeAutoOffset = 7 |
const uint8_t kDaikin2BitEyeOffset = 1 |
const uint8_t kDaikin2BitFreshAir = 1 << kDaikin2BitFreshAirOffset |
const uint8_t kDaikin2BitFreshAirHigh = 1 << kDaikin2BitFreshAirHighOffset |
const uint8_t kDaikin2BitFreshAirHighOffset = 7 |
const uint8_t kDaikin2BitFreshAirOffset = 0 |
const uint16_t kDaikin2BitMark = 460 |
const uint8_t kDaikin2BitMold = 1 << kDaikin2BitMoldOffset |
const uint8_t kDaikin2BitMoldOffset = 3 |
const uint8_t kDaikin2BitPower = 1 << kDaikin2BitPowerOffset |
const uint8_t kDaikin2BitPowerOffset = 7 |
const uint8_t kDaikin2BitPurify = 1 << kDaikin2BitPurifyOffset |
const uint8_t kDaikin2BitPurifyOffset = 4 |
const uint8_t kDaikin2BitSleepTimer = 1 << kDaikin2BitSleepTimerOffset |
const uint8_t kDaikin2BitSleepTimerOffset = 5 |
const uint8_t kDaikin2FanByte = 28 |
const uint16_t kDaikin2Freq = 36700 |
const uint16_t kDaikin2Gap = kDaikin2LeaderMark + kDaikin2LeaderSpace |
const uint16_t kDaikin2HdrMark = 3500 |
const uint16_t kDaikin2HdrSpace = 1728 |
const uint16_t kDaikin2LeaderMark = 10024 |
const uint16_t kDaikin2LeaderSpace = 25180 |
const uint8_t kDaikin2LightOffset = 4 |
const uint8_t kDaikin2LightSize = 2 |
const uint8_t kDaikin2MinCoolTemp = 18 |
const uint16_t kDaikin2OneSpace = 1270 |
const uint16_t kDaikin2Section1Length = 20 |
const uint16_t kDaikin2Section2Length = 19 |
const uint16_t kDaikin2Sections = 2 |
const uint8_t kDaikin2SwingHAuto = 0xBE |
const uint8_t kDaikin2SwingHLeft = 0xA9 |
const uint8_t kDaikin2SwingHLeftMax = 0xA8 |
const uint8_t kDaikin2SwingHMiddle = 0xAA |
const uint8_t kDaikin2SwingHRight = 0xAB |
const uint8_t kDaikin2SwingHRightMax = 0xAC |
const uint8_t kDaikin2SwingHSwing = 0xBF |
const uint8_t kDaikin2SwingHWide = 0xA3 |
const uint8_t kDaikin2SwingVAuto = 0xE |
const uint8_t kDaikin2SwingVBreeze = 0xC |
const uint8_t kDaikin2SwingVCirculate = 0xD |
const uint8_t kDaikin2SwingVHigh = 0x1 |
const uint8_t kDaikin2SwingVLow = 0x6 |
const uint8_t kDaikin2SwingVSwing = 0xF |
const uint8_t kDaikin2Tolerance = 5 |
const uint16_t kDaikin2ZeroSpace = 420 |
const uint16_t kDaikin64BitMark = kDaikin128BitMark |
const uint8_t kDaikin64ChecksumOffset = 60 |
const uint8_t kDaikin64ChecksumSize = 4 |
const uint8_t kDaikin64ClockHoursSize = 8 |
const uint8_t kDaikin64ClockMinsSize = 8 |
const uint8_t kDaikin64ClockOffset = kDaikin64FanOffset + kDaikin64FanSize |
const uint8_t kDaikin64ClockSize |
const uint8_t kDaikin64Cool = 0b010 |
const uint8_t kDaikin64Dry = 0b001 |
const uint8_t kDaikin64Fan = 0b100 |
const uint8_t kDaikin64FanAuto = 0b0001 |
const uint8_t kDaikin64FanHigh = 0b0010 |
const uint8_t kDaikin64FanLow = 0b1000 |
const uint8_t kDaikin64FanMed = 0b0100 |
const uint8_t kDaikin64FanOffset = kDaikin64ModeOffset + kDaikin64ModeSize |
const uint8_t kDaikin64FanQuiet = 0b1001 |
const uint8_t kDaikin64FanSize = 4 |
const uint8_t kDaikin64FanTurbo = 0b0011 |
const uint16_t kDaikin64Freq = kDaikin128Freq |
const uint16_t kDaikin64Gap = kDaikin128Gap |
const uint16_t kDaikin64HdrMark = kDaikin128HdrMark |
const uint16_t kDaikin64HdrSpace = kDaikin128HdrSpace |
const uint64_t kDaikin64KnownGoodState = 0x7C16161607204216 |
const uint16_t kDaikin64LdrMark = kDaikin128LeaderMark |
const uint16_t kDaikin64LdrSpace = kDaikin128LeaderSpace |
const uint8_t kDaikin64MaxTemp = 30 |
const uint8_t kDaikin64MinTemp = 16 |
const uint8_t kDaikin64ModeOffset = 8 |
const uint8_t kDaikin64ModeSize = 4 |
const uint8_t kDaikin64OffTimeEnableBit = kDaikin64OffTimeHalfHourBit + 1 |
const uint8_t kDaikin64OffTimeHalfHourBit |
const uint8_t kDaikin64OffTimeOffset = kDaikin64OnTimeEnableBit + 1 |
const uint8_t kDaikin64OffTimeSize = 6 |
const uint16_t kDaikin64OneSpace = kDaikin128OneSpace |
const uint8_t kDaikin64OnTimeEnableBit = kDaikin64OnTimeHalfHourBit + 1 |
const uint8_t kDaikin64OnTimeHalfHourBit |
const uint8_t kDaikin64OnTimeOffset |
const uint8_t kDaikin64OnTimeSize = 6 |
const uint8_t kDaikin64Overhead = 9 |
const uint8_t kDaikin64PowerToggleBit = 59 |
const uint8_t kDaikin64SleepBit = kDaikin64SwingVBit + 1 |
const uint8_t kDaikin64SwingVBit = 56 |
const uint8_t kDaikin64TempOffset = 48 |
const uint8_t kDaikin64TempSize = 8 |
const int8_t kDaikin64ToleranceDelta = 5 |
const uint16_t kDaikin64ZeroSpace = kDaikin128ZeroSpace |
const uint8_t kDaikinAuto = 0b000 |
const uint8_t kDaikinBeepLoud = 2 |
const uint8_t kDaikinBeepOff = 3 |
const uint8_t kDaikinBeepQuiet = 1 |
const uint8_t kDaikinBitComfort = 1 << kDaikinBitComfortOffset |
const uint8_t kDaikinBitComfortOffset = 4 |
const uint8_t kDaikinBitEcono = 1 << kDaikinBitEconoOffset |
const uint8_t kDaikinBitEconoOffset = 2 |
const uint8_t kDaikinBitEye = 0b10000000 |
const uint16_t kDaikinBitMark = 428 |
const uint8_t kDaikinBitMold = 1 << kDaikinBitMoldOffset |
const uint8_t kDaikinBitMoldOffset = 1 |
const uint8_t kDaikinBitOffTimer = 1 << kDaikinBitOffTimerOffset |
const uint8_t kDaikinBitOffTimerOffset = 2 |
const uint8_t kDaikinBitOnTimer = 1 << kDaikinBitOnTimerOffset |
const uint8_t kDaikinBitOnTimerOffset = 1 |
const uint8_t kDaikinBitPower = 1 << kDaikinBitPowerOffset |
const uint8_t kDaikinBitPowerful = 1 << kDaikinBitPowerfulOffset |
const uint8_t kDaikinBitPowerfulOffset = 0 |
const uint8_t kDaikinBitPowerOffset = 0 |
const uint8_t kDaikinBitSensor = 1 << kDaikinBitSensorOffset |
const uint8_t kDaikinBitSensorOffset = 1 |
const uint8_t kDaikinBitSilent = 1 << kDaikinBitSilentOffset |
const uint8_t kDaikinBitSilentOffset = 5 |
const uint8_t kDaikinBitWeeklyTimer = 1 << kDaikinBitWeeklyTimerOffset |
const uint8_t kDaikinBitWeeklyTimerOffset = 7 |
const uint8_t kDaikinByteChecksum1 = 7 |
const uint8_t kDaikinByteChecksum2 = 15 |
const uint8_t kDaikinByteChecksum3 = kDaikinStateLength - 1 |
const uint8_t kDaikinByteClockMinsHigh = 14 |
const uint8_t kDaikinByteClockMinsLow = 13 |
const uint8_t kDaikinByteComfort = 6 |
const uint8_t kDaikinByteEcono = kDaikinByteSensor |
const uint8_t kDaikinByteEye = kDaikinByteSensor |
const uint8_t kDaikinByteFan = 24 |
const uint8_t kDaikinByteMold = 33 |
const uint8_t kDaikinByteOffTimer = kDaikinBytePower |
const uint8_t kDaikinByteOffTimerMinsHigh = 28 |
const uint8_t kDaikinByteOffTimerMinsLow = kDaikinByteOnTimerMinsHigh |
const uint8_t kDaikinByteOnTimer = kDaikinByteOffTimer |
const uint8_t kDaikinByteOnTimerMinsHigh = 27 |
const uint8_t kDaikinByteOnTimerMinsLow = 26 |
const uint8_t kDaikinBytePower = 21 |
const uint8_t kDaikinBytePowerful = 29 |
const uint8_t kDaikinByteSensor = 32 |
const uint8_t kDaikinByteSilent = kDaikinBytePowerful |
const uint8_t kDaikinByteSwingH = 25 |
const uint8_t kDaikinByteTemp = 22 |
const uint8_t kDaikinByteWeeklyTimer = kDaikinByteSensor |
const uint8_t kDaikinClockMinsHighOffset = 0 |
const uint8_t kDaikinClockMinsHighSize = 3 |
const uint8_t kDaikinCool = 0b011 |
const uint8_t kDaikinCurBit = kDaikinStateLength |
const uint8_t kDaikinCurIndex = kDaikinStateLength + 1 |
const uint8_t kDaikinDoWOffset = 3 |
const uint8_t kDaikinDoWSize = 3 |
const uint8_t kDaikinDry = 0b010 |
const uint8_t kDaikinFan = 0b110 |
const uint8_t kDaikinFanAuto = 0b1010 |
const uint8_t kDaikinFanMax = 5 |
const uint8_t kDaikinFanMed = 3 |
const uint8_t kDaikinFanMin = 1 |
const uint8_t kDaikinFanOffset = 4 |
const uint8_t kDaikinFanQuiet = 0b1011 |
const uint8_t kDaikinFanSize = 4 |
const uint64_t kDaikinFirstHeader64 |
const uint16_t kDaikinGap = 29000 |
const uint16_t kDaikinHdrMark = 3650 |
const uint16_t kDaikinHdrSpace = 1623 |
const uint16_t kDaikinHeaderLength = 5 |
const uint8_t kDaikinHeat = 0b100 |
const uint8_t kDaikinLightBright = 1 |
const uint8_t kDaikinLightDim = 2 |
const uint8_t kDaikinLightOff = 3 |
const uint16_t kDaikinMarkExcess = kMarkExcess |
const uint8_t kDaikinMaxTemp = 32 |
const uint8_t kDaikinMinTemp = 10 |
const uint8_t kDaikinModeOffset = 4 |
const uint8_t kDaikinModeSize = 3 |
const uint16_t kDaikinOneSpace = 1280 |
const uint8_t kDaikinOnTimerMinsHighOffset = 0 |
const uint8_t kDaikinOnTimerMinsHighSize = 4 |
const uint8_t kDaikinSection1Length = 8 |
const uint8_t kDaikinSection2Length = 8 |
const uint8_t kDaikinSection3Length |
const uint8_t kDaikinSections = 3 |
const uint8_t kDaikinSwingOff = 0b0000 |
const uint8_t kDaikinSwingOffset = 0 |
const uint8_t kDaikinSwingOn = 0b1111 |
const uint8_t kDaikinSwingSize = 4 |
const uint8_t kDaikinTempOffset = 1 |
const uint8_t kDaikinTempSize = 6 |
const uint8_t kDaikinTolerance = 35 |
const uint16_t kDaikinUnusedTime = 0x600 |
const uint16_t kDaikinZeroSpace = 428 |