Skip to content

Commit b81945d

Browse files
authored
Daikin64: Add support for Heat mode (#1492)
Daikin64 protocol was missing the heat mode. I tested the heat mode, and it worked for me.
1 parent afcf7e6 commit b81945d

File tree

3 files changed

+15
-6
lines changed

3 files changed

+15
-6
lines changed

src/ir_Daikin.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3610,6 +3610,7 @@ void IRDaikin64::setMode(const uint8_t mode) {
36103610
case kDaikin64Fan:
36113611
case kDaikin64Dry:
36123612
case kDaikin64Cool:
3613+
case kDaikin64Heat:
36133614
_.Mode = mode;
36143615
break;
36153616
default:
@@ -3624,7 +3625,8 @@ uint8_t IRDaikin64::convertMode(const stdAc::opmode_t mode) {
36243625
switch (mode) {
36253626
case stdAc::opmode_t::kDry: return kDaikin64Dry;
36263627
case stdAc::opmode_t::kFan: return kDaikin64Fan;
3627-
default: return kDaikinCool;
3628+
case stdAc::opmode_t::kHeat: return kDaikin64Heat;
3629+
default: return kDaikin64Cool;
36283630
}
36293631
}
36303632

@@ -3634,6 +3636,7 @@ uint8_t IRDaikin64::convertMode(const stdAc::opmode_t mode) {
36343636
stdAc::opmode_t IRDaikin64::toCommonMode(const uint8_t mode) {
36353637
switch (mode) {
36363638
case kDaikin64Cool: return stdAc::opmode_t::kCool;
3639+
case kDaikin64Heat: return stdAc::opmode_t::kHeat;
36373640
case kDaikin64Dry: return stdAc::opmode_t::kDry;
36383641
case kDaikin64Fan: return stdAc::opmode_t::kFan;
36393642
default: return stdAc::opmode_t::kAuto;
@@ -3817,7 +3820,7 @@ String IRDaikin64::toString(void) const {
38173820
result.reserve(120); // Reserve some heap for the string to reduce fragging.
38183821
result += addBoolToString(_.Power, kPowerToggleStr, false);
38193822
result += addModeToString(_.Mode, 0xFF, kDaikin64Cool,
3820-
0xFF, kDaikin64Dry, kDaikin64Fan);
3823+
kDaikin64Heat, kDaikin64Dry, kDaikin64Fan);
38213824
result += addTempToString(getTemp());
38223825
if (!getTurbo()) {
38233826
result += addFanToString(_.Fan, kDaikin64FanHigh, kDaikin64FanLow,

src/ir_Daikin.h

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
// Brand: Daikin, Model: M Series A/C (DAIKIN)
4444
// Brand: Daikin, Model: FTXM-M A/C (DAIKIN)
4545
// Brand: Daikin, Model: ARC466A33 remote (DAIKIN)
46+
// Brand: Daikin, Model: FTWX35AXV1 A/C (DAIKIN64)
4647

4748
#ifndef IR_DAIKIN_H_
4849
#define IR_DAIKIN_H_
@@ -627,9 +628,10 @@ const uint8_t kDaikin64Overhead = 9;
627628
const int8_t kDaikin64ToleranceDelta = 5; // +5%
628629

629630
const uint64_t kDaikin64KnownGoodState = 0x7C16161607204216;
630-
const uint8_t kDaikin64Dry = 0b001;
631-
const uint8_t kDaikin64Cool = 0b010;
632-
const uint8_t kDaikin64Fan = 0b100;
631+
const uint8_t kDaikin64Dry = 0b0001;
632+
const uint8_t kDaikin64Cool = 0b0010;
633+
const uint8_t kDaikin64Fan = 0b0100;
634+
const uint8_t kDaikin64Heat = 0b1000;
633635
const uint8_t kDaikin64FanAuto = 0b0001;
634636
const uint8_t kDaikin64FanLow = 0b1000;
635637
const uint8_t kDaikin64FanMed = 0b0100;

test/ir_Daikin_test.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3525,6 +3525,9 @@ TEST(TestDaikin64Class, OperatingMode) {
35253525
ac.setMode(kDaikin64Fan);
35263526
EXPECT_EQ(kDaikin64Fan, ac.getMode());
35273527

3528+
ac.setMode(kDaikin64Heat);
3529+
EXPECT_EQ(kDaikin64Heat, ac.getMode());
3530+
35283531
ac.setMode(kDaikin64Dry);
35293532
EXPECT_EQ(kDaikin64Dry, ac.getMode());
35303533

@@ -3678,14 +3681,15 @@ TEST(TestDaikin64Class, HumanReadable) {
36783681
"Turbo: On, Quiet: Off, Swing(V): On, Sleep: Off, "
36793682
"Clock: 07:20, On Timer: Off, Off Timer: 23:30",
36803683
ac.toString());
3684+
ac.setMode(kDaikin64Heat);
36813685
ac.setQuiet(true);
36823686
ac.setSleep(true);
36833687
ac.setClock(12 * 60 + 31);
36843688
ac.setOnTimeEnabled(true);
36853689
ac.setOnTime(8 * 60 + 59);
36863690
ac.setOffTimeEnabled(false);
36873691
EXPECT_EQ(
3688-
"Power Toggle: Off, Mode: 4 (Fan), Temp: 30C, Fan: 9 (Quiet), "
3692+
"Power Toggle: Off, Mode: 8 (Heat), Temp: 30C, Fan: 9 (Quiet), "
36893693
"Turbo: Off, Quiet: On, Swing(V): On, Sleep: On, "
36903694
"Clock: 12:31, On Timer: 08:30, Off Timer: Off",
36913695
ac.toString());

0 commit comments

Comments
 (0)