`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>
send.sleep was being sent in place of send.clean omitting send.sleep and triggering an extra IR packet with a Self Clean Toggle command along with every command.
Bug seems introduced in #1928 (FYI @mbronk )
Fixes#1958
Adds support for connecting a SHT-3x temperature sensor such as this.
Will report as part of the climate entity in Home Assistant if using HA discovery, and optionally also create temperature and humidity sensors in HA as well. Adding the temperature to the climate entity makes the HA integration with Apple HomeKit much nicer as well.
It's all disabled by default.
Co-authored-by: Sillyfrog <sillyfrog@users.noreply.github.com>
Co-authored-by: David Conran <crankyoldgit@users.noreply.github.com>
* Add `sendCarrierAC84()` and `decodeCarrierAC84()` routines.
* Create some unit tests to cover the new code.
* Hack in some support for non-byte-aligned > 64 bit protocols.
* Update supported devices.
For #1943
When using the server to control more than one AC with Home Assistant, this will send a discovery message for each configured output. The naming and ID matching uses the same as the MQTT implementation (ie: 0 has no extension, 1 has _1 etc).
Co-authored-by: Sillyfrog <sillyfrog@users.noreply.github.com>
Adds iFeel/sensorTemp/command support.
IRMQTTServer build fix on Windows (naive)
bump version number as this is a significant change of operation & functionality
Signed-off-by: Mateusz Bronk <bronk.m+gh@gmail.com>
Co-authored-by: Mateusz Bronk <bronk.m+gh@gmail.com>
Co-authored-by: David Conran <crankyoldgit@users.noreply.github.com>
Co-authored-by: Sillyfrog <sillyfrog@users.noreply.github.com>
I'm setting up the IRMQTTserver to link with HA (first time I've done it with an AC), and running with 2 outputs. I've found that the On state was doing weird things and this is the solution that worked for me (forcing the sync of the power state to On as well).
Please let me know if I missed something - it's been a while since I've had a chance to work on such things :)
I'm using the FUJITSU_AC protocol (not sure it matters, but this one has a completely different "Off" format vs On).
* Basic `sendWowwee()` & decodeWowwee()` routines.
* Unit test coverage including decoding of two different captured messages from a real remote.
* Add reference for available/known RoboRaptor-X codes.
Fixes#1938