`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>
In some implementations round is at the global scope as `::round` and some other implementations make it available as `std::round`.
The changes use the `float roundf(float)` flavor to make sure that we don't use `double round(double)` if this function isn't overloaded with the float type.
## _v2.8.5 (20230508)_
**[Bug Fixes]**
- Fix a bug where we never detached the timer interrupt on ESP32s. (#1984#1983)
- Missing argument in use of midea function (#1959#1958)
- IRMQTTServer: Improve HA MQTT climate handling. (#1911)
- SEND_SANYO_AC88: Fix poor cut-n-paste error (#1905#1897)
**[Features]**
- Add support for a 40bit variant of the standard Panasonic protocol (#1977 @1976)
- Initial support for York AC protocol (#1889)
- IRMQTTServer: SHT-3x Temperature Sensor Support (#1951)
- IRMQTTServer: HA multi output discovery (#1947)
- IRMQTTServer: extended with new A/C common fields (#1940)
- IRMQTTServer: Sync the on state to power from mode for HA (#1946)
- Experimental basic support for Carrier 84-bit protocol. (#1945#1943)
- Add support the WowWee 11-Bit RoboRaptor-X protocol. (#1939#1938)
- Added 'sensorTemperature' and 'iFeel' to IRac (common) (#1928)
- Added extra 'mid' option for Fan & SwingV to IRac (#1929)
- Added "commandType" to IRAc (#1921)
- Added support for Argo WREM-3 A/C remote protocol [part1] (#1920)
- Added Dutch (nl-NL) translation (#1907)
- ARGO: Improve code & add support for decoding 32bit sensor msgs. (#1906#1859)
- Added support for Gorenje cooker hood IR protocol (#1888#1887)
**[Misc]**
- Add Electrolux YKR-H/531E as a supported device (#1981#1980)
- Update `XMP` status to Stable (#1944)
- upgrade to a later version of `googletest` (#1936)
- MITSUBISHI128: Added model to supported protocol (#1924)
- Added Dutch (nl-NL) README (#1908)
- Added GMock to UT Makefile (#1902)
- Update HA example config for HA 2022.6+ (#1901#1900)
- Add a `d1_mini_noMDNS` build option to `IRMQTTServer`. (#1985)
Kudos to @homy-newfs8 for finding, isolating, and providing a fix for the bug.
Note: `timerEnd()` needs to happen after `timerDetachInterrupt()`
Fixes#1983
This seems to be a shorter version of the normal 48 bit protocol. Different manufacturer code, and slightly different checksum calc.
Modified the exist code to support it rather than add a new protocol.
Fixes#1976
The protocol is known to almost every detail, checksum is calculated properly.
Some basic tests have been added.
Setting the sleep timer, scheduled power on, scheduled power off do not work
since there are some flags within byte 12 which is not correctly populated ATM.
Co-authored-by: David Conran <crankyoldgit@users.noreply.github.com>