1182 Commits

Author SHA1 Message Date
Ben Gruver
e6e1940069 Fix Bosch144 timings (#2242)
A few of the commands from my Durastar remote were being detected as
Coolix protocol, due to the bit mark and zero space timings being
slightly out of the expected range for Bosch144

Fixes #2241
2026-01-07 16:02:04 +10:00
David Conran
8833210f93 v2.9.0 release (#2240)
_v2.9.0 (20260103)_ release

**[Bug Fixes]**
- Bosch: Fixed the bug where the wind speed was always set to auto. (#2237)
- Update IRsend sendHaierAC to include SEND_HAIER_AC160 (#2172)
- Gree: Fix reporting vertical swing (#2125)
- Fix `decodeYork()` parameter names & defaults. (#2121)
- Fix the Coolix fan-only mode in IRac class. (#2104)
- Fix missing quiet parameter of haier176 (#2102)
- ESP32-C3: Fix compilation error when USB CDC on Boot is enabled (#2080)

**[Features]**
- Add Fahrenheit support for the BOSCH144 protocol (#2224)
- Build: Add compatibility with C++20 (#2040)
- Add initial detailed support for Kelon168 (Kelon/Hisense) (#1949)
- Add support for the Eurom A/C protocol (#2208)
- Add Fahrenheit support for Coolix (#2214)
- ESP32: Esp32 Core version 3 support (#2144)
- auto_analyse_raw_data: Add kXxMsbFirst to easy change MSBFirst for the full protocol (#2143)
- change kAirtonMaxTemp from 25C to 31C (#2124)
- Added support for Bluestar Heavy AC (#2120)
- Add support of Toshiba Remote Control B (#2094)
- Update haier160 & HaierYRWO2 to use quiet in the common class. (#2115)
- Internationalisation: Solvakian translation (#2091)
- Daikin: Support setting temperature in 0.5 C unit (#2036)
- Quiet/Silent Mode for Electra_AC (#1990)

**[Misc]**
- Document Fischer R51L1/BGE remote support (#2231)
- CI: pin python v3.13
- CI: Attempt to fix intelhex failures
- IRMQTTServer: Fixes for ArduinoJson v7 to remove depreicated calls
- docs: updated contributing section for clarity (by Prerna Utage) (#2221)
- Fix typo in Russian language support (#2210)
- Build: Update CodeQL actions plugin to use v3 as v2 will be deprecated soon
- Build: Fix soon to be deprecated set-output command
- Build: Update build scripts to use non-deprecated actions tooling
- Fix linter issues (#2173)
- pylint fix raw_to_pronto_code.py (#2150)
- Document support for Comfee model (#2147)
- DAIKIN: ARC443A5 Remote supported note (#2138)
- library.json specifies libCompatMode strict (#2111)
- Added Electrolux EACM CL/N3 series remote to TCL protocol (#2100)
- Add AR-JW19 to supported devices (#2069)
- Remove unused constant `kRcmmExcess` (#2033)
- Panasonic AC: Document support for PV1122V remote (#2029)
- Document support for Panasonic CS-E12QKEW A/C (#2028)
v2.9.0
2026-01-03 08:30:33 +10:00
kingingwang
5080851068 Fixed the bug where the wind speed was always set to auto. 2026-01-01 21:36:34 +10:00
Ben Gruver
8fb411b6a1 Add Fahrenheit support for the BOSCH144 protocol
Issue #2224
2025-12-21 15:35:04 +10:00
Ton Huisman
95b87cccd2 [Build] Add compatibility with C++20 (#2040)
* [Build] Add compatibility with C++20

* [Build] ESP32 builds both IDF 4.x and IDF 5.x

* [Build] C++20 Use typedefs to switch compilation (volatile vs atomic where needed)

* [Linter] Fix complaint about spaces :-|

* [Linter] Fix more complaints about spaces :-|

* [Build] esp32dev build restore standard espressif32 platform

* [Build] C++20 Adjust typedefs and code to avoid deprecation warnings

* [Build] esp32devIDF5x build restore Arduino 2.0.14 platform

* [Build] esp32devIDF5x build enable Arduino 3.0.0 alpha1 platform by switching interrupts off/on instead of (missing) low-level IDF calls

* [Build] Remove unneeded duplicate typedefs

* [Linter] Fix complaint about comment line-length :-|

* [Build] Add correct include to get `gpio_intr_enable` and `gpio_intr_disable`, thnx Jason2866!

* Add comment why code was changed

* [Lib] Add latest ESP32 fixes by @s-hadinger, add extra NULL safeguard, update Platform build

* [IDF5] Update platform package to avoid python script issues long solved
2025-12-17 06:48:58 +10:00
Leonardo Ascione
f66374d087 KELON168: Add initial detailed support for Kelon168 (Kelon/Hisense) (#1949)
* KELON168: Add initial detailed support for Kelon168 ((Kelon/Hisense)

Right now supporting: Super, quiet, fan speed, set temperature, power on/off, lights, clock. Timers should be equal as Whirlpool A/C. Swing needs an update

* Correct code style

* Fix unit test in Kelon168
2025-12-16 10:01:19 +10:00
David Conran
ca474a6ca9 Document Fischer R51L1/BGE remote support (#2231)
Replaces #2034
2025-12-15 21:42:46 +10:00
Gottem
97b92d3ccb Add support for the Eurom A/C protocol (#2208)
* Add support for the Eurom A/C protocol

* Fix some doc comments

* One more doc comment ;_;

* Also include the cmath and cstring headers

* Use roundf() instead of just round()

* Remove support section from the .cpp file
2025-12-15 14:06:31 +10:00
Hasan Khalil
d9bc0ffa01 Add Fahrenheit support for Coolix (#2214)
* Handle fahrenheit bit sneakily packed in parity.
Discovered with OutEquip Summit2 A/C.

* Handle Fahrenheit in IRCoolixAC::toString()

* Add Coolix encoding logic for Fahrenheit values.

* Formatting: Fix linter errors.
2025-12-15 14:03:11 +10:00
Jason2866
4245de90c8 pin python v3.13 2025-12-14 23:50:18 +10:00
crankyoldgit
47c86686a1 Attempt to fix intelhex failures 2025-12-14 23:50:18 +10:00
crankyoldgit
7e0f81dddc Fixes for ArduinoJson v7 to remove depreicated calls 2025-12-14 18:44:26 +10:00
BorisKofman
20b2bd4852 Esp32 Core version 3 (#2144)
* Update IRrecv.cpp

* fix 80 characters long

* fix whitespace

* Update IRrecv.cpp

* Update IRrecv.cpp

* Remove Serial Debug

* Update IRrecv.cpp

* Update IRrecv.cpp

* Update IRrecv.cpp

* fix whitespace

* Update IRrecv.cpp

* Minimize changes against master

WIP for #2144

* Arduino naming by version

* Update IRrecv.cpp

---------

Co-authored-by: BorisKofman <Borisk@salt.security>
Co-authored-by: Christian I. Nilsson <nikize@gmail.com>
2025-12-14 18:17:05 +10:00
Prerna Utage
01634f1ded docs: updated contributing section for clarity (by Prerna Utage) (#2221)
Co-authored-by: Prerna Utage <prerna@example.com>
2025-10-23 17:14:59 +10:00
almirus
42eead875d Fix typo in Russian language support (#2210)
typo
2025-06-22 07:58:52 +10:00
Ton Huisman
e07436fa4e [Build] Update CodeQL actions plugin to use v3 as v2 will be deprecated soon 2025-06-20 22:55:18 +02:00
Ton Huisman
b78aaccab9 [Build] Fix soon to be deprecated set-output command 2025-06-20 22:55:18 +02:00
Ton Huisman
5f492eb5c2 [Build] Update build scripts to use non-deprecated actions tooling 2025-06-20 22:55:18 +02:00
David Conran
3390e72877 Fix linter issues (#2173)
It seems we have a new linter that is picking up lots of issues.
Attempt to address them.
Set cpplint to ignore whitespace/namespace issues
2025-01-07 21:20:19 +10:00
Alex Kalineskou
21ba403ce0 Update IRsend sendHaierAC to include SEND_HAIER_AC160 (#2172)
`ir_Haier.cpp` defines it here https : //github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Haier.cpp#L49

When using flags `-D_IR_ENABLE_DEFAULT_ = false`and `-DSEND_HAIER_AC160=true` it results in not compiling since it can't fine the method in the header file.
2025-01-07 11:14:37 +10:00
Christian I. Nilsson
9bdf8abcb4 pylint fix raw_to_pronto_code.py (#2150)
Force named parameters to make pylint happy
option to new to disable reliably

tools/raw_to_pronto_code.py:11:0: R0917: Too many positional arguments (7/5) (too-many-positional-arguments)
https://pylint.readthedocs.io/en/latest/user_guide/messages/refactor/too-many-positional-arguments.html
2024-09-23 16:15:45 +02:00
jschwender
ce0a65eca8 Update ir_Coolix.h (#2147)
Added a comfee model i have tested.
2024-09-13 18:41:55 +10:00
Christian I. Nilsson
0056717986 auto_analyse_raw_data Add kXxMsbFirst to easy change MSBFirst for the full protocol (#2143) 2024-09-10 07:11:21 +09:00
Christian I. Nilsson
5406737abf DAIKIN: ARC443A5 Remote supported note (#2138) 2024-09-05 15:16:55 +09:00
Maxim Mikityanskiy
8a049f5785 Gree: Fix reporting vertical swing (#2125)
toCommonSwingV() is only called when SwingAuto is false, but it converts
kGreeSwingLastPos to kAuto. It doesn't make sense, because:

1. kGreeSwingLastPos means that swinging is stopped (i.e. the shutter
   remains in its last position), which corresponds to kOff.
2. kAuto shouldn't be returned from this function at all, because it's
   handled separately in toCommon() when SwingAuto is true.
3. As can be seen in setSwingVertical(), when automatic is false, the
   valid set of positions includes kGreeSwingLastPos, but not
   kGreeSwingAuto.

Fix the logic by amending toCommonSwingV() according to the
considerations above. It fixes parsing of received IR packets when the
user disables vertical swinging from the remote (tested with YAP1FB).

For consistency and robustness, educate setSwingVertical() and
convertSwingV() about the supported kGreeSwingLastPos mode.

Add a unit test for the described bug.
2024-09-05 15:05:19 +09:00
BorisKofman
850a45f0df change kAirtonMaxTemp from 25C to 31C (#2124) 2024-08-28 20:38:57 +10:00
Harsh Bhosale
a5c6902816 Added support for Bluestar Heavy AC (#2120)
Added basic support for Bluestar Heavy AC
Bit ordering confirmed.
2024-07-26 20:40:03 +10:00
Jacky Sze
c00a91912e Add support of Toshiba Remote Control B (#2094)
Add support of Toshiba Remote Control B
2024-07-25 12:08:14 +10:00
David Conran
aae4528cfa Fix decodeYork() parameter names & defaults. (#2121)
Clean up some code ugliness.
Not even sure it should have compiled before.
2024-07-25 12:01:31 +10:00
David Conran
702ec8b356 Update haier160 & HaierYRWO2 to use quiet in the common class. (#2115)
Quiet mode operation was missing in the function calls of `haierYrwo2()` and `haier160()` thus passing the wrong arguments to the function.
Add the `quiet` parameter in fixes this.

Fixes #2101
2024-07-03 18:56:20 +10:00
Rob Deutsch
dc0fd31706 library.json specifies libCompatMode strict (#2111)
This PR is based on platformio's documentation. I will test it next week.

This PR instructs platformio to pay attention to both the `frameworks` AND `platforms` specification before trying to compile IRremoteESP8266.

I would've thought that platformio would do this check by default, but apparently not. By default it only checks `frameworks`. Source: https://docs.platformio.org/en/latest/manifests/library-json/fields/platforms.html

The documentation for libCompatMode can be found here: https://docs.platformio.org/en/latest/manifests/library-json/fields/build/libcompatmode.html#manifest-library-json-build-libcompatmode
2024-06-26 18:04:00 +10:00
David Conran
9785cb910d [Bug] Fix the Coolix fan-only mode in IRac class. (#2104)
Mode was being incorrectly set in produced message as a "Dry" command.
Adjusting order of when setMode() was called fixes the issue.
Add a Unit test to confirm it is fixed and catch this in future.

Fixes #2103
2024-06-06 16:45:28 +10:00
David Conran
0b0fe77878 Fix missing quiet parameter of haier176 (#2102)
Try to fix #2101
2024-06-06 09:42:11 +10:00
Illia Khovanskyi
bcbf7ca44e Added Electrolux EACM CL/N3 series remote to TCL protocol (#2100) 2024-05-27 17:11:11 +02:00
misa1515
32d10a62b4 Create sk-SK.h (#2091)
* Create sk-SK.h

* Update sk-SK.h

Review feedback corrections.

---------

Co-authored-by: David Conran <crankyoldgit@users.noreply.github.com>
2024-05-12 21:04:40 +10:00
K.Takata
61b43dea97 Fix compilation error when USB CDC on Boot is enabled (#2080)
When USB CDC on Boot is enabled on ESP32-C3, an compilation error
occurs, because `Serial.begin()` takes only one (or zero) parameter.

Check `ARDUINO_USB_CDC_ON_BOOT` and call it with the correct parameter.
2024-03-18 13:36:50 +10:00
David Conran
d8aee22117 Add AR-JW19 to supported devices (#2069)
Per https://github.com/crankyoldgit/IRremoteESP8266/pull/1813#issuecomment-1958066970
2024-02-22 19:16:54 +10:00
K.Takata
f67948f6c8 Daikin: Support setting temperature in 0.5 C unit (#2036)
However, IRDaikinESP didn't support it.
This PR allows to set and get the temperature in 0.5 C unit.

It looks like some other Daikin protocols also support setting the
temperature in 0.5 C unit:
* Daikin2
* Daikin216
* Daikin160
* Daikin176
* Daikin152

However, they are not implemented in this PR, because I cannot test them.
2023-12-11 16:45:41 +10:00
noone2k
089ca898d0 Quiet/Silent Mode for Electra_AC (#1990)
* Add Delonghi PAC EM90 to Electra compat. list

* Add Electra_AC Quiet Mode ( testet with Delonghi PAC EM90 )

---------

Co-authored-by: noone2k <only_today@gmx.de>
2023-12-10 08:58:59 +10:00
David Conran
a295f87e06 Remove unused constant kRcmmExcess (#2033)
Per https://github.com/crankyoldgit/IRremoteESP8266/issues/2031#issuecomment-1702159536
2023-09-01 16:25:51 +10:00
David Conran
a2228ed9dc Panasonic AC: Document support for PV1122V remote (#2029)
For #2026
2023-08-30 15:18:42 +10:00
David Conran
0f6ec6d148 Update ir_Panasonic.h (#2028)
Document support for Panasonic CS-E12QKEW A/C

For #2026
2023-08-29 19:16:41 +10:00
David Conran
2bfdf97192 v2.8.6 release (#2020)
## _v2.8.6 (20230727)_

**[Bug Fixes]**
- Ensure `IRCoolixAC::toCommon()` returns `kNoTempValue` when no sensor temp is detected. (#2015 #2012)
- Fix compilation dependency of LG on Samsung send protocol (#2011 #2010)
- Fix missing parameter in call to `IRac::gree()` (#2008 #2007)

**[Features]**
- IRac: Ensure the `sleep` parameter is used for the `FUJITSU_AC` protocol. (#1992 #1991)

**[Misc]**
- Allow the BlynkIRRemote.ino code to compile again. (#2016)
- do not list WHIRLPOOL_AC unconditionally as supported protocol (#2003)
- IRUtils:typeToString() — simplify (#2002)
- Fix brand Green -> Gree (#1994)
- Fix undefined `std::round` compilation error (#1989)
v2.8.6
2023-07-28 11:59:56 +10:00
David Conran
1bab0712e3 [BUG] Ensure IRCoolixAC::toCommon() returns kNoTempValue when no sensor temp is detected. (#2015)
It seems we were reporting an incorrect sensor temp (31) which normally means "There is no sensor temp.", instead of `kNoTempValue`.

Fixes #2012
2023-07-27 09:05:44 +10:00
David Conran
75f9769427 Allow the BlynkIRRemote.ino code to compile again. (#2016)
Seems something with Blynk has changed. It needs `BLYNK_TEMPLATE_ID` & `BLYNK_TEMPLATE_NAME` defined to compile.
2023-07-26 18:22:41 +10:00
David Conran
5778cbffc1 Fix compilation dependency of LG on Samsung send protocol (#2011)
`sendSAMSUNG()` is needed by `sendLG()`, so fix the `#ifdef`s appropriately.

i.e. Compilation shouldn't break if `SEND_LG == TRUE` and `SEND_SAMSUNG == FALSE`

Fixes #2010
2023-07-10 13:18:37 +10:00
David Conran
f5f8710a9e [BUG] Fix missing parameter in call to IRac::gree() (#2008)
PR #1928 missed extending the call to `gree()` resulting in subsequent parameters being shifted by one place.

Fixes #2007
2023-06-28 12:42:38 +10:00
Дилян Палаузов
8082175126 IRac::isProtocolSupported() — do not list WHIRLPOOL_AC unconditionally as supported protocol (#2003)
It is reported as such when in Tasmota the command IRHVAC {"Vendor":"ABC"} is sent.

Build examples platformio.ini files updated where a fatal warning is generated when no protocols are enabled.

---------

Co-authored-by: David Conran <crankyoldgit@users.noreply.github.com>
2023-06-10 09:59:02 +10:00
Дилян Палаузов
4e4b158efe IRUtils:typeToString() — simplify (#2002)
Remove redundant code.
2023-06-10 09:41:36 +10:00
chic1018
9d0a9196fd Update ir_Kelvinator.h (#1994)
Fix brand Green -> Gree
2023-05-21 11:29:28 +02:00