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
|
||||
[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
|
||||
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.
|
||||
## v2.7.2 Now Available
|
||||
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
|
||||
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
|
||||
[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
|
||||
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.
|
||||
## v2.7.2 disponible
|
||||
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
|
||||
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
|
||||
|
||||
## _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)_
|
||||
|
||||
**[Bug Fixes]**
|
|
@ -1,6 +1,6 @@
|
|||
<!--- WARNING: Do NOT edit this file directly.
|
||||
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
|
||||
|
||||
| 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** | | | - |
|
||||
| [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 |
|
||||
| [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** | | | - |
|
||||
| [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** | | | - |
|
||||
| [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) | **[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 |
|
||||
| [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 |
|
||||
| [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 |
|
||||
| [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 |
|
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
|
||||
IRHitachiAc424 KEYWORD1
|
||||
IRKelvinatorAC KEYWORD1
|
||||
IRLgAc KEYWORD1
|
||||
IRMideaAC KEYWORD1
|
||||
IRMitsubishi112 KEYWORD1
|
||||
IRMitsubishi136 KEYWORD1
|
||||
|
@ -66,6 +67,7 @@ fanspeed_t KEYWORD1
|
|||
fujitsu_ac_remote_model_t KEYWORD1
|
||||
gree_ac_remote_model_t KEYWORD1
|
||||
irparams_t KEYWORD1
|
||||
lg_ac_remote_model_t KEYWORD1
|
||||
match_result_t KEYWORD1
|
||||
opmode_t KEYWORD1
|
||||
panasonic_ac_remote_model_t KEYWORD1
|
||||
|
@ -346,9 +348,11 @@ isSwingVToggle KEYWORD2
|
|||
isTimeCommand KEYWORD2
|
||||
isTimerActive KEYWORD2
|
||||
isTimerEnabled KEYWORD2
|
||||
isValidLgAc KEYWORD2
|
||||
kelvinator KEYWORD2
|
||||
ledOff KEYWORD2
|
||||
ledOn KEYWORD2
|
||||
lg KEYWORD2
|
||||
mark KEYWORD2
|
||||
match KEYWORD2
|
||||
matchAtLeast KEYWORD2
|
||||
|
@ -590,6 +594,7 @@ xorBytes KEYWORD2
|
|||
// LITERAL1
|
||||
AIWA_RC_T501 LITERAL1
|
||||
AIWA_RC_T501_BITS LITERAL1
|
||||
AKB75215403 LITERAL1
|
||||
ALLOW_DELAY_CALLS LITERAL1
|
||||
AMCOR LITERAL1
|
||||
ARDB1 LITERAL1
|
||||
|
@ -748,6 +753,7 @@ FUJITSU_AC_SWING_BOTH LITERAL1
|
|||
FUJITSU_AC_SWING_HORIZ LITERAL1
|
||||
FUJITSU_AC_SWING_OFF LITERAL1
|
||||
FUJITSU_AC_SWING_VERT LITERAL1
|
||||
GE6711AR2853M LITERAL1
|
||||
GICABLE LITERAL1
|
||||
GICABLE_BITS LITERAL1
|
||||
GLOBALCACHE LITERAL1
|
||||
|
@ -1063,6 +1069,22 @@ kAiwaRcT501PostBits LITERAL1
|
|||
kAiwaRcT501PostData LITERAL1
|
||||
kAiwaRcT501PreBits 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
|
||||
kAmcorBits LITERAL1
|
||||
kAmcorChecksumByte LITERAL1
|
||||
|
@ -2094,9 +2116,38 @@ kLg32HdrSpace LITERAL1
|
|||
kLg32HdrSpaceTicks LITERAL1
|
||||
kLg32RptHdrMark 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
|
||||
kLgBitMarkTicks LITERAL1
|
||||
kLgBits LITERAL1
|
||||
kLgDefaultRepeat LITERAL1
|
||||
kLgHdrMark LITERAL1
|
||||
kLgHdrMarkTicks LITERAL1
|
||||
kLgHdrSpace LITERAL1
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "IRremoteESP8266",
|
||||
"version": "2.7.1",
|
||||
"version": "2.7.2",
|
||||
"keywords": "infrared, ir, remote, esp8266, esp32",
|
||||
"description": "Send and receive infrared signals with multiple protocols (ESP8266/ESP32)",
|
||||
"repository":
|
|
@ -1,5 +1,5 @@
|
|||
name=IRremoteESP8266
|
||||
version=2.7.1
|
||||
version=2.7.2
|
||||
author=David Conran, Sebastien Warin, Mark Szabo, Ken Shirriff
|
||||
maintainer=Mark Szabo, David Conran, Sebastien Warin, Roi Dayan, Massimiliano Pinto
|
||||
sentence=Send and receive infrared signals with multiple protocols (ESP8266/ESP32)
|
|
@ -25,6 +25,7 @@
|
|||
#include "ir_Haier.h"
|
||||
#include "ir_Hitachi.h"
|
||||
#include "ir_Kelvinator.h"
|
||||
#include "ir_LG.h"
|
||||
#include "ir_Midea.h"
|
||||
#include "ir_Mitsubishi.h"
|
||||
#include "ir_MitsubishiHeavy.h"
|
||||
|
@ -149,6 +150,10 @@ bool IRac::isProtocolSupported(const decode_type_t protocol) {
|
|||
#if SEND_KELVINATOR
|
||||
case decode_type_t::KELVINATOR:
|
||||
#endif
|
||||
#if SEND_LG
|
||||
case decode_type_t::LG:
|
||||
case decode_type_t::LG2:
|
||||
#endif
|
||||
#if SEND_MIDEA
|
||||
case decode_type_t::MIDEA:
|
||||
#endif
|
||||
|
@ -719,6 +724,30 @@ void IRac::kelvinator(IRKelvinatorAC *ac,
|
|||
}
|
||||
#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
|
||||
void IRac::midea(IRMideaAC *ac,
|
||||
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
|
||||
|
||||
// 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
|
||||
// any state changes for options that need to be toggled.
|
||||
// Args:
|
||||
|
@ -1244,23 +1287,18 @@ bool IRac::sendAc(const decode_type_t vendor, const int16_t model,
|
|||
// Returns:
|
||||
// boolean: True, if accepted/converted/attempted. False, if unsupported.
|
||||
bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
||||
stdAc::state_t send = this->handleToggles(desired, prev);
|
||||
// Convert the temperature to Celsius.
|
||||
float degC;
|
||||
if (desired.celsius)
|
||||
degC = send.degrees;
|
||||
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;
|
||||
// Convert the temp from Fahrenheit to Celsius if we are not in Celsius mode.
|
||||
float degC = desired.celsius ? desired.degrees
|
||||
: fahrenheitToCelsius(desired.degrees);
|
||||
// special `state_t` that is required to be sent based on that.
|
||||
stdAc::state_t send = this->handleToggles(this->cleanState(desired), prev);
|
||||
// Per vendor settings & setup.
|
||||
switch (send.protocol) {
|
||||
#if SEND_AMCOR
|
||||
case AMCOR:
|
||||
{
|
||||
IRAmcorAc ac(_pin, _inverted, _modulation);
|
||||
amcor(&ac, on, send.mode, degC, send.fanspeed);
|
||||
amcor(&ac, send.power, send.mode, degC, send.fanspeed);
|
||||
break;
|
||||
}
|
||||
#endif // SEND_AMCOR
|
||||
|
@ -1268,8 +1306,8 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||
case ARGO:
|
||||
{
|
||||
IRArgoAC ac(_pin, _inverted, _modulation);
|
||||
argo(&ac, on, send.mode, degC, send.fanspeed, send.swingv, send.turbo,
|
||||
send.sleep);
|
||||
argo(&ac, send.power, send.mode, degC, send.fanspeed, send.swingv,
|
||||
send.turbo, send.sleep);
|
||||
break;
|
||||
}
|
||||
#endif // SEND_ARGO
|
||||
|
@ -1277,8 +1315,8 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||
case COOLIX:
|
||||
{
|
||||
IRCoolixAC ac(_pin, _inverted, _modulation);
|
||||
coolix(&ac, on, send.mode, degC, send.fanspeed, send.swingv, send.swingh,
|
||||
send.turbo, send.light, send.clean, send.sleep);
|
||||
coolix(&ac, send.power, send.mode, degC, send.fanspeed, send.swingv,
|
||||
send.swingh, send.turbo, send.light, send.clean, send.sleep);
|
||||
break;
|
||||
}
|
||||
#endif // SEND_COOLIX
|
||||
|
@ -1286,8 +1324,8 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||
case DAIKIN:
|
||||
{
|
||||
IRDaikinESP ac(_pin, _inverted, _modulation);
|
||||
daikin(&ac, on, send.mode, degC, send.fanspeed, send.swingv, send.swingh,
|
||||
send.quiet, send.turbo, send.econo, send.clean);
|
||||
daikin(&ac, send.power, send.mode, degC, send.fanspeed, send.swingv,
|
||||
send.swingh, send.quiet, send.turbo, send.econo, send.clean);
|
||||
break;
|
||||
}
|
||||
#endif // SEND_DAIKIN
|
||||
|
@ -1295,7 +1333,7 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||
case DAIKIN128:
|
||||
{
|
||||
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.clock);
|
||||
break;
|
||||
|
@ -1305,7 +1343,7 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||
case DAIKIN152:
|
||||
{
|
||||
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);
|
||||
break;
|
||||
}
|
||||
|
@ -1314,7 +1352,7 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||
case DAIKIN160:
|
||||
{
|
||||
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;
|
||||
}
|
||||
#endif // SEND_DAIKIN160
|
||||
|
@ -1322,7 +1360,7 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||
case DAIKIN176:
|
||||
{
|
||||
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;
|
||||
}
|
||||
#endif // SEND_DAIKIN176
|
||||
|
@ -1330,9 +1368,9 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||
case DAIKIN2:
|
||||
{
|
||||
IRDaikin2 ac(_pin, _inverted, _modulation);
|
||||
daikin2(&ac, on, send.mode, degC, send.fanspeed, send.swingv, send.swingh,
|
||||
send.quiet, send.turbo, send.light, send.econo, send.filter,
|
||||
send.clean, send.beep, send.sleep, send.clock);
|
||||
daikin2(&ac, send.power, send.mode, degC, send.fanspeed, send.swingv,
|
||||
send.swingh, send.quiet, send.turbo, send.light, send.econo,
|
||||
send.filter, send.clean, send.beep, send.sleep, send.clock);
|
||||
break;
|
||||
}
|
||||
#endif // SEND_DAIKIN2
|
||||
|
@ -1340,7 +1378,7 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||
case DAIKIN216:
|
||||
{
|
||||
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);
|
||||
break;
|
||||
}
|
||||
|
@ -1349,7 +1387,7 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||
case ELECTRA_AC:
|
||||
{
|
||||
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);
|
||||
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,
|
||||
_modulation);
|
||||
fujitsu(&ac, (fujitsu_ac_remote_model_t)send.model, on, send.mode, degC,
|
||||
send.fanspeed, send.swingv, send.swingh, send.quiet, send.turbo,
|
||||
send.econo, send.filter, send.clean);
|
||||
fujitsu(&ac, (fujitsu_ac_remote_model_t)send.model, send.power, send.mode,
|
||||
degC, send.fanspeed, send.swingv, send.swingh, send.quiet,
|
||||
send.turbo, send.econo, send.filter, send.clean);
|
||||
break;
|
||||
}
|
||||
#endif // SEND_FUJITSU_AC
|
||||
|
@ -1369,7 +1407,7 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||
case GOODWEATHER:
|
||||
{
|
||||
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);
|
||||
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,
|
||||
_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.sleep);
|
||||
break;
|
||||
|
@ -1389,8 +1427,8 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||
case HAIER_AC:
|
||||
{
|
||||
IRHaierAC ac(_pin, _inverted, _modulation);
|
||||
haier(&ac, on, send.mode, degC, send.fanspeed, send.swingv, send.filter,
|
||||
send.sleep, send.clock);
|
||||
haier(&ac, send.power, send.mode, degC, send.fanspeed, send.swingv,
|
||||
send.filter, send.sleep, send.clock);
|
||||
break;
|
||||
}
|
||||
#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:
|
||||
{
|
||||
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);
|
||||
break;
|
||||
}
|
||||
|
@ -1407,7 +1445,7 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||
case HITACHI_AC:
|
||||
{
|
||||
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);
|
||||
break;
|
||||
}
|
||||
|
@ -1416,7 +1454,7 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||
case HITACHI_AC424:
|
||||
{
|
||||
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;
|
||||
}
|
||||
#endif // SEND_HITACHI_AC424
|
||||
|
@ -1424,18 +1462,28 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||
case KELVINATOR:
|
||||
{
|
||||
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.clean);
|
||||
break;
|
||||
}
|
||||
#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
|
||||
case MIDEA:
|
||||
{
|
||||
IRMideaAC ac(_pin, _inverted, _modulation);
|
||||
midea(&ac, on, send.mode, send.celsius, send.degrees, send.fanspeed,
|
||||
send.swingv, send.sleep);
|
||||
midea(&ac, send.power, send.mode, send.celsius, send.degrees,
|
||||
send.fanspeed, send.swingv, send.sleep);
|
||||
break;
|
||||
}
|
||||
#endif // SEND_MIDEA
|
||||
|
@ -1443,7 +1491,7 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||
case MITSUBISHI_AC:
|
||||
{
|
||||
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);
|
||||
break;
|
||||
}
|
||||
|
@ -1452,8 +1500,8 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||
case MITSUBISHI112:
|
||||
{
|
||||
IRMitsubishi112 ac(_pin, _inverted, _modulation);
|
||||
mitsubishi112(&ac, on, send.mode, degC, send.fanspeed, send.swingv,
|
||||
send.swingh, send.quiet);
|
||||
mitsubishi112(&ac, send.power, send.mode, degC, send.fanspeed,
|
||||
send.swingv, send.swingh, send.quiet);
|
||||
break;
|
||||
}
|
||||
#endif // SEND_MITSUBISHI112
|
||||
|
@ -1461,8 +1509,8 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||
case MITSUBISHI136:
|
||||
{
|
||||
IRMitsubishi136 ac(_pin, _inverted, _modulation);
|
||||
mitsubishi136(&ac, on, send.mode, degC, send.fanspeed, send.swingv,
|
||||
send.quiet);
|
||||
mitsubishi136(&ac, send.power, send.mode, degC, send.fanspeed,
|
||||
send.swingv, send.quiet);
|
||||
break;
|
||||
}
|
||||
#endif // SEND_MITSUBISHI136
|
||||
|
@ -1470,16 +1518,17 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||
case MITSUBISHI_HEAVY_88:
|
||||
{
|
||||
IRMitsubishiHeavy88Ac ac(_pin, _inverted, _modulation);
|
||||
mitsubishiHeavy88(&ac, on, send.mode, degC, send.fanspeed, send.swingv,
|
||||
send.swingh, send.turbo, send.econo, send.clean);
|
||||
mitsubishiHeavy88(&ac, send.power, send.mode, degC, send.fanspeed,
|
||||
send.swingv, send.swingh, send.turbo, send.econo,
|
||||
send.clean);
|
||||
break;
|
||||
}
|
||||
case MITSUBISHI_HEAVY_152:
|
||||
{
|
||||
IRMitsubishiHeavy152Ac ac(_pin, _inverted, _modulation);
|
||||
mitsubishiHeavy152(&ac, on, send.mode, degC, send.fanspeed, send.swingv,
|
||||
send.swingh, send.quiet, send.turbo, send.econo,
|
||||
send.filter, send.clean, send.sleep);
|
||||
mitsubishiHeavy152(&ac, send.power, send.mode, degC, send.fanspeed,
|
||||
send.swingv, send.swingh, send.quiet, send.turbo,
|
||||
send.econo, send.filter, send.clean, send.sleep);
|
||||
break;
|
||||
}
|
||||
#endif // SEND_MITSUBISHIHEAVY
|
||||
|
@ -1487,7 +1536,7 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||
case NEOCLIMA:
|
||||
{
|
||||
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);
|
||||
break;
|
||||
}
|
||||
|
@ -1496,9 +1545,9 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||
case PANASONIC_AC:
|
||||
{
|
||||
IRPanasonicAc ac(_pin, _inverted, _modulation);
|
||||
panasonic(&ac, (panasonic_ac_remote_model_t)send.model, on, send.mode,
|
||||
degC, send.fanspeed, send.swingv, send.swingh, send.quiet,
|
||||
send.turbo, send.clock);
|
||||
panasonic(&ac, (panasonic_ac_remote_model_t)send.model, send.power,
|
||||
send.mode, degC, send.fanspeed, send.swingv, send.swingh,
|
||||
send.quiet, send.turbo, send.clock);
|
||||
break;
|
||||
}
|
||||
#endif // SEND_PANASONIC_AC
|
||||
|
@ -1506,8 +1555,8 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||
case SAMSUNG_AC:
|
||||
{
|
||||
IRSamsungAc ac(_pin, _inverted, _modulation);
|
||||
samsung(&ac, on, send.mode, degC, send.fanspeed, send.swingv, send.quiet,
|
||||
send.turbo, send.clean, send.beep, prev->power);
|
||||
samsung(&ac, send.power, send.mode, degC, send.fanspeed, send.swingv,
|
||||
send.quiet, send.turbo, send.clean, send.beep, prev->power);
|
||||
break;
|
||||
}
|
||||
#endif // SEND_SAMSUNG_AC
|
||||
|
@ -1515,7 +1564,7 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||
case SHARP_AC:
|
||||
{
|
||||
IRSharpAc ac(_pin, _inverted, _modulation);
|
||||
sharp(&ac, on, send.mode, degC, send.fanspeed);
|
||||
sharp(&ac, send.power, send.mode, degC, send.fanspeed);
|
||||
break;
|
||||
}
|
||||
#endif // SEND_SHARP_AC
|
||||
|
@ -1523,8 +1572,8 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||
case TCL112AC:
|
||||
{
|
||||
IRTcl112Ac ac(_pin, _inverted, _modulation);
|
||||
tcl112(&ac, on, send.mode, degC, send.fanspeed, send.swingv, send.swingh,
|
||||
send.turbo, send.light, send.econo, send.filter);
|
||||
tcl112(&ac, send.power, send.mode, degC, send.fanspeed, send.swingv,
|
||||
send.swingh, send.turbo, send.light, send.econo, send.filter);
|
||||
break;
|
||||
}
|
||||
#endif // SEND_TCL112AC
|
||||
|
@ -1532,8 +1581,8 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||
case TECO:
|
||||
{
|
||||
IRTecoAc ac(_pin, _inverted, _modulation);
|
||||
teco(&ac, on, send.mode, degC, send.fanspeed, send.swingv, send.light,
|
||||
send.sleep);
|
||||
teco(&ac, send.power, send.mode, degC, send.fanspeed, send.swingv,
|
||||
send.light, send.sleep);
|
||||
break;
|
||||
}
|
||||
#endif // SEND_TECO
|
||||
|
@ -1541,7 +1590,7 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||
case TOSHIBA_AC:
|
||||
{
|
||||
IRToshibaAC ac(_pin, _inverted, _modulation);
|
||||
toshiba(&ac, on, send.mode, degC, send.fanspeed);
|
||||
toshiba(&ac, send.power, send.mode, degC, send.fanspeed);
|
||||
break;
|
||||
}
|
||||
#endif // SEND_TOSHIBA_AC
|
||||
|
@ -1549,7 +1598,7 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||
case TROTEC:
|
||||
{
|
||||
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;
|
||||
}
|
||||
#endif // SEND_TROTEC
|
||||
|
@ -1557,8 +1606,8 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||
case VESTEL_AC:
|
||||
{
|
||||
IRVestelAc ac(_pin, _inverted, _modulation);
|
||||
vestel(&ac, on, send.mode, degC, send.fanspeed, send.swingv, send.turbo,
|
||||
send.filter, send.sleep, send.clock);
|
||||
vestel(&ac, send.power, send.mode, degC, send.fanspeed, send.swingv,
|
||||
send.turbo, send.filter, send.sleep, send.clock);
|
||||
break;
|
||||
}
|
||||
#endif // SEND_VESTEL_AC
|
||||
|
@ -1566,9 +1615,9 @@ bool IRac::sendAc(const stdAc::state_t desired, const stdAc::state_t *prev) {
|
|||
case WHIRLPOOL_AC:
|
||||
{
|
||||
IRWhirlpoolAc ac(_pin, _inverted, _modulation);
|
||||
whirlpool(&ac, (whirlpool_ac_remote_model_t)send.model, on, send.mode,
|
||||
degC, send.fanspeed, send.swingv, send.turbo, send.light,
|
||||
send.sleep, send.clock);
|
||||
whirlpool(&ac, (whirlpool_ac_remote_model_t)send.model, send.power,
|
||||
send.mode, degC, send.fanspeed, send.swingv, send.turbo,
|
||||
send.light, send.sleep, send.clock);
|
||||
break;
|
||||
}
|
||||
#endif // SEND_WHIRLPOOL_AC
|
||||
|
@ -2129,6 +2178,21 @@ namespace IRAcUtils {
|
|||
return ac.toString();
|
||||
}
|
||||
#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:
|
||||
return "";
|
||||
}
|
||||
|
@ -2299,6 +2363,23 @@ namespace IRAcUtils {
|
|||
break;
|
||||
}
|
||||
#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
|
||||
case decode_type_t::MIDEA: {
|
||||
IRMideaAC ac(kGpioUnused);
|
|
@ -18,6 +18,7 @@
|
|||
#include "ir_Haier.h"
|
||||
#include "ir_Hitachi.h"
|
||||
#include "ir_Kelvinator.h"
|
||||
#include "ir_LG.h"
|
||||
#include "ir_Midea.h"
|
||||
#include "ir_Mitsubishi.h"
|
||||
#include "ir_MitsubishiHeavy.h"
|
||||
|
@ -136,16 +137,16 @@ class IRac {
|
|||
const bool quiet, const bool turbo, const bool econo);
|
||||
#endif // SEND_DAIKIN152
|
||||
#if SEND_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);
|
||||
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);
|
||||
#endif // SEND_DAIKIN160
|
||||
#if SEND_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);
|
||||
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);
|
||||
#endif // SEND_DAIKIN176
|
||||
#if SEND_DAIKIN2
|
||||
void daikin2(IRDaikin2 *ac,
|
||||
|
@ -230,6 +231,11 @@ void electra(IRElectraAc *ac,
|
|||
const bool quiet, const bool turbo, const bool light,
|
||||
const bool filter, const bool clean);
|
||||
#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
|
||||
void midea(IRMideaAC *ac,
|
||||
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 int16_t sleep = -1, const int16_t clock = -1);
|
||||
#endif // SEND_WHIRLPOOL_AC
|
||||
static stdAc::state_t cleanState(const stdAc::state_t state);
|
||||
static stdAc::state_t handleToggles(const stdAc::state_t desired,
|
||||
const stdAc::state_t *prev = NULL);
|
||||
}; // IRac class
|
|
@ -1,4 +1,4 @@
|
|||
/***************************************************
|
||||
/***************************************************
|
||||
* IRremote for ESP8266
|
||||
*
|
||||
* Based on the IRremote library for Arduino by Ken Shirriff
|
||||
|
@ -52,7 +52,7 @@
|
|||
#endif // UNIT_TEST
|
||||
|
||||
// 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.
|
||||
#ifndef _IR_LOCALE_
|
||||
|
@ -588,6 +588,7 @@ const uint16_t kSingleRepeat = 1;
|
|||
|
||||
const uint16_t kAiwaRcT501Bits = 15;
|
||||
const uint16_t kAiwaRcT501MinRepeats = kSingleRepeat;
|
||||
const uint16_t kAlokaBits = 32;
|
||||
const uint16_t kAmcorStateLength = 8;
|
||||
const uint16_t kAmcorBits = kAmcorStateLength * 8;
|
||||
const uint16_t kAmcorDefaultRepeat = kSingleRepeat;
|
||||
|
@ -668,6 +669,7 @@ const uint16_t kLegoPfBits = 16;
|
|||
const uint16_t kLegoPfMinRepeat = kNoRepeat;
|
||||
const uint16_t kLgBits = 28;
|
||||
const uint16_t kLg32Bits = 32;
|
||||
const uint16_t kLgDefaultRepeat = kNoRepeat;
|
||||
const uint16_t kLutronBits = 35;
|
||||
const uint16_t kMagiquestBits = 56;
|
||||
const uint16_t kMideaBits = 48;
|
|
@ -141,6 +141,11 @@ enum whirlpool_ac_remote_model_t {
|
|||
DG11J191,
|
||||
};
|
||||
|
||||
enum lg_ac_remote_model_t {
|
||||
GE6711AR2853M = 1, // (1) LG 28-bit Protocol (default)
|
||||
AKB75215403, // (2) LG2 28-bit Protocol
|
||||
};
|
||||
|
||||
|
||||
// Classes
|
||||
class IRsend {
|
|
@ -824,13 +824,6 @@ namespace irutils {
|
|||
|
||||
String modelToStr(const decode_type_t protocol, const int16_t model) {
|
||||
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:
|
||||
switch (model) {
|
||||
case fujitsu_ac_remote_model_t::ARRAH2E: return F("ARRAH2E");
|
||||
|
@ -841,6 +834,21 @@ namespace irutils {
|
|||
default: return kUnknownStr;
|
||||
}
|
||||
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:
|
||||
switch (model) {
|
||||
case panasonic_ac_remote_model_t::kPanasonicLke: return F("LKE");
|