Skip to content

Commit bce5c0b

Browse files
authored
Merge branch 'master' into v2.8.7
2 parents cfa7fcd + d8aee22 commit bce5c0b

File tree

11 files changed

+51
-31
lines changed

11 files changed

+51
-31
lines changed

src/IRac.cpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1170,6 +1170,7 @@ void IRac::ecoclim(IREcoclimAc *ac,
11701170
/// @param[in] swingv The vertical swing setting.
11711171
/// @param[in] swingh The horizontal swing setting.
11721172
/// @param[in] iFeel Whether to enable iFeel (remote temp) mode on the A/C unit.
1173+
/// @param[in] quiet Run the device in quiet/silent mode.
11731174
/// @param[in] turbo Run the device in turbo/powerful mode.
11741175
/// @param[in] lighttoggle Should we toggle the LED/Display?
11751176
/// @param[in] clean Turn on the self-cleaning mode. e.g. Mould, dry filters etc
@@ -1178,7 +1179,8 @@ void IRac::electra(IRElectraAc *ac,
11781179
const float degrees, const float sensorTemp,
11791180
const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
11801181
const stdAc::swingh_t swingh, const bool iFeel,
1181-
const bool turbo, const bool lighttoggle, const bool clean) {
1182+
const bool quiet, const bool turbo, const bool lighttoggle,
1183+
const bool clean) {
11821184
ac->begin();
11831185
ac->setPower(on);
11841186
ac->setMode(ac->convertMode(mode));
@@ -1189,7 +1191,7 @@ void IRac::electra(IRElectraAc *ac,
11891191
ac->setFan(ac->convertFan(fan));
11901192
ac->setSwingV(swingv != stdAc::swingv_t::kOff);
11911193
ac->setSwingH(swingh != stdAc::swingh_t::kOff);
1192-
// No Quiet setting available.
1194+
ac->setQuiet(quiet);
11931195
ac->setTurbo(turbo);
11941196
ac->setLightToggle(lighttoggle);
11951197
// No Econo setting available.
@@ -3279,8 +3281,8 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
32793281
{
32803282
IRElectraAc ac(_pin, _inverted, _modulation);
32813283
electra(&ac, send.power, send.mode, degC, sensorTempC, send.fanspeed,
3282-
send.swingv, send.swingh, send.iFeel, send.turbo, send.light,
3283-
send.clean);
3284+
send.swingv, send.swingh, send.iFeel, send.quiet, send.turbo,
3285+
send.light, send.clean);
32843286
break;
32853287
}
32863288
#endif // SEND_ELECTRA_AC

src/IRac.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -264,8 +264,8 @@ void electra(IRElectraAc *ac,
264264
const bool on, const stdAc::opmode_t mode,
265265
const float degrees, const float sensorTemp,
266266
const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
267-
const stdAc::swingh_t swingh, const bool iFeel, const bool turbo,
268-
const bool lighttoggle, const bool clean);
267+
const stdAc::swingh_t swingh, const bool iFeel, const bool quiet,
268+
const bool turbo, const bool lighttoggle, const bool clean);
269269
#endif // SEND_ELECTRA_AC
270270
#if SEND_FUJITSU_AC
271271
void fujitsu(IRFujitsuAC *ac, const fujitsu_ac_remote_model_t model,

src/ir_Daikin.cpp

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ using irutils::addModeToString;
4646
using irutils::addSwingHToString;
4747
using irutils::addSwingVToString;
4848
using irutils::addTempToString;
49+
using irutils::addTempFloatToString;
4950
using irutils::addFanToString;
5051
using irutils::bcdToUint8;
5152
using irutils::minsToString;
@@ -221,15 +222,15 @@ bool IRDaikinESP::getPower(void) const {
221222

222223
/// Set the temperature.
223224
/// @param[in] temp The temperature in degrees celsius.
224-
void IRDaikinESP::setTemp(const uint8_t temp) {
225-
uint8_t degrees = std::max(temp, kDaikinMinTemp);
226-
degrees = std::min(degrees, kDaikinMaxTemp);
227-
_.Temp = degrees;
225+
void IRDaikinESP::setTemp(const float temp) {
226+
float degrees = std::max(temp, static_cast<float>(kDaikinMinTemp));
227+
degrees = std::min(degrees, static_cast<float>(kDaikinMaxTemp));
228+
_.Temp = degrees * 2.0f;
228229
}
229230

230231
/// Get the current temperature setting.
231232
/// @return The current setting for temp. in degrees celsius.
232-
uint8_t IRDaikinESP::getTemp(void) const { return _.Temp; }
233+
float IRDaikinESP::getTemp(void) const { return _.Temp / 2.0f; }
233234

234235
/// Set the speed of the fan.
235236
/// @param[in] fan The desired setting.
@@ -536,7 +537,7 @@ stdAc::state_t IRDaikinESP::toCommon(void) const {
536537
result.power = _.Power;
537538
result.mode = toCommonMode(_.Mode);
538539
result.celsius = true;
539-
result.degrees = _.Temp;
540+
result.degrees = getTemp();
540541
result.fanspeed = toCommonFanSpeed(getFan());
541542
result.swingv = _.SwingV ? stdAc::swingv_t::kAuto :
542543
stdAc::swingv_t::kOff;
@@ -563,7 +564,7 @@ String IRDaikinESP::toString(void) const {
563564
result += addBoolToString(_.Power, kPowerStr, false);
564565
result += addModeToString(_.Mode, kDaikinAuto, kDaikinCool, kDaikinHeat,
565566
kDaikinDry, kDaikinFan);
566-
result += addTempToString(_.Temp);
567+
result += addTempFloatToString(getTemp());
567568
result += addFanToString(getFan(), kDaikinFanMax, kDaikinFanMin,
568569
kDaikinFanAuto, kDaikinFanQuiet, kDaikinFanMed);
569570
result += addBoolToString(_.Powerful, kPowerfulStr);

src/ir_Daikin.h

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -99,8 +99,7 @@ union DaikinESPProtocol{
9999
uint64_t Mode :3;
100100
uint64_t :1;
101101
// Byte 22
102-
uint64_t :1;
103-
uint64_t Temp :7; // Temp should be between 10 - 32
102+
uint64_t Temp :8; // Temp should be between 20 - 64 (10 C - 32 C)
104103
// Byte 23
105104
uint64_t :8;
106105

@@ -738,8 +737,8 @@ class IRDaikinESP {
738737
void off(void);
739738
void setPower(const bool on);
740739
bool getPower(void) const;
741-
void setTemp(const uint8_t temp);
742-
uint8_t getTemp(void) const;
740+
void setTemp(const float temp);
741+
float getTemp(void) const;
743742
void setFan(const uint8_t fan);
744743
uint8_t getFan(void) const;
745744
void setMode(const uint8_t mode);

src/ir_Electra.cpp

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,18 @@ bool IRElectraAc::getTurbo(void) const {
310310
return _.Turbo;
311311
}
312312

313+
/// Set the Quiet/Silent'mode of the A/C.
314+
/// @param[in] on true, the setting is on. false, the setting is off.
315+
void IRElectraAc::setQuiet(const bool on) {
316+
_.Quiet = on;
317+
}
318+
319+
/// Get the Quiet/Silent mode of the A/C.
320+
/// @return true, the setting is on. false, the setting is off.
321+
bool IRElectraAc::getQuiet(void) const {
322+
return _.Quiet;
323+
}
324+
313325
/// Get the IFeel mode of the A/C.
314326
/// @return true, the setting is on. false, the setting is off.
315327
bool IRElectraAc::getIFeel(void) const { return _.IFeel; }
@@ -373,11 +385,11 @@ stdAc::state_t IRElectraAc::toCommon(void) const {
373385
: stdAc::swingh_t::kOff;
374386
result.light = getLightToggle();
375387
result.turbo = _.Turbo;
388+
result.quiet = _.Quiet;
376389
result.clean = _.Clean;
377390
result.iFeel = getIFeel();
378391
// Not supported.
379392
result.model = -1; // No models used.
380-
result.quiet = false;
381393
result.econo = false;
382394
result.filter = false;
383395
result.beep = false;
@@ -404,6 +416,7 @@ String IRElectraAc::toString(void) const {
404416
result += addToggleToString(getLightToggle(), kLightStr);
405417
result += addBoolToString(_.Clean, kCleanStr);
406418
result += addBoolToString(_.Turbo, kTurboStr);
419+
result += addBoolToString(_.Quiet, kQuietStr);
407420
result += addBoolToString(_.IFeel, kIFeelStr);
408421
}
409422
if (_.IFeel || _.SensorUpdate) {

src/ir_Electra.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
// Brand: Centek, Model: YKR-P/002E remote
1616
// Brand: AEG, Model: Chillflex Pro AXP26U338CW A/C
1717
// Brand: Electrolux, Model: YKR-H/531E A/C
18+
// Brand: Delonghi, Modell: PAC EM90
1819

1920
#ifndef IR_ELECTRA_H_
2021
#define IR_ELECTRA_H_
@@ -52,7 +53,7 @@ union ElectraProtocol {
5253
// Byte 5
5354
uint8_t :6;
5455
uint8_t Turbo :1;
55-
uint8_t :1;
56+
uint8_t Quiet :1;
5657
// Byte 6
5758
uint8_t :3;
5859
uint8_t IFeel :1;
@@ -145,6 +146,8 @@ class IRElectraAc {
145146
bool getLightToggle(void) const;
146147
void setTurbo(const bool on);
147148
bool getTurbo(void) const;
149+
void setQuiet(const bool on);
150+
bool getQuiet(void) const;
148151
void setIFeel(const bool on);
149152
bool getIFeel(void) const;
150153
void setSensorUpdate(const bool on);

src/ir_Fujitsu.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
// Brand: Fujitsu, Model: AR-REG1U remote (ARRAH2E)
4343
// Brand: OGeneral, Model: AR-RCL1E remote (ARRAH2E)
4444
// Brand: Fujitsu General, Model: AR-JW17 remote (ARDB1)
45+
// Brand: Fujitsu General, Model: AR-JW19 remote (ARDB1)
4546
// Brand: Fujitsu, Model: AS-AH402M A/C (FUJITSU_AC264 AR-RLB2J)
4647

4748
#ifndef IR_FUJITSU_H_

src/ir_Panasonic.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
// Brand: Panasonic, Model: A75C2311 remote (PANASONIC_AC CKP/5)
2525
// Brand: Panasonic, Model: A75C2616-1 remote (PANASONIC_AC DKE/3)
2626
// Brand: Panasonic, Model: A75C3704 remote (PANASONIC_AC DKE/3)
27+
// Brand: Panasonic, Model: PN1122V remote (PANASONIC_AC DKE/3)
2728
// Brand: Panasonic, Model: A75C3747 remote (PANASONIC_AC JKE/4)
2829
// Brand: Panasonic, Model: CS-E9CKP series A/C (PANASONIC_AC32)
2930
// Brand: Panasonic, Model: A75C2295 remote (PANASONIC_AC32)

src/ir_RCMM.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ const uint16_t kRcmmMinGapTicks = 120;
3535
const uint32_t kRcmmMinGap = 3360;
3636
// Use a tolerance of +/-10% when matching some data spaces.
3737
const uint8_t kRcmmTolerance = 10;
38-
const uint16_t kRcmmExcess = 50;
3938

4039
#if SEND_RCMM
4140
/// Send a Philips RC-MM packet.

test/IRac_test.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -613,7 +613,7 @@ TEST(TestIRac, Electra) {
613613
char expected[] =
614614
"Power: On, Mode: 6 (Fan), Temp: 26C, Fan: 1 (High), "
615615
"Swing(V): On, Swing(H): On, Light: Toggle, Clean: On, Turbo: On, "
616-
"IFeel: Off";
616+
"Quiet: On, IFeel: Off";
617617

618618
ac.begin();
619619
irac.electra(&ac,
@@ -625,6 +625,7 @@ TEST(TestIRac, Electra) {
625625
stdAc::swingv_t::kAuto, // Vertical swing
626626
stdAc::swingh_t::kLeft, // Horizontal swing
627627
false, // iFeel
628+
true, // Quiet
628629
true, // Turbo
629630
true, // Light (toggle)
630631
true); // Clean

0 commit comments

Comments
 (0)