Commit Graph

1143 Commits

Author SHA1 Message Date
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
David Conran
23177fb413 IRac: Ensure the sleep parameter is used for the FUJITSU_AC protocol. (#1992)
It seems we were not passing it on in the `IRac` class.
Fixes #1991
2023-05-15 20:57:13 +10:00
Paul
03885a6853 Fix undefined std::round compilation error (#1989)
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.
2023-05-13 01:59:47 +10:00
David Conran
1f79fee3b6 v2.8.5 release (#1988)
## _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)
v2.8.5
2023-05-08 23:45:19 +10:00
David Conran
35261c3ca6 Add a d1_mini_noMDNS build option to IRMQTTServer. (#1985)
Adding an option for those that don't want to use MDNS.
2023-05-07 12:58:35 +10:00
David Conran
d7ce2ca3b9 Fix a bug where we never detached the timer interrupt on ESP32s. (#1984)
Kudos to @homy-newfs8 for finding, isolating, and providing a fix for the bug.
Note: `timerEnd()` needs to happen after `timerDetachInterrupt()`

Fixes #1983
2023-05-04 12:01:25 +10:00
David Conran
575a81b200 Add support for a 40bit varient of the standard Panasonic protocol (#1977)
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
2023-05-03 22:06:18 +10:00
Daniele Gobbetti
fdf35b49a8 Initial support for York AC protocol (#1889)
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>
2023-04-27 09:04:07 +10:00
David Conran
e52495f93c Add Electrolux YKR-H/531E as a supported device (#1981)
Fixes #1980
2023-04-22 19:46:05 +10:00
Nikolaus Spence
c1a014a61f Missing argument in use of midea function (#1959)
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
2023-02-23 13:26:56 +10:00
sillyfrog
6c862349b5 IRMQTTServer: SHT-3x Temperature Sensor Support (#1951)
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>
2023-01-30 12:49:44 +10:00
David Conran
e7824c4b6a Experimental basic support for Carrier 84-bit protocol. (#1945)
* 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
2023-01-18 17:02:36 +10:00
sillyfrog
406a817f33 IR MQTT Server: HA multi output discovery (#1947)
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>
2023-01-13 19:32:56 +10:00
Mateusz Bronk
721c5b8f13 Examples: IRMQTTServer extended with new A/C common fields (#1940)
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>
2023-01-12 13:51:23 +10:00
sillyfrog
ddc9ec1a25 Sync the on state to power from mode for HA (#1946)
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).
2023-01-12 09:00:06 +10:00
David Conran
2f7afbd83e Update XMP status to Stable (#1944)
Ref: https://github.com/crankyoldgit/IRremoteESP8266/discussions/1942#discussioncomment-4579476
2023-01-05 20:21:58 +10:00
David Conran
fa77d78076 Add support the WowWee 11-Bit RoboRaptor-X protocol. (#1939)
* 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
2022-12-31 18:45:32 +10:00
David Conran
3a81664c24 upgrade to a later version of googletest (#1936)
Try a higher revision

1.10.x didn't fix the `-Wall` issue.
2022-12-26 03:23:54 +10:00
Mateusz Bronk
e6ec73c3b9 Added 'sensorTemperature' and 'iFeel' to IRac (common) (#1928)
* Added sensor temp. support to IRac (common)

Incl. impl. for Argo A/C

Signed-off-by: Mateusz Bronk <bronk.m+gh@gmail.com>

* Added common sensor temp. support to all protos exposing iFeel already

Signed-off-by: Mateusz Bronk <bronk.m+gh@gmail.com>

Signed-off-by: Mateusz Bronk <bronk.m+gh@gmail.com>
Co-authored-by: Mateusz Bronk <bronk.m+gh@gmail.com>
2022-12-25 18:17:00 +10:00
Mateusz Bronk
f19ab879c7 Added extra "mid" option for Fan & SwingV to IRac (#1929)
Signed-off-by: Mateusz Bronk <bronk.m+gh@gmail.com>
Co-authored-by: Mateusz Bronk <bronk.m+gh@gmail.com>
2022-12-25 18:15:04 +10:00
samuele-cozzi
00b27cc7ea MITSUBISHI128: Added model to supported protocol (#1924)
PAR-FA32MA remote
2022-12-04 19:51:44 +10:00
Mateusz Bronk
da30df3428 Added "commandType" to IRAc (#1921)
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>
2022-12-02 07:30:18 +10:00
Mateusz Bronk
a5ddcdd000 Added support for Argo WREM-3 A/C remote protocol [part1] (#1920)
* Added support for Argo WREM-3 A/C remote protocol

Signed-off-by: Mateusz Bronk <bronk.m+gh@gmail.com>
Co-authored-by: Mateusz Bronk <bronk.m+gh@gmail.com>
2022-11-24 19:28:04 +10:00
David Conran
55ce00262b Improve HA MQTT climate handling. (#1911)
- Fix a problem where "Off" mode was not being correctly seen by Home Assistant.
2022-10-29 10:43:04 +10:00
Stijn Bannink
4e330c3603 Added Dutch (nl-NL) README (#1908)
* Added Dutch README
* Fixed typo
2022-10-24 00:07:51 +10:00
Stijn Bannink
bf148ae683 Added Dutch (nl-NL) translation (#1907)
Based on de-DE translation
2022-10-23 21:34:34 +10:00
David Conran
2583718b38 ARGO: Improve code & add support for decoding 32bit sensor msgs. (#1906)
* 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
2022-10-23 02:52:30 +10:00
David Conran
7f02d0f104 Fix poor cut-n-paste error (#1905)
Use the correct `SEND_SANYO_AC88` define.

Fixes #1897
2022-10-22 20:17:20 +10:00
Mateusz Bronk
e8234cc21b Added GMock to UT Makefile (#1902)
Rationale: Allows to use full portfolio of matchers/assertions.
E.g. http://google.github.io/googletest/reference/matchers.html#container-matchers

Codebase is included with GTest (=was already there, just not compiled)

Signed-off-by: Mateusz Bronk bronk.m+gh@gmail.com
2022-10-19 22:53:16 +10:00
David Conran
2d838cfe5e Update HA example config for HA 2022.6+ (#1901)
Home assistant changed their formating slightly. Update example to reflect new expected config format.

Fixes #1900
2022-10-19 22:44:03 +10:00
Mateusz Bronk
71cd956d1e Added support for Gorenje cooker hood IR protocol (#1888)
Closes: #1887
```
// Supports:
//   Brand: Gorenje,  Model: DKF 2600 MWT Cooker Hood
```
See [here](416798dd5a/test/ir_Gorenje_test.cpp (L120)) for raw data examples.

_Cheers!
-Mateusz_

Signed-off-by: Mateusz Bronk bronk.m+gh@gmail.com
2022-09-27 22:35:02 +10:00
David Conran
726b219a69 v2.8.4 release (#1883)
**_v2.8.4 (20220918)_**

**[Bug Fixes]**
 - [Bugfix] Handle gcc unsupported `__VA_OPT___` macro (#1880 #1881)
v2.8.4
2022-09-18 19:32:36 +10:00
Ton Huisman
c5dacad3ce [Bugfix] Handle gcc unsupported __VA_OPT___ macro (#1881)
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
2022-09-18 14:37:27 +10:00
David Conran
84f596eeb9 v2.8.3 release (#1878)
**_v2.8.3 (20220915)_**

**[Bug Fixes]**
- Fix `#if` for DECODE_COOLIX48 (#1796)
- Add missing `prev`s to `decodeToState()` (#1783)

**[Features]**
- Add `pause()` function to ESP32 when receiving. (#1871)
- ARGO: Argo add `sendSensorTemp()` (#1858 #1859)
- HAIER_AC160: Experimental detail support. (#1852 #1804)
- BOSCH144: Add IRac class support (#1841)
- Mitsubishi_AC: update left vane in `IRac` class (#1837)
- Basic support for Daikin 312bit/39byte A/C protocol. (#1836 #1829)
- Experimental basic support for Sanyo AC 152 bit protocol. (#1828 #1826)
- GREE: Add model support for `YX1FSF`/Soleus Air Windown A/C (#1823 #1821)
- Experimental basic support for Bosch 144bit protocol. (#1822 #1787)
- Experimental basic support for TCL AC 96 bit protocol. (#1820 #1810)
- Add basic support for clima-butler (52bit) RCS-SD43UWI (#1815 #1812)
- TOTO: An experimental _(s)wipe_ at support for Toto Toilets. (#1811 #1806)
- CARRIER_AC128: Experimental Basic support for Carrier AC 128bit protocol. (#1798 #1797)
- HAIER_AC160: Add basic support for Haier 160bit protocol. (#1805 #1804)
- DAIKIN: Add basic support for 200-bit Daikin protocol. (#1803 #1802)
- FUJITSU: Improve handling of 10C Heat mode. (#1788 #1780)
- FUJITSU: Improve handling of short (command only) messages. (#1784 #1780)

**[Misc]**
- Improve the `_IRREMOTEESP8266_VERSION_VAL` macro (#1875 #1870)
- SONY: Update supported devices. (#1872)
- SAMSUNG: Update supported devices (#1873)
- NEC: Update supported devices (#1874)
- Give IRmacros.h smaller scope to avoid impacting projects using IRremoteESP8266 (#1857 #1853 #1851)
- Inhibit protocol names for not-included protocols (#1853 #1851)
- Test out codeql static analysis (#1842)
- Remove pylint disable=no-self-use (#1817)
- Fujitsu General: update supported devices (#1813)
- DAIKIN: Update supported devices (#1808 #1807)
- Fujitsu: Update supported remote info. (#1801 #1794)
- DAIKIN128: Update supported devices (#1754)
- Voltas: Add link to manual for 122LZF A/C. (#1800 #1799 #1238)
- Daikin128: Additional unit test. (#1795 #1754)
- MIDEA: Update supported devices (#1791 #1790)
v2.8.3
2022-09-16 10:02:42 +10:00
David Conran
1f00aeb468 Improve the _IRREMOTEESP8266_VERSION_VAL macro (#1875)
Make the parameter expansion safer.
For #1870
2022-09-11 00:30:47 +10:00
David Conran
61c19e2dda SONY: Update supported devices. (#1872)
Ref: https://github.com/crankyoldgit/IRremoteESP8266/issues/1018#issuecomment-1237282674
2022-09-10 23:43:32 +10:00
David Conran
4a53dfd516 SAMSUNG: Update supported devices (#1873)
Ref: https://github.com/crankyoldgit/IRremoteESP8266/issues/1018#issuecomment-1237290083
2022-09-10 23:42:55 +10:00
David Conran
38697cea96 NEC: Update supported devices (#1874)
Ref: https://github.com/crankyoldgit/IRremoteESP8266/issues/1018#issuecomment-1237290083
2022-09-10 22:46:10 +10:00
s-hadinger
baa43a28ef Add light pause to ESP32 (#1871)
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.
2022-09-10 21:57:03 +10:00
zpin
ff045f149c Argo sendSensorTemp (#1858)
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
2022-08-21 19:37:53 +10:00