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
_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)
* 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
* 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
`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.
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.
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
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
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.
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.
## _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)
`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
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>