## _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
Allows supporting A/C IR remote protocols which use different commands
for representing slices of functionality.
By default, all IRac commands are of type ac_command_t::kControlCommand
Added Argo WREM3 implementation which uses disjoint commands.
Signed-off-by: Mateusz Bronk <bronk.m+gh@gmail.com>
Co-authored-by: Mateusz Bronk <bronk.m+gh@gmail.com>
* ARGO: Improve code & add support for decoding 32bit sensor msgs.
* Add `getSensorTemp()`.
* deduplicate code used.
* Support decoding 32bit `ARGO` messages.
* Add bounds checking to `sendSensorTemp()`
Plus some minor code & style cleanups.
For #1859
Add check to see if `__VA_OPT__` macro is supported, if not, applies `<true_result>` value for `COND()` macro by default.
This has the side-effect/limitation that all protocol names are included in the build, even if the protocol is not available in the code, but _only_ for compilers dat do _not_ support the `__VA_OPT__` macro, notably gcc 4.8.2 (and older).
Resolves#1880
In Tasmota, we generally turn off IR receive while sending IR, to avoid triggering the decoder and potentially polluting timing. However repeatedly calling disableIRIn() and enableIRIn() cause a crash on ESP32 for unresolved reasons.
However we only need to pause reception, not deconfigure it completely. I propose to add pause() to IRrecv as a lightweight option to suspend receiving IR.
It has already been tested on Tasmota and proved to work fine.
When using the iFeel functionality the remote regularly sends silent (i.e. no beep) messages to the Argo unit to update the current temperature. This function adds the ability to send such messages.
On a side note, to capture normal Argo IR messages using IRrecv::decodeArgo I had to reduce kArgoBits and disable the checksum, likely because the message wasn't fully recorded. To capture these temperature messages I had to use nbits = 32.
X-Ref: #1859
Most projects use IRremoteESP8266 by including the IRremoteESP8266.h file.
To avoid unexpectedly impacting these projects it is safer to move the include to only where it is to be used.
Ref #1853
Ref #1851