diff --git a/README.md b/README.md index cf67962a4..5498e3fd9 100644 --- a/README.md +++ b/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.15 Now Available -Version 2.7.15 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.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. #### 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/README_de.md b/README_de.md index 770e061cf..adf6363d5 100644 --- a/README_de.md +++ b/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.15 jetzt verfügbar -Version 2.7.15 der Bibliothek ist nun [verfügbar](https://github.com/crankyoldgit/IRremoteESP8266/releases/latest). Die [Versionshinweise](ReleaseNotes.md) enthalten alle wichtigen Neuerungen. +## 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. #### 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/README_fr.md b/README_fr.md index 820731366..58c06eb9d 100644 --- a/README_fr.md +++ b/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.15 disponible -Version 2.7.15 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.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. #### 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/ReleaseNotes.md b/ReleaseNotes.md index 7feab2ca3..451df9ced 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -1,5 +1,21 @@ # Release Notes +## _v2.7.16 (20210324)_ + +**[Features]** +- ToshibaAC: Swing handling and `setRaw()` improvements. (#1423 #1424 #1425) +- Support for XMP (Xfinity) protocol. (#1414 #1422) +- ToshibaAC: Adjust inter-message gap timing to improve matching. (#1420 #1421) +- Ecoclim: Add detailed A/C support (#1397 #1415) + +**[Misc]** +- [ESP32] Fix `addApbChangeCallback(): duplicate func` kernel msgs (#1434 #1435) +- refactor ir_Fujitsu (#1419) +- refactor ir_Whirlpool (#1416) +- refactor ir_Vestel (#1413) +- refactor ir_Trotec (#1412) + + ## _v2.7.15 (20210213)_ **[BREAKING CHANGES]** diff --git a/SupportedProtocols.md b/SupportedProtocols.md index 07a4506b2..eb16650fc 100644 --- a/SupportedProtocols.md +++ b/SupportedProtocols.md @@ -1,6 +1,6 @@ + Last generated: Wed 24 Mar 2021 09:41:27 +0000 ---> # IR Protocols supported by this library | Protocol | Brand | Model | A/C Model | Detailed A/C Support | @@ -22,7 +22,7 @@ | [Denon](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Denon.cpp) | **Denon** | AVR-3801 A/V Receiver (probably) | | - | | [Dish](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Dish.cpp) | **DISH NETWORK** | echostar 301 | | - | | [Doshisha](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Doshisha.cpp) | **Doshisha** | CZ-S32D LED Light
CZ-S38D LED Light
CZ-S50D LED Light
RCZ01 remote | | - | -| [EcoClim](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_EcoClim.cpp) | **EcoClim** | HYSFR-P348 remote
ZC200DPO A/C | | - | +| [Ecoclim](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Ecoclim.cpp) | **[EcoClim](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Ecoclim.h)** | HYSFR-P348 remote
ZC200DPO A/C | | Yes | | [Electra](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Electra.cpp) | **[AUX](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Electra.h)** | KFR-35GW/BpNFW=3 A/C
YKR-T/011 remote | | Yes | | [Electra](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Electra.cpp) | **[Electra](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Electra.h)** | Classic INV 17 / AXW12DCS A/C
YKR-M/003E remote | | Yes | | [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 | | - | @@ -94,7 +94,7 @@ | [Technibel](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Technibel.cpp) | **[Technibel](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Technibel.h)** | IRO PLUS | | Yes | | [Teco](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Teco.cpp) | **[Alaska](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Teco.h)** | SAC9010QC A/C
SAC9010QC remote | | Yes | | [Toshiba](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Toshiba.cpp) | **[Carrier](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Toshiba.h)** | 42NQV025M2 / 38NYV025M2 A/C
42NQV035M2 / 38NYV035M2 A/C
42NQV050M2 / 38NYV050M2 A/C
42NQV060M2 / 38NYV060M2 A/C | | Yes | -| [Toshiba](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Toshiba.cpp) | **[Toshiba](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Toshiba.h)** | Akita EVO II
RAS 18SKP-ES
RAS-B13N3KV2
RAS-B13N3KVP-E
WC-L03SE
WH-TA04NE | | Yes | +| [Toshiba](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Toshiba.cpp) | **[Toshiba](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Toshiba.h)** | Akita EVO II
RAS 18SKP-ES
RAS-2558V A/C
RAS-B13N3KV2
RAS-B13N3KVP-E
WC-L03SE
WH-TA04NE
WH-UB03NJ remote | | Yes | | [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 | @@ -102,6 +102,7 @@ | [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 | | [Whynter](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Whynter.cpp) | **Whynter** | ARC-110WD A/C | | - | +| [Xmp](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Xmp.cpp) | **Xfinity** | XR11 remote
XR2 remote | | - | | [Zepeal](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Zepeal.cpp) | **Zepeal** | DRT-A3311(BG) 5 button remote
DRT-A3311(BG) floor fan | | - | @@ -208,4 +209,5 @@ - VOLTAS - WHIRLPOOL_AC - WHYNTER +- XMP - ZEPEAL diff --git a/docs/doxygen/html/IRac_8h_source.html b/docs/doxygen/html/IRac_8h_source.html index eb32f990c..9809f9a1e 100644 --- a/docs/doxygen/html/IRac_8h_source.html +++ b/docs/doxygen/html/IRac_8h_source.html @@ -87,624 +87,634 @@
16 #include "ir_Daikin.h"
17 #include "ir_Delonghi.h"
18 #include "ir_Fujitsu.h"
-
19 #include "ir_Electra.h"
-
20 #include "ir_Goodweather.h"
-
21 #include "ir_Gree.h"
-
22 #include "ir_Haier.h"
-
23 #include "ir_Hitachi.h"
-
24 #include "ir_Kelvinator.h"
-
25 #include "ir_LG.h"
-
26 #include "ir_Midea.h"
-
27 #include "ir_Mitsubishi.h"
-
28 #include "ir_MitsubishiHeavy.h"
-
29 #include "ir_Neoclima.h"
-
30 #include "ir_Panasonic.h"
-
31 #include "ir_Samsung.h"
-
32 #include "ir_Sanyo.h"
-
33 #include "ir_Sharp.h"
-
34 #include "ir_Tcl.h"
-
35 #include "ir_Technibel.h"
-
36 #include "ir_Teco.h"
-
37 #include "ir_Toshiba.h"
-
38 #include "ir_Transcold.h"
-
39 #include "ir_Trotec.h"
-
40 #include "ir_Vestel.h"
-
41 #include "ir_Voltas.h"
-
42 #include "ir_Whirlpool.h"
-
43 
-
44 // Constants
-
45 const int8_t kGpioUnused = -1;
-
46 
-
47 // Class
-
49 class IRac {
-
50  public:
-
51  explicit IRac(const uint16_t pin, const bool inverted = false,
-
52  const bool use_modulation = true);
-
53  static bool isProtocolSupported(const decode_type_t protocol);
-
54  static void initState(stdAc::state_t *state,
-
55  const decode_type_t vendor, const int16_t model,
-
56  const bool power, const stdAc::opmode_t mode,
-
57  const float degrees, const bool celsius,
-
58  const stdAc::fanspeed_t fan,
-
59  const stdAc::swingv_t swingv,
-
60  const stdAc::swingh_t swingh,
-
61  const bool quiet, const bool turbo, const bool econo,
-
62  const bool light, const bool filter, const bool clean,
-
63  const bool beep, const int16_t sleep,
-
64  const int16_t clock);
-
65  static void initState(stdAc::state_t *state);
-
66  void markAsSent(void);
-
67  bool sendAc(void);
-
68  bool sendAc(const stdAc::state_t desired, const stdAc::state_t *prev = NULL);
-
69  bool sendAc(const decode_type_t vendor, const int16_t model,
-
70  const bool power, const stdAc::opmode_t mode, const float degrees,
-
71  const bool celsius, const stdAc::fanspeed_t fan,
-
72  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
73  const bool quiet, const bool turbo, const bool econo,
-
74  const bool light, const bool filter, const bool clean,
-
75  const bool beep, const int16_t sleep = -1,
-
76  const int16_t clock = -1);
-
77  static bool cmpStates(const stdAc::state_t a, const stdAc::state_t b);
-
78  static bool strToBool(const char *str, const bool def = false);
-
79  static int16_t strToModel(const char *str, const int16_t def = -1);
-
80  static stdAc::opmode_t strToOpmode(
-
81  const char *str, const stdAc::opmode_t def = stdAc::opmode_t::kAuto);
-
82  static stdAc::fanspeed_t strToFanspeed(
-
83  const char *str,
-
84  const stdAc::fanspeed_t def = stdAc::fanspeed_t::kAuto);
-
85  static stdAc::swingv_t strToSwingV(
-
86  const char *str, const stdAc::swingv_t def = stdAc::swingv_t::kOff);
-
87  static stdAc::swingh_t strToSwingH(
-
88  const char *str, const stdAc::swingh_t def = stdAc::swingh_t::kOff);
-
89  static String boolToString(const bool value);
-
90  static String opmodeToString(const stdAc::opmode_t mode);
-
91  static String fanspeedToString(const stdAc::fanspeed_t speed);
-
92  static String swingvToString(const stdAc::swingv_t swingv);
-
93  static String swinghToString(const stdAc::swingh_t swingh);
-
94  stdAc::state_t getState(void);
-
95  stdAc::state_t getStatePrev(void);
-
96  bool hasStateChanged(void);
-
97  stdAc::state_t next;
-
98 #ifndef UNIT_TEST
-
99 
-
100  private:
-
101 #endif
-
102  uint16_t _pin;
-
103  bool _inverted;
-
104  bool _modulation;
-
105  stdAc::state_t _prev;
-
106 #if SEND_AIRWELL
-
107  void airwell(IRAirwellAc *ac,
-
108  const bool on, const stdAc::opmode_t mode, const float degrees,
-
109  const stdAc::fanspeed_t fan);
-
110 #endif // SEND_AIRWELL
-
111 #if SEND_AMCOR
-
112  void amcor(IRAmcorAc *ac,
-
113  const bool on, const stdAc::opmode_t mode, const float degrees,
-
114  const stdAc::fanspeed_t fan);
-
115 #endif // SEND_AMCOR
-
116 #if SEND_ARGO
-
117  void argo(IRArgoAC *ac,
-
118  const bool on, const stdAc::opmode_t mode, const float degrees,
-
119  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
120  const bool turbo, const int16_t sleep = -1);
-
121 #endif // SEND_ARGO
-
122 #if SEND_CARRIER_AC64
-
123 void carrier64(IRCarrierAc64 *ac,
-
124  const bool on, const stdAc::opmode_t mode,
-
125  const float degrees, const stdAc::fanspeed_t fan,
-
126  const stdAc::swingv_t swingv, const int16_t sleep = -1);
-
127 #endif // SEND_CARRIER_AC64
-
128 #if SEND_COOLIX
-
129  void coolix(IRCoolixAC *ac,
-
130  const bool on, const stdAc::opmode_t mode, const float degrees,
-
131  const stdAc::fanspeed_t fan,
-
132  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
133  const bool turbo, const bool light, const bool clean,
-
134  const int16_t sleep = -1);
-
135 #endif // SEND_COOLIX
-
136 #if SEND_CORONA_AC
-
137  void corona(IRCoronaAc *ac,
-
138  const bool on, const stdAc::opmode_t mode,
-
139  const float degrees, const stdAc::fanspeed_t fan,
-
140  const stdAc::swingv_t swingv, const bool econo);
-
141 #endif // SEND_CORONA_AC
-
142 #if SEND_DAIKIN
-
143  void daikin(IRDaikinESP *ac,
-
144  const bool on, const stdAc::opmode_t mode, const float degrees,
-
145  const stdAc::fanspeed_t fan,
-
146  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
147  const bool quiet, const bool turbo, const bool econo,
-
148  const bool clean);
-
149 #endif // SEND_DAIKIN
-
150 #if SEND_DAIKIN128
-
151  void daikin128(IRDaikin128 *ac,
-
152  const bool on, const stdAc::opmode_t mode,
-
153  const float degrees, const stdAc::fanspeed_t fan,
-
154  const stdAc::swingv_t swingv,
-
155  const bool quiet, const bool turbo, const bool light,
-
156  const bool econo, const int16_t sleep = -1,
-
157  const int16_t clock = -1);
-
158 #endif // SEND_DAIKIN128
-
159 #if SEND_DAIKIN152
-
160  void daikin152(IRDaikin152 *ac,
-
161  const bool on, const stdAc::opmode_t mode,
-
162  const float degrees, const stdAc::fanspeed_t fan,
-
163  const stdAc::swingv_t swingv,
-
164  const bool quiet, const bool turbo, const bool econo);
-
165 #endif // SEND_DAIKIN152
-
166 #if SEND_DAIKIN160
-
167  void daikin160(IRDaikin160 *ac,
-
168  const bool on, const stdAc::opmode_t mode,
-
169  const float degrees, const stdAc::fanspeed_t fan,
-
170  const stdAc::swingv_t swingv);
-
171 #endif // SEND_DAIKIN160
-
172 #if SEND_DAIKIN176
-
173  void daikin176(IRDaikin176 *ac,
-
174  const bool on, const stdAc::opmode_t mode,
-
175  const float degrees, const stdAc::fanspeed_t fan,
-
176  const stdAc::swingh_t swingh);
-
177 #endif // SEND_DAIKIN176
-
178 #if SEND_DAIKIN2
-
179  void daikin2(IRDaikin2 *ac,
-
180  const bool on, const stdAc::opmode_t mode,
-
181  const float degrees, const stdAc::fanspeed_t fan,
-
182  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
183  const bool quiet, const bool turbo, const bool light,
-
184  const bool econo, const bool filter, const bool clean,
-
185  const bool beep, const int16_t sleep = -1,
-
186  const int16_t clock = -1);
-
187 #endif // SEND_DAIKIN2
-
188 #if SEND_DAIKIN216
-
189 void daikin216(IRDaikin216 *ac,
-
190  const bool on, const stdAc::opmode_t mode,
-
191  const float degrees, const stdAc::fanspeed_t fan,
-
192  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
193  const bool quiet, const bool turbo);
-
194 #endif // SEND_DAIKIN216
-
195 #if SEND_DAIKIN64
-
196  void daikin64(IRDaikin64 *ac,
-
197  const bool on, const stdAc::opmode_t mode,
-
198  const float degrees, const stdAc::fanspeed_t fan,
-
199  const stdAc::swingv_t swingv,
-
200  const bool quiet, const bool turbo,
-
201  const int16_t sleep = -1, const int16_t clock = -1);
-
202 #endif // SEND_DAIKIN64
-
203 #if SEND_DELONGHI_AC
-
204  void delonghiac(IRDelonghiAc *ac,
-
205  const bool on, const stdAc::opmode_t mode, const bool celsius,
-
206  const float degrees, const stdAc::fanspeed_t fan,
-
207  const bool turbo, const int16_t sleep = -1);
-
208 #endif // SEND_DELONGHI_AC
-
209 #if SEND_ELECTRA_AC
-
210 void electra(IRElectraAc *ac,
-
211  const bool on, const stdAc::opmode_t mode,
-
212  const float degrees, const stdAc::fanspeed_t fan,
-
213  const stdAc::swingv_t swingv,
-
214  const stdAc::swingh_t swingh, const bool turbo,
-
215  const bool lighttoggle, const bool clean);
-
216 #endif // SEND_ELECTRA_AC
-
217 #if SEND_FUJITSU_AC
-
218  void fujitsu(IRFujitsuAC *ac, const fujitsu_ac_remote_model_t model,
-
219  const bool on, const stdAc::opmode_t mode, const float degrees,
-
220  const stdAc::fanspeed_t fan,
-
221  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
222  const bool quiet, const bool turbo, const bool econo,
-
223  const bool filter, const bool clean, const int16_t sleep = -1);
-
224 #endif // SEND_FUJITSU_AC
-
225 #if SEND_GOODWEATHER
-
226  void goodweather(IRGoodweatherAc *ac,
-
227  const bool on, const stdAc::opmode_t mode,
-
228  const float degrees,
-
229  const stdAc::fanspeed_t fan,
-
230  const stdAc::swingv_t swingv,
-
231  const bool turbo, const bool light,
-
232  const int16_t sleep = -1);
-
233 #endif // SEND_GOODWEATHER
-
234 #if SEND_GREE
-
235  void gree(IRGreeAC *ac, const gree_ac_remote_model_t model,
-
236  const bool on, const stdAc::opmode_t mode, const bool celsius,
-
237  const float degrees, const stdAc::fanspeed_t fan,
-
238  const stdAc::swingv_t swingv, const bool turbo, const bool light,
-
239  const bool clean, const int16_t sleep = -1);
-
240 #endif // SEND_GREE
-
241 #if SEND_HAIER_AC
-
242  void haier(IRHaierAC *ac,
-
243  const bool on, const stdAc::opmode_t mode, const float degrees,
-
244  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
245  const bool filter, const int16_t sleep = -1,
-
246  const int16_t clock = -1);
-
247 #endif // SEND_HAIER_AC
-
248 #if SEND_HAIER_AC_YRW02
-
249  void haierYrwo2(IRHaierACYRW02 *ac,
-
250  const bool on, const stdAc::opmode_t mode,
-
251  const float degrees, const stdAc::fanspeed_t fan,
-
252  const stdAc::swingv_t swingv,
-
253  const bool turbo, const bool filter,
-
254  const int16_t sleep = -1);
-
255 #endif // SEND_HAIER_AC_YRW02
-
256 #if SEND_HITACHI_AC
-
257  void hitachi(IRHitachiAc *ac,
-
258  const bool on, const stdAc::opmode_t mode,
-
259  const float degrees, const stdAc::fanspeed_t fan,
-
260  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh);
-
261 #endif // SEND_HITACHI_AC
-
262 #if SEND_HITACHI_AC1
-
263  void hitachi1(IRHitachiAc1 *ac, const hitachi_ac1_remote_model_t model,
-
264  const bool on, const bool power_toggle,
-
265  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  const bool swing_toggle, const int16_t sleep = -1);
-
269 #endif // SEND_HITACHI_AC1
-
270 #if SEND_HITACHI_AC344
-
271  void hitachi344(IRHitachiAc344 *ac,
-
272  const bool on, const stdAc::opmode_t mode,
-
273  const float degrees, const stdAc::fanspeed_t fan,
-
274  const stdAc::swingv_t swingv,
-
275  const stdAc::swingh_t swingh);
-
276 #endif // SEND_HITACHI_AC344
-
277 #if SEND_HITACHI_AC424
-
278  void hitachi424(IRHitachiAc424 *ac,
+
19 #include "ir_Ecoclim.h"
+
20 #include "ir_Electra.h"
+
21 #include "ir_Goodweather.h"
+
22 #include "ir_Gree.h"
+
23 #include "ir_Haier.h"
+
24 #include "ir_Hitachi.h"
+
25 #include "ir_Kelvinator.h"
+
26 #include "ir_LG.h"
+
27 #include "ir_Midea.h"
+
28 #include "ir_Mitsubishi.h"
+
29 #include "ir_MitsubishiHeavy.h"
+
30 #include "ir_Neoclima.h"
+
31 #include "ir_Panasonic.h"
+
32 #include "ir_Samsung.h"
+
33 #include "ir_Sanyo.h"
+
34 #include "ir_Sharp.h"
+
35 #include "ir_Tcl.h"
+
36 #include "ir_Technibel.h"
+
37 #include "ir_Teco.h"
+
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 #endif // SEND_HITACHI_AC424
-
283 #if SEND_KELVINATOR
-
284  void kelvinator(IRKelvinatorAC *ac,
-
285  const bool on, const stdAc::opmode_t mode,
-
286  const float degrees, const stdAc::fanspeed_t fan,
-
287  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
288  const bool quiet, const bool turbo, const bool light,
-
289  const bool filter, const bool clean);
-
290 #endif // SEND_KELVINATOR
-
291 #if SEND_LG
-
292  void lg(IRLgAc *ac, const lg_ac_remote_model_t model,
-
293  const bool on, const stdAc::opmode_t mode,
-
294  const float degrees, const stdAc::fanspeed_t fan);
-
295 #endif // SEND_LG
-
296 #if SEND_MIDEA
-
297  void midea(IRMideaAC *ac,
-
298  const bool on, const stdAc::opmode_t mode, const bool celsius,
-
299  const float degrees, const stdAc::fanspeed_t fan,
-
300  const stdAc::swingv_t swingv, const bool turbo, const bool econo,
-
301  const bool light, const int16_t sleep = -1);
-
302 #endif // SEND_MIDEA
-
303 #if SEND_MITSUBISHI_AC
-
304  void mitsubishi(IRMitsubishiAC *ac,
-
305  const bool on, const stdAc::opmode_t mode,
-
306  const float degrees,
-
307  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
308  const stdAc::swingh_t swingh,
-
309  const bool quiet, const int16_t clock = -1);
-
310 #endif // SEND_MITSUBISHI_AC
-
311 #if SEND_MITSUBISHI112
-
312  void mitsubishi112(IRMitsubishi112 *ac,
-
313  const bool on, const stdAc::opmode_t mode,
-
314  const float degrees, const stdAc::fanspeed_t fan,
-
315  const stdAc::swingv_t swingv,
-
316  const stdAc::swingh_t swingh,
-
317  const bool quiet);
-
318 #endif // SEND_MITSUBISHI112
-
319 #if SEND_MITSUBISHI136
-
320  void mitsubishi136(IRMitsubishi136 *ac,
-
321  const bool on, const stdAc::opmode_t mode,
-
322  const float degrees, const stdAc::fanspeed_t fan,
-
323  const stdAc::swingv_t swingv, const bool quiet);
-
324 #endif // SEND_MITSUBISHI136
-
325 #if SEND_MITSUBISHIHEAVY
-
326  void mitsubishiHeavy88(IRMitsubishiHeavy88Ac *ac,
-
327  const bool on, const stdAc::opmode_t mode,
-
328  const float degrees, const stdAc::fanspeed_t fan,
-
329  const stdAc::swingv_t swingv,
-
330  const stdAc::swingh_t swingh,
-
331  const bool turbo, const bool econo, const bool clean);
-
332  void mitsubishiHeavy152(IRMitsubishiHeavy152Ac *ac,
-
333  const bool on, const stdAc::opmode_t mode,
-
334  const float degrees, const stdAc::fanspeed_t fan,
-
335  const stdAc::swingv_t swingv,
-
336  const stdAc::swingh_t swingh,
-
337  const bool quiet, const bool turbo, const bool econo,
-
338  const bool filter, const bool clean,
-
339  const int16_t sleep = -1);
-
340 #endif // SEND_MITSUBISHIHEAVY
-
341 #if SEND_NEOCLIMA
-
342  void neoclima(IRNeoclimaAc *ac, const bool on, const stdAc::opmode_t mode,
-
343  const bool celsius, const float degrees,
-
344  const stdAc::fanspeed_t fan,
-
345  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
346  const bool turbo, const bool econo, const bool light,
-
347  const bool filter, const int16_t sleep = -1);
-
348 #endif // SEND_NEOCLIMA
-
349 #if SEND_PANASONIC_AC
-
350  void panasonic(IRPanasonicAc *ac, const panasonic_ac_remote_model_t model,
-
351  const bool on, const stdAc::opmode_t mode, const float degrees,
-
352  const stdAc::fanspeed_t fan,
-
353  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
354  const bool quiet, const bool turbo, const bool filter,
-
355  const int16_t clock = -1);
-
356 #endif // SEND_PANASONIC_AC
-
357 #if SEND_PANASONIC_AC32
-
358  void panasonic32(IRPanasonicAc32 *ac,
-
359  const bool on, const stdAc::opmode_t mode,
-
360  const float degrees, const stdAc::fanspeed_t fan,
-
361  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh);
-
362 #endif // SEND_PANASONIC_AC32
-
363 #if SEND_SAMSUNG_AC
-
364  void samsung(IRSamsungAc *ac,
-
365  const bool on, const stdAc::opmode_t mode, const float degrees,
-
366  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
367  const bool quiet, const bool turbo, const bool light,
-
368  const bool filter, const bool clean,
-
369  const bool beep, const bool prevpower = true,
-
370  const bool forcepower = true);
-
371 #endif // SEND_SAMSUNG_AC
-
372 #if SEND_SANYO_AC
-
373  void sanyo(IRSanyoAc *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 beep, const int16_t sleep = -1);
-
377 #endif // SEND_SANYO_AC
-
378 #if SEND_SHARP_AC
-
379  void sharp(IRSharpAc *ac, const sharp_ac_remote_model_t model,
-
380  const bool on, const bool prev_power, const stdAc::opmode_t mode,
-
381  const float degrees, const stdAc::fanspeed_t fan,
-
382  const stdAc::swingv_t swingv, const bool turbo, const bool light,
-
383  const bool filter, const bool clean);
-
384 #endif // SEND_SHARP_AC
-
385 #if SEND_TCL112AC
-
386  void tcl112(IRTcl112Ac *ac,
-
387  const bool on, const stdAc::opmode_t mode, const float degrees,
-
388  const stdAc::fanspeed_t fan,
-
389  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
390  const bool turbo, const bool light, const bool econo,
-
391  const bool filter);
-
392 #endif // SEND_TCL112AC
-
393 #if SEND_TECHNIBEL_AC
-
394  void technibel(IRTechnibelAc *ac,
-
395  const bool on, const stdAc::opmode_t mode, const bool celsius,
-
396  const float degrees, const stdAc::fanspeed_t fan,
-
397  const stdAc::swingv_t swingv, const int16_t sleep = -1);
-
398 #endif // SEND_TECHNIBEL_AC
-
399 #if SEND_TECO
-
400  void teco(IRTecoAc *ac,
-
401  const bool on, const stdAc::opmode_t mode, const float degrees,
-
402  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
403  const bool light, const int16_t sleep = -1);
-
404 #endif // SEND_TECO
-
405 #if SEND_TOSHIBA_AC
-
406  void toshiba(IRToshibaAC *ac,
-
407  const bool on, const stdAc::opmode_t mode, const float degrees,
-
408  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
409  const bool turbo, const bool econo);
-
410 #endif // SEND_TOSHIBA_AC
-
411 #if SEND_TROTEC
-
412  void trotec(IRTrotecESP *ac,
-
413  const bool on, const stdAc::opmode_t mode, const float degrees,
-
414  const stdAc::fanspeed_t fan, const int16_t sleep = -1);
-
415 #endif // SEND_TROTEC
-
416 #if SEND_VESTEL_AC
-
417  void vestel(IRVestelAc *ac,
-
418  const bool on, const stdAc::opmode_t mode, const float degrees,
-
419  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
420  const bool turbo, const bool filter,
-
421  const int16_t sleep = -1, const int16_t clock = -1,
-
422  const bool sendNormal = true);
-
423 #endif // SEND_VESTEL_AC
-
424 #if SEND_VOLTAS
-
425  void voltas(IRVoltas *ac, const voltas_ac_remote_model_t model,
-
426  const bool on, const stdAc::opmode_t mode,
-
427  const float degrees, const stdAc::fanspeed_t fan,
-
428  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
429  const bool turbo, const bool econo, const bool light,
-
430  const int16_t sleep = -1);
-
431 #endif // SEND_VOLTAS
-
432 #if SEND_WHIRLPOOL_AC
-
433  void whirlpool(IRWhirlpoolAc *ac, const whirlpool_ac_remote_model_t model,
-
434  const bool on, const stdAc::opmode_t mode, const float degrees,
-
435  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
436  const bool turbo, const bool light,
-
437  const int16_t sleep = -1, const int16_t clock = -1);
-
438 #endif // SEND_WHIRLPOOL_AC
-
439 #if SEND_TRANSCOLD
-
440  void transcold(IRTranscoldAc *ac,
-
441  const bool on, const stdAc::opmode_t mode, const float degrees,
-
442  const stdAc::fanspeed_t fan,
-
443  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh);
-
444 #endif // SEND_TRANSCOLD
-
445 static stdAc::state_t cleanState(const stdAc::state_t state);
-
446 static stdAc::state_t handleToggles(const stdAc::state_t desired,
-
447  const stdAc::state_t *prev = NULL);
-
448 }; // IRac class
-
449 
-
451 namespace IRAcUtils {
-
452  String resultAcToString(const decode_results * const results);
-
453  bool decodeToState(const decode_results *decode, stdAc::state_t *result,
-
454  const stdAc::state_t *prev = NULL);
-
455 } // namespace IRAcUtils
-
456 #endif // IRAC_H_
+
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_
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:302
+
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
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:1073
-
IRToshibaAC
Class for handling detailed Toshiba A/C messages.
Definition: ir_Toshiba.h:118
-
decode_type_t
decode_type_t
Enumerator for defining and numbering of supported IR protocol.
Definition: IRremoteESP8266.h:785
-
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:133
-
IRac::getState
stdAc::state_t getState(void)
Get the current internal A/C climate state.
Definition: IRac.cpp:128
+
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
+
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
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:2848
-
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:1727
-
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:1149
+
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
stdAc::opmode_t::kAuto
@ kAuto
ir_Electra.h
Support for Electra A/C protocols.
-
IRac::markAsSent
void markAsSent(void)
Update the previous state to the current one.
Definition: IRac.cpp:2711
+
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
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:691
+
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
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:1683
+
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
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:1255
+
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
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:1221
+
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
IRDaikin2
Class for handling detailed Daikin 312-bit A/C messages.
Definition: ir_Daikin.h:740
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:2998
+
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
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:2038
+
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
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:760
-
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:1997
-
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:1780
-
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:2075
-
IRac::sendAc
bool sendAc(void)
Send an A/C message based soley on our internal state.
Definition: IRac.cpp:2717
-
IRac::cmpStates
static bool cmpStates(const stdAc::state_t a, const stdAc::state_t b)
Compare two AirCon states.
Definition: IRac.cpp:2728
+
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
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
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:1955
+
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
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:527
-
IRac::IRac
IRac(const uint16_t pin, const bool inverted=false, const bool use_modulation=true)
Class constructor.
Definition: IRac.cpp:54
+
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
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:1642
-
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:567
+
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
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:45
-
IRAcUtils
Common functions for use with all A/Cs supported by the IRac class.
Definition: IRac.cpp:3067
+
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
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:1004
-
IRWhirlpoolAc
Class for handling detailed Whirlpool A/C messages.
Definition: ir_Whirlpool.h:91
+
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
+
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:2969
-
IRac::next
stdAc::state_t next
The state we want the device to be in after we send.
Definition: IRac.h:97
-
String
std::string String
Definition: IRremoteESP8266.h:1199
+
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
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:1918
-
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:2888
+
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
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:659
+
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
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:2740
-
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:1041
-
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:730
+
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
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:2124
+
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
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
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:1367
-
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:3436
+
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
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:1183
+
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
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:3073
-
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:604
+
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
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:103
-
IRFujitsuAC
Class for handling detailed Fujitsu A/C messages.
Definition: ir_Fujitsu.h:120
+
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
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:1292
-
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:1564
-
IRac::swingvToString
static String swingvToString(const stdAc::swingv_t swingv)
Convert the supplied enum into the appropriate String.
Definition: IRac.cpp:3020
+
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
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:49
+
IRac
A universal/common/generic interface for controling supported A/Cs.
Definition: IRac.h:50
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:966
+
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
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:817
-
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:2111
+
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
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:1330
-
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:330
+
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
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
ir_Voltas.h
Support for Voltas A/C protocol.
IRDaikin152
Class for handling detailed Daikin 152-bit A/C messages.
Definition: ir_Daikin.h:1071
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:1523
+
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
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:2976
+
IRac::opmodeToString
static String opmodeToString(const stdAc::opmode_t mode)
Convert the supplied operation mode into the appropriate String.
Definition: IRac.cpp:3026
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:1882
+
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
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:362
+
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:1403
+
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
stdAc::fanspeed_t::kAuto
@ kAuto
-
IRac::_modulation
bool _modulation
Is frequency modulation to be used?
Definition: IRac.h:104
-
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:1849
-
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:2746
+
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
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:1110
+
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
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:1600
+
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
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:2951
-
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:1438
-
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:2807
-
IRVestelAc
Class for handling detailed Vestel A/C messages.
Definition: ir_Vestel.h:116
+
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
+
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:76
+
IRTrotecESP
Class for handling detailed Trotec A/C messages.
Definition: ir_Trotec.h:91
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:3044
-
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:860
+
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
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:790
-
IRac::_prev
stdAc::state_t _prev
The state we expect the device to currently be in.
Definition: IRac.h:105
+
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
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:637
-
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:492
-
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:85
-
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:1479
+
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
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:431
-
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:2776
+
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
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:924
+
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
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:138
+
IRac::isProtocolSupported
static bool isProtocolSupported(const decode_type_t protocol)
Is the given protocol supported by the IRac class?
Definition: IRac.cpp:139
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:102
-
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:1816
+
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
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:394
+
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
stdAc::opmode_t
opmode_t
Common A/C settings for A/C operating modes.
Definition: IRsend.h:46