diff --git a/CHANGELOG.md b/CHANGELOG.md index b34b9398e..840cb8193 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ All notable changes to this project will be documented in this file. ### Added - Version bump to signal new features to Hass - Support for BM8563 RTC chip (I2C) found in M5Stack Core2 and M5StickC +- IRremoteESP8266 library from v2.7.16 to v2.7.18 ## [9.4.0.3] 20210515 ### Added diff --git a/lib/lib_basic/IRremoteESP8266/README.md b/lib/lib_basic/IRremoteESP8266/README.md index 5498e3fd9..9c21f22e6 100644 --- a/lib/lib_basic/IRremoteESP8266/README.md +++ b/lib/lib_basic/IRremoteESP8266/README.md @@ -9,8 +9,8 @@ This library enables you to **send _and_ receive** infra-red signals on an [ESP8266](https://github.com/esp8266/Arduino) or an [ESP32](https://github.com/espressif/arduino-esp32) using the [Arduino framework](https://www.arduino.cc/) using common 940nm IR LEDs and common IR receiver modules. e.g. TSOP{17,22,24,36,38,44,48}* demodulators etc. -## v2.7.16 Now Available -Version 2.7.16 of the library is now [available](https://github.com/crankyoldgit/IRremoteESP8266/releases/latest). You can view the [Release Notes](ReleaseNotes.md) for all the significant changes. +## v2.7.18 Now Available +Version 2.7.18 of the library is now [available](https://github.com/crankyoldgit/IRremoteESP8266/releases/latest). You can view the [Release Notes](ReleaseNotes.md) for all the significant changes. #### Upgrading from pre-v2.0 Usage of the library has been slightly changed in v2.0. You will need to change your usage to work with v2.0 and beyond. You can read more about the changes required on our [Upgrade to v2.0](https://github.com/crankyoldgit/IRremoteESP8266/wiki/Upgrading-to-v2.0) page. diff --git a/lib/lib_basic/IRremoteESP8266/README_de.md b/lib/lib_basic/IRremoteESP8266/README_de.md index adf6363d5..d666a4a43 100644 --- a/lib/lib_basic/IRremoteESP8266/README_de.md +++ b/lib/lib_basic/IRremoteESP8266/README_de.md @@ -9,8 +9,8 @@ Diese Programmbibliothek ermöglicht das **Senden _und_ Empfangen** von Infrarotsignalen mit [ESP8266](https://github.com/esp8266/Arduino)- und [ESP32](https://github.com/espressif/arduino-esp32)-Mikrocontrollern mithilfe des [Arduino-Frameworks](https://www.arduino.cc/) und handelsüblichen 940nm Infrarot-LEDs undIR-Empfängermodulen, wie zum Beispiel TSOP{17,22,24,36,38,44,48}*-Demodulatoren. -## v2.7.16 jetzt verfügbar -Version 2.7.16 der Bibliothek ist nun [verfügbar](https://github.com/crankyoldgit/IRremoteESP8266/releases/latest). Die [Versionshinweise](ReleaseNotes.md) enthalten alle wichtigen Neuerungen. +## v2.7.18 jetzt verfügbar +Version 2.7.18 der Bibliothek ist nun [verfügbar](https://github.com/crankyoldgit/IRremoteESP8266/releases/latest). Die [Versionshinweise](ReleaseNotes.md) enthalten alle wichtigen Neuerungen. #### Hinweis für Nutzer von Versionen vor v2.0 Die Benutzung der Bibliothek hat sich mit Version 2.0 leicht geändert. Einige Anpassungen im aufrufenden Code werden nötig sein, um mit Version ab 2.0 korrekt zu funktionieren. Mehr zu den Anpassungen finden sich auf unserer [Upgrade to v2.0](https://github.com/crankyoldgit/IRremoteESP8266/wiki/Upgrading-to-v2.0)-Seite. diff --git a/lib/lib_basic/IRremoteESP8266/README_fr.md b/lib/lib_basic/IRremoteESP8266/README_fr.md index 58c06eb9d..7cfe2a58f 100644 --- a/lib/lib_basic/IRremoteESP8266/README_fr.md +++ b/lib/lib_basic/IRremoteESP8266/README_fr.md @@ -9,8 +9,8 @@ Cette librairie vous permetra de **recevoir et d'envoyer des signaux** infrarouge sur le protocole [ESP8266](https://github.com/esp8266/Arduino) ou sur le protocole [ESP32](https://github.com/espressif/arduino-esp32) en utilisant le [Arduino framework](https://www.arduino.cc/) qui utilise la norme 940nm IR LEDs et le module basique de reception d'onde IR. Exemple : TSOP{17,22,24,36,38,44,48}* modules etc. -## v2.7.16 disponible -Version 2.7.16 de la libraire est maintenant [disponible](https://github.com/crankyoldgit/IRremoteESP8266/releases/latest). Vous pouvez voir le [Release Notes](ReleaseNotes.md) pour tous les changements importants. +## v2.7.18 disponible +Version 2.7.18 de la libraire est maintenant [disponible](https://github.com/crankyoldgit/IRremoteESP8266/releases/latest). Vous pouvez voir le [Release Notes](ReleaseNotes.md) pour tous les changements importants. #### mise à jour depuis pre-v2.0 L'utilisation de la librairie à un peu changer depuis la version in v2.0. Si vous voulez l'utiliser vous devrez changer votre utilisation aussi. Vous pouvez vous renseigner sur les précondition d'utilisation ici : [Upgrade to v2.0](https://github.com/crankyoldgit/IRremoteESP8266/wiki/Upgrading-to-v2.0) page. diff --git a/lib/lib_basic/IRremoteESP8266/ReleaseNotes.md b/lib/lib_basic/IRremoteESP8266/ReleaseNotes.md index 451df9ced..318790e60 100644 --- a/lib/lib_basic/IRremoteESP8266/ReleaseNotes.md +++ b/lib/lib_basic/IRremoteESP8266/ReleaseNotes.md @@ -1,5 +1,31 @@ # Release Notes +## _v2.7.18 (20210420)_ + +**[Misc]** +- Attempt to fix issues with installing the library under the Arduino IDE on Win10 & OSX (#1451 #1464) +- Reduce the library's github zip download size. (#1451 #1463) +- An experiment in using Github Actions to do some of the CI work. (#1462) + + +## _v2.7.17 (20210418)_ + +**[News]** +- The library now supports 100 IR protocols! \o/ + +**[Bug Fixes]** +- Fix `IRAcUtils::decodeToState()` for different length Samsung msgs (#1447 #1448) + +**[Features]** +- Fujitsu: Add support for `ARREW4E` model. (#1455 #1456) +- Experimental detailed support for Truma A/Cs. (#1440 #1449) + +**[Misc]** +- Fix Arduino library linter issues. (#1451 #1452 #1453 #1460) +- Reduce the library's zip download size. (#1451 #1463) +- An experiment in using Github Actions to do some of the CI work. (#1462) + + ## _v2.7.16 (20210324)_ **[Features]** diff --git a/lib/lib_basic/IRremoteESP8266/SupportedProtocols.md b/lib/lib_basic/IRremoteESP8266/SupportedProtocols.md index eb16650fc..f150f8b4d 100644 --- a/lib/lib_basic/IRremoteESP8266/SupportedProtocols.md +++ b/lib/lib_basic/IRremoteESP8266/SupportedProtocols.md @@ -1,6 +1,6 @@ + Last generated: Sat 17 Apr 2021 22:14:32 +0000 ---> # IR Protocols supported by this library | Protocol | Brand | Model | A/C Model | Detailed A/C Support | @@ -28,8 +28,8 @@ | [EliteScreens](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_EliteScreens.cpp) | **Elite Screens** | CineTension2 / CineTension3 series
Home2 / Home3 series
Spectrum series
VMAX Plus4 series
VMAX2 / VMAX2 Plus series
ZSP-IR-B / ZSP-IR-W remote | | - | | [EliteScreens](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_EliteScreens.cpp) | **Lumene Screens** | Embassy | | - | | [Epson](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Epson.cpp) | **Epson** | EN-TW9100W Projector | | - | -| [Fujitsu](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Fujitsu.cpp) | **[Fujitsu](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Fujitsu.h)** | AGTV14LAC A/C (ARRAH2E)
AR-DB1 remote (ARDB1)
AR-DL10 remote (ARDB1)
AR-RAC1E remote (ARRAH2E)
AR-RAE1E remote (ARRAH2E)
AR-RAH1U remote (ARREB1E)
AR-RAH2E remote (ARRAH2E)
AR-REB1E remote (ARREB1E)
AR-RY4 remote (ARRY4)
AST9RSGCW A/C (ARDB1)
ASTB09LBC A/C (ARRY4)
ASU12RLF A/C (ARREB1E)
ASU30C1 A/C (ARDB1)
ASYG30LFCA A/C (ARRAH2E)
ASYG7LMCA A/C (ARREB1E) | ARDB1
ARJW2
ARRAH2E
ARREB1E
ARRY4 | Yes | -| [Fujitsu](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Fujitsu.cpp) | **[Fujitsu General](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Fujitsu.h)** | AOHG09LLC A/C (ARRAH2E)
AR-JW2 remote (ARJW2)
AR-RCE1E remote (ARRAH2E)
ASHG09LLCA A/C (ARRAH2E) | ARDB1
ARJW2
ARRAH2E
ARREB1E
ARRY4 | Yes | +| [Fujitsu](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Fujitsu.cpp) | **[Fujitsu](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Fujitsu.h)** | AGTV14LAC A/C (ARRAH2E)
AR-DB1 remote (ARDB1)
AR-DL10 remote (ARDB1)
AR-RAC1E remote (ARRAH2E)
AR-RAE1E remote (ARRAH2E)
AR-RAH1U remote (ARREB1E)
AR-RAH2E remote (ARRAH2E)
AR-REB1E remote (ARREB1E)
AR-REW4E remote (ARREW4E)
AR-RY4 remote (ARRY4)
AST9RSGCW A/C (ARDB1)
ASTB09LBC A/C (ARRY4)
ASU12RLF A/C (ARREB1E)
ASU30C1 A/C (ARDB1)
ASYG09KETA-B A/C (ARREW4E)
ASYG30LFCA A/C (ARRAH2E)
ASYG7LMCA A/C (ARREB1E) | ARDB1
ARJW2
ARRAH2E
ARREB1E
ARREW4E
ARRY4 | Yes | +| [Fujitsu](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Fujitsu.cpp) | **[Fujitsu General](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Fujitsu.h)** | AOHG09LLC A/C (ARRAH2E)
AR-JW2 remote (ARJW2)
AR-RCE1E remote (ARRAH2E)
ASHG09LLCA A/C (ARRAH2E) | ARDB1
ARJW2
ARRAH2E
ARREB1E
ARREW4E
ARRY4 | Yes | | [GICable](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_GICable.cpp) | **G.I. Cable** | XRC-200 remote | | - | | [GlobalCache](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_GlobalCache.cpp) | **Global Cache** | Control Tower IR DB | | - | | [Goodweather](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Goodweather.cpp) | **[Goodweather](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Goodweather.h)** | ZH/JT-03 remote | | Yes | @@ -98,6 +98,7 @@ | [Transcold](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Transcold.cpp) | **[Transcold](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Transcold.h)** | M1-F-NO-6 A/C | | Yes | | [Trotec](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Trotec.cpp) | **[Duux](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Trotec.h)** | Blizzard Smart 10K / DXMA04 A/C | | Yes | | [Trotec](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Trotec.cpp) | **[Trotec](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Trotec.h)** | PAC 3200 A/C | | Yes | +| [Truma](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Truma.cpp) | **[Truma](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Truma.h)** | 40091-86700 remote
Aventa A/C | | Yes | | [Vestel](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Vestel.cpp) | **[Vestel](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Vestel.h)** | BIOX CXP-9 A/C (9K BTU) | | Yes | | [Voltas](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Voltas.cpp) | **[Voltas](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Voltas.h)** | 122LZF 4011252 Window A/C | 122LZF | Yes | | [Whirlpool](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Whirlpool.cpp) | **[Whirlpool](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Whirlpool.h)** | DG11J1-04 remote
DG11J1-3A remote
DG11J1-91 remote
SPIS409L A/C
SPIS412L A/C
SPIW409L A/C
SPIW412L A/C
SPIW418L A/C | DG11J13A
DG11J191 | Yes | @@ -205,6 +206,7 @@ - TOSHIBA_AC - TRANSCOLD - TROTEC +- TRUMA - VESTEL_AC - VOLTAS - WHIRLPOOL_AC diff --git a/lib/lib_basic/IRremoteESP8266/docs/doxygen/html/IRac_8h_source.html b/lib/lib_basic/IRremoteESP8266/docs/doxygen/html/IRac_8h_source.html index 9809f9a1e..5b3ba1925 100644 --- a/lib/lib_basic/IRremoteESP8266/docs/doxygen/html/IRac_8h_source.html +++ b/lib/lib_basic/IRremoteESP8266/docs/doxygen/html/IRac_8h_source.html @@ -109,545 +109,553 @@ $(function() {
38 #include "ir_Toshiba.h"
39 #include "ir_Transcold.h"
40 #include "ir_Trotec.h"
-
41 #include "ir_Vestel.h"
-
42 #include "ir_Voltas.h"
-
43 #include "ir_Whirlpool.h"
-
44 
-
45 // Constants
-
46 const int8_t kGpioUnused = -1;
-
47 
-
48 // Class
-
50 class IRac {
-
51  public:
-
52  explicit IRac(const uint16_t pin, const bool inverted = false,
-
53  const bool use_modulation = true);
-
54  static bool isProtocolSupported(const decode_type_t protocol);
-
55  static void initState(stdAc::state_t *state,
-
56  const decode_type_t vendor, const int16_t model,
-
57  const bool power, const stdAc::opmode_t mode,
-
58  const float degrees, const bool celsius,
-
59  const stdAc::fanspeed_t fan,
-
60  const stdAc::swingv_t swingv,
-
61  const stdAc::swingh_t swingh,
-
62  const bool quiet, const bool turbo, const bool econo,
-
63  const bool light, const bool filter, const bool clean,
-
64  const bool beep, const int16_t sleep,
-
65  const int16_t clock);
-
66  static void initState(stdAc::state_t *state);
-
67  void markAsSent(void);
-
68  bool sendAc(void);
-
69  bool sendAc(const stdAc::state_t desired, const stdAc::state_t *prev = NULL);
-
70  bool sendAc(const decode_type_t vendor, const int16_t model,
-
71  const bool power, const stdAc::opmode_t mode, const float degrees,
-
72  const bool celsius, const stdAc::fanspeed_t fan,
-
73  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
74  const bool quiet, const bool turbo, const bool econo,
-
75  const bool light, const bool filter, const bool clean,
-
76  const bool beep, const int16_t sleep = -1,
-
77  const int16_t clock = -1);
-
78  static bool cmpStates(const stdAc::state_t a, const stdAc::state_t b);
-
79  static bool strToBool(const char *str, const bool def = false);
-
80  static int16_t strToModel(const char *str, const int16_t def = -1);
-
81  static stdAc::opmode_t strToOpmode(
-
82  const char *str, const stdAc::opmode_t def = stdAc::opmode_t::kAuto);
-
83  static stdAc::fanspeed_t strToFanspeed(
-
84  const char *str,
-
85  const stdAc::fanspeed_t def = stdAc::fanspeed_t::kAuto);
-
86  static stdAc::swingv_t strToSwingV(
-
87  const char *str, const stdAc::swingv_t def = stdAc::swingv_t::kOff);
-
88  static stdAc::swingh_t strToSwingH(
-
89  const char *str, const stdAc::swingh_t def = stdAc::swingh_t::kOff);
-
90  static String boolToString(const bool value);
-
91  static String opmodeToString(const stdAc::opmode_t mode);
-
92  static String fanspeedToString(const stdAc::fanspeed_t speed);
-
93  static String swingvToString(const stdAc::swingv_t swingv);
-
94  static String swinghToString(const stdAc::swingh_t swingh);
-
95  stdAc::state_t getState(void);
-
96  stdAc::state_t getStatePrev(void);
-
97  bool hasStateChanged(void);
-
98  stdAc::state_t next;
-
99 #ifndef UNIT_TEST
-
100 
-
101  private:
-
102 #endif
-
103  uint16_t _pin;
-
104  bool _inverted;
-
105  bool _modulation;
-
106  stdAc::state_t _prev;
-
107 #if SEND_AIRWELL
-
108  void airwell(IRAirwellAc *ac,
-
109  const bool on, const stdAc::opmode_t mode, const float degrees,
-
110  const stdAc::fanspeed_t fan);
-
111 #endif // SEND_AIRWELL
-
112 #if SEND_AMCOR
-
113  void amcor(IRAmcorAc *ac,
-
114  const bool on, const stdAc::opmode_t mode, const float degrees,
-
115  const stdAc::fanspeed_t fan);
-
116 #endif // SEND_AMCOR
-
117 #if SEND_ARGO
-
118  void argo(IRArgoAC *ac,
-
119  const bool on, const stdAc::opmode_t mode, const float degrees,
-
120  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
121  const bool turbo, const int16_t sleep = -1);
-
122 #endif // SEND_ARGO
-
123 #if SEND_CARRIER_AC64
-
124 void carrier64(IRCarrierAc64 *ac,
-
125  const bool on, const stdAc::opmode_t mode,
-
126  const float degrees, const stdAc::fanspeed_t fan,
-
127  const stdAc::swingv_t swingv, const int16_t sleep = -1);
-
128 #endif // SEND_CARRIER_AC64
-
129 #if SEND_COOLIX
-
130  void coolix(IRCoolixAC *ac,
-
131  const bool on, const stdAc::opmode_t mode, const float degrees,
-
132  const stdAc::fanspeed_t fan,
-
133  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
134  const bool turbo, const bool light, const bool clean,
-
135  const int16_t sleep = -1);
-
136 #endif // SEND_COOLIX
-
137 #if SEND_CORONA_AC
-
138  void corona(IRCoronaAc *ac,
-
139  const bool on, const stdAc::opmode_t mode,
-
140  const float degrees, const stdAc::fanspeed_t fan,
-
141  const stdAc::swingv_t swingv, const bool econo);
-
142 #endif // SEND_CORONA_AC
-
143 #if SEND_DAIKIN
-
144  void daikin(IRDaikinESP *ac,
-
145  const bool on, const stdAc::opmode_t mode, const float degrees,
-
146  const stdAc::fanspeed_t fan,
-
147  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
148  const bool quiet, const bool turbo, const bool econo,
-
149  const bool clean);
-
150 #endif // SEND_DAIKIN
-
151 #if SEND_DAIKIN128
-
152  void daikin128(IRDaikin128 *ac,
-
153  const bool on, const stdAc::opmode_t mode,
-
154  const float degrees, const stdAc::fanspeed_t fan,
-
155  const stdAc::swingv_t swingv,
-
156  const bool quiet, const bool turbo, const bool light,
-
157  const bool econo, const int16_t sleep = -1,
-
158  const int16_t clock = -1);
-
159 #endif // SEND_DAIKIN128
-
160 #if SEND_DAIKIN152
-
161  void daikin152(IRDaikin152 *ac,
-
162  const bool on, const stdAc::opmode_t mode,
-
163  const float degrees, const stdAc::fanspeed_t fan,
-
164  const stdAc::swingv_t swingv,
-
165  const bool quiet, const bool turbo, const bool econo);
-
166 #endif // SEND_DAIKIN152
-
167 #if SEND_DAIKIN160
-
168  void daikin160(IRDaikin160 *ac,
-
169  const bool on, const stdAc::opmode_t mode,
-
170  const float degrees, const stdAc::fanspeed_t fan,
-
171  const stdAc::swingv_t swingv);
-
172 #endif // SEND_DAIKIN160
-
173 #if SEND_DAIKIN176
-
174  void daikin176(IRDaikin176 *ac,
-
175  const bool on, const stdAc::opmode_t mode,
-
176  const float degrees, const stdAc::fanspeed_t fan,
-
177  const stdAc::swingh_t swingh);
-
178 #endif // SEND_DAIKIN176
-
179 #if SEND_DAIKIN2
-
180  void daikin2(IRDaikin2 *ac,
-
181  const bool on, const stdAc::opmode_t mode,
-
182  const float degrees, const stdAc::fanspeed_t fan,
-
183  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
184  const bool quiet, const bool turbo, const bool light,
-
185  const bool econo, const bool filter, const bool clean,
-
186  const bool beep, const int16_t sleep = -1,
-
187  const int16_t clock = -1);
-
188 #endif // SEND_DAIKIN2
-
189 #if SEND_DAIKIN216
-
190 void daikin216(IRDaikin216 *ac,
-
191  const bool on, const stdAc::opmode_t mode,
-
192  const float degrees, const stdAc::fanspeed_t fan,
-
193  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
194  const bool quiet, const bool turbo);
-
195 #endif // SEND_DAIKIN216
-
196 #if SEND_DAIKIN64
-
197  void daikin64(IRDaikin64 *ac,
-
198  const bool on, const stdAc::opmode_t mode,
-
199  const float degrees, const stdAc::fanspeed_t fan,
-
200  const stdAc::swingv_t swingv,
-
201  const bool quiet, const bool turbo,
-
202  const int16_t sleep = -1, const int16_t clock = -1);
-
203 #endif // SEND_DAIKIN64
-
204 #if SEND_DELONGHI_AC
-
205  void delonghiac(IRDelonghiAc *ac,
-
206  const bool on, const stdAc::opmode_t mode, const bool celsius,
-
207  const float degrees, const stdAc::fanspeed_t fan,
-
208  const bool turbo, const int16_t sleep = -1);
-
209 #endif // SEND_DELONGHI_AC
-
210 #if SEND_ECOCLIM
-
211 void ecoclim(IREcoclimAc *ac,
-
212  const bool on, const stdAc::opmode_t mode,
-
213  const float degrees, const stdAc::fanspeed_t fan,
-
214  const int16_t sleep = -1, const int16_t clock = -1);
-
215 #endif // SEND_ECOCLIM
-
216 #if SEND_ELECTRA_AC
-
217 void electra(IRElectraAc *ac,
-
218  const bool on, const stdAc::opmode_t mode,
-
219  const float degrees, const stdAc::fanspeed_t fan,
-
220  const stdAc::swingv_t swingv,
-
221  const stdAc::swingh_t swingh, const bool turbo,
-
222  const bool lighttoggle, const bool clean);
-
223 #endif // SEND_ELECTRA_AC
-
224 #if SEND_FUJITSU_AC
-
225  void fujitsu(IRFujitsuAC *ac, const fujitsu_ac_remote_model_t model,
-
226  const bool on, const stdAc::opmode_t mode, const float degrees,
-
227  const stdAc::fanspeed_t fan,
-
228  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
229  const bool quiet, const bool turbo, const bool econo,
-
230  const bool filter, const bool clean, const int16_t sleep = -1);
-
231 #endif // SEND_FUJITSU_AC
-
232 #if SEND_GOODWEATHER
-
233  void goodweather(IRGoodweatherAc *ac,
-
234  const bool on, const stdAc::opmode_t mode,
-
235  const float degrees,
-
236  const stdAc::fanspeed_t fan,
-
237  const stdAc::swingv_t swingv,
-
238  const bool turbo, const bool light,
-
239  const int16_t sleep = -1);
-
240 #endif // SEND_GOODWEATHER
-
241 #if SEND_GREE
-
242  void gree(IRGreeAC *ac, const gree_ac_remote_model_t model,
-
243  const bool on, const stdAc::opmode_t mode, const bool celsius,
-
244  const float degrees, const stdAc::fanspeed_t fan,
-
245  const stdAc::swingv_t swingv, const bool turbo, const bool light,
-
246  const bool clean, const int16_t sleep = -1);
-
247 #endif // SEND_GREE
-
248 #if SEND_HAIER_AC
-
249  void haier(IRHaierAC *ac,
-
250  const bool on, const stdAc::opmode_t mode, const float degrees,
-
251  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
252  const bool filter, const int16_t sleep = -1,
-
253  const int16_t clock = -1);
-
254 #endif // SEND_HAIER_AC
-
255 #if SEND_HAIER_AC_YRW02
-
256  void haierYrwo2(IRHaierACYRW02 *ac,
-
257  const bool on, const stdAc::opmode_t mode,
-
258  const float degrees, const stdAc::fanspeed_t fan,
-
259  const stdAc::swingv_t swingv,
-
260  const bool turbo, const bool filter,
-
261  const int16_t sleep = -1);
-
262 #endif // SEND_HAIER_AC_YRW02
-
263 #if SEND_HITACHI_AC
-
264  void hitachi(IRHitachiAc *ac,
-
265  const bool on, const stdAc::opmode_t mode,
-
266  const float degrees, const stdAc::fanspeed_t fan,
-
267  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh);
-
268 #endif // SEND_HITACHI_AC
-
269 #if SEND_HITACHI_AC1
-
270  void hitachi1(IRHitachiAc1 *ac, const hitachi_ac1_remote_model_t model,
-
271  const bool on, const bool power_toggle,
-
272  const stdAc::opmode_t mode,
-
273  const float degrees, const stdAc::fanspeed_t fan,
-
274  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
275  const bool swing_toggle, const int16_t sleep = -1);
-
276 #endif // SEND_HITACHI_AC1
-
277 #if SEND_HITACHI_AC344
-
278  void hitachi344(IRHitachiAc344 *ac,
-
279  const bool on, const stdAc::opmode_t mode,
-
280  const float degrees, const stdAc::fanspeed_t fan,
-
281  const stdAc::swingv_t swingv,
-
282  const stdAc::swingh_t swingh);
-
283 #endif // SEND_HITACHI_AC344
-
284 #if SEND_HITACHI_AC424
-
285  void hitachi424(IRHitachiAc424 *ac,
-
286  const bool on, const stdAc::opmode_t mode,
-
287  const float degrees, const stdAc::fanspeed_t fan,
-
288  const stdAc::swingv_t swingv);
-
289 #endif // SEND_HITACHI_AC424
-
290 #if SEND_KELVINATOR
-
291  void kelvinator(IRKelvinatorAC *ac,
-
292  const bool on, const stdAc::opmode_t mode,
-
293  const float degrees, const stdAc::fanspeed_t fan,
-
294  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
295  const bool quiet, const bool turbo, const bool light,
-
296  const bool filter, const bool clean);
-
297 #endif // SEND_KELVINATOR
-
298 #if SEND_LG
-
299  void lg(IRLgAc *ac, const lg_ac_remote_model_t model,
-
300  const bool on, const stdAc::opmode_t mode,
-
301  const float degrees, const stdAc::fanspeed_t fan);
-
302 #endif // SEND_LG
-
303 #if SEND_MIDEA
-
304  void midea(IRMideaAC *ac,
-
305  const bool on, const stdAc::opmode_t mode, const bool celsius,
-
306  const float degrees, const stdAc::fanspeed_t fan,
-
307  const stdAc::swingv_t swingv, const bool turbo, const bool econo,
-
308  const bool light, const int16_t sleep = -1);
-
309 #endif // SEND_MIDEA
-
310 #if SEND_MITSUBISHI_AC
-
311  void mitsubishi(IRMitsubishiAC *ac,
-
312  const bool on, const stdAc::opmode_t mode,
-
313  const float degrees,
-
314  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
315  const stdAc::swingh_t swingh,
-
316  const bool quiet, const int16_t clock = -1);
-
317 #endif // SEND_MITSUBISHI_AC
-
318 #if SEND_MITSUBISHI112
-
319  void mitsubishi112(IRMitsubishi112 *ac,
-
320  const bool on, const stdAc::opmode_t mode,
-
321  const float degrees, const stdAc::fanspeed_t fan,
-
322  const stdAc::swingv_t swingv,
-
323  const stdAc::swingh_t swingh,
-
324  const bool quiet);
-
325 #endif // SEND_MITSUBISHI112
-
326 #if SEND_MITSUBISHI136
-
327  void mitsubishi136(IRMitsubishi136 *ac,
-
328  const bool on, const stdAc::opmode_t mode,
-
329  const float degrees, const stdAc::fanspeed_t fan,
-
330  const stdAc::swingv_t swingv, const bool quiet);
-
331 #endif // SEND_MITSUBISHI136
-
332 #if SEND_MITSUBISHIHEAVY
-
333  void mitsubishiHeavy88(IRMitsubishiHeavy88Ac *ac,
-
334  const bool on, const stdAc::opmode_t mode,
-
335  const float degrees, const stdAc::fanspeed_t fan,
-
336  const stdAc::swingv_t swingv,
-
337  const stdAc::swingh_t swingh,
-
338  const bool turbo, const bool econo, const bool clean);
-
339  void mitsubishiHeavy152(IRMitsubishiHeavy152Ac *ac,
-
340  const bool on, const stdAc::opmode_t mode,
-
341  const float degrees, const stdAc::fanspeed_t fan,
-
342  const stdAc::swingv_t swingv,
-
343  const stdAc::swingh_t swingh,
-
344  const bool quiet, const bool turbo, const bool econo,
-
345  const bool filter, const bool clean,
-
346  const int16_t sleep = -1);
-
347 #endif // SEND_MITSUBISHIHEAVY
-
348 #if SEND_NEOCLIMA
-
349  void neoclima(IRNeoclimaAc *ac, const bool on, const stdAc::opmode_t mode,
-
350  const bool celsius, const float degrees,
-
351  const stdAc::fanspeed_t fan,
-
352  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
353  const bool turbo, const bool econo, const bool light,
-
354  const bool filter, const int16_t sleep = -1);
-
355 #endif // SEND_NEOCLIMA
-
356 #if SEND_PANASONIC_AC
-
357  void panasonic(IRPanasonicAc *ac, const panasonic_ac_remote_model_t model,
-
358  const bool on, const stdAc::opmode_t mode, const float degrees,
-
359  const stdAc::fanspeed_t fan,
-
360  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
361  const bool quiet, const bool turbo, const bool filter,
-
362  const int16_t clock = -1);
-
363 #endif // SEND_PANASONIC_AC
-
364 #if SEND_PANASONIC_AC32
-
365  void panasonic32(IRPanasonicAc32 *ac,
-
366  const bool on, const stdAc::opmode_t mode,
-
367  const float degrees, const stdAc::fanspeed_t fan,
-
368  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh);
-
369 #endif // SEND_PANASONIC_AC32
-
370 #if SEND_SAMSUNG_AC
-
371  void samsung(IRSamsungAc *ac,
-
372  const bool on, const stdAc::opmode_t mode, const float degrees,
-
373  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
374  const bool quiet, const bool turbo, const bool light,
-
375  const bool filter, const bool clean,
-
376  const bool beep, const bool prevpower = true,
-
377  const bool forcepower = true);
-
378 #endif // SEND_SAMSUNG_AC
-
379 #if SEND_SANYO_AC
-
380  void sanyo(IRSanyoAc *ac,
-
381  const bool on, const stdAc::opmode_t mode, const float degrees,
-
382  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
383  const bool beep, const int16_t sleep = -1);
-
384 #endif // SEND_SANYO_AC
-
385 #if SEND_SHARP_AC
-
386  void sharp(IRSharpAc *ac, const sharp_ac_remote_model_t model,
-
387  const bool on, const bool prev_power, const stdAc::opmode_t mode,
-
388  const float degrees, const stdAc::fanspeed_t fan,
-
389  const stdAc::swingv_t swingv, const bool turbo, const bool light,
-
390  const bool filter, const bool clean);
-
391 #endif // SEND_SHARP_AC
-
392 #if SEND_TCL112AC
-
393  void tcl112(IRTcl112Ac *ac,
-
394  const bool on, const stdAc::opmode_t mode, const float degrees,
-
395  const stdAc::fanspeed_t fan,
-
396  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
397  const bool turbo, const bool light, const bool econo,
-
398  const bool filter);
-
399 #endif // SEND_TCL112AC
-
400 #if SEND_TECHNIBEL_AC
-
401  void technibel(IRTechnibelAc *ac,
-
402  const bool on, const stdAc::opmode_t mode, const bool celsius,
-
403  const float degrees, const stdAc::fanspeed_t fan,
-
404  const stdAc::swingv_t swingv, const int16_t sleep = -1);
-
405 #endif // SEND_TECHNIBEL_AC
-
406 #if SEND_TECO
-
407  void teco(IRTecoAc *ac,
-
408  const bool on, const stdAc::opmode_t mode, const float degrees,
-
409  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
410  const bool light, const int16_t sleep = -1);
-
411 #endif // SEND_TECO
-
412 #if SEND_TOSHIBA_AC
-
413  void toshiba(IRToshibaAC *ac,
-
414  const bool on, const stdAc::opmode_t mode, const float degrees,
-
415  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
416  const bool turbo, const bool econo);
-
417 #endif // SEND_TOSHIBA_AC
-
418 #if SEND_TROTEC
-
419  void trotec(IRTrotecESP *ac,
-
420  const bool on, const stdAc::opmode_t mode, const float degrees,
-
421  const stdAc::fanspeed_t fan, const int16_t sleep = -1);
-
422 #endif // SEND_TROTEC
-
423 #if SEND_VESTEL_AC
-
424  void vestel(IRVestelAc *ac,
-
425  const bool on, const stdAc::opmode_t mode, const float degrees,
-
426  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
427  const bool turbo, const bool filter,
-
428  const int16_t sleep = -1, const int16_t clock = -1,
-
429  const bool sendNormal = true);
-
430 #endif // SEND_VESTEL_AC
-
431 #if SEND_VOLTAS
-
432  void voltas(IRVoltas *ac, const voltas_ac_remote_model_t model,
-
433  const bool on, const stdAc::opmode_t mode,
-
434  const float degrees, const stdAc::fanspeed_t fan,
-
435  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
436  const bool turbo, const bool econo, const bool light,
-
437  const int16_t sleep = -1);
-
438 #endif // SEND_VOLTAS
-
439 #if SEND_WHIRLPOOL_AC
-
440  void whirlpool(IRWhirlpoolAc *ac, const whirlpool_ac_remote_model_t model,
-
441  const bool on, const stdAc::opmode_t mode, const float degrees,
-
442  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
443  const bool turbo, const bool light,
-
444  const int16_t sleep = -1, const int16_t clock = -1);
-
445 #endif // SEND_WHIRLPOOL_AC
-
446 #if SEND_TRANSCOLD
-
447  void transcold(IRTranscoldAc *ac,
-
448  const bool on, const stdAc::opmode_t mode, const float degrees,
-
449  const stdAc::fanspeed_t fan,
-
450  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh);
-
451 #endif // SEND_TRANSCOLD
-
452 static stdAc::state_t cleanState(const stdAc::state_t state);
-
453 static stdAc::state_t handleToggles(const stdAc::state_t desired,
-
454  const stdAc::state_t *prev = NULL);
-
455 }; // IRac class
-
456 
-
458 namespace IRAcUtils {
-
459  String resultAcToString(const decode_results * const results);
-
460  bool decodeToState(const decode_results *decode, stdAc::state_t *result,
-
461  const stdAc::state_t *prev = NULL);
-
462 } // namespace IRAcUtils
-
463 #endif // IRAC_H_
+
41 #include "ir_Truma.h"
+
42 #include "ir_Vestel.h"
+
43 #include "ir_Voltas.h"
+
44 #include "ir_Whirlpool.h"
+
45 
+
46 // Constants
+
47 const int8_t kGpioUnused = -1;
+
48 
+
49 // Class
+
51 class IRac {
+
52  public:
+
53  explicit IRac(const uint16_t pin, const bool inverted = false,
+
54  const bool use_modulation = true);
+
55  static bool isProtocolSupported(const decode_type_t protocol);
+
56  static void initState(stdAc::state_t *state,
+
57  const decode_type_t vendor, const int16_t model,
+
58  const bool power, const stdAc::opmode_t mode,
+
59  const float degrees, const bool celsius,
+
60  const stdAc::fanspeed_t fan,
+
61  const stdAc::swingv_t swingv,
+
62  const stdAc::swingh_t swingh,
+
63  const bool quiet, const bool turbo, const bool econo,
+
64  const bool light, const bool filter, const bool clean,
+
65  const bool beep, const int16_t sleep,
+
66  const int16_t clock);
+
67  static void initState(stdAc::state_t *state);
+
68  void markAsSent(void);
+
69  bool sendAc(void);
+
70  bool sendAc(const stdAc::state_t desired, const stdAc::state_t *prev = NULL);
+
71  bool sendAc(const decode_type_t vendor, const int16_t model,
+
72  const bool power, const stdAc::opmode_t mode, const float degrees,
+
73  const bool celsius, const stdAc::fanspeed_t fan,
+
74  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
75  const bool quiet, const bool turbo, const bool econo,
+
76  const bool light, const bool filter, const bool clean,
+
77  const bool beep, const int16_t sleep = -1,
+
78  const int16_t clock = -1);
+
79  static bool cmpStates(const stdAc::state_t a, const stdAc::state_t b);
+
80  static bool strToBool(const char *str, const bool def = false);
+
81  static int16_t strToModel(const char *str, const int16_t def = -1);
+
82  static stdAc::opmode_t strToOpmode(
+
83  const char *str, const stdAc::opmode_t def = stdAc::opmode_t::kAuto);
+
84  static stdAc::fanspeed_t strToFanspeed(
+
85  const char *str,
+
86  const stdAc::fanspeed_t def = stdAc::fanspeed_t::kAuto);
+
87  static stdAc::swingv_t strToSwingV(
+
88  const char *str, const stdAc::swingv_t def = stdAc::swingv_t::kOff);
+
89  static stdAc::swingh_t strToSwingH(
+
90  const char *str, const stdAc::swingh_t def = stdAc::swingh_t::kOff);
+
91  static String boolToString(const bool value);
+
92  static String opmodeToString(const stdAc::opmode_t mode);
+
93  static String fanspeedToString(const stdAc::fanspeed_t speed);
+
94  static String swingvToString(const stdAc::swingv_t swingv);
+
95  static String swinghToString(const stdAc::swingh_t swingh);
+
96  stdAc::state_t getState(void);
+
97  stdAc::state_t getStatePrev(void);
+
98  bool hasStateChanged(void);
+
99  stdAc::state_t next;
+
100 #ifndef UNIT_TEST
+
101 
+
102  private:
+
103 #endif
+
104  uint16_t _pin;
+
105  bool _inverted;
+
106  bool _modulation;
+
107  stdAc::state_t _prev;
+
108 #if SEND_AIRWELL
+
109  void airwell(IRAirwellAc *ac,
+
110  const bool on, const stdAc::opmode_t mode, const float degrees,
+
111  const stdAc::fanspeed_t fan);
+
112 #endif // SEND_AIRWELL
+
113 #if SEND_AMCOR
+
114  void amcor(IRAmcorAc *ac,
+
115  const bool on, const stdAc::opmode_t mode, const float degrees,
+
116  const stdAc::fanspeed_t fan);
+
117 #endif // SEND_AMCOR
+
118 #if SEND_ARGO
+
119  void argo(IRArgoAC *ac,
+
120  const bool on, const stdAc::opmode_t mode, const float degrees,
+
121  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
122  const bool turbo, const int16_t sleep = -1);
+
123 #endif // SEND_ARGO
+
124 #if SEND_CARRIER_AC64
+
125 void carrier64(IRCarrierAc64 *ac,
+
126  const bool on, const stdAc::opmode_t mode,
+
127  const float degrees, const stdAc::fanspeed_t fan,
+
128  const stdAc::swingv_t swingv, const int16_t sleep = -1);
+
129 #endif // SEND_CARRIER_AC64
+
130 #if SEND_COOLIX
+
131  void coolix(IRCoolixAC *ac,
+
132  const bool on, const stdAc::opmode_t mode, const float degrees,
+
133  const stdAc::fanspeed_t fan,
+
134  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
135  const bool turbo, const bool light, const bool clean,
+
136  const int16_t sleep = -1);
+
137 #endif // SEND_COOLIX
+
138 #if SEND_CORONA_AC
+
139  void corona(IRCoronaAc *ac,
+
140  const bool on, const stdAc::opmode_t mode,
+
141  const float degrees, const stdAc::fanspeed_t fan,
+
142  const stdAc::swingv_t swingv, const bool econo);
+
143 #endif // SEND_CORONA_AC
+
144 #if SEND_DAIKIN
+
145  void daikin(IRDaikinESP *ac,
+
146  const bool on, const stdAc::opmode_t mode, const float degrees,
+
147  const stdAc::fanspeed_t fan,
+
148  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
149  const bool quiet, const bool turbo, const bool econo,
+
150  const bool clean);
+
151 #endif // SEND_DAIKIN
+
152 #if SEND_DAIKIN128
+
153  void daikin128(IRDaikin128 *ac,
+
154  const bool on, const stdAc::opmode_t mode,
+
155  const float degrees, const stdAc::fanspeed_t fan,
+
156  const stdAc::swingv_t swingv,
+
157  const bool quiet, const bool turbo, const bool light,
+
158  const bool econo, const int16_t sleep = -1,
+
159  const int16_t clock = -1);
+
160 #endif // SEND_DAIKIN128
+
161 #if SEND_DAIKIN152
+
162  void daikin152(IRDaikin152 *ac,
+
163  const bool on, const stdAc::opmode_t mode,
+
164  const float degrees, const stdAc::fanspeed_t fan,
+
165  const stdAc::swingv_t swingv,
+
166  const bool quiet, const bool turbo, const bool econo);
+
167 #endif // SEND_DAIKIN152
+
168 #if SEND_DAIKIN160
+
169  void daikin160(IRDaikin160 *ac,
+
170  const bool on, const stdAc::opmode_t mode,
+
171  const float degrees, const stdAc::fanspeed_t fan,
+
172  const stdAc::swingv_t swingv);
+
173 #endif // SEND_DAIKIN160
+
174 #if SEND_DAIKIN176
+
175  void daikin176(IRDaikin176 *ac,
+
176  const bool on, const stdAc::opmode_t mode,
+
177  const float degrees, const stdAc::fanspeed_t fan,
+
178  const stdAc::swingh_t swingh);
+
179 #endif // SEND_DAIKIN176
+
180 #if SEND_DAIKIN2
+
181  void daikin2(IRDaikin2 *ac,
+
182  const bool on, const stdAc::opmode_t mode,
+
183  const float degrees, const stdAc::fanspeed_t fan,
+
184  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
185  const bool quiet, const bool turbo, const bool light,
+
186  const bool econo, const bool filter, const bool clean,
+
187  const bool beep, const int16_t sleep = -1,
+
188  const int16_t clock = -1);
+
189 #endif // SEND_DAIKIN2
+
190 #if SEND_DAIKIN216
+
191 void daikin216(IRDaikin216 *ac,
+
192  const bool on, const stdAc::opmode_t mode,
+
193  const float degrees, const stdAc::fanspeed_t fan,
+
194  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
195  const bool quiet, const bool turbo);
+
196 #endif // SEND_DAIKIN216
+
197 #if SEND_DAIKIN64
+
198  void daikin64(IRDaikin64 *ac,
+
199  const bool on, const stdAc::opmode_t mode,
+
200  const float degrees, const stdAc::fanspeed_t fan,
+
201  const stdAc::swingv_t swingv,
+
202  const bool quiet, const bool turbo,
+
203  const int16_t sleep = -1, const int16_t clock = -1);
+
204 #endif // SEND_DAIKIN64
+
205 #if SEND_DELONGHI_AC
+
206  void delonghiac(IRDelonghiAc *ac,
+
207  const bool on, const stdAc::opmode_t mode, const bool celsius,
+
208  const float degrees, const stdAc::fanspeed_t fan,
+
209  const bool turbo, const int16_t sleep = -1);
+
210 #endif // SEND_DELONGHI_AC
+
211 #if SEND_ECOCLIM
+
212 void ecoclim(IREcoclimAc *ac,
+
213  const bool on, const stdAc::opmode_t mode,
+
214  const float degrees, const stdAc::fanspeed_t fan,
+
215  const int16_t sleep = -1, const int16_t clock = -1);
+
216 #endif // SEND_ECOCLIM
+
217 #if SEND_ELECTRA_AC
+
218 void electra(IRElectraAc *ac,
+
219  const bool on, const stdAc::opmode_t mode,
+
220  const float degrees, const stdAc::fanspeed_t fan,
+
221  const stdAc::swingv_t swingv,
+
222  const stdAc::swingh_t swingh, const bool turbo,
+
223  const bool lighttoggle, const bool clean);
+
224 #endif // SEND_ELECTRA_AC
+
225 #if SEND_FUJITSU_AC
+
226  void fujitsu(IRFujitsuAC *ac, const fujitsu_ac_remote_model_t model,
+
227  const bool on, const stdAc::opmode_t mode,
+
228  const bool celsius, const float degrees,
+
229  const stdAc::fanspeed_t fan,
+
230  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
231  const bool quiet, const bool turbo, const bool econo,
+
232  const bool filter, const bool clean, const int16_t sleep = -1);
+
233 #endif // SEND_FUJITSU_AC
+
234 #if SEND_GOODWEATHER
+
235  void goodweather(IRGoodweatherAc *ac,
+
236  const bool on, const stdAc::opmode_t mode,
+
237  const float degrees,
+
238  const stdAc::fanspeed_t fan,
+
239  const stdAc::swingv_t swingv,
+
240  const bool turbo, const bool light,
+
241  const int16_t sleep = -1);
+
242 #endif // SEND_GOODWEATHER
+
243 #if SEND_GREE
+
244  void gree(IRGreeAC *ac, const gree_ac_remote_model_t model,
+
245  const bool on, const stdAc::opmode_t mode, const bool celsius,
+
246  const float degrees, const stdAc::fanspeed_t fan,
+
247  const stdAc::swingv_t swingv, const bool turbo, const bool light,
+
248  const bool clean, const int16_t sleep = -1);
+
249 #endif // SEND_GREE
+
250 #if SEND_HAIER_AC
+
251  void haier(IRHaierAC *ac,
+
252  const bool on, const stdAc::opmode_t mode, const float degrees,
+
253  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
254  const bool filter, const int16_t sleep = -1,
+
255  const int16_t clock = -1);
+
256 #endif // SEND_HAIER_AC
+
257 #if SEND_HAIER_AC_YRW02
+
258  void haierYrwo2(IRHaierACYRW02 *ac,
+
259  const bool on, const stdAc::opmode_t mode,
+
260  const float degrees, const stdAc::fanspeed_t fan,
+
261  const stdAc::swingv_t swingv,
+
262  const bool turbo, const bool filter,
+
263  const int16_t sleep = -1);
+
264 #endif // SEND_HAIER_AC_YRW02
+
265 #if SEND_HITACHI_AC
+
266  void hitachi(IRHitachiAc *ac,
+
267  const bool on, const stdAc::opmode_t mode,
+
268  const float degrees, const stdAc::fanspeed_t fan,
+
269  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh);
+
270 #endif // SEND_HITACHI_AC
+
271 #if SEND_HITACHI_AC1
+
272  void hitachi1(IRHitachiAc1 *ac, const hitachi_ac1_remote_model_t model,
+
273  const bool on, const bool power_toggle,
+
274  const stdAc::opmode_t mode,
+
275  const float degrees, const stdAc::fanspeed_t fan,
+
276  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
277  const bool swing_toggle, const int16_t sleep = -1);
+
278 #endif // SEND_HITACHI_AC1
+
279 #if SEND_HITACHI_AC344
+
280  void hitachi344(IRHitachiAc344 *ac,
+
281  const bool on, const stdAc::opmode_t mode,
+
282  const float degrees, const stdAc::fanspeed_t fan,
+
283  const stdAc::swingv_t swingv,
+
284  const stdAc::swingh_t swingh);
+
285 #endif // SEND_HITACHI_AC344
+
286 #if SEND_HITACHI_AC424
+
287  void hitachi424(IRHitachiAc424 *ac,
+
288  const bool on, const stdAc::opmode_t mode,
+
289  const float degrees, const stdAc::fanspeed_t fan,
+
290  const stdAc::swingv_t swingv);
+
291 #endif // SEND_HITACHI_AC424
+
292 #if SEND_KELVINATOR
+
293  void kelvinator(IRKelvinatorAC *ac,
+
294  const bool on, const stdAc::opmode_t mode,
+
295  const float degrees, const stdAc::fanspeed_t fan,
+
296  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
297  const bool quiet, const bool turbo, const bool light,
+
298  const bool filter, const bool clean);
+
299 #endif // SEND_KELVINATOR
+
300 #if SEND_LG
+
301  void lg(IRLgAc *ac, const lg_ac_remote_model_t model,
+
302  const bool on, const stdAc::opmode_t mode,
+
303  const float degrees, const stdAc::fanspeed_t fan);
+
304 #endif // SEND_LG
+
305 #if SEND_MIDEA
+
306  void midea(IRMideaAC *ac,
+
307  const bool on, const stdAc::opmode_t mode, const bool celsius,
+
308  const float degrees, const stdAc::fanspeed_t fan,
+
309  const stdAc::swingv_t swingv, const bool turbo, const bool econo,
+
310  const bool light, const int16_t sleep = -1);
+
311 #endif // SEND_MIDEA
+
312 #if SEND_MITSUBISHI_AC
+
313  void mitsubishi(IRMitsubishiAC *ac,
+
314  const bool on, const stdAc::opmode_t mode,
+
315  const float degrees,
+
316  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
317  const stdAc::swingh_t swingh,
+
318  const bool quiet, const int16_t clock = -1);
+
319 #endif // SEND_MITSUBISHI_AC
+
320 #if SEND_MITSUBISHI112
+
321  void mitsubishi112(IRMitsubishi112 *ac,
+
322  const bool on, const stdAc::opmode_t mode,
+
323  const float degrees, const stdAc::fanspeed_t fan,
+
324  const stdAc::swingv_t swingv,
+
325  const stdAc::swingh_t swingh,
+
326  const bool quiet);
+
327 #endif // SEND_MITSUBISHI112
+
328 #if SEND_MITSUBISHI136
+
329  void mitsubishi136(IRMitsubishi136 *ac,
+
330  const bool on, const stdAc::opmode_t mode,
+
331  const float degrees, const stdAc::fanspeed_t fan,
+
332  const stdAc::swingv_t swingv, const bool quiet);
+
333 #endif // SEND_MITSUBISHI136
+
334 #if SEND_MITSUBISHIHEAVY
+
335  void mitsubishiHeavy88(IRMitsubishiHeavy88Ac *ac,
+
336  const bool on, const stdAc::opmode_t mode,
+
337  const float degrees, const stdAc::fanspeed_t fan,
+
338  const stdAc::swingv_t swingv,
+
339  const stdAc::swingh_t swingh,
+
340  const bool turbo, const bool econo, const bool clean);
+
341  void mitsubishiHeavy152(IRMitsubishiHeavy152Ac *ac,
+
342  const bool on, const stdAc::opmode_t mode,
+
343  const float degrees, const stdAc::fanspeed_t fan,
+
344  const stdAc::swingv_t swingv,
+
345  const stdAc::swingh_t swingh,
+
346  const bool quiet, const bool turbo, const bool econo,
+
347  const bool filter, const bool clean,
+
348  const int16_t sleep = -1);
+
349 #endif // SEND_MITSUBISHIHEAVY
+
350 #if SEND_NEOCLIMA
+
351  void neoclima(IRNeoclimaAc *ac, const bool on, const stdAc::opmode_t mode,
+
352  const bool celsius, const float degrees,
+
353  const stdAc::fanspeed_t fan,
+
354  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
355  const bool turbo, const bool econo, const bool light,
+
356  const bool filter, const int16_t sleep = -1);
+
357 #endif // SEND_NEOCLIMA
+
358 #if SEND_PANASONIC_AC
+
359  void panasonic(IRPanasonicAc *ac, const panasonic_ac_remote_model_t model,
+
360  const bool on, const stdAc::opmode_t mode, const float degrees,
+
361  const stdAc::fanspeed_t fan,
+
362  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
363  const bool quiet, const bool turbo, const bool filter,
+
364  const int16_t clock = -1);
+
365 #endif // SEND_PANASONIC_AC
+
366 #if SEND_PANASONIC_AC32
+
367  void panasonic32(IRPanasonicAc32 *ac,
+
368  const bool on, const stdAc::opmode_t mode,
+
369  const float degrees, const stdAc::fanspeed_t fan,
+
370  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh);
+
371 #endif // SEND_PANASONIC_AC32
+
372 #if SEND_SAMSUNG_AC
+
373  void samsung(IRSamsungAc *ac,
+
374  const bool on, const stdAc::opmode_t mode, const float degrees,
+
375  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
376  const bool quiet, const bool turbo, const bool light,
+
377  const bool filter, const bool clean,
+
378  const bool beep, const bool prevpower = true,
+
379  const bool forcepower = true);
+
380 #endif // SEND_SAMSUNG_AC
+
381 #if SEND_SANYO_AC
+
382  void sanyo(IRSanyoAc *ac,
+
383  const bool on, const stdAc::opmode_t mode, const float degrees,
+
384  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
385  const bool beep, const int16_t sleep = -1);
+
386 #endif // SEND_SANYO_AC
+
387 #if SEND_SHARP_AC
+
388  void sharp(IRSharpAc *ac, const sharp_ac_remote_model_t model,
+
389  const bool on, const bool prev_power, const stdAc::opmode_t mode,
+
390  const float degrees, const stdAc::fanspeed_t fan,
+
391  const stdAc::swingv_t swingv, const bool turbo, const bool light,
+
392  const bool filter, const bool clean);
+
393 #endif // SEND_SHARP_AC
+
394 #if SEND_TCL112AC
+
395  void tcl112(IRTcl112Ac *ac,
+
396  const bool on, const stdAc::opmode_t mode, const float degrees,
+
397  const stdAc::fanspeed_t fan,
+
398  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
399  const bool turbo, const bool light, const bool econo,
+
400  const bool filter);
+
401 #endif // SEND_TCL112AC
+
402 #if SEND_TECHNIBEL_AC
+
403  void technibel(IRTechnibelAc *ac,
+
404  const bool on, const stdAc::opmode_t mode, const bool celsius,
+
405  const float degrees, const stdAc::fanspeed_t fan,
+
406  const stdAc::swingv_t swingv, const int16_t sleep = -1);
+
407 #endif // SEND_TECHNIBEL_AC
+
408 #if SEND_TECO
+
409  void teco(IRTecoAc *ac,
+
410  const bool on, const stdAc::opmode_t mode, const float degrees,
+
411  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
412  const bool light, const int16_t sleep = -1);
+
413 #endif // SEND_TECO
+
414 #if SEND_TOSHIBA_AC
+
415  void toshiba(IRToshibaAC *ac,
+
416  const bool on, const stdAc::opmode_t mode, const float degrees,
+
417  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
418  const bool turbo, const bool econo);
+
419 #endif // SEND_TOSHIBA_AC
+
420 #if SEND_TROTEC
+
421  void trotec(IRTrotecESP *ac,
+
422  const bool on, const stdAc::opmode_t mode, const float degrees,
+
423  const stdAc::fanspeed_t fan, const int16_t sleep = -1);
+
424 #endif // SEND_TROTEC
+
425 #if SEND_TRUMA
+
426  void truma(IRTrumaAc *ac,
+
427  const bool on, const stdAc::opmode_t mode, const float degrees,
+
428  const stdAc::fanspeed_t fan, const bool quiet);
+
429 #endif // SEND_TRUMA
+
430 #if SEND_VESTEL_AC
+
431  void vestel(IRVestelAc *ac,
+
432  const bool on, const stdAc::opmode_t mode, const float degrees,
+
433  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
434  const bool turbo, const bool filter,
+
435  const int16_t sleep = -1, const int16_t clock = -1,
+
436  const bool sendNormal = true);
+
437 #endif // SEND_VESTEL_AC
+
438 #if SEND_VOLTAS
+
439  void voltas(IRVoltas *ac, const voltas_ac_remote_model_t model,
+
440  const bool on, const stdAc::opmode_t mode,
+
441  const float degrees, const stdAc::fanspeed_t fan,
+
442  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
443  const bool turbo, const bool econo, const bool light,
+
444  const int16_t sleep = -1);
+
445 #endif // SEND_VOLTAS
+
446 #if SEND_WHIRLPOOL_AC
+
447  void whirlpool(IRWhirlpoolAc *ac, const whirlpool_ac_remote_model_t model,
+
448  const bool on, const stdAc::opmode_t mode, const float degrees,
+
449  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
450  const bool turbo, const bool light,
+
451  const int16_t sleep = -1, const int16_t clock = -1);
+
452 #endif // SEND_WHIRLPOOL_AC
+
453 #if SEND_TRANSCOLD
+
454  void transcold(IRTranscoldAc *ac,
+
455  const bool on, const stdAc::opmode_t mode, const float degrees,
+
456  const stdAc::fanspeed_t fan,
+
457  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh);
+
458 #endif // SEND_TRANSCOLD
+
459 static stdAc::state_t cleanState(const stdAc::state_t state);
+
460 static stdAc::state_t handleToggles(const stdAc::state_t desired,
+
461  const stdAc::state_t *prev = NULL);
+
462 }; // IRac class
+
463 
+
465 namespace IRAcUtils {
+
466  String resultAcToString(const decode_results * const results);
+
467  bool decodeToState(const decode_results *decode, stdAc::state_t *result,
+
468  const stdAc::state_t *prev = NULL);
+
469 } // namespace IRAcUtils
+
470 #endif // IRAC_H_
IRPanasonicAc
Class for handling detailed Panasonic A/C messages.
Definition: ir_Panasonic.h:100
-
IRac::airwell
void airwell(IRAirwellAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan)
Send an Airwell A/C message with the supplied settings.
Definition: IRac.cpp:306
+
IRac::airwell
void airwell(IRAirwellAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan)
Send an Airwell A/C message with the supplied settings.
Definition: IRac.cpp:310
ir_Kelvinator.h
Support for Kelvinator A/C protocols.
IRSamsungAc
Class for handling detailed Samsung A/C messages.
Definition: ir_Samsung.h:130
-
IRac::hitachi
void hitachi(IRHitachiAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh)
Send a Hitachi A/C message with the supplied settings.
Definition: IRac.cpp:1115
+
IRac::hitachi
void hitachi(IRHitachiAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh)
Send a Hitachi A/C message with the supplied settings.
Definition: IRac.cpp:1121
IRToshibaAC
Class for handling detailed Toshiba A/C messages.
Definition: ir_Toshiba.h:121
-
decode_type_t
decode_type_t
Enumerator for defining and numbering of supported IR protocol.
Definition: IRremoteESP8266.h:792
-
IRac::getStatePrev
stdAc::state_t getStatePrev(void)
Get the previous internal A/C climate state that should have already been sent to the device....
Definition: IRac.cpp:134
-
IRac::getState
stdAc::state_t getState(void)
Get the current internal A/C climate state.
Definition: IRac.cpp:129
+
decode_type_t
decode_type_t
Enumerator for defining and numbering of supported IR protocol.
Definition: IRremoteESP8266.h:799
+
IRac::getStatePrev
stdAc::state_t getStatePrev(void)
Get the previous internal A/C climate state that should have already been sent to the device....
Definition: IRac.cpp:135
+
IRac::getState
stdAc::state_t getState(void)
Get the current internal A/C climate state.
Definition: IRac.cpp:130
IRMitsubishiHeavy152Ac
Class for handling detailed Mitsubishi Heavy 152-bit A/C messages.
Definition: ir_MitsubishiHeavy.h:184
-
IRac::strToSwingH
static stdAc::swingh_t strToSwingH(const char *str, const stdAc::swingh_t def=stdAc::swingh_t::kOff)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:2898
-
IRac::sharp
void sharp(IRSharpAc *ac, const sharp_ac_remote_model_t model, const bool on, const bool prev_power, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool light, const bool filter, const bool clean)
Send a Sharp A/C message with the supplied settings.
Definition: IRac.cpp:1769
-
IRac::hitachi344
void hitachi344(IRHitachiAc344 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh)
Send a Hitachi 344-bit A/C message with the supplied settings.
Definition: IRac.cpp:1191
+
IRac::strToSwingH
static stdAc::swingh_t strToSwingH(const char *str, const stdAc::swingh_t def=stdAc::swingh_t::kOff)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:2944
+
IRac::sharp
void sharp(IRSharpAc *ac, const sharp_ac_remote_model_t model, const bool on, const bool prev_power, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool light, const bool filter, const bool clean)
Send a Sharp A/C message with the supplied settings.
Definition: IRac.cpp:1775
+
IRac::hitachi344
void hitachi344(IRHitachiAc344 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh)
Send a Hitachi 344-bit A/C message with the supplied settings.
Definition: IRac.cpp:1197
stdAc::opmode_t::kAuto
@ kAuto
ir_Electra.h
Support for Electra A/C protocols.
-
IRac::ecoclim
void ecoclim(IREcoclimAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const int16_t sleep=-1, const int16_t clock=-1)
Send an EcoClim A/C message with the supplied settings.
Definition: IRac.cpp:818
-
IRac::markAsSent
void markAsSent(void)
Update the previous state to the current one.
Definition: IRac.cpp:2761
+
IRac::ecoclim
void ecoclim(IREcoclimAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const int16_t sleep=-1, const int16_t clock=-1)
Send an EcoClim A/C message with the supplied settings.
Definition: IRac.cpp:822
+
IRac::markAsSent
void markAsSent(void)
Update the previous state to the current one.
Definition: IRac.cpp:2807
stdAc::swingv_t
swingv_t
Common A/C settings for Vertical Swing.
Definition: IRsend.h:70
ir_Airwell.h
Airwell "Manchester code" based protocol. Some other Airwell products use the COOLIX protocol.
-
IRac::daikin2
void daikin2(IRDaikin2 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool light, const bool econo, const bool filter, const bool clean, const bool beep, const int16_t sleep=-1, const int16_t clock=-1)
Send a Daikin2 A/C message with the supplied settings.
Definition: IRac.cpp:695
+
IRac::daikin2
void daikin2(IRDaikin2 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool light, const bool econo, const bool filter, const bool clean, const bool beep, const int16_t sleep=-1, const int16_t clock=-1)
Send a Daikin2 A/C message with the supplied settings.
Definition: IRac.cpp:699
ir_Trotec.h
Support for Trotec protocols.
-
IRac::sanyo
void sanyo(IRSanyoAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool beep, const int16_t sleep=-1)
Send a Toshiba A/C message with the supplied settings.
Definition: IRac.cpp:1725
+
IRac::sanyo
void sanyo(IRSanyoAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool beep, const int16_t sleep=-1)
Send a Toshiba A/C message with the supplied settings.
Definition: IRac.cpp:1731
IRDaikinESP
Class for handling detailed Daikin 280-bit A/C messages.
Definition: ir_Daikin.h:658
-
IRac::lg
void lg(IRLgAc *ac, const lg_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan)
Send a LG A/C message with the supplied settings.
Definition: IRac.cpp:1297
+
IRac::lg
void lg(IRLgAc *ac, const lg_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan)
Send a LG A/C message with the supplied settings.
Definition: IRac.cpp:1303
IRDelonghiAc
Class for handling detailed Delonghi A/C messages.
Definition: ir_Delonghi.h:73
IRCoronaAc
Class for handling detailed Corona A/C messages.
Definition: ir_Corona.h:107
-
IRac::kelvinator
void kelvinator(IRKelvinatorAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool light, const bool filter, const bool clean)
Send a Kelvinator A/C message with the supplied settings.
Definition: IRac.cpp:1263
+
IRac::kelvinator
void kelvinator(IRKelvinatorAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool light, const bool filter, const bool clean)
Send a Kelvinator A/C message with the supplied settings.
Definition: IRac.cpp:1269
IRDaikin2
Class for handling detailed Daikin 312-bit A/C messages.
Definition: ir_Daikin.h:740
+
IRac::fujitsu
void fujitsu(IRFujitsuAC *ac, const fujitsu_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool econo, const bool filter, const bool clean, const int16_t sleep=-1)
Send a Fujitsu A/C message with the supplied settings.
Definition: IRac.cpp:907
ir_Neoclima.h
Support for Neoclima protocols. Analysis by crankyoldgit & AndreyShpilevoy.
IRDaikin128
Class for handling detailed Daikin 128-bit A/C messages.
Definition: ir_Daikin.h:1001
stdAc::fanspeed_t
fanspeed_t
Common A/C settings for Fan Speeds.
Definition: IRsend.h:58
ir_Sharp.h
Support for Sharp protocols.
-
IRac::fanspeedToString
static String fanspeedToString(const stdAc::fanspeed_t speed)
Convert the supplied fan speed enum into the appropriate String.
Definition: IRac.cpp:3048
-
whirlpool_ac_remote_model_t
whirlpool_ac_remote_model_t
Whirlpool A/C model numbers.
Definition: IRsend.h:169
+
IRac::fanspeedToString
static String fanspeedToString(const stdAc::fanspeed_t speed)
Convert the supplied fan speed enum into the appropriate String.
Definition: IRac.cpp:3094
+
whirlpool_ac_remote_model_t
whirlpool_ac_remote_model_t
Whirlpool A/C model numbers.
Definition: IRsend.h:170
ir_Carrier.h
Carrier A/C.
-
IRac::whirlpool
void whirlpool(IRWhirlpoolAc *ac, const whirlpool_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool light, const int16_t sleep=-1, const int16_t clock=-1)
Send a Whirlpool A/C message with the supplied settings.
Definition: IRac.cpp:2080
+
IRac::whirlpool
void whirlpool(IRWhirlpoolAc *ac, const whirlpool_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool light, const int16_t sleep=-1, const int16_t clock=-1)
Send a Whirlpool A/C message with the supplied settings.
Definition: IRac.cpp:2117
decode_results
Results returned from the decoder.
Definition: IRrecv.h:92
-
IRac::daikin64
void daikin64(IRDaikin64 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool quiet, const bool turbo, const int16_t sleep=-1, const int16_t clock=-1)
Send a Daikin 64-bit A/C message with the supplied settings.
Definition: IRac.cpp:764
-
IRac::voltas
void voltas(IRVoltas *ac, const voltas_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool econo, const bool light, const int16_t sleep=-1)
Send a Voltas A/C message with the supplied settings.
Definition: IRac.cpp:2039
-
IRac::tcl112
void tcl112(IRTcl112Ac *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool light, const bool econo, const bool filter)
Send a TCL 112-bit A/C message with the supplied settings.
Definition: IRac.cpp:1822
-
IRac::transcold
void transcold(IRTranscoldAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh)
Send a Transcold A/C message with the supplied settings.
Definition: IRac.cpp:2117
-
IRac::sendAc
bool sendAc(void)
Send an A/C message based soley on our internal state.
Definition: IRac.cpp:2767
-
IRac::cmpStates
static bool cmpStates(const stdAc::state_t a, const stdAc::state_t b)
Compare two AirCon states.
Definition: IRac.cpp:2778
+
IRac::daikin64
void daikin64(IRDaikin64 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool quiet, const bool turbo, const int16_t sleep=-1, const int16_t clock=-1)
Send a Daikin 64-bit A/C message with the supplied settings.
Definition: IRac.cpp:768
+
IRac::voltas
void voltas(IRVoltas *ac, const voltas_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool econo, const bool light, const int16_t sleep=-1)
Send a Voltas A/C message with the supplied settings.
Definition: IRac.cpp:2076
+
IRac::tcl112
void tcl112(IRTcl112Ac *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool light, const bool econo, const bool filter)
Send a TCL 112-bit A/C message with the supplied settings.
Definition: IRac.cpp:1828
+
IRac::transcold
void transcold(IRTranscoldAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh)
Send a Transcold A/C message with the supplied settings.
Definition: IRac.cpp:2154
+
IRac::sendAc
bool sendAc(void)
Send an A/C message based soley on our internal state.
Definition: IRac.cpp:2813
+
IRac::cmpStates
static bool cmpStates(const stdAc::state_t a, const stdAc::state_t b)
Compare two AirCon states.
Definition: IRac.cpp:2824
ir_Midea.h
Support for Midea protocols. Midea added by crankyoldgit & bwze.
ir_Daikin.h
Support for Daikin A/C protocols.
-
gree_ac_remote_model_t
gree_ac_remote_model_t
Gree A/C model numbers.
Definition: IRsend.h:133
+
gree_ac_remote_model_t
gree_ac_remote_model_t
Gree A/C model numbers.
Definition: IRsend.h:134
IRDaikin64
Class for handling detailed Daikin 64-bit A/C messages.
Definition: ir_Daikin.h:1131
ir_Coolix.h
Support for Coolix A/C protocols.
-
IRac::vestel
void vestel(IRVestelAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool filter, const int16_t sleep=-1, const int16_t clock=-1, const bool sendNormal=true)
Send a Vestel A/C message with the supplied settings.
Definition: IRac.cpp:1997
+
IRac::vestel
void vestel(IRVestelAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool filter, const int16_t sleep=-1, const int16_t clock=-1, const bool sendNormal=true)
Send a Vestel A/C message with the supplied settings.
Definition: IRac.cpp:2034
IRHitachiAc424
Class for handling detailed Hitachi 53-byte/424-bit A/C messages.
Definition: ir_Hitachi.h:371
-
IRac::daikin
void daikin(IRDaikinESP *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool econo, const bool clean)
Send a Daikin A/C message with the supplied settings.
Definition: IRac.cpp:531
-
IRac::IRac
IRac(const uint16_t pin, const bool inverted=false, const bool use_modulation=true)
Class constructor.
Definition: IRac.cpp:55
+
IRac::daikin
void daikin(IRDaikinESP *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool econo, const bool clean)
Send a Daikin A/C message with the supplied settings.
Definition: IRac.cpp:535
+
IRac::IRac
IRac(const uint16_t pin, const bool inverted=false, const bool use_modulation=true)
Class constructor.
Definition: IRac.cpp:56
IRDaikin216
Class for handling detailed Daikin 216-bit A/C messages.
Definition: ir_Daikin.h:836
IRVoltas
Class for handling detailed Voltas A/C messages.
Definition: ir_Voltas.h:90
-
hitachi_ac1_remote_model_t
hitachi_ac1_remote_model_t
HITACHI_AC1 A/C model numbers.
Definition: IRsend.h:139
-
IRac::samsung
void samsung(IRSamsungAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool quiet, const bool turbo, const bool light, const bool filter, const bool clean, const bool beep, const bool prevpower=true, const bool forcepower=true)
Send a Samsung A/C message with the supplied settings.
Definition: IRac.cpp:1684
-
IRac::daikin128
void daikin128(IRDaikin128 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool quiet, const bool turbo, const bool light, const bool econo, const int16_t sleep=-1, const int16_t clock=-1)
Send a Daikin 128-bit A/C message with the supplied settings.
Definition: IRac.cpp:571
+
hitachi_ac1_remote_model_t
hitachi_ac1_remote_model_t
HITACHI_AC1 A/C model numbers.
Definition: IRsend.h:140
+
IRac::samsung
void samsung(IRSamsungAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool quiet, const bool turbo, const bool light, const bool filter, const bool clean, const bool beep, const bool prevpower=true, const bool forcepower=true)
Send a Samsung A/C message with the supplied settings.
Definition: IRac.cpp:1690
+
IRac::daikin128
void daikin128(IRDaikin128 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool quiet, const bool turbo, const bool light, const bool econo, const int16_t sleep=-1, const int16_t clock=-1)
Send a Daikin 128-bit A/C message with the supplied settings.
Definition: IRac.cpp:575
IRHitachiAc
Class for handling detailed Hitachi 224-bit A/C messages.
Definition: ir_Hitachi.h:246
-
kGpioUnused
const int8_t kGpioUnused
A placeholder for not using an actual GPIO.
Definition: IRac.h:46
-
IRAcUtils
Common functions for use with all A/Cs supported by the IRac class.
Definition: IRac.cpp:3117
+
kGpioUnused
const int8_t kGpioUnused
A placeholder for not using an actual GPIO.
Definition: IRac.h:47
+
IRAcUtils
Common functions for use with all A/Cs supported by the IRac class.
Definition: IRac.cpp:3163
IRSanyoAc
Class for handling detailed Sanyo A/C messages.
Definition: ir_Sanyo.h:106
-
IRac::haier
void haier(IRHaierAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool filter, const int16_t sleep=-1, const int16_t clock=-1)
Send a Haier A/C message with the supplied settings.
Definition: IRac.cpp:1046
+
IRac::haier
void haier(IRHaierAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool filter, const int16_t sleep=-1, const int16_t clock=-1)
Send a Haier A/C message with the supplied settings.
Definition: IRac.cpp:1052
IRWhirlpoolAc
Class for handling detailed Whirlpool A/C messages.
Definition: ir_Whirlpool.h:132
IRHitachiAc344
Class for handling detailed Hitachi 344-bit A/C messages.
Definition: ir_Hitachi.h:459
-
IRac::boolToString
static String boolToString(const bool value)
Convert the supplied boolean into the appropriate String.
Definition: IRac.cpp:3019
-
IRac::next
stdAc::state_t next
The state we want the device to be in after we send.
Definition: IRac.h:98
-
String
std::string String
Definition: IRremoteESP8266.h:1208
+
IRac::boolToString
static String boolToString(const bool value)
Convert the supplied boolean into the appropriate String.
Definition: IRac.cpp:3065
+
IRac::next
stdAc::state_t next
The state we want the device to be in after we send.
Definition: IRac.h:99
+
String
std::string String
Definition: IRremoteESP8266.h:1217
IRMitsubishiAC
Class for handling detailed Mitsubishi 144-bit A/C messages.
Definition: ir_Mitsubishi.h:242
-
IRac::trotec
void trotec(IRTrotecESP *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const int16_t sleep=-1)
Send a Trotec A/C message with the supplied settings.
Definition: IRac.cpp:1960
-
IRac::strToModel
static int16_t strToModel(const char *str, const int16_t def=-1)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:2938
+
IRac::trotec
void trotec(IRTrotecESP *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const int16_t sleep=-1)
Send a Trotec A/C message with the supplied settings.
Definition: IRac.cpp:1966
+
IRac::strToModel
static int16_t strToModel(const char *str, const int16_t def=-1)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:2984
IRAmcorAc
Class for handling detailed Amcor A/C messages.
Definition: ir_Amcor.h:90
IRMitsubishi112
Class for handling detailed Mitsubishi 122-bit A/C messages.
Definition: ir_Mitsubishi.h:362
ir_Ecoclim.h
EcoClim A/C protocol.
IRTcl112Ac
Class for handling detailed TCL A/C messages.
Definition: ir_Tcl.h:89
-
IRac::daikin176
void daikin176(IRDaikin176 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingh_t swingh)
Send a Daikin 176-bit A/C message with the supplied settings.
Definition: IRac.cpp:663
+
IRac::daikin176
void daikin176(IRDaikin176 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingh_t swingh)
Send a Daikin 176-bit A/C message with the supplied settings.
Definition: IRac.cpp:667
IRElectraAc
Class for handling detailed Electra A/C messages.
Definition: ir_Electra.h:98
ir_Tcl.h
Support for TCL protocols.
-
IRac::hasStateChanged
bool hasStateChanged(void)
Check if the internal state has changed from what was previously sent.
Definition: IRac.cpp:2790
-
IRac::haierYrwo2
void haierYrwo2(IRHaierACYRW02 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool filter, const int16_t sleep=-1)
Send a Haier YRWO2 A/C message with the supplied settings.
Definition: IRac.cpp:1083
-
IRac::daikin216
void daikin216(IRDaikin216 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo)
Send a Daikin 216-bit A/C message with the supplied settings.
Definition: IRac.cpp:734
+
IRac::hasStateChanged
bool hasStateChanged(void)
Check if the internal state has changed from what was previously sent.
Definition: IRac.cpp:2836
+
IRac::haierYrwo2
void haierYrwo2(IRHaierACYRW02 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool filter, const int16_t sleep=-1)
Send a Haier YRWO2 A/C message with the supplied settings.
Definition: IRac.cpp:1089
+
IRac::daikin216
void daikin216(IRDaikin216 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo)
Send a Daikin 216-bit A/C message with the supplied settings.
Definition: IRac.cpp:738
ir_Transcold.h
Support for Transcold A/C protocols.
ir_Hitachi.h
Support for Hitachi A/C protocols.
ir_Panasonic.h
Support for Panasonic protocols.
-
IRac::handleToggles
static stdAc::state_t handleToggles(const stdAc::state_t desired, const stdAc::state_t *prev=NULL)
Create a new state base on desired & previous states but handle any state changes for options that ne...
Definition: IRac.cpp:2166
+
IRac::handleToggles
static stdAc::state_t handleToggles(const stdAc::state_t desired, const stdAc::state_t *prev=NULL)
Create a new state base on desired & previous states but handle any state changes for options that ne...
Definition: IRac.cpp:2203
IRMitsubishi136
Class for handling detailed Mitsubishi 136-bit A/C messages.
Definition: ir_Mitsubishi.h:308
-
panasonic_ac_remote_model_t
panasonic_ac_remote_model_t
Panasonic A/C model numbers.
Definition: IRsend.h:145
+
panasonic_ac_remote_model_t
panasonic_ac_remote_model_t
Panasonic A/C model numbers.
Definition: IRsend.h:146
IRremoteESP8266.h
stdAc::swingh_t
swingh_t
Common A/C settings for Horizontal Swing.
Definition: IRsend.h:83
-
IRac::mitsubishi112
void mitsubishi112(IRMitsubishi112 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet)
Send a Mitsubishi 112-bit A/C message with the supplied settings.
Definition: IRac.cpp:1409
-
IRAcUtils::decodeToState
bool decodeToState(const decode_results *decode, stdAc::state_t *result, const stdAc::state_t *prev)
Convert a valid IR A/C remote message that we understand enough into a Common A/C state.
Definition: IRac.cpp:3496
+
IRac::mitsubishi112
void mitsubishi112(IRMitsubishi112 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet)
Send a Mitsubishi 112-bit A/C message with the supplied settings.
Definition: IRac.cpp:1415
+
IRAcUtils::decodeToState
bool decodeToState(const decode_results *decode, stdAc::state_t *result, const stdAc::state_t *prev)
Convert a valid IR A/C remote message that we understand enough into a Common A/C state.
Definition: IRac.cpp:3549
IRHitachiAc1
Class for handling detailed Hitachi 104-bit A/C messages.
Definition: ir_Hitachi.h:303
-
IRac::hitachi424
void hitachi424(IRHitachiAc424 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv)
Send a Hitachi 424-bit A/C message with the supplied settings.
Definition: IRac.cpp:1225
+
IRac::hitachi424
void hitachi424(IRHitachiAc424 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv)
Send a Hitachi 424-bit A/C message with the supplied settings.
Definition: IRac.cpp:1231
ir_Samsung.h
Support for Samsung protocols. Samsung originally added from https://github.com/shirriff/Arduino-IRre...
-
IRAcUtils::resultAcToString
String resultAcToString(const decode_results *const result)
Display the human readable state of an A/C message if we can.
Definition: IRac.cpp:3123
-
IRac::daikin152
void daikin152(IRDaikin152 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool quiet, const bool turbo, const bool econo)
Send a Daikin 152-bit A/C message with the supplied settings.
Definition: IRac.cpp:608
+
IRAcUtils::resultAcToString
String resultAcToString(const decode_results *const result)
Display the human readable state of an A/C message if we can.
Definition: IRac.cpp:3169
+
IRac::daikin152
void daikin152(IRDaikin152 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool quiet, const bool turbo, const bool econo)
Send a Daikin 152-bit A/C message with the supplied settings.
Definition: IRac.cpp:612
fujitsu_ac_remote_model_t
fujitsu_ac_remote_model_t
Fujitsu A/C model numbers.
Definition: IRsend.h:120
ir_Gree.h
Support for Gree A/C protocols.
IRCarrierAc64
Class for handling detailed Carrier 64 bit A/C messages.
Definition: ir_Carrier.h:84
IRMideaAC
Class for handling detailed Midea A/C messages.
Definition: ir_Midea.h:151
IRKelvinatorAC
Class for handling detailed Kelvinator A/C messages.
Definition: ir_Kelvinator.h:121
-
IRac::_inverted
bool _inverted
IR LED is lit when GPIO is LOW (true) or HIGH (false)?
Definition: IRac.h:104
-
IRFujitsuAC
Class for handling detailed Fujitsu A/C messages.
Definition: ir_Fujitsu.h:157
+
IRac::_inverted
bool _inverted
IR LED is lit when GPIO is LOW (true) or HIGH (false)?
Definition: IRac.h:105
+
IRFujitsuAC
Class for handling detailed Fujitsu A/C messages.
Definition: ir_Fujitsu.h:169
ir_MitsubishiHeavy.h
Support for Mitsubishi Heavy Industry protocols. Code to emulate Mitsubishi Heavy Industries A/C IR r...
IRCoolixAC
Class for handling detailed Coolix A/C messages.
Definition: ir_Coolix.h:112
-
IRac::midea
void midea(IRMideaAC *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool econo, const bool light, const int16_t sleep=-1)
Send a Midea A/C message with the supplied settings.
Definition: IRac.cpp:1334
-
IRac::panasonic
void panasonic(IRPanasonicAc *ac, const panasonic_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool filter, const int16_t clock=-1)
Send a Panasonic A/C message with the supplied settings.
Definition: IRac.cpp:1606
-
IRac::swingvToString
static String swingvToString(const stdAc::swingv_t swingv)
Convert the supplied enum into the appropriate String.
Definition: IRac.cpp:3070
+
IRac::midea
void midea(IRMideaAC *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool econo, const bool light, const int16_t sleep=-1)
Send a Midea A/C message with the supplied settings.
Definition: IRac.cpp:1340
+
IRac::panasonic
void panasonic(IRPanasonicAc *ac, const panasonic_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool filter, const int16_t clock=-1)
Send a Panasonic A/C message with the supplied settings.
Definition: IRac.cpp:1612
+
IRac::swingvToString
static String swingvToString(const stdAc::swingv_t swingv)
Convert the supplied enum into the appropriate String.
Definition: IRac.cpp:3116
ir_Mitsubishi.h
Support for Mitsubishi protocols. Mitsubishi (TV) decoding added from https://github....
-
IRac
A universal/common/generic interface for controling supported A/Cs.
Definition: IRac.h:50
+
IRac
A universal/common/generic interface for controling supported A/Cs.
Definition: IRac.h:51
ir_Teco.h
Support for Teco protocols.
-
IRac::gree
void gree(IRGreeAC *ac, const gree_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool light, const bool clean, const int16_t sleep=-1)
Send a Gree A/C message with the supplied settings.
Definition: IRac.cpp:1008
+
IRac::gree
void gree(IRGreeAC *ac, const gree_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool light, const bool clean, const int16_t sleep=-1)
Send a Gree A/C message with the supplied settings.
Definition: IRac.cpp:1014
ir_Delonghi.h
Delonghi A/C.
-
IRac::electra
void electra(IRElectraAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool lighttoggle, const bool clean)
Send an Electra A/C message with the supplied settings.
Definition: IRac.cpp:860
-
IRac::cleanState
static stdAc::state_t cleanState(const stdAc::state_t state)
Create a new state base on the provided state that has been suitably fixed.
Definition: IRac.cpp:2153
+
IRac::electra
void electra(IRElectraAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool lighttoggle, const bool clean)
Send an Electra A/C message with the supplied settings.
Definition: IRac.cpp:864
+
IRac::cleanState
static stdAc::state_t cleanState(const stdAc::state_t state)
Create a new state base on the provided state that has been suitably fixed.
Definition: IRac.cpp:2190
ir_Argo.h
Support for Argo Ulisse 13 DCI Mobile Split ACs.
-
IRac::mitsubishi
void mitsubishi(IRMitsubishiAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const int16_t clock=-1)
Send a Mitsubishi A/C message with the supplied settings.
Definition: IRac.cpp:1372
-
IRac::amcor
void amcor(IRAmcorAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan)
Send an Amcor A/C message with the supplied settings.
Definition: IRac.cpp:334
+
IRac::mitsubishi
void mitsubishi(IRMitsubishiAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const int16_t clock=-1)
Send a Mitsubishi A/C message with the supplied settings.
Definition: IRac.cpp:1378
+
IRac::amcor
void amcor(IRAmcorAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan)
Send an Amcor A/C message with the supplied settings.
Definition: IRac.cpp:338
IRTechnibelAc
Class for handling detailed Technibel A/C messages.
Definition: ir_Technibel.h:77
IREcoclimAc
Class for handling detailed EcoClim A/C 56 bit messages.
Definition: ir_Ecoclim.h:84
IRAirwellAc
Class for handling detailed Airwell A/C messages.
Definition: ir_Airwell.h:60
@@ -656,65 +664,67 @@ $(function() {
IRLgAc
Class for handling detailed LG A/C messages.
Definition: ir_LG.h:67
ir_Fujitsu.h
Support for Fujitsu A/C protocols. Fujitsu A/C support added by Jonny Graham.
IRHaierAC
Class for handling detailed Haier A/C messages.
Definition: ir_Haier.h:244
-
IRac::neoclima
void neoclima(IRNeoclimaAc *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool econo, const bool light, const bool filter, const int16_t sleep=-1)
Send a Neoclima A/C message with the supplied settings.
Definition: IRac.cpp:1565
+
IRac::neoclima
void neoclima(IRNeoclimaAc *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool econo, const bool light, const bool filter, const int16_t sleep=-1)
Send a Neoclima A/C message with the supplied settings.
Definition: IRac.cpp:1571
IRDaikin160
Class for handling detailed Daikin 160-bit A/C messages.
Definition: ir_Daikin.h:892
-
IRac::opmodeToString
static String opmodeToString(const stdAc::opmode_t mode)
Convert the supplied operation mode into the appropriate String.
Definition: IRac.cpp:3026
+
IRac::opmodeToString
static String opmodeToString(const stdAc::opmode_t mode)
Convert the supplied operation mode into the appropriate String.
Definition: IRac.cpp:3072
IRSharpAc
Class for handling detailed Sharp A/C messages.
Definition: ir_Sharp.h:137
-
IRac::toshiba
void toshiba(IRToshibaAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool econo)
Send a Toshiba A/C message with the supplied settings.
Definition: IRac.cpp:1924
+
IRac::toshiba
void toshiba(IRToshibaAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool econo)
Send a Toshiba A/C message with the supplied settings.
Definition: IRac.cpp:1930
ir_Goodweather.h
Support for Goodweather compatible HVAC protocols.
-
IRac::argo
void argo(IRArgoAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const int16_t sleep=-1)
Send an Argo A/C message with the supplied settings.
Definition: IRac.cpp:366
-
lg_ac_remote_model_t
lg_ac_remote_model_t
LG A/C model numbers.
Definition: IRsend.h:175
-
IRac::mitsubishi136
void mitsubishi136(IRMitsubishi136 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool quiet)
Send a Mitsubishi 136-bit A/C message with the supplied settings.
Definition: IRac.cpp:1445
+
IRac::argo
void argo(IRArgoAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const int16_t sleep=-1)
Send an Argo A/C message with the supplied settings.
Definition: IRac.cpp:370
+
lg_ac_remote_model_t
lg_ac_remote_model_t
LG A/C model numbers.
Definition: IRsend.h:176
+
IRac::mitsubishi136
void mitsubishi136(IRMitsubishi136 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool quiet)
Send a Mitsubishi 136-bit A/C message with the supplied settings.
Definition: IRac.cpp:1451
stdAc::fanspeed_t::kAuto
@ kAuto
-
IRac::_modulation
bool _modulation
Is frequency modulation to be used?
Definition: IRac.h:105
-
IRac::teco
void teco(IRTecoAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool light, const int16_t sleep=-1)
Send a Teco A/C message with the supplied settings.
Definition: IRac.cpp:1891
-
IRac::strToOpmode
static stdAc::opmode_t strToOpmode(const char *str, const stdAc::opmode_t def=stdAc::opmode_t::kAuto)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:2796
+
IRac::_modulation
bool _modulation
Is frequency modulation to be used?
Definition: IRac.h:106
+
IRac::teco
void teco(IRTecoAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool light, const int16_t sleep=-1)
Send a Teco A/C message with the supplied settings.
Definition: IRac.cpp:1897
+
IRac::strToOpmode
static stdAc::opmode_t strToOpmode(const char *str, const stdAc::opmode_t def=stdAc::opmode_t::kAuto)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:2842
ir_Sanyo.h
Support for Sanyo protocols. Sanyo LC7461 support originally by marcosamarinho Sanyo SA 8650B origina...
-
IRac::hitachi1
void hitachi1(IRHitachiAc1 *ac, const hitachi_ac1_remote_model_t model, const bool on, const bool power_toggle, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool swing_toggle, const int16_t sleep=-1)
Send a Hitachi1 A/C message with the supplied settings.
Definition: IRac.cpp:1152
+
IRac::hitachi1
void hitachi1(IRHitachiAc1 *ac, const hitachi_ac1_remote_model_t model, const bool on, const bool power_toggle, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool swing_toggle, const int16_t sleep=-1)
Send a Hitachi1 A/C message with the supplied settings.
Definition: IRac.cpp:1158
IRTranscoldAc
Class for handling detailed Transcold A/C messages.
Definition: ir_Transcold.h:120
stdAc::swingh_t::kOff
@ kOff
-
IRac::panasonic32
void panasonic32(IRPanasonicAc32 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh)
Send a Panasonic A/C message with the supplied settings.
Definition: IRac.cpp:1642
+
IRac::panasonic32
void panasonic32(IRPanasonicAc32 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh)
Send a Panasonic A/C message with the supplied settings.
Definition: IRac.cpp:1648
ir_Whirlpool.h
Support for Whirlpool protocols. Decoding help from: @redmusicxd, @josh929800, @raducostea.
-
IRac::strToBool
static bool strToBool(const char *str, const bool def=false)
Convert the supplied str into the appropriate boolean value.
Definition: IRac.cpp:3001
-
IRac::mitsubishiHeavy88
void mitsubishiHeavy88(IRMitsubishiHeavy88Ac *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool econo, const bool clean)
Send a Mitsubishi Heavy 88-bit A/C message with the supplied settings.
Definition: IRac.cpp:1480
-
IRac::strToSwingV
static stdAc::swingv_t strToSwingV(const char *str, const stdAc::swingv_t def=stdAc::swingv_t::kOff)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:2857
+
IRac::strToBool
static bool strToBool(const char *str, const bool def=false)
Convert the supplied str into the appropriate boolean value.
Definition: IRac.cpp:3047
+
IRac::mitsubishiHeavy88
void mitsubishiHeavy88(IRMitsubishiHeavy88Ac *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool econo, const bool clean)
Send a Mitsubishi Heavy 88-bit A/C message with the supplied settings.
Definition: IRac.cpp:1486
+
IRac::strToSwingV
static stdAc::swingv_t strToSwingV(const char *str, const stdAc::swingv_t def=stdAc::swingv_t::kOff)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:2903
IRVestelAc
Class for handling detailed Vestel A/C messages.
Definition: ir_Vestel.h:100
IRPanasonicAc32
Class for handling detailed Panasonic 32bit A/C messages.
Definition: ir_Panasonic.h:219
IRTrotecESP
Class for handling detailed Trotec A/C messages.
Definition: ir_Trotec.h:91
+
ir_Truma.h
Support for Truma protocol.
IRTecoAc
Class for handling detailed Teco A/C messages.
Definition: ir_Teco.h:62
-
IRac::swinghToString
static String swinghToString(const stdAc::swingh_t swingh)
Convert the supplied enum into the appropriate String.
Definition: IRac.cpp:3094
-
IRac::fujitsu
void fujitsu(IRFujitsuAC *ac, const fujitsu_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool econo, const bool filter, const bool clean, const int16_t sleep=-1)
Send a Fujitsu A/C message with the supplied settings.
Definition: IRac.cpp:902
+
IRac::truma
void truma(IRTrumaAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const bool quiet)
Send a Truma A/C message with the supplied settings.
Definition: IRac.cpp:1997
+
IRac::swinghToString
static String swinghToString(const stdAc::swingh_t swingh)
Convert the supplied enum into the appropriate String.
Definition: IRac.cpp:3140
+
IRTrumaAc
Class for handling detailed Truma A/C messages.
Definition: ir_Truma.h:69
ir_Technibel.h
Support for Technibel protocol.
-
IRac::delonghiac
void delonghiac(IRDelonghiAc *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const bool turbo, const int16_t sleep=-1)
Send a Delonghi A/C message with the supplied settings.
Definition: IRac.cpp:794
-
IRac::_prev
stdAc::state_t _prev
The state we expect the device to currently be in.
Definition: IRac.h:106
+
IRac::delonghiac
void delonghiac(IRDelonghiAc *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const bool turbo, const int16_t sleep=-1)
Send a Delonghi A/C message with the supplied settings.
Definition: IRac.cpp:798
+
IRac::_prev
stdAc::state_t _prev
The state we expect the device to currently be in.
Definition: IRac.h:107
IRHaierACYRW02
Class for handling detailed Haier ACYRW02 A/C messages.
Definition: ir_Haier.h:314
-
IRac::daikin160
void daikin160(IRDaikin160 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv)
Send a Daikin 160-bit A/C message with the supplied settings.
Definition: IRac.cpp:641
-
IRac::corona
void corona(IRCoronaAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool econo)
Send a Corona A/C message with the supplied settings.
Definition: IRac.cpp:496
-
IRac::initState
static void initState(stdAc::state_t *state, const decode_type_t vendor, const int16_t model, const bool power, const stdAc::opmode_t mode, const float degrees, const bool celsius, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool econo, const bool light, const bool filter, const bool clean, const bool beep, const int16_t sleep, const int16_t clock)
Initialise the given state with the supplied settings.
Definition: IRac.cpp:86
-
IRac::mitsubishiHeavy152
void mitsubishiHeavy152(IRMitsubishiHeavy152Ac *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool econo, const bool filter, const bool clean, const int16_t sleep=-1)
Send a Mitsubishi Heavy 152-bit A/C message with the supplied settings.
Definition: IRac.cpp:1521
+
IRac::daikin160
void daikin160(IRDaikin160 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv)
Send a Daikin 160-bit A/C message with the supplied settings.
Definition: IRac.cpp:645
+
IRac::corona
void corona(IRCoronaAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool econo)
Send a Corona A/C message with the supplied settings.
Definition: IRac.cpp:500
+
IRac::initState
static void initState(stdAc::state_t *state, const decode_type_t vendor, const int16_t model, const bool power, const stdAc::opmode_t mode, const float degrees, const bool celsius, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool econo, const bool light, const bool filter, const bool clean, const bool beep, const int16_t sleep, const int16_t clock)
Initialise the given state with the supplied settings.
Definition: IRac.cpp:87
+
IRac::mitsubishiHeavy152
void mitsubishiHeavy152(IRMitsubishiHeavy152Ac *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool econo, const bool filter, const bool clean, const int16_t sleep=-1)
Send a Mitsubishi Heavy 152-bit A/C message with the supplied settings.
Definition: IRac.cpp:1527
stdAc::swingv_t::kOff
@ kOff
ir_Haier.h
Support for Haier A/C protocols. The specifics of reverse engineering the protocols details:
IRMitsubishiHeavy88Ac
Class for handling detailed Mitsubishi Heavy 88-bit A/C messages.
Definition: ir_MitsubishiHeavy.h:271
IRGreeAC
Class for handling detailed Gree A/C messages.
Definition: ir_Gree.h:133
-
IRac::coolix
void coolix(IRCoolixAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool light, const bool clean, const int16_t sleep=-1)
Send a Coolix A/C message with the supplied settings.
Definition: IRac.cpp:435
-
IRac::strToFanspeed
static stdAc::fanspeed_t strToFanspeed(const char *str, const stdAc::fanspeed_t def=stdAc::fanspeed_t::kAuto)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:2826
+
IRac::coolix
void coolix(IRCoolixAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool light, const bool clean, const int16_t sleep=-1)
Send a Coolix A/C message with the supplied settings.
Definition: IRac.cpp:439
+
IRac::strToFanspeed
static stdAc::fanspeed_t strToFanspeed(const char *str, const stdAc::fanspeed_t def=stdAc::fanspeed_t::kAuto)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:2872
ir_Toshiba.h
Support for Toshiba protocols.
-
IRac::goodweather
void goodweather(IRGoodweatherAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool light, const int16_t sleep=-1)
Send a Goodweather A/C message with the supplied settings.
Definition: IRac.cpp:966
+
IRac::goodweather
void goodweather(IRGoodweatherAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool light, const int16_t sleep=-1)
Send a Goodweather A/C message with the supplied settings.
Definition: IRac.cpp:972
stdAc::state_t
Structure to hold a common A/C state.
Definition: IRsend.h:97
IRGoodweatherAc
Class for handling detailed Goodweather A/C messages.
Definition: ir_Goodweather.h:100
ir_Vestel.h
Support for Vestel protocols. Vestel added by Erdem U. Altinyurt.
ir_Corona.h
IRArgoAC
Class for handling detailed Argo A/C messages.
Definition: ir_Argo.h:127
IRNeoclimaAc
Class for handling detailed Neoclima A/C messages.
Definition: ir_Neoclima.h:120
-
IRac::isProtocolSupported
static bool isProtocolSupported(const decode_type_t protocol)
Is the given protocol supported by the IRac class?
Definition: IRac.cpp:139
+
IRac::isProtocolSupported
static bool isProtocolSupported(const decode_type_t protocol)
Is the given protocol supported by the IRac class?
Definition: IRac.cpp:140
IRDaikin176
Class for handling detailed Daikin 176-bit A/C messages.
Definition: ir_Daikin.h:944
ir_Amcor.h
Amcor A/C protocol.
-
IRac::_pin
uint16_t _pin
The GPIO to use to transmit messages from.
Definition: IRac.h:103
-
IRac::technibel
void technibel(IRTechnibelAc *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const int16_t sleep=-1)
Send a Technibel A/C message with the supplied settings.
Definition: IRac.cpp:1858
-
voltas_ac_remote_model_t
voltas_ac_remote_model_t
Voltas A/C model numbers.
Definition: IRsend.h:163
-
sharp_ac_remote_model_t
sharp_ac_remote_model_t
Sharp A/C model numbers.
Definition: IRsend.h:156
+
IRac::_pin
uint16_t _pin
The GPIO to use to transmit messages from.
Definition: IRac.h:104
+
IRac::technibel
void technibel(IRTechnibelAc *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const int16_t sleep=-1)
Send a Technibel A/C message with the supplied settings.
Definition: IRac.cpp:1864
+
voltas_ac_remote_model_t
voltas_ac_remote_model_t
Voltas A/C model numbers.
Definition: IRsend.h:164
+
sharp_ac_remote_model_t
sharp_ac_remote_model_t
Sharp A/C model numbers.
Definition: IRsend.h:157
ir_LG.h
Support for LG protocols.
-
IRac::carrier64
void carrier64(IRCarrierAc64 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const int16_t sleep=-1)
Send a Carrier 64-bit A/C message with the supplied settings.
Definition: IRac.cpp:398
+
IRac::carrier64
void carrier64(IRCarrierAc64 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const int16_t sleep=-1)
Send a Carrier 64-bit A/C message with the supplied settings.
Definition: IRac.cpp:402
stdAc::opmode_t
opmode_t
Common A/C settings for A/C operating modes.
Definition: IRsend.h:46