diff --git a/README.md b/README.md index b15ef1abe..47178861a 100644 --- a/README.md +++ b/README.md @@ -10,8 +10,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.8.4 Now Available -Version 2.8.4 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.8.5 Now Available +Version 2.8.5 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 51c18c482..f55860528 100644 --- a/README_de.md +++ b/README_de.md @@ -11,8 +11,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.8.4 jetzt verfügbar -Version 2.8.4 der Bibliothek ist nun [verfügbar](https://github.com/crankyoldgit/IRremoteESP8266/releases/latest). Die [Versionshinweise](ReleaseNotes.md) enthalten alle wichtigen Neuerungen. +## v2.8.5 jetzt verfügbar +Version 2.8.5 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 71e436fc3..430d32de3 100644 --- a/README_fr.md +++ b/README_fr.md @@ -10,8 +10,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.8.4 disponible -Version 2.8.4 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.8.5 disponible +Version 2.8.5 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/README_nl.md b/README_nl.md index d85c3e9b1..fdea85cae 100644 --- a/README_nl.md +++ b/README_nl.md @@ -10,8 +10,8 @@ Deze library maakt het mogelijk om Infraroodsignalen **te versturen en ontvangen** via het [Arduino framework](https://www.arduino.cc/) met veelgebruikte 940nm IR LEDs en IR ontvang modules. b.v. TSOP{17,22,24,36,38,44,48}* demodulatoren enz. -## v2.8.4 nu beschikbaar -Versie 2.8.4 van de bibliotheek is nu [beschikbaar](https://github.com/crankyoldgit/IRremoteESP8266/releases/latest). Bekijk de [Release Notes](ReleaseNotes.md) voor alle belangrijke veranderingen. +## v2.8.5 nu beschikbaar +Versie 2.8.5 van de bibliotheek is nu [beschikbaar](https://github.com/crankyoldgit/IRremoteESP8266/releases/latest). Bekijk de [Release Notes](ReleaseNotes.md) voor alle belangrijke veranderingen. #### Upgraden vanaf pre-v2.0 Het gebruik van de bibliotheek is enigszins gewijzigd in v2.0. Je zult het gebruik moeten aanpassen om te kunnen werken met v2.0 en hoger. Je kunt meer lezen over de vereiste aanpassingen op onze [Upgraden naar v2.0](https://github.com/crankyoldgit/IRremoteESP8266/wiki/Upgrading-to-v2.0) pagina. diff --git a/ReleaseNotes.md b/ReleaseNotes.md index 0370c91a6..d9e86c7e3 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -1,5 +1,41 @@ # Release Notes +## _v2.8.5 (20230508)_ + +**[Bug Fixes]** +- Fix a bug where we never detached the timer interrupt on ESP32s. (#1984 #1983) +- Missing argument in use of midea function (#1959 #1958) +- IRMQTTServer: Improve HA MQTT climate handling. (#1911) +- SEND_SANYO_AC88: Fix poor cut-n-paste error (#1905 #1897) + +**[Features]** +- Add support for a 40bit variant of the standard Panasonic protocol (#1977 @1976) +- Initial support for York AC protocol (#1889) +- IRMQTTServer: SHT-3x Temperature Sensor Support (#1951) +- IRMQTTServer: HA multi output discovery (#1947) +- IRMQTTServer: extended with new A/C common fields (#1940) +- IRMQTTServer: Sync the on state to power from mode for HA (#1946) +- Experimental basic support for Carrier 84-bit protocol. (#1945 #1943) +- Add support the WowWee 11-Bit RoboRaptor-X protocol. (#1939 #1938) +- Added 'sensorTemperature' and 'iFeel' to IRac (common) (#1928) +- Added extra 'mid' option for Fan & SwingV to IRac (#1929) +- Added "commandType" to IRAc (#1921) +- Added support for Argo WREM-3 A/C remote protocol [part1] (#1920) +- Added Dutch (nl-NL) translation (#1907) +- ARGO: Improve code & add support for decoding 32bit sensor msgs. (#1906 #1859) +- Added support for Gorenje cooker hood IR protocol (#1888 #1887) + +**[Misc]** +- Add Electrolux YKR-H/531E as a supported device (#1981 #1980) +- Update `XMP` status to Stable (#1944) +- upgrade to a later version of `googletest` (#1936) +- MITSUBISHI128: Added model to supported protocol (#1924) +- Added Dutch (nl-NL) README (#1908) +- Added GMock to UT Makefile (#1902) +- Update HA example config for HA 2022.6+ (#1901 #1900) +- Add a `d1_mini_noMDNS` build option to `IRMQTTServer`. (#1985) + + ## _v2.8.4 (20220918)_ **[Bug Fixes]** diff --git a/SupportedProtocols.md b/SupportedProtocols.md index 422a5bf2d..46b65ca5e 100644 --- a/SupportedProtocols.md +++ b/SupportedProtocols.md @@ -1,6 +1,6 @@ + Last generated: Mon 08 May 2023 07:06:16 +0000 ---> # IR Protocols supported by this library | Protocol | Brand | Model | A/C Model | Detailed A/C Support | @@ -9,11 +9,11 @@ | [Airwell](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Airwell.cpp) | **[Airwell](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Airwell.h)** | DLS 21 DCI R410 AW A/C
RC04 remote
RC08W remote | | Yes | | [Aiwa](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Aiwa.cpp) | **Aiwa** | RC-T501 RCU | | - | | [Amcor](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Amcor.cpp) | **[Amcor](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Amcor.h)** | ADR-853H A/C
TAC-444 remote
TAC-495 remote | | Yes | -| [Argo](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Argo.cpp) | **[Argo](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Argo.h)** | Ulisse 13 DCI Mobile Split A/C | | Yes | +| [Argo](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Argo.cpp) | **[Argo](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Argo.h)** | Ulisse 13 DCI Mobile Split A/C [WREM2 remote]
Ulisse Eco Mobile Split A/C (Wifi) [WREM3 remote] | SAC_WREM2
SAC_WREM3 | Yes | | [Arris](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Arris.cpp) | **Arris** | 120A V1.0 A18 remote
VIP1113M Set-top box | | - | | [Bosch](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Bosch.cpp) | **[Bosch](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Bosch.h)** | CL3000i-Set 26 E A/C
RG10A(G2S)BGEF remote | | Yes | | [Bose](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Bose.cpp) | **Bose** | Bose TV Speaker | | - | -| [Carrier](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Carrier.cpp) | **[Carrier](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Carrier.h)** | 40GKX0E2006 remote (CARRIER_AC128) | | Yes | +| [Carrier](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Carrier.cpp) | **[Carrier](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Carrier.h)** | 3021203 RR03-S-Remote (CARRIER_AC84)
342WM100CT A/C (CARRIER_AC84)
40GKX0E2006 remote (CARRIER_AC128) | | Yes | | [Carrier](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Carrier.cpp) | **[Carrier/Surrey](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Carrier.h)** | 42QG5A55970 remote
53NGK009/012 Inverter
619EGX0090E0 A/C
619EGX0120E0 A/C
619EGX0180E0 A/C
619EGX0220E0 A/C | | Yes | | [ClimaButler](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_ClimaButler.cpp) | **Clima-Butler** | AR-715 remote
RCS-SD43UWI A/C | | - | | [Coolix](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Coolix.cpp) | **[Airwell](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Coolix.h)** | RC08B remote | | Yes | @@ -35,6 +35,7 @@ | [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) | **[Centek](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Electra.h)** | SCT-65Q09 A/C
YKR-P/002E 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 | +| [Electra](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Electra.cpp) | **[Electrolux](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Electra.h)** | YKR-H/531E A/C | | Yes | | [Electra](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Electra.cpp) | **[Frigidaire](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Electra.h)** | FGPC102AB1 A/C | | Yes | | [Electra](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Electra.cpp) | **[Subtropic](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Electra.h)** | SUB-07HN1_18Y A/C
YKR-H/102E 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 | | - | @@ -46,6 +47,7 @@ | [GICable](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_GICable.cpp) | **G.I. Cable** | XRC-200 remote | | - | | [GlobalCache](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_GlobalCache.cpp) | **Global Cache** | Control Tower IR DB | | - | | [Goodweather](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Goodweather.cpp) | **[Goodweather](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Goodweather.h)** | ZH/JT-03 remote | | Yes | +| [Gorenje](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Gorenje.cpp) | **Gorenje** | DKF 2600 MWT Cooker Hood | | - | | [Gree](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Gree.cpp) | **[Amana](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Gree.h)** | PBC093G00CC A/C
YX1FF remote | YAW1F
YBOFB
YX1FSF | Yes | | [Gree](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Gree.cpp) | **[Cooper & Hunter](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Gree.h)** | CH-S09FTXG A/C
YB1F2 remote | YAW1F
YBOFB
YX1FSF | Yes | | [Gree](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Gree.cpp) | **[EKOKAI](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Gree.h)** | A/C | YAW1F
YBOFB
YX1FSF | Yes | @@ -89,7 +91,7 @@ | [Mirage](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Mirage.cpp) | **[Mirage](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Mirage.h)** | VLU series A/C | KKG29AC1
KKG9AC1 | Yes | | [Mirage](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Mirage.cpp) | **[Tronitechnik](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Mirage.h)** | KKG29A-C1 remote
Reykir 9000 A/C | KKG29AC1
KKG9AC1 | Yes | | [Mitsubishi](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Mitsubishi.cpp) | **[Mitsubishi](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Mitsubishi.h)** | HC3000 Projector (MITSUBISHI2)
KM14A 0179213 remote
MS-GK24VA A/C
TV (MITSUBISHI) | | Yes | -| [Mitsubishi](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Mitsubishi.cpp) | **[Mitsubishi Electric](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Mitsubishi.h)** | 001CP T7WE10714 remote (MITSUBISHI136)
KPOA remote (MITSUBISHI112)
MLZ-RX5017AS A/C (MITSUBISHI_AC)
MSH-A24WV A/C (MITSUBISHI112)
MSZ-FHnnVE A/C (MITSUBISHI_AC)
MSZ-GV2519 A/C (MITSUBISHI_AC)
MSZ-SF25VE3 A/C (MITSUBISHI_AC)
MSZ-ZW4017S A/C (MITSUBISHI_AC)
MUH-A24WV A/C (MITSUBISHI112)
PEAD-RP71JAA Ducted A/C (MITSUBISHI136)
RH151 remote (MITSUBISHI_AC)
RH151/M21ED6426 remote (MITSUBISHI_AC)
SG153/M21EDF426 remote (MITSUBISHI_AC)
SG15D remote (MITSUBISHI_AC) | | Yes | +| [Mitsubishi](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Mitsubishi.cpp) | **[Mitsubishi Electric](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Mitsubishi.h)** | 001CP T7WE10714 remote (MITSUBISHI136)
KPOA remote (MITSUBISHI112)
MLZ-RX5017AS A/C (MITSUBISHI_AC)
MSH-A24WV A/C (MITSUBISHI112)
MSZ-FHnnVE A/C (MITSUBISHI_AC)
MSZ-GV2519 A/C (MITSUBISHI_AC)
MSZ-SF25VE3 A/C (MITSUBISHI_AC)
MSZ-ZW4017S A/C (MITSUBISHI_AC)
MUH-A24WV A/C (MITSUBISHI112)
PAR-FA32MA remote (MITSUBISHI136)
PEAD-RP71JAA Ducted A/C (MITSUBISHI136)
RH151 remote (MITSUBISHI_AC)
RH151/M21ED6426 remote (MITSUBISHI_AC)
SG153/M21EDF426 remote (MITSUBISHI_AC)
SG15D remote (MITSUBISHI_AC) | | Yes | | [MitsubishiHeavy](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_MitsubishiHeavy.cpp) | **[Mitsubishi Heavy Industries](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_MitsubishiHeavy.h)** | RKX502A001C remote (88 bit)
RLA502A700B remote (152 bit)
SRKxxZJ-S A/C (88 bit)
SRKxxZM-S A/C (152 bit)
SRKxxZMXA-S A/C (152 bit) | | Yes | | [Multibrackets](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Multibrackets.cpp) | **Multibrackets** | Motorized Swing mount large - 4500 | | - | | [NEC](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_NEC.cpp) | **[Aloka](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_NEC.h)** | SleepyLights LED Lamp | | - | @@ -137,7 +139,9 @@ | [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 | | - | +| [Wowwee](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Wowwee.cpp) | **WowWee** | RoboRapter-X | | - | | [Xmp](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Xmp.cpp) | **Xfinity** | XR11 remote
XR2 remote | | - | +| [York](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_York.cpp) | **[York](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_York.h)** | GRYLH2A remote
MHH07P17 A/C | | Yes | | [Zepeal](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Zepeal.cpp) | **Zepeal** | DRT-A3311(BG) 5 button remote
DRT-A3311(BG) floor fan | | - | @@ -164,6 +168,7 @@ - CARRIER_AC128 - CARRIER_AC40 - CARRIER_AC64 +- CARRIER_AC84 - CLIMABUTLER - COOLIX - COOLIX48 @@ -189,6 +194,7 @@ - FUJITSU_AC - GICABLE - GOODWEATHER +- GORENJE - GREE - HAIER_AC - HAIER_AC160 @@ -267,5 +273,7 @@ - VOLTAS - WHIRLPOOL_AC - WHYNTER +- WOWWEE - XMP +- YORK - ZEPEAL diff --git a/docs/doxygen/html/IRac_8h_source.html b/docs/doxygen/html/IRac_8h_source.html index 38e30a7f9..6ac997213 100644 --- a/docs/doxygen/html/IRac_8h_source.html +++ b/docs/doxygen/html/IRac_8h_source.html @@ -76,686 +76,715 @@
5 
6 #ifndef UNIT_TEST
7 #include <Arduino.h>
-
8 #endif
-
9 #include "IRremoteESP8266.h"
-
10 #include "ir_Airton.h"
-
11 #include "ir_Airwell.h"
-
12 #include "ir_Amcor.h"
-
13 #include "ir_Argo.h"
-
14 #include "ir_Bosch.h"
-
15 #include "ir_Carrier.h"
-
16 #include "ir_Coolix.h"
-
17 #include "ir_Corona.h"
-
18 #include "ir_Daikin.h"
-
19 #include "ir_Delonghi.h"
-
20 #include "ir_Fujitsu.h"
-
21 #include "ir_Ecoclim.h"
-
22 #include "ir_Electra.h"
-
23 #include "ir_Goodweather.h"
-
24 #include "ir_Gree.h"
-
25 #include "ir_Haier.h"
-
26 #include "ir_Hitachi.h"
-
27 #include "ir_Kelon.h"
-
28 #include "ir_Kelvinator.h"
-
29 #include "ir_LG.h"
-
30 #include "ir_Midea.h"
-
31 #include "ir_Mirage.h"
-
32 #include "ir_Mitsubishi.h"
-
33 #include "ir_MitsubishiHeavy.h"
-
34 #include "ir_Neoclima.h"
-
35 #include "ir_Panasonic.h"
-
36 #include "ir_Rhoss.h"
-
37 #include "ir_Samsung.h"
-
38 #include "ir_Sanyo.h"
-
39 #include "ir_Sharp.h"
-
40 #include "ir_Tcl.h"
-
41 #include "ir_Technibel.h"
-
42 #include "ir_Teco.h"
-
43 #include "ir_Toshiba.h"
-
44 #include "ir_Transcold.h"
-
45 #include "ir_Trotec.h"
-
46 #include "ir_Truma.h"
-
47 #include "ir_Vestel.h"
-
48 #include "ir_Voltas.h"
-
49 #include "ir_Whirlpool.h"
-
50 
-
51 // Constants
-
52 const int8_t kGpioUnused = -1;
+
8 #else
+
9 #include <memory>
+
10 #endif
+
11 #include "IRremoteESP8266.h"
+
12 #include "ir_Airton.h"
+
13 #include "ir_Airwell.h"
+
14 #include "ir_Amcor.h"
+
15 #include "ir_Argo.h"
+
16 #include "ir_Bosch.h"
+
17 #include "ir_Carrier.h"
+
18 #include "ir_Coolix.h"
+
19 #include "ir_Corona.h"
+
20 #include "ir_Daikin.h"
+
21 #include "ir_Delonghi.h"
+
22 #include "ir_Fujitsu.h"
+
23 #include "ir_Ecoclim.h"
+
24 #include "ir_Electra.h"
+
25 #include "ir_Goodweather.h"
+
26 #include "ir_Gree.h"
+
27 #include "ir_Haier.h"
+
28 #include "ir_Hitachi.h"
+
29 #include "ir_Kelon.h"
+
30 #include "ir_Kelvinator.h"
+
31 #include "ir_LG.h"
+
32 #include "ir_Midea.h"
+
33 #include "ir_Mirage.h"
+
34 #include "ir_Mitsubishi.h"
+
35 #include "ir_MitsubishiHeavy.h"
+
36 #include "ir_Neoclima.h"
+
37 #include "ir_Panasonic.h"
+
38 #include "ir_Rhoss.h"
+
39 #include "ir_Samsung.h"
+
40 #include "ir_Sanyo.h"
+
41 #include "ir_Sharp.h"
+
42 #include "ir_Tcl.h"
+
43 #include "ir_Technibel.h"
+
44 #include "ir_Teco.h"
+
45 #include "ir_Toshiba.h"
+
46 #include "ir_Transcold.h"
+
47 #include "ir_Trotec.h"
+
48 #include "ir_Truma.h"
+
49 #include "ir_Vestel.h"
+
50 #include "ir_Voltas.h"
+
51 #include "ir_Whirlpool.h"
+
52 #include "ir_York.h"
53 
-
54 // Class
-
56 class IRac {
-
57  public:
-
58  explicit IRac(const uint16_t pin, const bool inverted = false,
-
59  const bool use_modulation = true);
-
60  static bool isProtocolSupported(const decode_type_t protocol);
-
61  static void initState(stdAc::state_t *state,
-
62  const decode_type_t vendor, const int16_t model,
-
63  const bool power, const stdAc::opmode_t mode,
-
64  const float degrees, const bool celsius,
-
65  const stdAc::fanspeed_t fan,
-
66  const stdAc::swingv_t swingv,
-
67  const stdAc::swingh_t swingh,
-
68  const bool quiet, const bool turbo, const bool econo,
-
69  const bool light, const bool filter, const bool clean,
-
70  const bool beep, const int16_t sleep,
-
71  const int16_t clock);
-
72  static void initState(stdAc::state_t *state);
-
73  void markAsSent(void);
-
74  bool sendAc(void);
-
75  bool sendAc(const stdAc::state_t desired, const stdAc::state_t *prev = NULL);
-
76  bool sendAc(const decode_type_t vendor, const int16_t model,
-
77  const bool power, const stdAc::opmode_t mode, const float degrees,
-
78  const bool celsius, const stdAc::fanspeed_t fan,
-
79  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
80  const bool quiet, const bool turbo, const bool econo,
-
81  const bool light, const bool filter, const bool clean,
-
82  const bool beep, const int16_t sleep = -1,
-
83  const int16_t clock = -1);
-
84  static bool cmpStates(const stdAc::state_t a, const stdAc::state_t b);
-
85  static bool strToBool(const char *str, const bool def = false);
-
86  static int16_t strToModel(const char *str, const int16_t def = -1);
-
87  static stdAc::opmode_t strToOpmode(
-
88  const char *str, const stdAc::opmode_t def = stdAc::opmode_t::kAuto);
-
89  static stdAc::fanspeed_t strToFanspeed(
-
90  const char *str,
-
91  const stdAc::fanspeed_t def = stdAc::fanspeed_t::kAuto);
-
92  static stdAc::swingv_t strToSwingV(
-
93  const char *str, const stdAc::swingv_t def = stdAc::swingv_t::kOff);
-
94  static stdAc::swingh_t strToSwingH(
-
95  const char *str, const stdAc::swingh_t def = stdAc::swingh_t::kOff);
-
96  static String boolToString(const bool value);
-
97  static String opmodeToString(const stdAc::opmode_t mode,
-
98  const bool ha = false);
-
99  static String fanspeedToString(const stdAc::fanspeed_t speed);
-
100  static String swingvToString(const stdAc::swingv_t swingv);
-
101  static String swinghToString(const stdAc::swingh_t swingh);
-
102  stdAc::state_t getState(void);
-
103  stdAc::state_t getStatePrev(void);
-
104  bool hasStateChanged(void);
-
105  stdAc::state_t next;
-
106 #ifndef UNIT_TEST
-
107 
-
108  private:
-
109 #endif
-
110  uint16_t _pin;
-
111  bool _inverted;
-
112  bool _modulation;
-
113  stdAc::state_t _prev;
-
114 #if SEND_AIRTON
-
115  void airton(IRAirtonAc *ac,
-
116  const bool on, const stdAc::opmode_t mode,
-
117  const float degrees, const stdAc::fanspeed_t fan,
-
118  const stdAc::swingv_t swingv, const bool turbo,
-
119  const bool light, const bool econo, const bool filter,
-
120  const int16_t sleep = -1);
-
121 #endif // SEND_AIRTON
-
122 #if SEND_AIRWELL
-
123  void airwell(IRAirwellAc *ac,
-
124  const bool on, const stdAc::opmode_t mode, const float degrees,
-
125  const stdAc::fanspeed_t fan);
-
126 #endif // SEND_AIRWELL
-
127 #if SEND_AMCOR
-
128  void amcor(IRAmcorAc *ac,
-
129  const bool on, const stdAc::opmode_t mode, const float degrees,
-
130  const stdAc::fanspeed_t fan);
-
131 #endif // SEND_AMCOR
-
132 #if SEND_ARGO
-
133  void argo(IRArgoAC *ac,
-
134  const bool on, const stdAc::opmode_t mode, const float degrees,
-
135  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
136  const bool turbo, const int16_t sleep = -1);
-
137 #endif // SEND_ARGO
-
138 #if SEND_BOSCH144
-
139  void bosch144(IRBosch144AC *ac,
-
140  const bool on, const stdAc::opmode_t mode, const float degrees,
-
141  const stdAc::fanspeed_t fan,
-
142  const bool quiet);
-
143 #endif // SEND_COOLIX
-
144 #if SEND_CARRIER_AC64
-
145 void carrier64(IRCarrierAc64 *ac,
-
146  const bool on, const stdAc::opmode_t mode,
-
147  const float degrees, const stdAc::fanspeed_t fan,
-
148  const stdAc::swingv_t swingv, const int16_t sleep = -1);
-
149 #endif // SEND_CARRIER_AC64
-
150 #if SEND_COOLIX
-
151  void coolix(IRCoolixAC *ac,
-
152  const bool on, const stdAc::opmode_t mode, const float degrees,
-
153  const stdAc::fanspeed_t fan,
-
154  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
155  const bool turbo, const bool light, const bool clean,
-
156  const int16_t sleep = -1);
-
157 #endif // SEND_COOLIX
-
158 #if SEND_CORONA_AC
-
159  void corona(IRCoronaAc *ac,
-
160  const bool on, const stdAc::opmode_t mode,
-
161  const float degrees, const stdAc::fanspeed_t fan,
-
162  const stdAc::swingv_t swingv, const bool econo);
-
163 #endif // SEND_CORONA_AC
-
164 #if SEND_DAIKIN
-
165  void daikin(IRDaikinESP *ac,
-
166  const bool on, const stdAc::opmode_t mode, const float degrees,
-
167  const stdAc::fanspeed_t fan,
-
168  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
169  const bool quiet, const bool turbo, const bool econo,
-
170  const bool clean);
-
171 #endif // SEND_DAIKIN
-
172 #if SEND_DAIKIN128
-
173  void daikin128(IRDaikin128 *ac,
-
174  const bool on, const stdAc::opmode_t mode,
-
175  const float degrees, const stdAc::fanspeed_t fan,
-
176  const stdAc::swingv_t swingv,
-
177  const bool quiet, const bool turbo, const bool light,
-
178  const bool econo, const int16_t sleep = -1,
-
179  const int16_t clock = -1);
-
180 #endif // SEND_DAIKIN128
-
181 #if SEND_DAIKIN152
-
182  void daikin152(IRDaikin152 *ac,
-
183  const bool on, const stdAc::opmode_t mode,
-
184  const float degrees, const stdAc::fanspeed_t fan,
-
185  const stdAc::swingv_t swingv,
-
186  const bool quiet, const bool turbo, const bool econo);
-
187 #endif // SEND_DAIKIN152
-
188 #if SEND_DAIKIN160
-
189  void daikin160(IRDaikin160 *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);
-
193 #endif // SEND_DAIKIN160
-
194 #if SEND_DAIKIN176
-
195  void daikin176(IRDaikin176 *ac,
-
196  const bool on, const stdAc::opmode_t mode,
-
197  const float degrees, const stdAc::fanspeed_t fan,
-
198  const stdAc::swingh_t swingh);
-
199 #endif // SEND_DAIKIN176
-
200 #if SEND_DAIKIN2
-
201  void daikin2(IRDaikin2 *ac,
-
202  const bool on, const stdAc::opmode_t mode,
-
203  const float degrees, const stdAc::fanspeed_t fan,
-
204  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
205  const bool quiet, const bool turbo, const bool light,
-
206  const bool econo, const bool filter, const bool clean,
-
207  const bool beep, const int16_t sleep = -1,
-
208  const int16_t clock = -1);
-
209 #endif // SEND_DAIKIN2
-
210 #if SEND_DAIKIN216
-
211 void daikin216(IRDaikin216 *ac,
-
212  const bool on, const stdAc::opmode_t mode,
-
213  const float degrees, const stdAc::fanspeed_t fan,
-
214  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
215  const bool quiet, const bool turbo);
-
216 #endif // SEND_DAIKIN216
-
217 #if SEND_DAIKIN64
-
218  void daikin64(IRDaikin64 *ac,
-
219  const bool on, const stdAc::opmode_t mode,
-
220  const float degrees, const stdAc::fanspeed_t fan,
-
221  const stdAc::swingv_t swingv,
-
222  const bool quiet, const bool turbo,
-
223  const int16_t sleep = -1, const int16_t clock = -1);
-
224 #endif // SEND_DAIKIN64
-
225 #if SEND_DELONGHI_AC
-
226  void delonghiac(IRDelonghiAc *ac,
-
227  const bool on, const stdAc::opmode_t mode, const bool celsius,
-
228  const float degrees, const stdAc::fanspeed_t fan,
-
229  const bool turbo, const int16_t sleep = -1);
-
230 #endif // SEND_DELONGHI_AC
-
231 #if SEND_ECOCLIM
-
232 void ecoclim(IREcoclimAc *ac,
-
233  const bool on, const stdAc::opmode_t mode,
-
234  const float degrees, const stdAc::fanspeed_t fan,
-
235  const int16_t sleep = -1, const int16_t clock = -1);
-
236 #endif // SEND_ECOCLIM
-
237 #if SEND_ELECTRA_AC
-
238 void electra(IRElectraAc *ac,
-
239  const bool on, const stdAc::opmode_t mode,
-
240  const float degrees, const stdAc::fanspeed_t fan,
-
241  const stdAc::swingv_t swingv,
-
242  const stdAc::swingh_t swingh, const bool turbo,
-
243  const bool lighttoggle, const bool clean);
-
244 #endif // SEND_ELECTRA_AC
-
245 #if SEND_FUJITSU_AC
-
246  void fujitsu(IRFujitsuAC *ac, const fujitsu_ac_remote_model_t model,
-
247  const bool on, const stdAc::opmode_t mode,
-
248  const bool celsius, const float degrees,
-
249  const stdAc::fanspeed_t fan,
-
250  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
251  const bool quiet, const bool turbo, const bool econo,
-
252  const bool filter, const bool clean, const int16_t sleep = -1);
-
253 #endif // SEND_FUJITSU_AC
-
254 #if SEND_GOODWEATHER
-
255  void goodweather(IRGoodweatherAc *ac,
-
256  const bool on, const stdAc::opmode_t mode,
-
257  const float degrees,
-
258  const stdAc::fanspeed_t fan,
-
259  const stdAc::swingv_t swingv,
-
260  const bool turbo, const bool light,
-
261  const int16_t sleep = -1);
-
262 #endif // SEND_GOODWEATHER
-
263 #if SEND_GREE
-
264  void gree(IRGreeAC *ac, const gree_ac_remote_model_t model,
-
265  const bool on, const stdAc::opmode_t mode, const bool celsius,
-
266  const float degrees, const stdAc::fanspeed_t fan,
-
267  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
268  const bool turbo, const bool econo, const bool light,
-
269  const bool clean, const int16_t sleep = -1);
-
270 #endif // SEND_GREE
-
271 #if SEND_HAIER_AC
-
272  void haier(IRHaierAC *ac,
-
273  const bool on, const stdAc::opmode_t mode, const float degrees,
-
274  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
275  const bool filter, const int16_t sleep = -1,
-
276  const int16_t clock = -1);
-
277 #endif // SEND_HAIER_AC
-
278 #if SEND_HAIER_AC160
-
279  void haier160(IRHaierAC160 *ac,
-
280  const bool on, const stdAc::opmode_t mode, const bool celsius,
-
281  const float degrees, const stdAc::fanspeed_t fan,
-
282  const stdAc::swingv_t swingv,
-
283  const bool turbo, const bool quiet, const bool filter,
-
284  const bool clean, const bool light, const bool prevlight,
-
285  const int16_t sleep = -1);
-
286 #endif // SEND_HAIER_AC160
-
287 #if SEND_HAIER_AC176
-
288  void haier176(IRHaierAC176 *ac,
-
289  const haier_ac176_remote_model_t model, const bool on,
-
290  const stdAc::opmode_t mode, const bool celsius,
-
291  const float degrees, const stdAc::fanspeed_t fan,
-
292  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
293  const bool turbo, const bool quiet, const bool filter,
-
294  const int16_t sleep = -1);
-
295 #endif // SEND_HAIER_AC176
-
296 #if SEND_HAIER_AC_YRW02
-
297  void haierYrwo2(IRHaierACYRW02 *ac,
-
298  const bool on, const stdAc::opmode_t mode,
-
299  const bool celsius, const float degrees,
-
300  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
301  const stdAc::swingh_t swingh, const bool turbo,
-
302  const bool quiet, const bool filter,
-
303  const int16_t sleep = -1);
-
304 #endif // SEND_HAIER_AC_YRW02
-
305 #if SEND_HITACHI_AC
-
306  void hitachi(IRHitachiAc *ac,
-
307  const bool on, const stdAc::opmode_t mode,
-
308  const float degrees, const stdAc::fanspeed_t fan,
-
309  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh);
-
310 #endif // SEND_HITACHI_AC
-
311 #if SEND_HITACHI_AC1
-
312  void hitachi1(IRHitachiAc1 *ac, const hitachi_ac1_remote_model_t model,
-
313  const bool on, const bool power_toggle,
-
314  const stdAc::opmode_t mode,
-
315  const float degrees, const stdAc::fanspeed_t fan,
-
316  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
317  const bool swing_toggle, const int16_t sleep = -1);
-
318 #endif // SEND_HITACHI_AC1
-
319 #if SEND_HITACHI_AC264
-
320  void hitachi264(IRHitachiAc264 *ac,
-
321  const bool on, const stdAc::opmode_t mode,
-
322  const float degrees, const stdAc::fanspeed_t fan);
-
323 #endif // SEND_HITACHI_AC264
-
324 #if SEND_HITACHI_AC296
-
325  void hitachi296(IRHitachiAc296 *ac,
-
326  const bool on, const stdAc::opmode_t mode,
-
327  const float degrees, const stdAc::fanspeed_t fan);
-
328 #endif // SEND_HITACHI_AC296
-
329 #if SEND_HITACHI_AC344
-
330  void hitachi344(IRHitachiAc344 *ac,
-
331  const bool on, const stdAc::opmode_t mode,
-
332  const float degrees, const stdAc::fanspeed_t fan,
-
333  const stdAc::swingv_t swingv,
-
334  const stdAc::swingh_t swingh);
-
335 #endif // SEND_HITACHI_AC344
-
336 #if SEND_HITACHI_AC424
-
337  void hitachi424(IRHitachiAc424 *ac,
-
338  const bool on, const stdAc::opmode_t mode,
-
339  const float degrees, const stdAc::fanspeed_t fan,
-
340  const stdAc::swingv_t swingv);
-
341 #endif // SEND_HITACHI_AC424
-
342 #if SEND_KELON
-
343  void kelon(IRKelonAc *ac, const bool togglePower, const stdAc::opmode_t mode,
-
344  const int8_t dryGrade, const float degrees,
-
345  const stdAc::fanspeed_t fan, const bool toggleSwing,
-
346  const bool superCool, const int16_t sleep);
-
347 #endif // SEND_KELON
-
348 #if SEND_KELVINATOR
-
349  void kelvinator(IRKelvinatorAC *ac,
-
350  const bool on, const stdAc::opmode_t mode,
-
351  const float degrees, const stdAc::fanspeed_t fan,
-
352  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
353  const bool quiet, const bool turbo, const bool light,
-
354  const bool filter, const bool clean);
-
355 #endif // SEND_KELVINATOR
-
356 #if SEND_LG
-
357  void lg(IRLgAc *ac, const lg_ac_remote_model_t model,
-
358  const bool on, const stdAc::opmode_t mode,
-
359  const float degrees, const stdAc::fanspeed_t fan,
-
360  const stdAc::swingv_t swingv, const stdAc::swingv_t swingv_prev,
-
361  const stdAc::swingh_t swingh, const bool light);
-
362 #endif // SEND_LG
-
363 #if SEND_MIDEA
-
364  void midea(IRMideaAC *ac,
-
365  const bool on, const stdAc::opmode_t mode, const bool celsius,
-
366  const float degrees, const stdAc::fanspeed_t fan,
-
367  const stdAc::swingv_t swingv,
-
368  const bool quiet, const bool quiet_prev, const bool turbo,
-
369  const bool econo, const bool light, const bool clean,
-
370  const int16_t sleep = -1);
-
371 #endif // SEND_MIDEA
-
372 #if SEND_MIRAGE
-
373  void mirage(IRMirageAc *ac, const stdAc::state_t state);
-
374 #endif // SEND_MIRAGE
-
375 #if SEND_MITSUBISHI_AC
-
376  void mitsubishi(IRMitsubishiAC *ac,
-
377  const bool on, const stdAc::opmode_t mode,
-
378  const float degrees,
-
379  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
380  const stdAc::swingh_t swingh,
-
381  const bool quiet, const int16_t clock = -1);
-
382 #endif // SEND_MITSUBISHI_AC
-
383 #if SEND_MITSUBISHI112
-
384  void mitsubishi112(IRMitsubishi112 *ac,
-
385  const bool on, const stdAc::opmode_t mode,
-
386  const float degrees, const stdAc::fanspeed_t fan,
-
387  const stdAc::swingv_t swingv,
-
388  const stdAc::swingh_t swingh,
-
389  const bool quiet);
-
390 #endif // SEND_MITSUBISHI112
-
391 #if SEND_MITSUBISHI136
-
392  void mitsubishi136(IRMitsubishi136 *ac,
-
393  const bool on, const stdAc::opmode_t mode,
-
394  const float degrees, const stdAc::fanspeed_t fan,
-
395  const stdAc::swingv_t swingv, const bool quiet);
-
396 #endif // SEND_MITSUBISHI136
-
397 #if SEND_MITSUBISHIHEAVY
-
398  void mitsubishiHeavy88(IRMitsubishiHeavy88Ac *ac,
-
399  const bool on, const stdAc::opmode_t mode,
-
400  const float degrees, const stdAc::fanspeed_t fan,
-
401  const stdAc::swingv_t swingv,
-
402  const stdAc::swingh_t swingh,
-
403  const bool turbo, const bool econo, const bool clean);
-
404  void mitsubishiHeavy152(IRMitsubishiHeavy152Ac *ac,
-
405  const bool on, const stdAc::opmode_t mode,
-
406  const float degrees, const stdAc::fanspeed_t fan,
-
407  const stdAc::swingv_t swingv,
-
408  const stdAc::swingh_t swingh,
-
409  const bool quiet, const bool turbo, const bool econo,
-
410  const bool filter, const bool clean,
-
411  const int16_t sleep = -1);
-
412 #endif // SEND_MITSUBISHIHEAVY
-
413 #if SEND_NEOCLIMA
-
414  void neoclima(IRNeoclimaAc *ac, const bool on, const stdAc::opmode_t mode,
-
415  const bool celsius, const float degrees,
-
416  const stdAc::fanspeed_t fan,
-
417  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
418  const bool turbo, const bool econo, const bool light,
-
419  const bool filter, const int16_t sleep = -1);
-
420 #endif // SEND_NEOCLIMA
-
421 #if SEND_PANASONIC_AC
-
422  void panasonic(IRPanasonicAc *ac, const panasonic_ac_remote_model_t model,
-
423  const bool on, const stdAc::opmode_t mode, const float degrees,
-
424  const stdAc::fanspeed_t fan,
-
425  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
426  const bool quiet, const bool turbo, const bool filter,
-
427  const int16_t clock = -1);
-
428 #endif // SEND_PANASONIC_AC
-
429 #if SEND_PANASONIC_AC32
-
430  void panasonic32(IRPanasonicAc32 *ac,
-
431  const bool on, const stdAc::opmode_t mode,
-
432  const float degrees, const stdAc::fanspeed_t fan,
-
433  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh);
-
434 #endif // SEND_PANASONIC_AC32
-
435 #if SEND_RHOSS
-
436  void rhoss(IRRhossAc *ac,
-
437  const bool on, const stdAc::opmode_t mode, const float degrees,
-
438  const stdAc::fanspeed_t fan, const stdAc::swingv_t swing);
-
439 #endif // SEND_RHOSS
-
440 #if SEND_SAMSUNG_AC
-
441  void samsung(IRSamsungAc *ac,
-
442  const bool on, const stdAc::opmode_t mode, const float degrees,
-
443  const stdAc::fanspeed_t fan,
-
444  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
445  const bool quiet, const bool turbo, const bool econo,
-
446  const bool light, const bool filter, const bool clean,
-
447  const bool beep, const int16_t sleep = -1,
-
448  const bool prevpower = true, const int16_t prevsleep = -1,
-
449  const bool forceextended = true);
-
450 #endif // SEND_SAMSUNG_AC
-
451 #if SEND_SANYO_AC
-
452  void sanyo(IRSanyoAc *ac,
-
453  const bool on, const stdAc::opmode_t mode, const float degrees,
-
454  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
455  const bool beep, const int16_t sleep = -1);
-
456 #endif // SEND_SANYO_AC
-
457 #if SEND_SANYO_AC88
-
458  void sanyo88(IRSanyoAc88 *ac,
-
459  const bool on, const stdAc::opmode_t mode,
-
460  const float degrees, const stdAc::fanspeed_t fan,
-
461  const stdAc::swingv_t swingv, const bool turbo,
-
462  const bool filter,
-
463  const int16_t sleep = -1, const int16_t clock = -1);
-
464 #endif // SEND_SANYO_AC88
-
465 #if SEND_SHARP_AC
-
466  void sharp(IRSharpAc *ac, const sharp_ac_remote_model_t model,
-
467  const bool on, const bool prev_power, const stdAc::opmode_t mode,
-
468  const float degrees, const stdAc::fanspeed_t fan,
-
469  const stdAc::swingv_t swingv, const stdAc::swingv_t swingv_prev,
-
470  const bool turbo, const bool light,
-
471  const bool filter, const bool clean);
-
472 #endif // SEND_SHARP_AC
-
473 #if SEND_TCL112AC
-
474  void tcl112(IRTcl112Ac *ac, const tcl_ac_remote_model_t model,
-
475  const bool on, const stdAc::opmode_t mode, const float degrees,
-
476  const stdAc::fanspeed_t fan,
-
477  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
478  const bool quiet, const bool turbo, const bool light,
-
479  const bool econo, const bool filter);
-
480 #endif // SEND_TCL112AC
-
481 #if SEND_TECHNIBEL_AC
-
482  void technibel(IRTechnibelAc *ac,
-
483  const bool on, const stdAc::opmode_t mode, const bool celsius,
-
484  const float degrees, const stdAc::fanspeed_t fan,
-
485  const stdAc::swingv_t swingv, const int16_t sleep = -1);
-
486 #endif // SEND_TECHNIBEL_AC
-
487 #if SEND_TECO
-
488  void teco(IRTecoAc *ac,
-
489  const bool on, const stdAc::opmode_t mode, const float degrees,
-
490  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
491  const bool light, const int16_t sleep = -1);
-
492 #endif // SEND_TECO
-
493 #if SEND_TOSHIBA_AC
-
494  void toshiba(IRToshibaAC *ac,
-
495  const bool on, const stdAc::opmode_t mode, const float degrees,
-
496  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
497  const bool turbo, const bool econo, const bool filter);
-
498 #endif // SEND_TOSHIBA_AC
-
499 #if SEND_TROTEC
-
500  void trotec(IRTrotecESP *ac,
+
54 // Constants
+
55 const int8_t kGpioUnused = -1;
+
56 
+
57 // Class
+
59 class IRac {
+
60  public:
+
61  explicit IRac(const uint16_t pin, const bool inverted = false,
+
62  const bool use_modulation = true);
+
63  static bool isProtocolSupported(const decode_type_t protocol);
+
64  static void initState(stdAc::state_t *state,
+
65  const decode_type_t vendor, const int16_t model,
+
66  const bool power, const stdAc::opmode_t mode,
+
67  const float degrees, const bool celsius,
+
68  const stdAc::fanspeed_t fan,
+
69  const stdAc::swingv_t swingv,
+
70  const stdAc::swingh_t swingh,
+
71  const bool quiet, const bool turbo, const bool econo,
+
72  const bool light, const bool filter, const bool clean,
+
73  const bool beep, const int16_t sleep,
+
74  const int16_t clock);
+
75  static void initState(stdAc::state_t *state);
+
76  void markAsSent(void);
+
77  bool sendAc(void);
+
78  bool sendAc(const stdAc::state_t desired, const stdAc::state_t *prev = NULL);
+
79  bool sendAc(const decode_type_t vendor, const int16_t model,
+
80  const bool power, const stdAc::opmode_t mode, const float degrees,
+
81  const bool celsius, const stdAc::fanspeed_t fan,
+
82  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
83  const bool quiet, const bool turbo, const bool econo,
+
84  const bool light, const bool filter, const bool clean,
+
85  const bool beep, const int16_t sleep = -1,
+
86  const int16_t clock = -1);
+
87  static bool cmpStates(const stdAc::state_t a, const stdAc::state_t b);
+
88  static bool strToBool(const char *str, const bool def = false);
+
89  static int16_t strToModel(const char *str, const int16_t def = -1);
+
90  static stdAc::ac_command_t strToCommandType(const char *str,
+
91  const stdAc::ac_command_t def = stdAc::ac_command_t::kControlCommand);
+
92  static stdAc::opmode_t strToOpmode(
+
93  const char *str, const stdAc::opmode_t def = stdAc::opmode_t::kAuto);
+
94  static stdAc::fanspeed_t strToFanspeed(
+
95  const char *str,
+
96  const stdAc::fanspeed_t def = stdAc::fanspeed_t::kAuto);
+
97  static stdAc::swingv_t strToSwingV(
+
98  const char *str, const stdAc::swingv_t def = stdAc::swingv_t::kOff);
+
99  static stdAc::swingh_t strToSwingH(
+
100  const char *str, const stdAc::swingh_t def = stdAc::swingh_t::kOff);
+
101  static String boolToString(const bool value);
+
102  static String commandTypeToString(const stdAc::ac_command_t cmdType);
+
103  static String opmodeToString(const stdAc::opmode_t mode,
+
104  const bool ha = false);
+
105  static String fanspeedToString(const stdAc::fanspeed_t speed);
+
106  static String swingvToString(const stdAc::swingv_t swingv);
+
107  static String swinghToString(const stdAc::swingh_t swingh);
+
108  stdAc::state_t getState(void);
+
109  stdAc::state_t getStatePrev(void);
+
110  bool hasStateChanged(void);
+
111  stdAc::state_t next;
+
112 #ifdef UNIT_TEST
+
113  std::shared_ptr<IRrecv> _utReceiver = nullptr;
+
117  std::unique_ptr<decode_results> _lastDecodeResults = nullptr;
+
119 #else
+
120 
+
121  private:
+
122 #endif // UNIT_TEST
+
123  uint16_t _pin;
+
124  bool _inverted;
+
125  bool _modulation;
+
126  stdAc::state_t _prev;
+
127 #if SEND_AIRTON
+
128  void airton(IRAirtonAc *ac,
+
129  const bool on, const stdAc::opmode_t mode,
+
130  const float degrees, const stdAc::fanspeed_t fan,
+
131  const stdAc::swingv_t swingv, const bool turbo,
+
132  const bool light, const bool econo, const bool filter,
+
133  const int16_t sleep = -1);
+
134 #endif // SEND_AIRTON
+
135 #if SEND_AIRWELL
+
136  void airwell(IRAirwellAc *ac,
+
137  const bool on, const stdAc::opmode_t mode, const float degrees,
+
138  const stdAc::fanspeed_t fan);
+
139 #endif // SEND_AIRWELL
+
140 #if SEND_AMCOR
+
141  void amcor(IRAmcorAc *ac,
+
142  const bool on, const stdAc::opmode_t mode, const float degrees,
+
143  const stdAc::fanspeed_t fan);
+
144 #endif // SEND_AMCOR
+
145 #if SEND_ARGO
+
146  void argo(IRArgoAC *ac,
+
147  const bool on, const stdAc::opmode_t mode, const float degrees,
+
148  const float sensorTemp, const stdAc::fanspeed_t fan,
+
149  const stdAc::swingv_t swingv, const bool iFeel, const bool turbo,
+
150  const int16_t sleep = -1);
+
151  void argoWrem3_ACCommand(IRArgoAC_WREM3 *ac,
+
152  const bool on, const stdAc::opmode_t mode, const float degrees,
+
153  const float sensorTemp, const stdAc::fanspeed_t fan,
+
154  const stdAc::swingv_t swingv, const bool iFeel, const bool night,
+
155  const bool econo, const bool turbo, const bool filter, const bool light);
+
156  void argoWrem3_iFeelReport(IRArgoAC_WREM3 *ac, const float sensorTemp);
+
157  void argoWrem3_ConfigSet(IRArgoAC_WREM3 *ac, const uint8_t param,
+
158  const uint8_t value, bool safe = true);
+
159  void argoWrem3_SetTimer(IRArgoAC_WREM3 *ac, bool on,
+
160  const uint16_t currentTime, const uint16_t delayMinutes);
+
161 #endif // SEND_ARGO
+
162 #if SEND_BOSCH144
+
163  void bosch144(IRBosch144AC *ac,
+
164  const bool on, const stdAc::opmode_t mode, const float degrees,
+
165  const stdAc::fanspeed_t fan,
+
166  const bool quiet);
+
167 #endif // SEND_BOSCH144
+
168 #if SEND_CARRIER_AC64
+
169 void carrier64(IRCarrierAc64 *ac,
+
170  const bool on, const stdAc::opmode_t mode,
+
171  const float degrees, const stdAc::fanspeed_t fan,
+
172  const stdAc::swingv_t swingv, const int16_t sleep = -1);
+
173 #endif // SEND_CARRIER_AC64
+
174 #if SEND_COOLIX
+
175  void coolix(IRCoolixAC *ac,
+
176  const bool on, const stdAc::opmode_t mode, const float degrees,
+
177  const float sensorTemp, const stdAc::fanspeed_t fan,
+
178  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
179  const bool iFeel, const bool turbo, const bool light,
+
180  const bool clean, const int16_t sleep = -1);
+
181 #endif // SEND_COOLIX
+
182 #if SEND_CORONA_AC
+
183  void corona(IRCoronaAc *ac,
+
184  const bool on, const stdAc::opmode_t mode,
+
185  const float degrees, const stdAc::fanspeed_t fan,
+
186  const stdAc::swingv_t swingv, const bool econo);
+
187 #endif // SEND_CORONA_AC
+
188 #if SEND_DAIKIN
+
189  void daikin(IRDaikinESP *ac,
+
190  const bool on, const stdAc::opmode_t mode, const float degrees,
+
191  const stdAc::fanspeed_t fan,
+
192  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
193  const bool quiet, const bool turbo, const bool econo,
+
194  const bool clean);
+
195 #endif // SEND_DAIKIN
+
196 #if SEND_DAIKIN128
+
197  void daikin128(IRDaikin128 *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, const bool light,
+
202  const bool econo, const int16_t sleep = -1,
+
203  const int16_t clock = -1);
+
204 #endif // SEND_DAIKIN128
+
205 #if SEND_DAIKIN152
+
206  void daikin152(IRDaikin152 *ac,
+
207  const bool on, const stdAc::opmode_t mode,
+
208  const float degrees, const stdAc::fanspeed_t fan,
+
209  const stdAc::swingv_t swingv,
+
210  const bool quiet, const bool turbo, const bool econo);
+
211 #endif // SEND_DAIKIN152
+
212 #if SEND_DAIKIN160
+
213  void daikin160(IRDaikin160 *ac,
+
214  const bool on, const stdAc::opmode_t mode,
+
215  const float degrees, const stdAc::fanspeed_t fan,
+
216  const stdAc::swingv_t swingv);
+
217 #endif // SEND_DAIKIN160
+
218 #if SEND_DAIKIN176
+
219  void daikin176(IRDaikin176 *ac,
+
220  const bool on, const stdAc::opmode_t mode,
+
221  const float degrees, const stdAc::fanspeed_t fan,
+
222  const stdAc::swingh_t swingh);
+
223 #endif // SEND_DAIKIN176
+
224 #if SEND_DAIKIN2
+
225  void daikin2(IRDaikin2 *ac,
+
226  const bool on, const stdAc::opmode_t mode,
+
227  const float degrees, 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 light,
+
230  const bool econo, const bool filter, const bool clean,
+
231  const bool beep, const int16_t sleep = -1,
+
232  const int16_t clock = -1);
+
233 #endif // SEND_DAIKIN2
+
234 #if SEND_DAIKIN216
+
235 void daikin216(IRDaikin216 *ac,
+
236  const bool on, const stdAc::opmode_t mode,
+
237  const float degrees, const stdAc::fanspeed_t fan,
+
238  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
239  const bool quiet, const bool turbo);
+
240 #endif // SEND_DAIKIN216
+
241 #if SEND_DAIKIN64
+
242  void daikin64(IRDaikin64 *ac,
+
243  const bool on, const stdAc::opmode_t mode,
+
244  const float degrees, const stdAc::fanspeed_t fan,
+
245  const stdAc::swingv_t swingv,
+
246  const bool quiet, const bool turbo,
+
247  const int16_t sleep = -1, const int16_t clock = -1);
+
248 #endif // SEND_DAIKIN64
+
249 #if SEND_DELONGHI_AC
+
250  void delonghiac(IRDelonghiAc *ac,
+
251  const bool on, const stdAc::opmode_t mode, const bool celsius,
+
252  const float degrees, const stdAc::fanspeed_t fan,
+
253  const bool turbo, const int16_t sleep = -1);
+
254 #endif // SEND_DELONGHI_AC
+
255 #if SEND_ECOCLIM
+
256 void ecoclim(IREcoclimAc *ac,
+
257  const bool on, const stdAc::opmode_t mode,
+
258  const float degrees, const float sensorTemp,
+
259  const stdAc::fanspeed_t fan, const int16_t sleep = -1,
+
260  const int16_t clock = -1);
+
261 #endif // SEND_ECOCLIM
+
262 #if SEND_ELECTRA_AC
+
263 void electra(IRElectraAc *ac,
+
264  const bool on, const stdAc::opmode_t mode,
+
265  const float degrees, const float sensorTemp,
+
266  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
267  const stdAc::swingh_t swingh, const bool iFeel, const bool turbo,
+
268  const bool lighttoggle, const bool clean);
+
269 #endif // SEND_ELECTRA_AC
+
270 #if SEND_FUJITSU_AC
+
271  void fujitsu(IRFujitsuAC *ac, const fujitsu_ac_remote_model_t model,
+
272  const bool on, const stdAc::opmode_t mode,
+
273  const bool celsius, const float degrees,
+
274  const stdAc::fanspeed_t fan,
+
275  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
276  const bool quiet, const bool turbo, const bool econo,
+
277  const bool filter, const bool clean, const int16_t sleep = -1);
+
278 #endif // SEND_FUJITSU_AC
+
279 #if SEND_GOODWEATHER
+
280  void goodweather(IRGoodweatherAc *ac,
+
281  const bool on, const stdAc::opmode_t mode,
+
282  const float degrees,
+
283  const stdAc::fanspeed_t fan,
+
284  const stdAc::swingv_t swingv,
+
285  const bool turbo, const bool light,
+
286  const int16_t sleep = -1);
+
287 #endif // SEND_GOODWEATHER
+
288 #if SEND_GREE
+
289  void gree(IRGreeAC *ac, const gree_ac_remote_model_t model,
+
290  const bool on, const stdAc::opmode_t mode, const bool celsius,
+
291  const float degrees, const stdAc::fanspeed_t fan,
+
292  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
293  const bool iFeel, const bool turbo, const bool econo,
+
294  const bool light, const bool clean, const int16_t sleep = -1);
+
295 #endif // SEND_GREE
+
296 #if SEND_HAIER_AC
+
297  void haier(IRHaierAC *ac,
+
298  const bool on, const stdAc::opmode_t mode, const float degrees,
+
299  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
300  const bool filter, const int16_t sleep = -1,
+
301  const int16_t clock = -1);
+
302 #endif // SEND_HAIER_AC
+
303 #if SEND_HAIER_AC160
+
304  void haier160(IRHaierAC160 *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,
+
308  const bool turbo, const bool quiet, const bool filter,
+
309  const bool clean, const bool light, const bool prevlight,
+
310  const int16_t sleep = -1);
+
311 #endif // SEND_HAIER_AC160
+
312 #if SEND_HAIER_AC176
+
313  void haier176(IRHaierAC176 *ac,
+
314  const haier_ac176_remote_model_t model, const bool on,
+
315  const stdAc::opmode_t mode, const bool celsius,
+
316  const float degrees, const stdAc::fanspeed_t fan,
+
317  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
318  const bool turbo, const bool quiet, const bool filter,
+
319  const int16_t sleep = -1);
+
320 #endif // SEND_HAIER_AC176
+
321 #if SEND_HAIER_AC_YRW02
+
322  void haierYrwo2(IRHaierACYRW02 *ac,
+
323  const bool on, const stdAc::opmode_t mode,
+
324  const bool celsius, const float degrees,
+
325  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
326  const stdAc::swingh_t swingh, const bool turbo,
+
327  const bool quiet, const bool filter,
+
328  const int16_t sleep = -1);
+
329 #endif // SEND_HAIER_AC_YRW02
+
330 #if SEND_HITACHI_AC
+
331  void hitachi(IRHitachiAc *ac,
+
332  const bool on, const stdAc::opmode_t mode,
+
333  const float degrees, const stdAc::fanspeed_t fan,
+
334  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh);
+
335 #endif // SEND_HITACHI_AC
+
336 #if SEND_HITACHI_AC1
+
337  void hitachi1(IRHitachiAc1 *ac, const hitachi_ac1_remote_model_t model,
+
338  const bool on, const bool power_toggle,
+
339  const stdAc::opmode_t mode,
+
340  const float degrees, const stdAc::fanspeed_t fan,
+
341  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
342  const bool swing_toggle, const int16_t sleep = -1);
+
343 #endif // SEND_HITACHI_AC1
+
344 #if SEND_HITACHI_AC264
+
345  void hitachi264(IRHitachiAc264 *ac,
+
346  const bool on, const stdAc::opmode_t mode,
+
347  const float degrees, const stdAc::fanspeed_t fan);
+
348 #endif // SEND_HITACHI_AC264
+
349 #if SEND_HITACHI_AC296
+
350  void hitachi296(IRHitachiAc296 *ac,
+
351  const bool on, const stdAc::opmode_t mode,
+
352  const float degrees, const stdAc::fanspeed_t fan);
+
353 #endif // SEND_HITACHI_AC296
+
354 #if SEND_HITACHI_AC344
+
355  void hitachi344(IRHitachiAc344 *ac,
+
356  const bool on, const stdAc::opmode_t mode,
+
357  const float degrees, const stdAc::fanspeed_t fan,
+
358  const stdAc::swingv_t swingv,
+
359  const stdAc::swingh_t swingh);
+
360 #endif // SEND_HITACHI_AC344
+
361 #if SEND_HITACHI_AC424
+
362  void hitachi424(IRHitachiAc424 *ac,
+
363  const bool on, const stdAc::opmode_t mode,
+
364  const float degrees, const stdAc::fanspeed_t fan,
+
365  const stdAc::swingv_t swingv);
+
366 #endif // SEND_HITACHI_AC424
+
367 #if SEND_KELON
+
368  void kelon(IRKelonAc *ac, const bool togglePower, const stdAc::opmode_t mode,
+
369  const int8_t dryGrade, const float degrees,
+
370  const stdAc::fanspeed_t fan, const bool toggleSwing,
+
371  const bool superCool, const int16_t sleep);
+
372 #endif // SEND_KELON
+
373 #if SEND_KELVINATOR
+
374  void kelvinator(IRKelvinatorAC *ac,
+
375  const bool on, const stdAc::opmode_t mode,
+
376  const float degrees, const stdAc::fanspeed_t fan,
+
377  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
378  const bool quiet, const bool turbo, const bool light,
+
379  const bool filter, const bool clean);
+
380 #endif // SEND_KELVINATOR
+
381 #if SEND_LG
+
382  void lg(IRLgAc *ac, const lg_ac_remote_model_t model,
+
383  const bool on, const stdAc::opmode_t mode,
+
384  const float degrees, const stdAc::fanspeed_t fan,
+
385  const stdAc::swingv_t swingv, const stdAc::swingv_t swingv_prev,
+
386  const stdAc::swingh_t swingh, const bool light);
+
387 #endif // SEND_LG
+
388 #if SEND_MIDEA
+
389  void midea(IRMideaAC *ac,
+
390  const bool on, const stdAc::opmode_t mode, const bool celsius,
+
391  const float degrees, const float sensorTemp,
+
392  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
393  const bool iFeel, const bool quiet, const bool quiet_prev,
+
394  const bool turbo, const bool econo, const bool light,
+
395  const bool clean, const int16_t sleep = -1);
+
396 #endif // SEND_MIDEA
+
397 #if SEND_MIRAGE
+
398  void mirage(IRMirageAc *ac, const stdAc::state_t state);
+
399 #endif // SEND_MIRAGE
+
400 #if SEND_MITSUBISHI_AC
+
401  void mitsubishi(IRMitsubishiAC *ac,
+
402  const bool on, const stdAc::opmode_t mode,
+
403  const float degrees,
+
404  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
405  const stdAc::swingh_t swingh,
+
406  const bool quiet, const int16_t clock = -1);
+
407 #endif // SEND_MITSUBISHI_AC
+
408 #if SEND_MITSUBISHI112
+
409  void mitsubishi112(IRMitsubishi112 *ac,
+
410  const bool on, const stdAc::opmode_t mode,
+
411  const float degrees, const stdAc::fanspeed_t fan,
+
412  const stdAc::swingv_t swingv,
+
413  const stdAc::swingh_t swingh,
+
414  const bool quiet);
+
415 #endif // SEND_MITSUBISHI112
+
416 #if SEND_MITSUBISHI136
+
417  void mitsubishi136(IRMitsubishi136 *ac,
+
418  const bool on, const stdAc::opmode_t mode,
+
419  const float degrees, const stdAc::fanspeed_t fan,
+
420  const stdAc::swingv_t swingv, const bool quiet);
+
421 #endif // SEND_MITSUBISHI136
+
422 #if SEND_MITSUBISHIHEAVY
+
423  void mitsubishiHeavy88(IRMitsubishiHeavy88Ac *ac,
+
424  const bool on, const stdAc::opmode_t mode,
+
425  const float degrees, const stdAc::fanspeed_t fan,
+
426  const stdAc::swingv_t swingv,
+
427  const stdAc::swingh_t swingh,
+
428  const bool turbo, const bool econo, const bool clean);
+
429  void mitsubishiHeavy152(IRMitsubishiHeavy152Ac *ac,
+
430  const bool on, const stdAc::opmode_t mode,
+
431  const float degrees, const stdAc::fanspeed_t fan,
+
432  const stdAc::swingv_t swingv,
+
433  const stdAc::swingh_t swingh,
+
434  const bool quiet, const bool turbo, const bool econo,
+
435  const bool filter, const bool clean,
+
436  const int16_t sleep = -1);
+
437 #endif // SEND_MITSUBISHIHEAVY
+
438 #if SEND_NEOCLIMA
+
439  void neoclima(IRNeoclimaAc *ac, const bool on, const stdAc::opmode_t mode,
+
440  const bool celsius, const float degrees,
+
441  const stdAc::fanspeed_t fan,
+
442  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
443  const bool turbo, const bool econo, const bool light,
+
444  const bool filter, const int16_t sleep = -1);
+
445 #endif // SEND_NEOCLIMA
+
446 #if SEND_PANASONIC_AC
+
447  void panasonic(IRPanasonicAc *ac, const panasonic_ac_remote_model_t model,
+
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  const bool quiet, const bool turbo, const bool filter,
+
452  const int16_t clock = -1);
+
453 #endif // SEND_PANASONIC_AC
+
454 #if SEND_PANASONIC_AC32
+
455  void panasonic32(IRPanasonicAc32 *ac,
+
456  const bool on, const stdAc::opmode_t mode,
+
457  const float degrees, const stdAc::fanspeed_t fan,
+
458  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh);
+
459 #endif // SEND_PANASONIC_AC32
+
460 #if SEND_RHOSS
+
461  void rhoss(IRRhossAc *ac,
+
462  const bool on, const stdAc::opmode_t mode, const float degrees,
+
463  const stdAc::fanspeed_t fan, const stdAc::swingv_t swing);
+
464 #endif // SEND_RHOSS
+
465 #if SEND_SAMSUNG_AC
+
466  void samsung(IRSamsungAc *ac,
+
467  const bool on, const stdAc::opmode_t mode, const float degrees,
+
468  const stdAc::fanspeed_t fan,
+
469  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
470  const bool quiet, const bool turbo, const bool econo,
+
471  const bool light, const bool filter, const bool clean,
+
472  const bool beep, const int16_t sleep = -1,
+
473  const bool prevpower = true, const int16_t prevsleep = -1,
+
474  const bool forceextended = true);
+
475 #endif // SEND_SAMSUNG_AC
+
476 #if SEND_SANYO_AC
+
477  void sanyo(IRSanyoAc *ac,
+
478  const bool on, const stdAc::opmode_t mode, const float degrees,
+
479  const float sensorTemp, const stdAc::fanspeed_t fan,
+
480  const stdAc::swingv_t swingv, const bool iFeel, const bool beep,
+
481  const int16_t sleep = -1);
+
482 #endif // SEND_SANYO_AC
+
483 #if SEND_SANYO_AC88
+
484  void sanyo88(IRSanyoAc88 *ac,
+
485  const bool on, const stdAc::opmode_t mode,
+
486  const float degrees, const stdAc::fanspeed_t fan,
+
487  const stdAc::swingv_t swingv, const bool turbo,
+
488  const bool filter,
+
489  const int16_t sleep = -1, const int16_t clock = -1);
+
490 #endif // SEND_SANYO_AC88
+
491 #if SEND_SHARP_AC
+
492  void sharp(IRSharpAc *ac, const sharp_ac_remote_model_t model,
+
493  const bool on, const bool prev_power, const stdAc::opmode_t mode,
+
494  const float degrees, const stdAc::fanspeed_t fan,
+
495  const stdAc::swingv_t swingv, const stdAc::swingv_t swingv_prev,
+
496  const bool turbo, const bool light,
+
497  const bool filter, const bool clean);
+
498 #endif // SEND_SHARP_AC
+
499 #if SEND_TCL112AC
+
500  void tcl112(IRTcl112Ac *ac, const tcl_ac_remote_model_t model,
501  const bool on, const stdAc::opmode_t mode, const float degrees,
-
502  const stdAc::fanspeed_t fan, const int16_t sleep = -1);
-
503 #endif // SEND_TROTEC
-
504 #if SEND_TROTEC_3550
-
505  void trotec3550(IRTrotec3550 *ac,
-
506  const bool on, const stdAc::opmode_t mode,
-
507  const bool celsius, const float degrees,
-
508  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv);
-
509 #endif // SEND_TROTEC_3550
-
510 #if SEND_TRUMA
-
511  void truma(IRTrumaAc *ac,
-
512  const bool on, const stdAc::opmode_t mode, const float degrees,
-
513  const stdAc::fanspeed_t fan, const bool quiet);
-
514 #endif // SEND_TRUMA
-
515 #if SEND_VESTEL_AC
-
516  void vestel(IRVestelAc *ac,
-
517  const bool on, const stdAc::opmode_t mode, const float degrees,
-
518  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
519  const bool turbo, const bool filter,
-
520  const int16_t sleep = -1, const int16_t clock = -1,
-
521  const bool sendNormal = true);
-
522 #endif // SEND_VESTEL_AC
-
523 #if SEND_VOLTAS
-
524  void voltas(IRVoltas *ac, const voltas_ac_remote_model_t model,
-
525  const bool on, const stdAc::opmode_t mode,
-
526  const float degrees, const stdAc::fanspeed_t fan,
-
527  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
528  const bool turbo, const bool econo, const bool light,
-
529  const int16_t sleep = -1);
-
530 #endif // SEND_VOLTAS
-
531 #if SEND_WHIRLPOOL_AC
-
532  void whirlpool(IRWhirlpoolAc *ac, const whirlpool_ac_remote_model_t model,
-
533  const bool on, const stdAc::opmode_t mode, const float degrees,
-
534  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
535  const bool turbo, const bool light,
-
536  const int16_t sleep = -1, const int16_t clock = -1);
-
537 #endif // SEND_WHIRLPOOL_AC
-
538 #if SEND_TRANSCOLD
-
539  void transcold(IRTranscoldAc *ac,
-
540  const bool on, const stdAc::opmode_t mode, const float degrees,
-
541  const stdAc::fanspeed_t fan,
-
542  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh);
-
543 #endif // SEND_TRANSCOLD
-
544 static stdAc::state_t cleanState(const stdAc::state_t state);
-
545 static stdAc::state_t handleToggles(const stdAc::state_t desired,
-
546  const stdAc::state_t *prev = NULL);
-
547 }; // IRac class
-
548 
-
550 namespace IRAcUtils {
-
551  String resultAcToString(const decode_results * const results);
-
552  bool decodeToState(const decode_results *decode, stdAc::state_t *result,
-
553  const stdAc::state_t *prev = NULL);
-
554 } // namespace IRAcUtils
-
555 #endif // IRAC_H_
+
502  const stdAc::fanspeed_t fan,
+
503  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
504  const bool quiet, const bool turbo, const bool light,
+
505  const bool econo, const bool filter);
+
506 #endif // SEND_TCL112AC
+
507 #if SEND_TECHNIBEL_AC
+
508  void technibel(IRTechnibelAc *ac,
+
509  const bool on, const stdAc::opmode_t mode, const bool celsius,
+
510  const float degrees, const stdAc::fanspeed_t fan,
+
511  const stdAc::swingv_t swingv, const int16_t sleep = -1);
+
512 #endif // SEND_TECHNIBEL_AC
+
513 #if SEND_TECO
+
514  void teco(IRTecoAc *ac,
+
515  const bool on, const stdAc::opmode_t mode, const float degrees,
+
516  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
517  const bool light, const int16_t sleep = -1);
+
518 #endif // SEND_TECO
+
519 #if SEND_TOSHIBA_AC
+
520  void toshiba(IRToshibaAC *ac,
+
521  const bool on, const stdAc::opmode_t mode, const float degrees,
+
522  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
523  const bool turbo, const bool econo, const bool filter);
+
524 #endif // SEND_TOSHIBA_AC
+
525 #if SEND_TROTEC
+
526  void trotec(IRTrotecESP *ac,
+
527  const bool on, const stdAc::opmode_t mode, const float degrees,
+
528  const stdAc::fanspeed_t fan, const int16_t sleep = -1);
+
529 #endif // SEND_TROTEC
+
530 #if SEND_TROTEC_3550
+
531  void trotec3550(IRTrotec3550 *ac,
+
532  const bool on, const stdAc::opmode_t mode,
+
533  const bool celsius, const float degrees,
+
534  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv);
+
535 #endif // SEND_TROTEC_3550
+
536 #if SEND_TRUMA
+
537  void truma(IRTrumaAc *ac,
+
538  const bool on, const stdAc::opmode_t mode, const float degrees,
+
539  const stdAc::fanspeed_t fan, const bool quiet);
+
540 #endif // SEND_TRUMA
+
541 #if SEND_VESTEL_AC
+
542  void vestel(IRVestelAc *ac,
+
543  const bool on, const stdAc::opmode_t mode, const float degrees,
+
544  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
545  const bool turbo, const bool filter,
+
546  const int16_t sleep = -1, const int16_t clock = -1,
+
547  const bool sendNormal = true);
+
548 #endif // SEND_VESTEL_AC
+
549 #if SEND_VOLTAS
+
550  void voltas(IRVoltas *ac, const voltas_ac_remote_model_t model,
+
551  const bool on, const stdAc::opmode_t mode,
+
552  const float degrees, const stdAc::fanspeed_t fan,
+
553  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
554  const bool turbo, const bool econo, const bool light,
+
555  const int16_t sleep = -1);
+
556 #endif // SEND_VOLTAS
+
557 #if SEND_WHIRLPOOL_AC
+
558  void whirlpool(IRWhirlpoolAc *ac, const whirlpool_ac_remote_model_t model,
+
559  const bool on, const stdAc::opmode_t mode, const float degrees,
+
560  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
561  const bool turbo, const bool light,
+
562  const int16_t sleep = -1, const int16_t clock = -1);
+
563 #endif // SEND_WHIRLPOOL_AC
+
564 #if SEND_TRANSCOLD
+
565  void transcold(IRTranscoldAc *ac,
+
566  const bool on, const stdAc::opmode_t mode, const float degrees,
+
567  const stdAc::fanspeed_t fan,
+
568  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh);
+
569 #endif // SEND_TRANSCOLD
+
570 static stdAc::state_t cleanState(const stdAc::state_t state);
+
571 static stdAc::state_t handleToggles(const stdAc::state_t desired,
+
572  const stdAc::state_t *prev = NULL);
+
573 }; // IRac class
+
574 
+
576 namespace IRAcUtils {
+
577  String resultAcToString(const decode_results * const results);
+
578  bool decodeToState(const decode_results *decode, stdAc::state_t *result,
+
579  const stdAc::state_t *prev = NULL);
+
580 } // namespace IRAcUtils
+
581 #endif // IRAC_H_
IRPanasonicAc
Class for handling detailed Panasonic A/C messages.
Definition: ir_Panasonic.h:104
-
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:387
+
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:421
ir_Kelvinator.h
Support for Kelvinator A/C protocols.
+
IRac::electra
void electra(IRElectraAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const float sensorTemp, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool iFeel, const bool turbo, const bool lighttoggle, const bool clean)
Send an Electra A/C message with the supplied settings.
Definition: IRac.cpp:1166
IRSamsungAc
Class for handling detailed Samsung A/C messages.
Definition: ir_Samsung.h:186
-
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:1345
+
IRac::commandTypeToString
static String commandTypeToString(const stdAc::ac_command_t cmdType)
Convert the supplied operation mode into the appropriate String.
Definition: IRac.cpp:3971
+
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:1529
IRToshibaAC
Class for handling detailed Toshiba A/C messages.
Definition: ir_Toshiba.h:127
-
decode_type_t
decode_type_t
Enumerator for defining and numbering of supported IR protocol.
Definition: IRremoteESP8266.h:982
-
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:146
-
IRac::getState
stdAc::state_t getState(void)
Get the current internal A/C climate state.
Definition: IRac.cpp:141
+
decode_type_t
decode_type_t
Enumerator for defining and numbering of supported IR protocol.
Definition: IRremoteESP8266.h:1011
+
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:177
+
IRac::getState
stdAc::state_t getState(void)
Get the current internal A/C climate state.
Definition: IRac.cpp:172
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:3544
-
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:1479
+
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:3803
+
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:1663
stdAc::opmode_t::kAuto
@ kAuto
IRAirtonAc
Class for handling detailed Airton 56-bit A/C messages.
Definition: ir_Airton.h:75
ir_Electra.h
Support for Electra A/C protocols.
-
IRac::ecoclim
void ecoclim(IREcoclimAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const int16_t sleep=-1, const int16_t clock=-1)
Send an EcoClim A/C message with the supplied settings.
Definition: IRac.cpp:946
-
IRac::markAsSent
void markAsSent(void)
Update the previous state to the current one.
Definition: IRac.cpp:3401
-
stdAc::swingv_t
swingv_t
Common A/C settings for Vertical Swing.
Definition: IRsend.h:70
+
IRac::markAsSent
void markAsSent(void)
Update the previous state to the current one.
Definition: IRac.cpp:3634
+
stdAc::swingv_t
swingv_t
Common A/C settings for Vertical Swing.
Definition: IRsend.h:74
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:823
+
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:990
+
IRac::strToCommandType
static stdAc::ac_command_t strToCommandType(const char *str, const stdAc::ac_command_t def=stdAc::ac_command_t::kControlCommand)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:3671
ir_Trotec.h
Support for Trotec protocols.
ir_Bosch.h
Support for Bosch A/C protocol.
-
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 Sanyo A/C message with the supplied settings.
Definition: IRac.cpp:2087
+
IRac::argoWrem3_SetTimer
void argoWrem3_SetTimer(IRArgoAC_WREM3 *ac, bool on, const uint16_t currentTime, const uint16_t delayMinutes)
Send an Argo A/C WREM-3 Delay timer command.
Definition: IRac.cpp:613
IRDaikinESP
Class for handling detailed Daikin 280-bit A/C messages.
Definition: ir_Daikin.h:723
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:1582
+
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:1766
IRDaikin2
Class for handling detailed Daikin 312-bit A/C messages.
Definition: ir_Daikin.h:805
-
IRac::fujitsu
void fujitsu(IRFujitsuAC *ac, const fujitsu_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool econo, const bool filter, const bool clean, const int16_t sleep=-1)
Send a Fujitsu A/C message with the supplied settings.
Definition: IRac.cpp:1031
+
IRac::fujitsu
void fujitsu(IRFujitsuAC *ac, const fujitsu_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool econo, const bool filter, const bool clean, const int16_t sleep=-1)
Send a Fujitsu A/C message with the supplied settings.
Definition: IRac.cpp:1213
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:1070
-
stdAc::fanspeed_t
fanspeed_t
Common A/C settings for Fan Speeds.
Definition: IRsend.h:58
+
stdAc::fanspeed_t
fanspeed_t
Common A/C settings for Fan Speeds.
Definition: IRsend.h:61
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:3723
-
whirlpool_ac_remote_model_t
whirlpool_ac_remote_model_t
Whirlpool A/C model numbers.
Definition: IRsend.h:191
+
IRac::fanspeedToString
static String fanspeedToString(const stdAc::fanspeed_t speed)
Convert the supplied fan speed enum into the appropriate String.
Definition: IRac.cpp:4000
+
whirlpool_ac_remote_model_t
whirlpool_ac_remote_model_t
Whirlpool A/C model numbers.
Definition: IRsend.h:211
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:2550
+
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:2747
decode_results
Results returned from the decoder.
Definition: IRrecv.h:99
-
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:892
-
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 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=-1, const bool prevpower=true, const int16_t prevsleep=-1, const bool forceextended=true)
Send a Samsung A/C message with the supplied settings.
Definition: IRac.cpp:2043
-
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:2509
-
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:2587
-
tcl_ac_remote_model_t
tcl_ac_remote_model_t
TCL (& Teknopoint) A/C model numbers.
Definition: IRsend.h:179
-
IRac::sendAc
bool sendAc(void)
Send an A/C message based soley on our internal state.
Definition: IRac.cpp:3407
-
IRac::cmpStates
static bool cmpStates(const stdAc::state_t a, const stdAc::state_t b)
Compare two AirCon states.
Definition: IRac.cpp:3418
+
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:1059
+
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 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=-1, const bool prevpower=true, const int16_t prevsleep=-1, const bool forceextended=true)
Send a Samsung A/C message with the supplied settings.
Definition: IRac.cpp:2234
+
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:2706
+
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:2784
+
tcl_ac_remote_model_t
tcl_ac_remote_model_t
TCL (& Teknopoint) A/C model numbers.
Definition: IRsend.h:199
+
IRac::sendAc
bool sendAc(void)
Send an A/C message based soley on our internal state.
Definition: IRac.cpp:3640
+
IRac::cmpStates
static bool cmpStates(const stdAc::state_t a, const stdAc::state_t b)
Compare two AirCon states.
Definition: IRac.cpp:3651
+
IRac::argoWrem3_ConfigSet
void argoWrem3_ConfigSet(IRArgoAC_WREM3 *ac, const uint8_t param, const uint8_t value, bool safe=true)
Send an Argo A/C WREM-3 Config command.
Definition: IRac.cpp:581
ir_Midea.h
Support for Midea protocols. Midea added by crankyoldgit & bwze.
-
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 quiet, const bool quiet_prev, const bool turbo, const bool econo, const bool light, const bool clean, const int16_t sleep=-1)
Send a Midea A/C message with the supplied settings.
Definition: IRac.cpp:1674
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:135
+
gree_ac_remote_model_t
gree_ac_remote_model_t
Gree A/C model numbers.
Definition: IRsend.h:155
IRDaikin64
Class for handling detailed Daikin 64-bit A/C messages.
Definition: ir_Daikin.h:1200
-
IRac::haierYrwo2
void haierYrwo2(IRHaierACYRW02 *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 quiet, const bool filter, const int16_t sleep=-1)
Send a Haier YRWO2 A/C message with the supplied settings.
Definition: IRac.cpp:1309
+
IRac::haierYrwo2
void haierYrwo2(IRHaierACYRW02 *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 quiet, const bool filter, const int16_t sleep=-1)
Send a Haier YRWO2 A/C message with the supplied settings.
Definition: IRac.cpp:1493
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:2467
+
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:2664
IRRhossAc
Class for handling detailed Rhoss A/C messages.
Definition: ir_Rhoss.h:94
IRHitachiAc424
Class for handling detailed Hitachi 53-byte/424-bit A/C messages.
Definition: ir_Hitachi.h:497
-
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:659
-
IRac::IRac
IRac(const uint16_t pin, const bool inverted=false, const bool use_modulation=true)
Class constructor.
Definition: IRac.cpp:71
+
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:826
+
IRac::IRac
IRac(const uint16_t pin, const bool inverted=false, const bool use_modulation=true)
Class constructor.
Definition: IRac.cpp:102
IRDaikin216
Class for handling detailed Daikin 216-bit A/C messages.
Definition: ir_Daikin.h:903
IRVoltas
Class for handling detailed Voltas A/C messages.
Definition: ir_Voltas.h:91
-
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 stdAc::swingv_t swingv_prev, 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:2170
-
hitachi_ac1_remote_model_t
hitachi_ac1_remote_model_t
HITACHI_AC1 A/C model numbers.
Definition: IRsend.h:149
-
IRac::haier176
void haier176(IRHaierAC176 *ac, const haier_ac176_remote_model_t model, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool quiet, const bool filter, const int16_t sleep=-1)
Send a Haier 176 bit A/C message with the supplied settings.
Definition: IRac.cpp:1267
-
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:699
+
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 stdAc::swingv_t swingv_prev, 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:2367
+
hitachi_ac1_remote_model_t
hitachi_ac1_remote_model_t
HITACHI_AC1 A/C model numbers.
Definition: IRsend.h:169
+
IRac::haier176
void haier176(IRHaierAC176 *ac, const haier_ac176_remote_model_t model, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool quiet, const bool filter, const int16_t sleep=-1)
Send a Haier 176 bit A/C message with the supplied settings.
Definition: IRac.cpp:1451
+
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:866
IRHitachiAc
Class for handling detailed Hitachi 224-bit A/C messages.
Definition: ir_Hitachi.h:372
-
kGpioUnused
const int8_t kGpioUnused
A placeholder for not using an actual GPIO.
Definition: IRac.h:52
-
IRAcUtils
Common functions for use with all A/Cs supported by the IRac class.
Definition: IRac.cpp:3768
+
kGpioUnused
const int8_t kGpioUnused
A placeholder for not using an actual GPIO.
Definition: IRac.h:55
+
IRAcUtils
Common functions for use with all A/Cs supported by the IRac class.
Definition: IRac.cpp:4047
IRSanyoAc
Class for handling detailed Sanyo A/C messages.
Definition: ir_Sanyo.h:111
-
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:1180
+
stdAc::ac_command_t
ac_command_t
Tyoe of A/C command (if the remote uses different codes for each)
Definition: IRsend.h:90
+
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:1364
IRKelonAc
Definition: ir_Kelon.h:77
IRWhirlpoolAc
Class for handling detailed Whirlpool A/C messages.
Definition: ir_Whirlpool.h:132
-
IRac::haier160
void haier160(IRHaierAC160 *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 quiet, const bool filter, const bool clean, const bool light, const bool prevlight, const int16_t sleep=-1)
Send a Haier 160 bit A/C message with the supplied settings.
Definition: IRac.cpp:1222
+
IRac::haier160
void haier160(IRHaierAC160 *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 quiet, const bool filter, const bool clean, const bool light, const bool prevlight, const int16_t sleep=-1)
Send a Haier 160 bit A/C message with the supplied settings.
Definition: IRac.cpp:1406
IRHitachiAc344
Class for handling detailed Hitachi 344-bit A/C messages.
Definition: ir_Hitachi.h:586
-
IRac::boolToString
static String boolToString(const bool value)
Convert the supplied boolean into the appropriate String.
Definition: IRac.cpp:3700
-
IRac::next
stdAc::state_t next
The state we want the device to be in after we send.
Definition: IRac.h:105
-
String
std::string String
Definition: IRremoteESP8266.h:1472
-
IRMitsubishiAC
Class for handling detailed Mitsubishi 144-bit A/C messages.
Definition: ir_Mitsubishi.h:266
-
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:2366
-
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:3585
-
IRac::hitachi296
void hitachi296(IRHitachiAc296 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan)
Send a Hitachi 296-bit A/C message with the supplied settings.
Definition: IRac.cpp:1448
+
IRac::boolToString
static String boolToString(const bool value)
Convert the supplied boolean into the appropriate String.
Definition: IRac.cpp:3964
+
IRac::next
stdAc::state_t next
The state we want the device to be in after we send.
Definition: IRac.h:111
+
String
std::string String
Definition: IRremoteESP8266.h:1521
+
IRMitsubishiAC
Class for handling detailed Mitsubishi 144-bit A/C messages.
Definition: ir_Mitsubishi.h:267
+
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:2563
+
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:3844
+
IRac::hitachi296
void hitachi296(IRHitachiAc296 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan)
Send a Hitachi 296-bit A/C message with the supplied settings.
Definition: IRac.cpp:1632
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:400
+
ir_York.h
Support for the York AC protocol (remote GRYLH2A)
+
IRMitsubishi112
Class for handling detailed Mitsubishi 122-bit A/C messages.
Definition: ir_Mitsubishi.h:401
ir_Ecoclim.h
EcoClim A/C protocol.
IRTcl112Ac
Class for handling detailed TCL A/C messages.
Definition: ir_Tcl.h:125
-
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:791
-
IRElectraAc
Class for handling detailed Electra A/C messages.
Definition: ir_Electra.h:113
+
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:958
+
IRElectraAc
Class for handling detailed Electra A/C messages.
Definition: ir_Electra.h:114
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:3430
-
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:862
+
IRac::hasStateChanged
bool hasStateChanged(void)
Check if the internal state has changed from what was previously sent.
Definition: IRac.cpp:3665
+
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:1029
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::rhoss
void rhoss(IRRhossAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swing)
Send an Rhoss A/C message with the supplied settings.
Definition: IRac.cpp:2626
-
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:2665
-
IRMitsubishi136
Class for handling detailed Mitsubishi 136-bit A/C messages.
Definition: ir_Mitsubishi.h:346
-
panasonic_ac_remote_model_t
panasonic_ac_remote_model_t
Panasonic A/C model numbers.
Definition: IRsend.h:161
+
IRac::rhoss
void rhoss(IRRhossAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swing)
Send an Rhoss A/C message with the supplied settings.
Definition: IRac.cpp:2823
+
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:2862
+
IRac::argoWrem3_iFeelReport
void argoWrem3_iFeelReport(IRArgoAC_WREM3 *ac, const float sensorTemp)
Send an Argo A/C WREM-3 iFeel (room temp) silent (no beep) report.
Definition: IRac.cpp:563
+
IRMitsubishi136
Class for handling detailed Mitsubishi 136-bit A/C messages.
Definition: ir_Mitsubishi.h:347
+
panasonic_ac_remote_model_t
panasonic_ac_remote_model_t
Panasonic A/C model numbers.
Definition: IRsend.h:181
IRremoteESP8266.h
-
IRac::hitachi264
void hitachi264(IRHitachiAc264 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan)
Send a Hitachi 264-bit A/C message with the supplied settings.
Definition: IRac.cpp:1419
-
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:1764
+
IRac::hitachi264
void hitachi264(IRHitachiAc264 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan)
Send a Hitachi 264-bit A/C message with the supplied settings.
Definition: IRac.cpp:1603
+
stdAc::swingh_t
swingh_t
Common A/C settings for Horizontal Swing.
Definition: IRsend.h:100
+
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:1955
IRHitachiAc264
Class for handling detailed Hitachi 264-bit A/C messages.
Definition: ir_Hitachi.h:607
-
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:4225
+
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:4517
IRHitachiAc1
Class for handling detailed Hitachi 104-bit A/C messages.
Definition: ir_Hitachi.h:429
IRMirageAc
Class for handling detailed Mirage 120-bit A/C messages.
Definition: ir_Mirage.h:196
-
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:1513
+
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:1697
ir_Samsung.h
Support for Samsung protocols. Samsung originally added from https://github.com/shirriff/Arduino-IRre...
-
IRac::opmodeToString
static String opmodeToString(const stdAc::opmode_t mode, const bool ha=false)
Convert the supplied operation mode into the appropriate String.
Definition: IRac.cpp:3708
-
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:3774
-
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:736
-
fujitsu_ac_remote_model_t
fujitsu_ac_remote_model_t
Fujitsu A/C model numbers.
Definition: IRsend.h:120
+
IRArgoAC_WREM3
Supports Argo A/C SAC-WREM3 IR remote protocol.
Definition: ir_Argo.h:449
+
IRac::opmodeToString
static String opmodeToString(const stdAc::opmode_t mode, const bool ha=false)
Convert the supplied operation mode into the appropriate String.
Definition: IRac.cpp:3985
+
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:4053
+
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:903
+
fujitsu_ac_remote_model_t
fujitsu_ac_remote_model_t
Fujitsu A/C model numbers.
Definition: IRsend.h:140
ir_Gree.h
Support for Gree A/C protocols.
-
IRCarrierAc64
Class for handling detailed Carrier 64 bit A/C messages.
Definition: ir_Carrier.h:86
+
IRCarrierAc64
Class for handling detailed Carrier 64 bit A/C messages.
Definition: ir_Carrier.h:89
IRHitachiAc296
Definition: ir_Hitachi.h:624
+
IRac::argoWrem3_ACCommand
void argoWrem3_ACCommand(IRArgoAC_WREM3 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const float sensorTemp, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool iFeel, const bool night, const bool econo, const bool turbo, const bool filter, const bool light)
Send an Argo A/C WREM-3 AC control message with the supplied settings.
Definition: IRac.cpp:529
ir_Mirage.h
Support for Mirage protocol.
IRMideaAC
Class for handling detailed Midea A/C messages.
Definition: ir_Midea.h:175
IRKelvinatorAC
Class for handling detailed Kelvinator A/C messages.
Definition: ir_Kelvinator.h:132
-
IRac::_inverted
bool _inverted
IR LED is lit when GPIO is LOW (true) or HIGH (false)?
Definition: IRac.h:111
+
IRac::_inverted
bool _inverted
IR LED is lit when GPIO is LOW (true) or HIGH (false)?
Definition: IRac.h:124
+
IRac::midea
void midea(IRMideaAC *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const float sensorTemp, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool iFeel, const bool quiet, const bool quiet_prev, const bool turbo, const bool econo, const bool light, const bool clean, const int16_t sleep=-1)
Send a Midea A/C message with the supplied settings.
Definition: IRac.cpp:1861
IRFujitsuAC
Class for handling detailed Fujitsu A/C messages.
Definition: ir_Fujitsu.h:179
ir_Airton.h
Support for Airton protocol.
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:120
-
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:1961
-
IRac::swingvToString
static String swingvToString(const stdAc::swingv_t swingv)
Convert the supplied enum into the appropriate String.
Definition: IRac.cpp:3738
+
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:2152
+
IRac::swingvToString
static String swingvToString(const stdAc::swingv_t swingv)
Convert the supplied enum into the appropriate String.
Definition: IRac.cpp:4016
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:56
+
IRac
A universal/common/generic interface for controling supported A/Cs.
Definition: IRac.h:59
ir_Teco.h
Support for Teco protocols.
IRTrotec3550
Class for handling detailed Trotec 3550 A/C messages.
Definition: ir_Trotec.h:198
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:988
IRHaierAC160
Class for handling detailed Haier 160 bit A/C messages.
Definition: ir_Haier.h:563
-
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:2652
+
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:2849
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:1725
-
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:415
+
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:1916
+
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:449
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
@@ -763,83 +792,86 @@
IRDaikin152
Class for handling detailed Daikin 152-bit A/C messages.
Definition: ir_Daikin.h:1140
IRLgAc
Class for handling detailed LG A/C messages.
Definition: ir_LG.h:114
ir_Fujitsu.h
Support for Fujitsu A/C protocols. Fujitsu A/C support added by Jonny Graham.
-
IRac::trotec3550
void trotec3550(IRTrotec3550 *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)
Send a Trotec 3550 A/C message with the supplied settings.
Definition: IRac.cpp:2398
+
IRac::trotec3550
void trotec3550(IRTrotec3550 *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)
Send a Trotec 3550 A/C message with the supplied settings.
Definition: IRac.cpp:2595
IRHaierAC
Class for handling detailed Haier A/C messages.
Definition: ir_Haier.h:376
-
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:1920
+
IRac::argo
void argo(IRArgoAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const float sensorTemp, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool iFeel, const bool turbo, const int16_t sleep=-1)
Send an Argo A/C message with the supplied settings.
Definition: IRac.cpp:484
+
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:2111
IRDaikin160
Class for handling detailed Daikin 160-bit A/C messages.
Definition: ir_Daikin.h:959
IRSharpAc
Class for handling detailed Sharp A/C messages.
Definition: ir_Sharp.h:153
IRHaierAC176
Class for handling detailed Haier 176 bit A/C messages.
Definition: ir_Haier.h:446
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:447
-
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, const bool filter)
Send a Toshiba A/C message with the supplied settings.
Definition: IRac.cpp:2330
-
lg_ac_remote_model_t
lg_ac_remote_model_t
LG A/C model numbers.
Definition: IRsend.h:197
-
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:1800
+
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, const bool filter)
Send a Toshiba A/C message with the supplied settings.
Definition: IRac.cpp:2527
+
lg_ac_remote_model_t
lg_ac_remote_model_t
LG A/C model numbers.
Definition: IRsend.h:217
+
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:1991
stdAc::fanspeed_t::kAuto
@ kAuto
ir_Rhoss.h
Support for Rhoss A/C protocol.
-
IRac::airton
void airton(IRAirtonAc *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 bool econo, const bool filter, const int16_t sleep=-1)
Send an Airton 56-bit A/C message with the supplied settings.
Definition: IRac.cpp:356
-
IRac::_modulation
bool _modulation
Is frequency modulation to be used?
Definition: IRac.h:112
-
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:2296
-
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:3436
+
IRac::airton
void airton(IRAirtonAc *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 bool econo, const bool filter, const int16_t sleep=-1)
Send an Airton 56-bit A/C message with the supplied settings.
Definition: IRac.cpp:390
+
IRac::_modulation
bool _modulation
Is frequency modulation to be used?
Definition: IRac.h:125
+
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:2493
+
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:3691
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:1382
+
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:1566
+
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 stdAc::swingh_t swingh, const bool iFeel, const bool turbo, const bool econo, const bool light, const bool clean, const int16_t sleep=-1)
Send a Gree A/C message with the supplied settings.
Definition: IRac.cpp:1323
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:1997
+
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:2188
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:3682
-
IRac::sanyo88
void sanyo88(IRSanyoAc88 *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)
Send a Sanyo 88-bit A/C message with the supplied settings.
Definition: IRac.cpp:2128
-
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:1835
-
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:3503
+
IRac::strToBool
static bool strToBool(const char *str, const bool def=false)
Convert the supplied str into the appropriate boolean value.
Definition: IRac.cpp:3946
+
IRac::sanyo88
void sanyo88(IRSanyoAc88 *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)
Send a Sanyo 88-bit A/C message with the supplied settings.
Definition: IRac.cpp:2325
+
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:2026
+
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:3760
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:223
-
IRac::tcl112
void tcl112(IRTcl112Ac *ac, const tcl_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 light, const bool econo, const bool filter)
Send a TCL 112-bit A/C message with the supplied settings.
Definition: IRac.cpp:2226
-
IRac::mirage
void mirage(IRMirageAc *ac, const stdAc::state_t state)
Send a Mirage 120-bit A/C message with the supplied settings.
Definition: IRac.cpp:1706
+
IRac::tcl112
void tcl112(IRTcl112Ac *ac, const tcl_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 light, const bool econo, const bool filter)
Send a TCL 112-bit A/C message with the supplied settings.
Definition: IRac.cpp:2423
+
IRac::mirage
void mirage(IRMirageAc *ac, const stdAc::state_t state)
Send a Mirage 120-bit A/C message with the supplied settings.
Definition: IRac.cpp:1897
+
IRac::ecoclim
void ecoclim(IREcoclimAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const float sensorTemp, 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:1115
IRTrotecESP
Class for handling detailed Trotec A/C messages.
Definition: ir_Trotec.h:133
ir_Truma.h
Support for Truma protocol.
IRTecoAc
Class for handling detailed Teco A/C messages.
Definition: ir_Teco.h:62
-
IRac::truma
void truma(IRTrumaAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const bool quiet)
Send a Truma A/C message with the supplied settings.
Definition: IRac.cpp:2430
-
IRac::swinghToString
static String swinghToString(const stdAc::swingh_t swingh)
Convert the supplied enum into the appropriate String.
Definition: IRac.cpp:3754
+
IRac::truma
void truma(IRTrumaAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const bool quiet)
Send a Truma A/C message with the supplied settings.
Definition: IRac.cpp:2627
+
IRac::swinghToString
static String swinghToString(const stdAc::swingh_t swingh)
Convert the supplied enum into the appropriate String.
Definition: IRac.cpp:4033
IRTrumaAc
Class for handling detailed Truma A/C messages.
Definition: ir_Truma.h:69
ir_Technibel.h
Support for Technibel protocol.
-
IRac::delonghiac
void delonghiac(IRDelonghiAc *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const bool turbo, const int16_t sleep=-1)
Send a Delonghi A/C message with the supplied settings.
Definition: IRac.cpp:922
-
IRac::kelon
void kelon(IRKelonAc *ac, const bool togglePower, const stdAc::opmode_t mode, const int8_t dryGrade, const float degrees, const stdAc::fanspeed_t fan, const bool toggleSwing, const bool superCool, const int16_t sleep)
Send a Kelon A/C message with the supplied settings.
Definition: IRac.cpp:1548
+
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:1089
+
IRac::kelon
void kelon(IRKelonAc *ac, const bool togglePower, const stdAc::opmode_t mode, const int8_t dryGrade, const float degrees, const stdAc::fanspeed_t fan, const bool toggleSwing, const bool superCool, const int16_t sleep)
Send a Kelon A/C message with the supplied settings.
Definition: IRac.cpp:1732
ir_Kelon.h
Support for Kelan AC protocol.
-
IRac::_prev
stdAc::state_t _prev
The state we expect the device to currently be in.
Definition: IRac.h:113
+
IRac::_prev
stdAc::state_t _prev
The state we expect the device to currently be in.
Definition: IRac.h:126
IRHaierACYRW02
Class for handling detailed Haier ACYRW02 A/C messages.
Definition: ir_Haier.h:544
-
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:769
-
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:624
-
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:101
-
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, const stdAc::swingv_t swingv, const stdAc::swingv_t swingv_prev, const stdAc::swingh_t swingh, const bool light)
Send a LG A/C message with the supplied settings.
Definition: IRac.cpp:1621
-
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:1876
+
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:936
+
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:791
+
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:132
+
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, const stdAc::swingv_t swingv, const stdAc::swingv_t swingv_prev, const stdAc::swingh_t swingh, const bool light)
Send a LG A/C message with the supplied settings.
Definition: IRac.cpp:1805
+
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:2067
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
-
IRac::bosch144
void bosch144(IRBosch144AC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const bool quiet)
Send a Bosch144 A/C message with the supplied settings.
Definition: IRac.cpp:479
+
IRac::bosch144
void bosch144(IRBosch144AC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const bool quiet)
Send a Bosch144 A/C message with the supplied settings.
Definition: IRac.cpp:636
IRGreeAC
Class for handling detailed Gree A/C messages.
Definition: ir_Gree.h:156
-
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:557
-
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:3472
+
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:3727
ir_Toshiba.h
Support for Toshiba 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 stdAc::swingh_t swingh, const bool turbo, const bool econo, const bool light, const bool clean, const int16_t sleep=-1)
Send a Gree A/C message with the supplied settings.
Definition: IRac.cpp:1140
-
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:1096
-
stdAc::state_t
Structure to hold a common A/C state.
Definition: IRsend.h:97
+
IRac::coolix
void coolix(IRCoolixAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const float sensorTemp, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool iFeel, 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:717
+
stdAc::ac_command_t::kControlCommand
@ kControlCommand
+
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:1278
+
stdAc::state_t
Structure to hold a common A/C state.
Definition: IRsend.h:114
+
IRac::sanyo
void sanyo(IRSanyoAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const float sensorTemp, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool iFeel, const bool beep, const int16_t sleep=-1)
Send a Sanyo A/C message with the supplied settings.
Definition: IRac.cpp:2281
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
+
IRArgoAC
Supports Argo A/C SAC-WREM2 IR remote protocol.
Definition: ir_Argo.h:422
IRSanyoAc88
Class for handling detailed Sanyo A/C messages.
Definition: ir_Sanyo.h:229
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:151
+
IRac::isProtocolSupported
static bool isProtocolSupported(const decode_type_t protocol)
Is the given protocol supported by the IRac class?
Definition: IRac.cpp:182
IRBosch144AC
Class for handling detailed Bosch144 A/C messages.
Definition: ir_Bosch.h:140
IRDaikin176
Class for handling detailed Daikin 176-bit A/C messages.
Definition: ir_Daikin.h:1011
ir_Amcor.h
Amcor A/C protocol.
-
IRac::_pin
uint16_t _pin
The GPIO to use to transmit messages from.
Definition: IRac.h:110
-
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:2263
-
voltas_ac_remote_model_t
voltas_ac_remote_model_t
Voltas A/C model numbers.
Definition: IRsend.h:185
-
sharp_ac_remote_model_t
sharp_ac_remote_model_t
Sharp A/C model numbers.
Definition: IRsend.h:172
+
IRac::_pin
uint16_t _pin
The GPIO to use to transmit messages from.
Definition: IRac.h:123
+
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:2460
+
voltas_ac_remote_model_t
voltas_ac_remote_model_t
Voltas A/C model numbers.
Definition: IRsend.h:205
+
sharp_ac_remote_model_t
sharp_ac_remote_model_t
Sharp A/C model numbers.
Definition: IRsend.h:192
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:520
-
haier_ac176_remote_model_t
haier_ac176_remote_model_t
HAIER_AC176 A/C model numbers.
Definition: IRsend.h:143
-
stdAc::opmode_t
opmode_t
Common A/C settings for A/C operating modes.
Definition: IRsend.h:46
+
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:677
+
haier_ac176_remote_model_t
haier_ac176_remote_model_t
HAIER_AC176 A/C model numbers.
Definition: IRsend.h:163
+
stdAc::opmode_t
opmode_t
Common A/C settings for A/C operating modes.
Definition: IRsend.h:49