Merge pull request #7454 from s-hadinger/IRremote_272
Update IRremoteESP8266 lib updated to v2.7.2
@ -1,15 +0,0 @@
|
|||||||
// Copyright 2017 David Conran
|
|
||||||
|
|
||||||
// Supports:
|
|
||||||
// Brand: LG, Model: 6711A20083V remote
|
|
||||||
// Brand: LG, Model: AKB74395308 remote
|
|
||||||
|
|
||||||
#ifndef IR_LG_H_
|
|
||||||
#define IR_LG_H_
|
|
||||||
|
|
||||||
#define __STDC_LIMIT_MACROS
|
|
||||||
#include <stdint.h>
|
|
||||||
|
|
||||||
uint8_t calcLGChecksum(uint16_t data);
|
|
||||||
|
|
||||||
#endif // IR_LG_H_
|
|
@ -9,8 +9,8 @@
|
|||||||
This library enables you to **send _and_ receive** infra-red signals on an [ESP8266](https://github.com/esp8266/Arduino) or an
|
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.
|
[ESP32](https://github.com/espressif/arduino-esp32) using the [Arduino framework](https://www.arduino.cc/) using common 940nm IR LEDs and common IR receiver modules. e.g. TSOP{17,22,24,36,38,44,48}* demodulators etc.
|
||||||
|
|
||||||
## v2.7.1 Now Available
|
## v2.7.2 Now Available
|
||||||
Version 2.7.1 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.
|
Version 2.7.2 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
|
#### 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.
|
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.
|
@ -9,8 +9,8 @@
|
|||||||
Cette librairie vous permetra de **recevoir et d'envoyer des signaux** infrarouge sur le protocole [ESP8266](https://github.com/esp8266/Arduino) ou sur le protocole
|
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.
|
[ESP32](https://github.com/espressif/arduino-esp32) en utilisant le [Arduino framework](https://www.arduino.cc/) qui utilise la norme 940nm IR LEDs et le module basique de reception d'onde IR. Exemple : TSOP{17,22,24,36,38,44,48}* modules etc.
|
||||||
|
|
||||||
## v2.7.1 disponible
|
## v2.7.2 disponible
|
||||||
Version 2.7.1 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.
|
Version 2.7.2 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
|
#### 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.
|
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.
|
@ -1,5 +1,18 @@
|
|||||||
# Release Notes
|
# Release Notes
|
||||||
|
|
||||||
|
## _v2.7.2 (20200106)_
|
||||||
|
|
||||||
|
**[Bug Fixes]**
|
||||||
|
- Common AC api: Better handle protocols with power toggles. (#1002)
|
||||||
|
|
||||||
|
**[Features]**
|
||||||
|
- Experimental detailed support for LG a/c. (#1008 #1009)
|
||||||
|
|
||||||
|
**[Misc]**
|
||||||
|
- Add remote codes for Aloka LED lamp. (#1005)
|
||||||
|
- Improve Supported Devices scraping. (#1006)
|
||||||
|
|
||||||
|
|
||||||
## _v2.7.1 (20191125)_
|
## _v2.7.1 (20191125)_
|
||||||
|
|
||||||
**[Bug Fixes]**
|
**[Bug Fixes]**
|
@ -1,6 +1,6 @@
|
|||||||
<!--- WARNING: Do NOT edit this file directly.
|
<!--- WARNING: Do NOT edit this file directly.
|
||||||
It is generated by './tools/scrape_supported_devices.py'.
|
It is generated by './tools/scrape_supported_devices.py'.
|
||||||
Last generated: Mon Nov 25 11:12:06 2019 --->
|
Last generated: Sun Jan 5 15:53:26 2020 --->
|
||||||
# IR Protocols supported by this library
|
# IR Protocols supported by this library
|
||||||
|
|
||||||
| Protocol | Brand | Model | A/C Model | Detailed A/C Support |
|
| Protocol | Brand | Model | A/C Model | Detailed A/C Support |
|
||||||
@ -31,19 +31,21 @@
|
|||||||
| [JVC](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_JVC.cpp) | **Unknown** | | | - |
|
| [JVC](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_JVC.cpp) | **Unknown** | | | - |
|
||||||
| [Kelvinator](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Kelvinator.cpp) | **[Green](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Kelvinator.h)** | YAPOF3 remote | | Yes |
|
| [Kelvinator](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Kelvinator.cpp) | **[Green](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Kelvinator.h)** | YAPOF3 remote | | Yes |
|
||||||
| [Kelvinator](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Kelvinator.cpp) | **[Kelvinator](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Kelvinator.h)** | KSV26CRC A/C<BR>KSV26HRC A/C<BR>KSV35CRC A/C<BR>KSV35HRC A/C<BR>KSV53HRC A/C<BR>KSV62HRC A/C<BR>KSV70CRC A/C<BR>KSV70HRC A/C<BR>KSV80HRC A/C<BR>YALIF Remote | | Yes |
|
| [Kelvinator](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Kelvinator.cpp) | **[Kelvinator](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Kelvinator.h)** | KSV26CRC A/C<BR>KSV26HRC A/C<BR>KSV35CRC A/C<BR>KSV35HRC A/C<BR>KSV53HRC A/C<BR>KSV62HRC A/C<BR>KSV70CRC A/C<BR>KSV70HRC A/C<BR>KSV80HRC A/C<BR>YALIF Remote | | Yes |
|
||||||
| [LG](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_LG.cpp) | **[LG](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_LG.h)** | 6711A20083V remote<BR>6711A20083V remote<BR>AKB74395308 remote<BR>AKB74395308 remote | | Yes |
|
| [LG](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_LG.cpp) | **[General Electric](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_LG.h)** | 6711AR2853M A/C Remote<BR>AG1BH09AW101 Split A/C | | Yes |
|
||||||
|
| [LG](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_LG.cpp) | **[LG](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_LG.h)** | 6711A20083V remote<BR>6711A20083V remote<BR>AKB74395308 remote<BR>AKB74395308 remote<BR>AKB75215403 remote (LG2)<BR>S4-W12JA3AA A/C (LG2) | | Yes |
|
||||||
| [Lasertag](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Lasertag.cpp) | **Unknown** | | | - |
|
| [Lasertag](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Lasertag.cpp) | **Unknown** | | | - |
|
||||||
| [Lego](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Lego.cpp) | **LEGO Power Functions** | IR Receiver | | - |
|
| [Lego](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Lego.cpp) | **LEGO Power Functions** | IR Receiver | | - |
|
||||||
| [Lutron](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Lutron.cpp) | **Unknown** | | | - |
|
| [Lutron](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Lutron.cpp) | **Unknown** | | | - |
|
||||||
| [MWM](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_MWM.cpp) | **Unknown** | | | - |
|
| [MWM](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_MWM.cpp) | **Unknown** | | | - |
|
||||||
| [Magiquest](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Magiquest.cpp) | **[Unknown](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Magiquest.h)** | | | Yes |
|
| [Magiquest](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Magiquest.cpp) | **[Unknown](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Magiquest.h)** | | | - |
|
||||||
| [Midea](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Midea.cpp) | **[Comfee](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Midea.h)** | MPD1-12CRN7 A/C | | Yes |
|
| [Midea](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Midea.cpp) | **[Comfee](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Midea.h)** | MPD1-12CRN7 A/C | | Yes |
|
||||||
| [Midea](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Midea.cpp) | **[Keystone](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Midea.h)** | RG57H4(B)BGEF remote | | Yes |
|
| [Midea](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Midea.cpp) | **[Keystone](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Midea.h)** | RG57H4(B)BGEF remote | | Yes |
|
||||||
| [Midea](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Midea.cpp) | **[Pioneer System](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Midea.h)** | RUBO18GMFILCAD A/C (18K BTU)<BR>RYBO12GMFILCAD A/C (12K BTU) | | Yes |
|
| [Midea](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Midea.cpp) | **[Pioneer System](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Midea.h)** | RUBO18GMFILCAD A/C (18K BTU)<BR>RYBO12GMFILCAD A/C (12K BTU) | | 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<BR>KM14A 0179213 remote<BR>MS-GK24VA A/C<BR>TV | | 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<BR>KM14A 0179213 remote<BR>MS-GK24VA A/C<BR>TV | | 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<BR>KPOA remote<BR>MSH-A24WV / MUH-A24WV A/C<BR>PEAD-RP71JAA Ducted A/C | | 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<BR>KPOA remote<BR>MSH-A24WV / MUH-A24WV A/C<BR>PEAD-RP71JAA Ducted A/C | | 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<BR>RLA502A700B remote<BR>SRKxxZJ-S A/C<BR>SRKxxZM-S A/C<BR>SRKxxZMXA-S A/C | | 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<BR>RLA502A700B remote<BR>SRKxxZJ-S A/C<BR>SRKxxZM-S A/C<BR>SRKxxZMXA-S A/C | | Yes |
|
||||||
| [NEC](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_NEC.cpp) | **[Yamaha](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_NEC.h)** | RAV561 remote<BR>RXV585B A/V Receiver | | Yes |
|
| [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 | | - |
|
||||||
|
| [NEC](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_NEC.cpp) | **[Yamaha](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_NEC.h)** | RAV561 remote<BR>RXV585B A/V Receiver | | - |
|
||||||
| [Neoclima](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Neoclima.cpp) | **[Neoclima](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Neoclima.h)** | NS-09AHTI A/C<BR>NS-09AHTI A/C<BR>ZH/TY-01 remote<BR>ZH/TY-01 remote | | Yes |
|
| [Neoclima](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Neoclima.cpp) | **[Neoclima](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Neoclima.h)** | NS-09AHTI A/C<BR>NS-09AHTI A/C<BR>ZH/TY-01 remote<BR>ZH/TY-01 remote | | Yes |
|
||||||
| [Nikai](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Nikai.cpp) | **Unknown** | | | - |
|
| [Nikai](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Nikai.cpp) | **Unknown** | | | - |
|
||||||
| [Panasonic](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Panasonic.cpp) | **[Panasonic](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Panasonic.h)** | A75C2311 remote (CKP)<BR>A75C3704 remote<BR>A75C3747 remote<BR>A75C3747 remote<BR>A75C3747 remote<BR>A75C3747 remote<BR>CKP series A/C<BR>CS-ME10CKPG A/C<BR>CS-ME12CKPG A/C<BR>CS-ME14CKPG A/C<BR>CS-YW9MKD A/C<BR>CS-Z9RKR A/C<BR>DKE series A/C<BR>JKE series A/C<BR>NKE series A/C<BR>RKR series A/C<BR>TV | | Yes |
|
| [Panasonic](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Panasonic.cpp) | **[Panasonic](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Panasonic.h)** | A75C2311 remote (CKP)<BR>A75C3704 remote<BR>A75C3747 remote<BR>A75C3747 remote<BR>A75C3747 remote<BR>A75C3747 remote<BR>CKP series A/C<BR>CS-ME10CKPG A/C<BR>CS-ME12CKPG A/C<BR>CS-ME14CKPG A/C<BR>CS-YW9MKD A/C<BR>CS-Z9RKR A/C<BR>DKE series A/C<BR>JKE series A/C<BR>NKE series A/C<BR>RKR series A/C<BR>TV | | Yes |
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
@ -39,6 +39,7 @@ IRHaierACYRW02 KEYWORD1
|
|||||||
IRHitachiAc KEYWORD1
|
IRHitachiAc KEYWORD1
|
||||||
IRHitachiAc424 KEYWORD1
|
IRHitachiAc424 KEYWORD1
|
||||||
IRKelvinatorAC KEYWORD1
|
IRKelvinatorAC KEYWORD1
|
||||||
|
IRLgAc KEYWORD1
|
||||||
IRMideaAC KEYWORD1
|
IRMideaAC KEYWORD1
|
||||||
IRMitsubishi112 KEYWORD1
|
IRMitsubishi112 KEYWORD1
|
||||||
IRMitsubishi136 KEYWORD1
|
IRMitsubishi136 KEYWORD1
|
||||||
@ -66,6 +67,7 @@ fanspeed_t KEYWORD1
|
|||||||
fujitsu_ac_remote_model_t KEYWORD1
|
fujitsu_ac_remote_model_t KEYWORD1
|
||||||
gree_ac_remote_model_t KEYWORD1
|
gree_ac_remote_model_t KEYWORD1
|
||||||
irparams_t KEYWORD1
|
irparams_t KEYWORD1
|
||||||
|
lg_ac_remote_model_t KEYWORD1
|
||||||
match_result_t KEYWORD1
|
match_result_t KEYWORD1
|
||||||
opmode_t KEYWORD1
|
opmode_t KEYWORD1
|
||||||
panasonic_ac_remote_model_t KEYWORD1
|
panasonic_ac_remote_model_t KEYWORD1
|
||||||
@ -346,9 +348,11 @@ isSwingVToggle KEYWORD2
|
|||||||
isTimeCommand KEYWORD2
|
isTimeCommand KEYWORD2
|
||||||
isTimerActive KEYWORD2
|
isTimerActive KEYWORD2
|
||||||
isTimerEnabled KEYWORD2
|
isTimerEnabled KEYWORD2
|
||||||
|
isValidLgAc KEYWORD2
|
||||||
kelvinator KEYWORD2
|
kelvinator KEYWORD2
|
||||||
ledOff KEYWORD2
|
ledOff KEYWORD2
|
||||||
ledOn KEYWORD2
|
ledOn KEYWORD2
|
||||||
|
lg KEYWORD2
|
||||||
mark KEYWORD2
|
mark KEYWORD2
|
||||||
match KEYWORD2
|
match KEYWORD2
|
||||||
matchAtLeast KEYWORD2
|
matchAtLeast KEYWORD2
|
||||||
@ -590,6 +594,7 @@ xorBytes KEYWORD2
|
|||||||
// LITERAL1
|
// LITERAL1
|
||||||
AIWA_RC_T501 LITERAL1
|
AIWA_RC_T501 LITERAL1
|
||||||
AIWA_RC_T501_BITS LITERAL1
|
AIWA_RC_T501_BITS LITERAL1
|
||||||
|
AKB75215403 LITERAL1
|
||||||
ALLOW_DELAY_CALLS LITERAL1
|
ALLOW_DELAY_CALLS LITERAL1
|
||||||
AMCOR LITERAL1
|
AMCOR LITERAL1
|
||||||
ARDB1 LITERAL1
|
ARDB1 LITERAL1
|
||||||
@ -748,6 +753,7 @@ FUJITSU_AC_SWING_BOTH LITERAL1
|
|||||||
FUJITSU_AC_SWING_HORIZ LITERAL1
|
FUJITSU_AC_SWING_HORIZ LITERAL1
|
||||||
FUJITSU_AC_SWING_OFF LITERAL1
|
FUJITSU_AC_SWING_OFF LITERAL1
|
||||||
FUJITSU_AC_SWING_VERT LITERAL1
|
FUJITSU_AC_SWING_VERT LITERAL1
|
||||||
|
GE6711AR2853M LITERAL1
|
||||||
GICABLE LITERAL1
|
GICABLE LITERAL1
|
||||||
GICABLE_BITS LITERAL1
|
GICABLE_BITS LITERAL1
|
||||||
GLOBALCACHE LITERAL1
|
GLOBALCACHE LITERAL1
|
||||||
@ -1063,6 +1069,22 @@ kAiwaRcT501PostBits LITERAL1
|
|||||||
kAiwaRcT501PostData LITERAL1
|
kAiwaRcT501PostData LITERAL1
|
||||||
kAiwaRcT501PreBits LITERAL1
|
kAiwaRcT501PreBits LITERAL1
|
||||||
kAiwaRcT501PreData LITERAL1
|
kAiwaRcT501PreData LITERAL1
|
||||||
|
kAlokaBits LITERAL1
|
||||||
|
kAlokaLedBlue LITERAL1
|
||||||
|
kAlokaLedGreen LITERAL1
|
||||||
|
kAlokaLedLightGreen LITERAL1
|
||||||
|
kAlokaLedMidBlue LITERAL1
|
||||||
|
kAlokaLedOrange LITERAL1
|
||||||
|
kAlokaLedPink LITERAL1
|
||||||
|
kAlokaLedPinkRed LITERAL1
|
||||||
|
kAlokaLedRainbow LITERAL1
|
||||||
|
kAlokaLedRed LITERAL1
|
||||||
|
kAlokaLedTreeGrow LITERAL1
|
||||||
|
kAlokaLedWhite LITERAL1
|
||||||
|
kAlokaLedYellow LITERAL1
|
||||||
|
kAlokaNightFade LITERAL1
|
||||||
|
kAlokaNightTimer LITERAL1
|
||||||
|
kAlokaPower LITERAL1
|
||||||
kAmcorAuto LITERAL1
|
kAmcorAuto LITERAL1
|
||||||
kAmcorBits LITERAL1
|
kAmcorBits LITERAL1
|
||||||
kAmcorChecksumByte LITERAL1
|
kAmcorChecksumByte LITERAL1
|
||||||
@ -2094,9 +2116,38 @@ kLg32HdrSpace LITERAL1
|
|||||||
kLg32HdrSpaceTicks LITERAL1
|
kLg32HdrSpaceTicks LITERAL1
|
||||||
kLg32RptHdrMark LITERAL1
|
kLg32RptHdrMark LITERAL1
|
||||||
kLg32RptHdrMarkTicks LITERAL1
|
kLg32RptHdrMarkTicks LITERAL1
|
||||||
|
kLgAcAuto LITERAL1
|
||||||
|
kLgAcChecksumOffset LITERAL1
|
||||||
|
kLgAcChecksumSize LITERAL1
|
||||||
|
kLgAcCool LITERAL1
|
||||||
|
kLgAcDry LITERAL1
|
||||||
|
kLgAcFan LITERAL1
|
||||||
|
kLgAcFanAuto LITERAL1
|
||||||
|
kLgAcFanHigh LITERAL1
|
||||||
|
kLgAcFanLow LITERAL1
|
||||||
|
kLgAcFanMedium LITERAL1
|
||||||
|
kLgAcFanOffset LITERAL1
|
||||||
|
kLgAcFanSize LITERAL1
|
||||||
|
kLgAcHeat LITERAL1
|
||||||
|
kLgAcMaxTemp LITERAL1
|
||||||
|
kLgAcMinTemp LITERAL1
|
||||||
|
kLgAcModeOffset LITERAL1
|
||||||
|
kLgAcModeSize LITERAL1
|
||||||
|
kLgAcOffCommand LITERAL1
|
||||||
|
kLgAcPowerOff LITERAL1
|
||||||
|
kLgAcPowerOffset LITERAL1
|
||||||
|
kLgAcPowerOn LITERAL1
|
||||||
|
kLgAcPowerSize LITERAL1
|
||||||
|
kLgAcSignature LITERAL1
|
||||||
|
kLgAcSignatureOffset LITERAL1
|
||||||
|
kLgAcSignatureSize LITERAL1
|
||||||
|
kLgAcTempAdjust LITERAL1
|
||||||
|
kLgAcTempOffset LITERAL1
|
||||||
|
kLgAcTempSize LITERAL1
|
||||||
kLgBitMark LITERAL1
|
kLgBitMark LITERAL1
|
||||||
kLgBitMarkTicks LITERAL1
|
kLgBitMarkTicks LITERAL1
|
||||||
kLgBits LITERAL1
|
kLgBits LITERAL1
|
||||||
|
kLgDefaultRepeat LITERAL1
|
||||||
kLgHdrMark LITERAL1
|
kLgHdrMark LITERAL1
|
||||||
kLgHdrMarkTicks LITERAL1
|
kLgHdrMarkTicks LITERAL1
|
||||||
kLgHdrSpace LITERAL1
|
kLgHdrSpace LITERAL1
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "IRremoteESP8266",
|
"name": "IRremoteESP8266",
|
||||||
"version": "2.7.1",
|
"version": "2.7.2",
|
||||||
"keywords": "infrared, ir, remote, esp8266, esp32",
|
"keywords": "infrared, ir, remote, esp8266, esp32",
|
||||||
"description": "Send and receive infrared signals with multiple protocols (ESP8266/ESP32)",
|
"description": "Send and receive infrared signals with multiple protocols (ESP8266/ESP32)",
|
||||||
"repository":
|
"repository":
|
@ -1,5 +1,5 @@
|
|||||||
name=IRremoteESP8266
|
name=IRremoteESP8266
|
||||||
version=2.7.1
|
version=2.7.2
|
||||||
author=David Conran, Sebastien Warin, Mark Szabo, Ken Shirriff
|
author=David Conran, Sebastien Warin, Mark Szabo, Ken Shirriff
|
||||||
maintainer=Mark Szabo, David Conran, Sebastien Warin, Roi Dayan, Massimiliano Pinto
|
maintainer=Mark Szabo, David Conran, Sebastien Warin, Roi Dayan, Massimiliano Pinto
|
||||||
sentence=Send and receive infrared signals with multiple protocols (ESP8266/ESP32)
|
sentence=Send and receive infrared signals with multiple protocols (ESP8266/ESP32)
|
@ -25,6 +25,7 @@
|
|||||||
#include "ir_Haier.h"
|
#include "ir_Haier.h"
|
||||||
#include "ir_Hitachi.h"
|
#include "ir_Hitachi.h"
|
||||||
#include "ir_Kelvinator.h"
|
#include "ir_Kelvinator.h"
|
||||||
|
#include "ir_LG.h"
|
||||||
#include "ir_Midea.h"
|
#include "ir_Midea.h"
|
||||||
#include "ir_Mitsubishi.h"
|
#include "ir_Mitsubishi.h"
|
||||||
#include "ir_MitsubishiHeavy.h"
|
#include "ir_MitsubishiHeavy.h"
|
||||||
@ -149,6 +150,10 @@ bool IRac::isProtocolSupported(const decode_type_t protocol) {
|
|||||||
#if SEND_KELVINATOR
|
#if SEND_KELVINATOR
|
||||||
case decode_type_t::KELVINATOR:
|
case decode_type_t::KELVINATOR:
|
||||||
#endif
|
#endif
|
||||||
|
#if SEND_LG
|
||||||
|
case decode_type_t::LG:
|
||||||
|
case decode_type_t::LG2:
|
||||||
|
#endif
|
||||||
#if SEND_MIDEA
|
#if SEND_MIDEA
|
||||||
case decode_type_t::MIDEA:
|
case decode_type_t::MIDEA:
|
||||||
#endif
|
#endif
|
||||||
@ -719,6 +724,30 @@ void IRac::kelvinator(IRKelvinatorAC *ac,
|
|||||||
}
|
}
|
||||||
#endif // SEND_KELVINATOR
|
#endif // SEND_KELVINATOR
|
||||||
|
|
||||||
|
#if SEND_LG
|
||||||
|
void IRac::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) {
|
||||||
|
ac->begin();
|
||||||
|
ac->setModel(model);
|
||||||
|
ac->setPower(on);
|
||||||
|
ac->setMode(ac->convertMode(mode));
|
||||||
|
ac->setTemp(degrees);
|
||||||
|
ac->setFan(ac->convertFan(fan));
|
||||||
|
// No Vertical swing setting available.
|
||||||
|
// No Horizontal swing setting available.
|
||||||
|
// No Quiet setting available.
|
||||||
|
// No Turbo setting available.
|
||||||
|
// No Light setting available.
|
||||||
|
// No Filter setting available.
|
||||||
|
// No Clean setting available.
|
||||||
|
// No Beep setting available.
|
||||||
|
// No Sleep setting available.
|
||||||
|
// No Clock setting available.
|
||||||
|
ac->send();
|
||||||
|
}
|
||||||
|
#endif // SEND_LG
|
||||||
|
|
||||||
#if SEND_MIDEA
|
#if SEND_MIDEA
|
||||||
void IRac::midea(IRMideaAC *ac,
|
void IRac::midea(IRMideaAC *ac,
|
||||||
const bool on, const stdAc::opmode_t mode, const bool celsius,
|
const bool on, const stdAc::opmode_t mode, const bool celsius,
|
||||||
@ -1144,6 +1173,20 @@ void IRac::whirlpool(IRWhirlpoolAc *ac, const whirlpool_ac_remote_model_t model,
|
|||||||
}
|
}
|
||||||
#endif // SEND_WHIRLPOOL_AC
|
#endif // SEND_WHIRLPOOL_AC
|
||||||
|
|
||||||
|
// Create a new state base on the provided state that has been suitably fixed.
|
||||||
|
// Args:
|
||||||
|
// state: The state_t structure describing the desired a/c state.
|
||||||
|
//
|
||||||
|
// Returns:
|
||||||
|
// A stdAc::state_t with the needed settings.
|
||||||
|
stdAc::state_t IRac::cleanState(const stdAc::state_t state) {
|
||||||
|
stdAc::state_t result = state;
|
||||||
|
// A hack for Home Assistant, it appears to need/want an Off opmode.
|
||||||
|
// So enforce the power is off if the mode is also off.
|
||||||
|
if (state.mode == stdAc::opmode_t::kOff) result.power = false;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
// Create a new state base on desired & previous states but handle
|
// Create a new state base on desired & previous states but handle
|
||||||
// any state changes for options that need to be toggled.
|
// any state changes for options that need to be toggled.
|
||||||
// Args:
|
// Args:
|
||||||
@ -1244,23 +1287,18 @@ bool IRac::sendAc(const decode_type_t vendor, const int16_t model,
|
|||||||
// Returns:
|
// Returns:
|
||||||
// boolean: True, if accepted/converted/attempted. False, if unsupported.
|
// boolean: True, if accepted/converted/attempted. False, if unsupported.
|
||||||
bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
||||||
stdAc::state_t send = this->handleToggles(desired, prev);
|
// Convert the temp from Fahrenheit to Celsius if we are not in Celsius mode.
|
||||||
// Convert the temperature to Celsius.
|
float degC = desired.celsius ? desired.degrees
|
||||||
float degC;
|
: fahrenheitToCelsius(desired.degrees);
|
||||||
if (desired.celsius)
|
// special `state_t` that is required to be sent based on that.
|
||||||
degC = send.degrees;
|
stdAc::state_t send = this->handleToggles(this->cleanState(desired), prev);
|
||||||
else
|
|
||||||
degC = fahrenheitToCelsius(desired.degrees);
|
|
||||||
bool on = desired.power;
|
|
||||||
// A hack for Home Assistant, it appears to need/want an Off opmode.
|
|
||||||
if (desired.mode == stdAc::opmode_t::kOff) on = false;
|
|
||||||
// Per vendor settings & setup.
|
// Per vendor settings & setup.
|
||||||
switch (send.protocol) {
|
switch (send.protocol) {
|
||||||
#if SEND_AMCOR
|
#if SEND_AMCOR
|
||||||
case AMCOR:
|
case AMCOR:
|
||||||
{
|
{
|
||||||
IRAmcorAc ac(_pin, _inverted, _modulation);
|
IRAmcorAc ac(_pin, _inverted, _modulation);
|
||||||
amcor(&ac, on, send.mode, degC, send.fanspeed);
|
amcor(&ac, send.power, send.mode, degC, send.fanspeed);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#endif // SEND_AMCOR
|
#endif // SEND_AMCOR
|
||||||
@ -1268,8 +1306,8 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||||||
case ARGO:
|
case ARGO:
|
||||||
{
|
{
|
||||||
IRArgoAC ac(_pin, _inverted, _modulation);
|
IRArgoAC ac(_pin, _inverted, _modulation);
|
||||||
argo(&ac, on, send.mode, degC, send.fanspeed, send.swingv, send.turbo,
|
argo(&ac, send.power, send.mode, degC, send.fanspeed, send.swingv,
|
||||||
send.sleep);
|
send.turbo, send.sleep);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#endif // SEND_ARGO
|
#endif // SEND_ARGO
|
||||||
@ -1277,8 +1315,8 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||||||
case COOLIX:
|
case COOLIX:
|
||||||
{
|
{
|
||||||
IRCoolixAC ac(_pin, _inverted, _modulation);
|
IRCoolixAC ac(_pin, _inverted, _modulation);
|
||||||
coolix(&ac, on, send.mode, degC, send.fanspeed, send.swingv, send.swingh,
|
coolix(&ac, send.power, send.mode, degC, send.fanspeed, send.swingv,
|
||||||
send.turbo, send.light, send.clean, send.sleep);
|
send.swingh, send.turbo, send.light, send.clean, send.sleep);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#endif // SEND_COOLIX
|
#endif // SEND_COOLIX
|
||||||
@ -1286,8 +1324,8 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||||||
case DAIKIN:
|
case DAIKIN:
|
||||||
{
|
{
|
||||||
IRDaikinESP ac(_pin, _inverted, _modulation);
|
IRDaikinESP ac(_pin, _inverted, _modulation);
|
||||||
daikin(&ac, on, send.mode, degC, send.fanspeed, send.swingv, send.swingh,
|
daikin(&ac, send.power, send.mode, degC, send.fanspeed, send.swingv,
|
||||||
send.quiet, send.turbo, send.econo, send.clean);
|
send.swingh, send.quiet, send.turbo, send.econo, send.clean);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#endif // SEND_DAIKIN
|
#endif // SEND_DAIKIN
|
||||||
@ -1295,7 +1333,7 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||||||
case DAIKIN128:
|
case DAIKIN128:
|
||||||
{
|
{
|
||||||
IRDaikin128 ac(_pin, _inverted, _modulation);
|
IRDaikin128 ac(_pin, _inverted, _modulation);
|
||||||
daikin128(&ac, on, send.mode, degC, send.fanspeed, send.swingv,
|
daikin128(&ac, send.power, send.mode, degC, send.fanspeed, send.swingv,
|
||||||
send.quiet, send.turbo, send.light, send.econo, send.sleep,
|
send.quiet, send.turbo, send.light, send.econo, send.sleep,
|
||||||
send.clock);
|
send.clock);
|
||||||
break;
|
break;
|
||||||
@ -1305,7 +1343,7 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||||||
case DAIKIN152:
|
case DAIKIN152:
|
||||||
{
|
{
|
||||||
IRDaikin152 ac(_pin, _inverted, _modulation);
|
IRDaikin152 ac(_pin, _inverted, _modulation);
|
||||||
daikin152(&ac, on, send.mode, degC, send.fanspeed, send.swingv,
|
daikin152(&ac, send.power, send.mode, degC, send.fanspeed, send.swingv,
|
||||||
send.quiet, send.turbo, send.econo);
|
send.quiet, send.turbo, send.econo);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1314,7 +1352,7 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||||||
case DAIKIN160:
|
case DAIKIN160:
|
||||||
{
|
{
|
||||||
IRDaikin160 ac(_pin, _inverted, _modulation);
|
IRDaikin160 ac(_pin, _inverted, _modulation);
|
||||||
daikin160(&ac, on, send.mode, degC, send.fanspeed, send.swingv);
|
daikin160(&ac, send.power, send.mode, degC, send.fanspeed, send.swingv);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#endif // SEND_DAIKIN160
|
#endif // SEND_DAIKIN160
|
||||||
@ -1322,7 +1360,7 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||||||
case DAIKIN176:
|
case DAIKIN176:
|
||||||
{
|
{
|
||||||
IRDaikin176 ac(_pin, _inverted, _modulation);
|
IRDaikin176 ac(_pin, _inverted, _modulation);
|
||||||
daikin176(&ac, on, send.mode, degC, send.fanspeed, send.swingh);
|
daikin176(&ac, send.power, send.mode, degC, send.fanspeed, send.swingh);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#endif // SEND_DAIKIN176
|
#endif // SEND_DAIKIN176
|
||||||
@ -1330,9 +1368,9 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||||||
case DAIKIN2:
|
case DAIKIN2:
|
||||||
{
|
{
|
||||||
IRDaikin2 ac(_pin, _inverted, _modulation);
|
IRDaikin2 ac(_pin, _inverted, _modulation);
|
||||||
daikin2(&ac, on, send.mode, degC, send.fanspeed, send.swingv, send.swingh,
|
daikin2(&ac, send.power, send.mode, degC, send.fanspeed, send.swingv,
|
||||||
send.quiet, send.turbo, send.light, send.econo, send.filter,
|
send.swingh, send.quiet, send.turbo, send.light, send.econo,
|
||||||
send.clean, send.beep, send.sleep, send.clock);
|
send.filter, send.clean, send.beep, send.sleep, send.clock);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#endif // SEND_DAIKIN2
|
#endif // SEND_DAIKIN2
|
||||||
@ -1340,7 +1378,7 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||||||
case DAIKIN216:
|
case DAIKIN216:
|
||||||
{
|
{
|
||||||
IRDaikin216 ac(_pin, _inverted, _modulation);
|
IRDaikin216 ac(_pin, _inverted, _modulation);
|
||||||
daikin216(&ac, on, send.mode, degC, send.fanspeed, send.swingv,
|
daikin216(&ac, send.power, send.mode, degC, send.fanspeed, send.swingv,
|
||||||
send.swingh, send.quiet, send.turbo);
|
send.swingh, send.quiet, send.turbo);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1349,7 +1387,7 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||||||
case ELECTRA_AC:
|
case ELECTRA_AC:
|
||||||
{
|
{
|
||||||
IRElectraAc ac(_pin, _inverted, _modulation);
|
IRElectraAc ac(_pin, _inverted, _modulation);
|
||||||
electra(&ac, on, send.mode, degC, send.fanspeed, send.swingv,
|
electra(&ac, send.power, send.mode, degC, send.fanspeed, send.swingv,
|
||||||
send.swingh);
|
send.swingh);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1359,9 +1397,9 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||||||
{
|
{
|
||||||
IRFujitsuAC ac(_pin, (fujitsu_ac_remote_model_t)send.model, _inverted,
|
IRFujitsuAC ac(_pin, (fujitsu_ac_remote_model_t)send.model, _inverted,
|
||||||
_modulation);
|
_modulation);
|
||||||
fujitsu(&ac, (fujitsu_ac_remote_model_t)send.model, on, send.mode, degC,
|
fujitsu(&ac, (fujitsu_ac_remote_model_t)send.model, send.power, send.mode,
|
||||||
send.fanspeed, send.swingv, send.swingh, send.quiet, send.turbo,
|
degC, send.fanspeed, send.swingv, send.swingh, send.quiet,
|
||||||
send.econo, send.filter, send.clean);
|
send.turbo, send.econo, send.filter, send.clean);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#endif // SEND_FUJITSU_AC
|
#endif // SEND_FUJITSU_AC
|
||||||
@ -1369,7 +1407,7 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||||||
case GOODWEATHER:
|
case GOODWEATHER:
|
||||||
{
|
{
|
||||||
IRGoodweatherAc ac(_pin, _inverted, _modulation);
|
IRGoodweatherAc ac(_pin, _inverted, _modulation);
|
||||||
goodweather(&ac, on, send.mode, degC, send.fanspeed, send.swingv,
|
goodweather(&ac, send.power, send.mode, degC, send.fanspeed, send.swingv,
|
||||||
send.turbo, send.light, send.sleep);
|
send.turbo, send.light, send.sleep);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1379,7 +1417,7 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||||||
{
|
{
|
||||||
IRGreeAC ac(_pin, (gree_ac_remote_model_t)send.model, _inverted,
|
IRGreeAC ac(_pin, (gree_ac_remote_model_t)send.model, _inverted,
|
||||||
_modulation);
|
_modulation);
|
||||||
gree(&ac, (gree_ac_remote_model_t)send.model, on, send.mode, degC,
|
gree(&ac, (gree_ac_remote_model_t)send.model, send.power, send.mode, degC,
|
||||||
send.fanspeed, send.swingv, send.turbo, send.light, send.clean,
|
send.fanspeed, send.swingv, send.turbo, send.light, send.clean,
|
||||||
send.sleep);
|
send.sleep);
|
||||||
break;
|
break;
|
||||||
@ -1389,8 +1427,8 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||||||
case HAIER_AC:
|
case HAIER_AC:
|
||||||
{
|
{
|
||||||
IRHaierAC ac(_pin, _inverted, _modulation);
|
IRHaierAC ac(_pin, _inverted, _modulation);
|
||||||
haier(&ac, on, send.mode, degC, send.fanspeed, send.swingv, send.filter,
|
haier(&ac, send.power, send.mode, degC, send.fanspeed, send.swingv,
|
||||||
send.sleep, send.clock);
|
send.filter, send.sleep, send.clock);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#endif // SEND_HAIER_AC
|
#endif // SEND_HAIER_AC
|
||||||
@ -1398,7 +1436,7 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||||||
case HAIER_AC_YRW02:
|
case HAIER_AC_YRW02:
|
||||||
{
|
{
|
||||||
IRHaierACYRW02 ac(_pin, _inverted, _modulation);
|
IRHaierACYRW02 ac(_pin, _inverted, _modulation);
|
||||||
haierYrwo2(&ac, on, send.mode, degC, send.fanspeed, send.swingv,
|
haierYrwo2(&ac, send.power, send.mode, degC, send.fanspeed, send.swingv,
|
||||||
send.turbo, send.filter, send.sleep);
|
send.turbo, send.filter, send.sleep);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1407,7 +1445,7 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||||||
case HITACHI_AC:
|
case HITACHI_AC:
|
||||||
{
|
{
|
||||||
IRHitachiAc ac(_pin, _inverted, _modulation);
|
IRHitachiAc ac(_pin, _inverted, _modulation);
|
||||||
hitachi(&ac, on, send.mode, degC, send.fanspeed, send.swingv,
|
hitachi(&ac, send.power, send.mode, degC, send.fanspeed, send.swingv,
|
||||||
send.swingh);
|
send.swingh);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1416,7 +1454,7 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||||||
case HITACHI_AC424:
|
case HITACHI_AC424:
|
||||||
{
|
{
|
||||||
IRHitachiAc424 ac(_pin, _inverted, _modulation);
|
IRHitachiAc424 ac(_pin, _inverted, _modulation);
|
||||||
hitachi424(&ac, on, send.mode, degC, send.fanspeed, send.swingv);
|
hitachi424(&ac, send.power, send.mode, degC, send.fanspeed, send.swingv);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#endif // SEND_HITACHI_AC424
|
#endif // SEND_HITACHI_AC424
|
||||||
@ -1424,18 +1462,28 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||||||
case KELVINATOR:
|
case KELVINATOR:
|
||||||
{
|
{
|
||||||
IRKelvinatorAC ac(_pin, _inverted, _modulation);
|
IRKelvinatorAC ac(_pin, _inverted, _modulation);
|
||||||
kelvinator(&ac, on, send.mode, degC, send.fanspeed, send.swingv,
|
kelvinator(&ac, send.power, send.mode, degC, send.fanspeed, send.swingv,
|
||||||
send.swingh, send.quiet, send.turbo, send.light, send.filter,
|
send.swingh, send.quiet, send.turbo, send.light, send.filter,
|
||||||
send.clean);
|
send.clean);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#endif // SEND_KELVINATOR
|
#endif // SEND_KELVINATOR
|
||||||
|
#if SEND_LG
|
||||||
|
case LG:
|
||||||
|
case LG2:
|
||||||
|
{
|
||||||
|
IRLgAc ac(_pin, _inverted, _modulation);
|
||||||
|
lg(&ac, (lg_ac_remote_model_t)send.model, send.power, send.mode,
|
||||||
|
send.degrees, send.fanspeed);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
#endif // SEND_LG
|
||||||
#if SEND_MIDEA
|
#if SEND_MIDEA
|
||||||
case MIDEA:
|
case MIDEA:
|
||||||
{
|
{
|
||||||
IRMideaAC ac(_pin, _inverted, _modulation);
|
IRMideaAC ac(_pin, _inverted, _modulation);
|
||||||
midea(&ac, on, send.mode, send.celsius, send.degrees, send.fanspeed,
|
midea(&ac, send.power, send.mode, send.celsius, send.degrees,
|
||||||
send.swingv, send.sleep);
|
send.fanspeed, send.swingv, send.sleep);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#endif // SEND_MIDEA
|
#endif // SEND_MIDEA
|
||||||
@ -1443,7 +1491,7 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||||||
case MITSUBISHI_AC:
|
case MITSUBISHI_AC:
|
||||||
{
|
{
|
||||||
IRMitsubishiAC ac(_pin, _inverted, _modulation);
|
IRMitsubishiAC ac(_pin, _inverted, _modulation);
|
||||||
mitsubishi(&ac, on, send.mode, degC, send.fanspeed, send.swingv,
|
mitsubishi(&ac, send.power, send.mode, degC, send.fanspeed, send.swingv,
|
||||||
send.swingh, send.quiet, send.clock);
|
send.swingh, send.quiet, send.clock);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1452,8 +1500,8 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||||||
case MITSUBISHI112:
|
case MITSUBISHI112:
|
||||||
{
|
{
|
||||||
IRMitsubishi112 ac(_pin, _inverted, _modulation);
|
IRMitsubishi112 ac(_pin, _inverted, _modulation);
|
||||||
mitsubishi112(&ac, on, send.mode, degC, send.fanspeed, send.swingv,
|
mitsubishi112(&ac, send.power, send.mode, degC, send.fanspeed,
|
||||||
send.swingh, send.quiet);
|
send.swingv, send.swingh, send.quiet);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#endif // SEND_MITSUBISHI112
|
#endif // SEND_MITSUBISHI112
|
||||||
@ -1461,8 +1509,8 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||||||
case MITSUBISHI136:
|
case MITSUBISHI136:
|
||||||
{
|
{
|
||||||
IRMitsubishi136 ac(_pin, _inverted, _modulation);
|
IRMitsubishi136 ac(_pin, _inverted, _modulation);
|
||||||
mitsubishi136(&ac, on, send.mode, degC, send.fanspeed, send.swingv,
|
mitsubishi136(&ac, send.power, send.mode, degC, send.fanspeed,
|
||||||
send.quiet);
|
send.swingv, send.quiet);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#endif // SEND_MITSUBISHI136
|
#endif // SEND_MITSUBISHI136
|
||||||
@ -1470,16 +1518,17 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||||||
case MITSUBISHI_HEAVY_88:
|
case MITSUBISHI_HEAVY_88:
|
||||||
{
|
{
|
||||||
IRMitsubishiHeavy88Ac ac(_pin, _inverted, _modulation);
|
IRMitsubishiHeavy88Ac ac(_pin, _inverted, _modulation);
|
||||||
mitsubishiHeavy88(&ac, on, send.mode, degC, send.fanspeed, send.swingv,
|
mitsubishiHeavy88(&ac, send.power, send.mode, degC, send.fanspeed,
|
||||||
send.swingh, send.turbo, send.econo, send.clean);
|
send.swingv, send.swingh, send.turbo, send.econo,
|
||||||
|
send.clean);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case MITSUBISHI_HEAVY_152:
|
case MITSUBISHI_HEAVY_152:
|
||||||
{
|
{
|
||||||
IRMitsubishiHeavy152Ac ac(_pin, _inverted, _modulation);
|
IRMitsubishiHeavy152Ac ac(_pin, _inverted, _modulation);
|
||||||
mitsubishiHeavy152(&ac, on, send.mode, degC, send.fanspeed, send.swingv,
|
mitsubishiHeavy152(&ac, send.power, send.mode, degC, send.fanspeed,
|
||||||
send.swingh, send.quiet, send.turbo, send.econo,
|
send.swingv, send.swingh, send.quiet, send.turbo,
|
||||||
send.filter, send.clean, send.sleep);
|
send.econo, send.filter, send.clean, send.sleep);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#endif // SEND_MITSUBISHIHEAVY
|
#endif // SEND_MITSUBISHIHEAVY
|
||||||
@ -1487,7 +1536,7 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||||||
case NEOCLIMA:
|
case NEOCLIMA:
|
||||||
{
|
{
|
||||||
IRNeoclimaAc ac(_pin, _inverted, _modulation);
|
IRNeoclimaAc ac(_pin, _inverted, _modulation);
|
||||||
neoclima(&ac, on, send.mode, degC, send.fanspeed, send.swingv,
|
neoclima(&ac, send.power, send.mode, degC, send.fanspeed, send.swingv,
|
||||||
send.swingh, send.turbo, send.light, send.filter, send.sleep);
|
send.swingh, send.turbo, send.light, send.filter, send.sleep);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1496,9 +1545,9 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||||||
case PANASONIC_AC:
|
case PANASONIC_AC:
|
||||||
{
|
{
|
||||||
IRPanasonicAc ac(_pin, _inverted, _modulation);
|
IRPanasonicAc ac(_pin, _inverted, _modulation);
|
||||||
panasonic(&ac, (panasonic_ac_remote_model_t)send.model, on, send.mode,
|
panasonic(&ac, (panasonic_ac_remote_model_t)send.model, send.power,
|
||||||
degC, send.fanspeed, send.swingv, send.swingh, send.quiet,
|
send.mode, degC, send.fanspeed, send.swingv, send.swingh,
|
||||||
send.turbo, send.clock);
|
send.quiet, send.turbo, send.clock);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#endif // SEND_PANASONIC_AC
|
#endif // SEND_PANASONIC_AC
|
||||||
@ -1506,8 +1555,8 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||||||
case SAMSUNG_AC:
|
case SAMSUNG_AC:
|
||||||
{
|
{
|
||||||
IRSamsungAc ac(_pin, _inverted, _modulation);
|
IRSamsungAc ac(_pin, _inverted, _modulation);
|
||||||
samsung(&ac, on, send.mode, degC, send.fanspeed, send.swingv, send.quiet,
|
samsung(&ac, send.power, send.mode, degC, send.fanspeed, send.swingv,
|
||||||
send.turbo, send.clean, send.beep, prev->power);
|
send.quiet, send.turbo, send.clean, send.beep, prev->power);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#endif // SEND_SAMSUNG_AC
|
#endif // SEND_SAMSUNG_AC
|
||||||
@ -1515,7 +1564,7 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||||||
case SHARP_AC:
|
case SHARP_AC:
|
||||||
{
|
{
|
||||||
IRSharpAc ac(_pin, _inverted, _modulation);
|
IRSharpAc ac(_pin, _inverted, _modulation);
|
||||||
sharp(&ac, on, send.mode, degC, send.fanspeed);
|
sharp(&ac, send.power, send.mode, degC, send.fanspeed);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#endif // SEND_SHARP_AC
|
#endif // SEND_SHARP_AC
|
||||||
@ -1523,8 +1572,8 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||||||
case TCL112AC:
|
case TCL112AC:
|
||||||
{
|
{
|
||||||
IRTcl112Ac ac(_pin, _inverted, _modulation);
|
IRTcl112Ac ac(_pin, _inverted, _modulation);
|
||||||
tcl112(&ac, on, send.mode, degC, send.fanspeed, send.swingv, send.swingh,
|
tcl112(&ac, send.power, send.mode, degC, send.fanspeed, send.swingv,
|
||||||
send.turbo, send.light, send.econo, send.filter);
|
send.swingh, send.turbo, send.light, send.econo, send.filter);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#endif // SEND_TCL112AC
|
#endif // SEND_TCL112AC
|
||||||
@ -1532,8 +1581,8 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||||||
case TECO:
|
case TECO:
|
||||||
{
|
{
|
||||||
IRTecoAc ac(_pin, _inverted, _modulation);
|
IRTecoAc ac(_pin, _inverted, _modulation);
|
||||||
teco(&ac, on, send.mode, degC, send.fanspeed, send.swingv, send.light,
|
teco(&ac, send.power, send.mode, degC, send.fanspeed, send.swingv,
|
||||||
send.sleep);
|
send.light, send.sleep);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#endif // SEND_TECO
|
#endif // SEND_TECO
|
||||||
@ -1541,7 +1590,7 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||||||
case TOSHIBA_AC:
|
case TOSHIBA_AC:
|
||||||
{
|
{
|
||||||
IRToshibaAC ac(_pin, _inverted, _modulation);
|
IRToshibaAC ac(_pin, _inverted, _modulation);
|
||||||
toshiba(&ac, on, send.mode, degC, send.fanspeed);
|
toshiba(&ac, send.power, send.mode, degC, send.fanspeed);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#endif // SEND_TOSHIBA_AC
|
#endif // SEND_TOSHIBA_AC
|
||||||
@ -1549,7 +1598,7 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||||||
case TROTEC:
|
case TROTEC:
|
||||||
{
|
{
|
||||||
IRTrotecESP ac(_pin, _inverted, _modulation);
|
IRTrotecESP ac(_pin, _inverted, _modulation);
|
||||||
trotec(&ac, on, send.mode, degC, send.fanspeed, send.sleep);
|
trotec(&ac, send.power, send.mode, degC, send.fanspeed, send.sleep);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#endif // SEND_TROTEC
|
#endif // SEND_TROTEC
|
||||||
@ -1557,8 +1606,8 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||||||
case VESTEL_AC:
|
case VESTEL_AC:
|
||||||
{
|
{
|
||||||
IRVestelAc ac(_pin, _inverted, _modulation);
|
IRVestelAc ac(_pin, _inverted, _modulation);
|
||||||
vestel(&ac, on, send.mode, degC, send.fanspeed, send.swingv, send.turbo,
|
vestel(&ac, send.power, send.mode, degC, send.fanspeed, send.swingv,
|
||||||
send.filter, send.sleep, send.clock);
|
send.turbo, send.filter, send.sleep, send.clock);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#endif // SEND_VESTEL_AC
|
#endif // SEND_VESTEL_AC
|
||||||
@ -1566,9 +1615,9 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||||||
case WHIRLPOOL_AC:
|
case WHIRLPOOL_AC:
|
||||||
{
|
{
|
||||||
IRWhirlpoolAc ac(_pin, _inverted, _modulation);
|
IRWhirlpoolAc ac(_pin, _inverted, _modulation);
|
||||||
whirlpool(&ac, (whirlpool_ac_remote_model_t)send.model, on, send.mode,
|
whirlpool(&ac, (whirlpool_ac_remote_model_t)send.model, send.power,
|
||||||
degC, send.fanspeed, send.swingv, send.turbo, send.light,
|
send.mode, degC, send.fanspeed, send.swingv, send.turbo,
|
||||||
send.sleep, send.clock);
|
send.light, send.sleep, send.clock);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#endif // SEND_WHIRLPOOL_AC
|
#endif // SEND_WHIRLPOOL_AC
|
||||||
@ -2129,6 +2178,21 @@ namespace IRAcUtils {
|
|||||||
return ac.toString();
|
return ac.toString();
|
||||||
}
|
}
|
||||||
#endif // DECODE_TCL112AC
|
#endif // DECODE_TCL112AC
|
||||||
|
#if DECODE_LG
|
||||||
|
case decode_type_t::LG:
|
||||||
|
case decode_type_t::LG2: {
|
||||||
|
IRLgAc ac(0);
|
||||||
|
ac.setRaw(result->value); // Like Coolix, use value instead of state.
|
||||||
|
switch (result->decode_type) {
|
||||||
|
case decode_type_t::LG2:
|
||||||
|
ac.setModel(lg_ac_remote_model_t::AKB75215403);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
ac.setModel(lg_ac_remote_model_t::GE6711AR2853M);
|
||||||
|
}
|
||||||
|
return ac.isValidLgAc() ? ac.toString() : "";
|
||||||
|
}
|
||||||
|
#endif // DECODE_LG
|
||||||
default:
|
default:
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
@ -2299,6 +2363,23 @@ namespace IRAcUtils {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#endif // DECODE_KELVINATOR
|
#endif // DECODE_KELVINATOR
|
||||||
|
#if DECODE_LG
|
||||||
|
case decode_type_t::LG:
|
||||||
|
case decode_type_t::LG2: {
|
||||||
|
IRLgAc ac(kGpioUnused);
|
||||||
|
ac.setRaw(decode->value); // Uses value instead of state.
|
||||||
|
if (!ac.isValidLgAc()) return false;
|
||||||
|
switch (decode->decode_type) {
|
||||||
|
case decode_type_t::LG2:
|
||||||
|
ac.setModel(lg_ac_remote_model_t::AKB75215403);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
ac.setModel(lg_ac_remote_model_t::GE6711AR2853M);
|
||||||
|
}
|
||||||
|
*result = ac.toCommon();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
#endif // DECODE_LG
|
||||||
#if DECODE_MIDEA
|
#if DECODE_MIDEA
|
||||||
case decode_type_t::MIDEA: {
|
case decode_type_t::MIDEA: {
|
||||||
IRMideaAC ac(kGpioUnused);
|
IRMideaAC ac(kGpioUnused);
|
@ -18,6 +18,7 @@
|
|||||||
#include "ir_Haier.h"
|
#include "ir_Haier.h"
|
||||||
#include "ir_Hitachi.h"
|
#include "ir_Hitachi.h"
|
||||||
#include "ir_Kelvinator.h"
|
#include "ir_Kelvinator.h"
|
||||||
|
#include "ir_LG.h"
|
||||||
#include "ir_Midea.h"
|
#include "ir_Midea.h"
|
||||||
#include "ir_Mitsubishi.h"
|
#include "ir_Mitsubishi.h"
|
||||||
#include "ir_MitsubishiHeavy.h"
|
#include "ir_MitsubishiHeavy.h"
|
||||||
@ -136,16 +137,16 @@ class IRac {
|
|||||||
const bool quiet, const bool turbo, const bool econo);
|
const bool quiet, const bool turbo, const bool econo);
|
||||||
#endif // SEND_DAIKIN152
|
#endif // SEND_DAIKIN152
|
||||||
#if SEND_DAIKIN160
|
#if SEND_DAIKIN160
|
||||||
void daikin160(IRDaikin160 *ac,
|
void daikin160(IRDaikin160 *ac,
|
||||||
const bool on, const stdAc::opmode_t mode,
|
const bool on, const stdAc::opmode_t mode,
|
||||||
const float degrees, const stdAc::fanspeed_t fan,
|
const float degrees, const stdAc::fanspeed_t fan,
|
||||||
const stdAc::swingv_t swingv);
|
const stdAc::swingv_t swingv);
|
||||||
#endif // SEND_DAIKIN160
|
#endif // SEND_DAIKIN160
|
||||||
#if SEND_DAIKIN176
|
#if SEND_DAIKIN176
|
||||||
void daikin176(IRDaikin176 *ac,
|
void daikin176(IRDaikin176 *ac,
|
||||||
const bool on, const stdAc::opmode_t mode,
|
const bool on, const stdAc::opmode_t mode,
|
||||||
const float degrees, const stdAc::fanspeed_t fan,
|
const float degrees, const stdAc::fanspeed_t fan,
|
||||||
const stdAc::swingh_t swingh);
|
const stdAc::swingh_t swingh);
|
||||||
#endif // SEND_DAIKIN176
|
#endif // SEND_DAIKIN176
|
||||||
#if SEND_DAIKIN2
|
#if SEND_DAIKIN2
|
||||||
void daikin2(IRDaikin2 *ac,
|
void daikin2(IRDaikin2 *ac,
|
||||||
@ -230,6 +231,11 @@ void electra(IRElectraAc *ac,
|
|||||||
const bool quiet, const bool turbo, const bool light,
|
const bool quiet, const bool turbo, const bool light,
|
||||||
const bool filter, const bool clean);
|
const bool filter, const bool clean);
|
||||||
#endif // SEND_KELVINATOR
|
#endif // SEND_KELVINATOR
|
||||||
|
#if SEND_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);
|
||||||
|
#endif // SEND_LG
|
||||||
#if SEND_MIDEA
|
#if SEND_MIDEA
|
||||||
void midea(IRMideaAC *ac,
|
void midea(IRMideaAC *ac,
|
||||||
const bool on, const stdAc::opmode_t mode, const bool celsius,
|
const bool on, const stdAc::opmode_t mode, const bool celsius,
|
||||||
@ -340,6 +346,7 @@ void electra(IRElectraAc *ac,
|
|||||||
const bool turbo, const bool light,
|
const bool turbo, const bool light,
|
||||||
const int16_t sleep = -1, const int16_t clock = -1);
|
const int16_t sleep = -1, const int16_t clock = -1);
|
||||||
#endif // SEND_WHIRLPOOL_AC
|
#endif // SEND_WHIRLPOOL_AC
|
||||||
|
static stdAc::state_t cleanState(const stdAc::state_t state);
|
||||||
static stdAc::state_t handleToggles(const stdAc::state_t desired,
|
static stdAc::state_t handleToggles(const stdAc::state_t desired,
|
||||||
const stdAc::state_t *prev = NULL);
|
const stdAc::state_t *prev = NULL);
|
||||||
}; // IRac class
|
}; // IRac class
|
@ -1,4 +1,4 @@
|
|||||||
/***************************************************
|
/***************************************************
|
||||||
* IRremote for ESP8266
|
* IRremote for ESP8266
|
||||||
*
|
*
|
||||||
* Based on the IRremote library for Arduino by Ken Shirriff
|
* Based on the IRremote library for Arduino by Ken Shirriff
|
||||||
@ -52,7 +52,7 @@
|
|||||||
#endif // UNIT_TEST
|
#endif // UNIT_TEST
|
||||||
|
|
||||||
// Library Version
|
// Library Version
|
||||||
#define _IRREMOTEESP8266_VERSION_ "2.7.1"
|
#define _IRREMOTEESP8266_VERSION_ "2.7.2"
|
||||||
|
|
||||||
// Set the language & locale for the library. See the `locale` dir for options.
|
// Set the language & locale for the library. See the `locale` dir for options.
|
||||||
#ifndef _IR_LOCALE_
|
#ifndef _IR_LOCALE_
|
||||||
@ -588,6 +588,7 @@ const uint16_t kSingleRepeat = 1;
|
|||||||
|
|
||||||
const uint16_t kAiwaRcT501Bits = 15;
|
const uint16_t kAiwaRcT501Bits = 15;
|
||||||
const uint16_t kAiwaRcT501MinRepeats = kSingleRepeat;
|
const uint16_t kAiwaRcT501MinRepeats = kSingleRepeat;
|
||||||
|
const uint16_t kAlokaBits = 32;
|
||||||
const uint16_t kAmcorStateLength = 8;
|
const uint16_t kAmcorStateLength = 8;
|
||||||
const uint16_t kAmcorBits = kAmcorStateLength * 8;
|
const uint16_t kAmcorBits = kAmcorStateLength * 8;
|
||||||
const uint16_t kAmcorDefaultRepeat = kSingleRepeat;
|
const uint16_t kAmcorDefaultRepeat = kSingleRepeat;
|
||||||
@ -668,6 +669,7 @@ const uint16_t kLegoPfBits = 16;
|
|||||||
const uint16_t kLegoPfMinRepeat = kNoRepeat;
|
const uint16_t kLegoPfMinRepeat = kNoRepeat;
|
||||||
const uint16_t kLgBits = 28;
|
const uint16_t kLgBits = 28;
|
||||||
const uint16_t kLg32Bits = 32;
|
const uint16_t kLg32Bits = 32;
|
||||||
|
const uint16_t kLgDefaultRepeat = kNoRepeat;
|
||||||
const uint16_t kLutronBits = 35;
|
const uint16_t kLutronBits = 35;
|
||||||
const uint16_t kMagiquestBits = 56;
|
const uint16_t kMagiquestBits = 56;
|
||||||
const uint16_t kMideaBits = 48;
|
const uint16_t kMideaBits = 48;
|
@ -141,6 +141,11 @@ enum whirlpool_ac_remote_model_t {
|
|||||||
DG11J191,
|
DG11J191,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum lg_ac_remote_model_t {
|
||||||
|
GE6711AR2853M = 1, // (1) LG 28-bit Protocol (default)
|
||||||
|
AKB75215403, // (2) LG2 28-bit Protocol
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
// Classes
|
// Classes
|
||||||
class IRsend {
|
class IRsend {
|
@ -824,13 +824,6 @@ namespace irutils {
|
|||||||
|
|
||||||
String modelToStr(const decode_type_t protocol, const int16_t model) {
|
String modelToStr(const decode_type_t protocol, const int16_t model) {
|
||||||
switch (protocol) {
|
switch (protocol) {
|
||||||
case decode_type_t::GREE:
|
|
||||||
switch (model) {
|
|
||||||
case gree_ac_remote_model_t::YAW1F: return F("YAW1F");
|
|
||||||
case gree_ac_remote_model_t::YBOFB: return F("YBOFB");
|
|
||||||
default: return kUnknownStr;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case decode_type_t::FUJITSU_AC:
|
case decode_type_t::FUJITSU_AC:
|
||||||
switch (model) {
|
switch (model) {
|
||||||
case fujitsu_ac_remote_model_t::ARRAH2E: return F("ARRAH2E");
|
case fujitsu_ac_remote_model_t::ARRAH2E: return F("ARRAH2E");
|
||||||
@ -841,6 +834,21 @@ namespace irutils {
|
|||||||
default: return kUnknownStr;
|
default: return kUnknownStr;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case decode_type_t::GREE:
|
||||||
|
switch (model) {
|
||||||
|
case gree_ac_remote_model_t::YAW1F: return F("YAW1F");
|
||||||
|
case gree_ac_remote_model_t::YBOFB: return F("YBOFB");
|
||||||
|
default: return kUnknownStr;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case decode_type_t::LG:
|
||||||
|
case decode_type_t::LG2:
|
||||||
|
switch (model) {
|
||||||
|
case lg_ac_remote_model_t::GE6711AR2853M: return F("GE6711AR2853M");
|
||||||
|
case lg_ac_remote_model_t::AKB75215403: return F("AKB75215403");
|
||||||
|
default: return kUnknownStr;
|
||||||
|
}
|
||||||
|
break;
|
||||||
case decode_type_t::PANASONIC_AC:
|
case decode_type_t::PANASONIC_AC:
|
||||||
switch (model) {
|
switch (model) {
|
||||||
case panasonic_ac_remote_model_t::kPanasonicLke: return F("LKE");
|
case panasonic_ac_remote_model_t::kPanasonicLke: return F("LKE");
|