|
34 | 34 | #include "ir_Daikin.h" |
35 | 35 | #include "ir_Ecoclim.h" |
36 | 36 | #include "ir_Electra.h" |
| 37 | +#include "ir_Eurom.h" |
37 | 38 | #include "ir_Fujitsu.h" |
38 | 39 | #include "ir_Haier.h" |
39 | 40 | #include "ir_Hitachi.h" |
@@ -244,6 +245,9 @@ bool IRac::isProtocolSupported(const decode_type_t protocol) { |
244 | 245 | #if SEND_ELECTRA_AC |
245 | 246 | case decode_type_t::ELECTRA_AC: |
246 | 247 | #endif |
| 248 | +#if SEND_EUROM |
| 249 | + case decode_type_t::EUROM: |
| 250 | +#endif |
247 | 251 | #if SEND_FUJITSU_AC |
248 | 252 | case decode_type_t::FUJITSU_AC: |
249 | 253 | #endif |
@@ -1211,6 +1215,31 @@ void IRac::electra(IRElectraAc *ac, |
1211 | 1215 | } |
1212 | 1216 | #endif // SEND_ELECTRA_AC |
1213 | 1217 |
|
| 1218 | +#if SEND_EUROM |
| 1219 | +/// Send an Eurom A/C message with the supplied settings. |
| 1220 | +/// @param[in, out] ac A Ptr to an IREuromAc object to use. |
| 1221 | +/// @param[in] power The power setting. |
| 1222 | +/// @param[in] mode The operation mode setting. |
| 1223 | +/// @param[in] degrees The temperature setting in degrees, normally Celsius. |
| 1224 | +/// @param[in] fahrenheit If the given temperature is in Fahrenheit instead. |
| 1225 | +/// @param[in] fan The speed setting for the fan. |
| 1226 | +/// @param[in] swingv The swing setting. |
| 1227 | +/// @param[in] sleep The sleep mode setting. |
| 1228 | +void IRac::eurom(IREuromAc *ac, const bool power, const stdAc::opmode_t mode, |
| 1229 | + const float degrees, const bool fahrenheit, |
| 1230 | + const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, |
| 1231 | + const bool sleep) { |
| 1232 | + ac->begin(); |
| 1233 | + ac->setPower(power); |
| 1234 | + ac->setMode(ac->convertMode(mode)); |
| 1235 | + ac->setTemp(degrees, fahrenheit); |
| 1236 | + ac->setFan(ac->convertFan(fan)); |
| 1237 | + ac->setSwing(ac->convertSwing(swingv)); |
| 1238 | + ac->setSleep(sleep); |
| 1239 | + ac->send(); |
| 1240 | +} |
| 1241 | +#endif // SEND_EUROM |
| 1242 | + |
1214 | 1243 | #if SEND_FUJITSU_AC |
1215 | 1244 | /// Send a Fujitsu A/C message with the supplied settings. |
1216 | 1245 | /// @param[in, out] ac A Ptr to an IRFujitsuAC object to use. |
@@ -3239,6 +3268,15 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) { |
3239 | 3268 | break; |
3240 | 3269 | } |
3241 | 3270 | #endif // SEND_ELECTRA_AC |
| 3271 | +#if SEND_EUROM |
| 3272 | + case EUROM: |
| 3273 | + { |
| 3274 | + IREuromAc ac(_pin, _inverted, _modulation); |
| 3275 | + eurom(&ac, send.power, send.mode, send.degrees, !send.celsius, |
| 3276 | + send.fanspeed, send.swingv, send.sleep); |
| 3277 | + break; |
| 3278 | + } |
| 3279 | +#endif // SEND_EUROM |
3242 | 3280 | #if SEND_FUJITSU_AC |
3243 | 3281 | case FUJITSU_AC: |
3244 | 3282 | { |
@@ -4215,6 +4253,13 @@ String resultAcToString(const decode_results * const result) { |
4215 | 4253 | return ac.toString(); |
4216 | 4254 | } |
4217 | 4255 | #endif // DECODE_ELECTRA_AC |
| 4256 | +#if DECODE_EUROM |
| 4257 | + case decode_type_t::EUROM: { |
| 4258 | + IREuromAc ac(kGpioUnused); |
| 4259 | + ac.setRaw(result->state); |
| 4260 | + return ac.toString(); |
| 4261 | + } |
| 4262 | +#endif // DECODE_EUROM |
4218 | 4263 | #if DECODE_FUJITSU_AC |
4219 | 4264 | case decode_type_t::FUJITSU_AC: { |
4220 | 4265 | IRFujitsuAC ac(kGpioUnused); |
@@ -4715,6 +4760,14 @@ bool decodeToState(const decode_results *decode, stdAc::state_t *result, |
4715 | 4760 | break; |
4716 | 4761 | } |
4717 | 4762 | #endif // DECODE_ELECTRA_AC |
| 4763 | +#if DECODE_EUROM |
| 4764 | + case decode_type_t::EUROM: { |
| 4765 | + IREuromAc ac(kGpioUnused); |
| 4766 | + ac.setRaw(decode->state); |
| 4767 | + *result = ac.toCommon(); |
| 4768 | + break; |
| 4769 | + } |
| 4770 | +#endif // DECODE_EUROM |
4718 | 4771 | #if DECODE_FUJITSU_AC |
4719 | 4772 | case decode_type_t::FUJITSU_AC: { |
4720 | 4773 | IRFujitsuAC ac(kGpioUnused); |
|
0 commit comments