1182 Commits

Author SHA1 Message Date
André Viana
18179fc23a Update pt-BR.h (#1628)
I found some missing strings.
PS: on TIMERMODE and some others, the order is backwards compared to English, because Portuguese is kind of backwards :)
2021-10-05 09:05:55 +10:00
tomrosenback
ab65e153b5 Add possibility to run specific test case (#1625)
* Optimize testing
During the need to run all test cases defined during development of eg a new protocol is not necessary, minimize test execution time and make it easier to see results from specific test cases within test file.

Co-authored-by: Tom Rosenback <tom@carputec.com>
2021-10-05 00:23:04 +10:00
tomrosenback
7cc93e9ec3 Swedish translation (#1627)
* Add swedish translation
* Add swedish to IRrecvDumpV2 for testing

Co-authored-by: Tom Rosenback <tom@carputec.com>
2021-10-04 15:32:26 +02:00
tomrosenback
1d0b004fe9 Change googletest library ignore (#1626)
Co-authored-by: Tom Rosenback <tom@carputec.com>
2021-10-04 21:12:41 +10:00
David Conran
9d25486ea9 Exclude SECURITY.md from zip archives (#1621)
Per https://github.com/crankyoldgit/IRremoteESP8266/pull/1617#issuecomment-929979704

For #1618
2021-10-02 10:00:35 +10:00
David Conran
d2b520851b Fix potential security issue with scrape_supported_devices.py (#1619)
Note: Tool is used internally by library developers to automatically generate documentation prior to a release and to warn when files are missing the required documentation.

* Update Regex used to eliminate potential denial of service.
  - Deemed a Low severity & impact threat.
  - Does NOT require or necessitate a new version/release of the library.
  - The tool is only used after review of code/PR etc which would already be very suspicious.
  - The tool is not something a user would typically use or run. (i.e. Internal use only)
  - Very unlikely to be exploited as the tool is not typically automatically run.
  - Expected worse case scenario would be the Continuous Integration tests failing due to a timeout, or a Developer losing some CPU time if they didn't notice a malicious PR/commit. (It would be very very obvious)
  - Remediation tested using supplied Proof of Concept code. i.e. Guaranteed Sub mSecond CPU use instead of exponential CPU use.
  - Addressed all other regex as a precaution as well via sensible range limitations.
* Documented the Regex used via `re.VERBOSE` and made easier to read/follow.
* Simplified some of the Regex.

Fixes #1616

Thanks to @srikanthprathi for reporting the issue & providing POC via the Huntr.Dev team.

Thanks to Huntr.Dev team for bring the issue to our attention. (Kudos to @zidingz, @JamieSlome)

Ref: https://huntr.dev/bounties/4da00a75-50dc-458b-acc6-cc216e1c854a/
2021-09-30 08:03:55 +10:00
David Conran
3128c641f9 Create an initial Security.md document. (#1617)
Respond to request in #1616
2021-09-29 16:50:39 +10:00
David Conran
ca44fa33bb Make IRAc::opmodeToString() output nicer for humans. (#1613)
* Add two outputs for Fan mode.
Use a nicer & more obvious human mode by default, & a special output which is expected for Home Assistant + Google Home.
* Unit tests
* Pretty up some of the switch statements.

Replaces PR #1612
2021-09-24 06:10:25 +10:00
David Conran
10706fc26a Re-work "Fan Only" strings & matching. (#1610)
* Improve compatiblity and human clarity.
* Add note about why it exists in the first place.

Replaces PR #1604
2021-09-22 06:36:09 +10:00
David Conran
74f41369c2 Address C0209 pylint warnings. (#1608)
Try to fix a bucket load of pylint issues.
A new version of pylint seems to warn us about:
`C0209: Formatting a regular string which could be a f-string (consider-using-f-string)`

Try to address as many as we can.
2021-09-21 02:48:43 +10:00
David Conran
4b7dac7b0f Symphony: Update supported devices and known codes (#1605)
Update the list of supported devices for this protocol. Also include some user supplied known-good codes for said device.

Fixes #1603
2021-09-19 21:38:41 +10:00
David Conran
5cd13df8e6 TCL112AC/TEKNOPOINT: Add support for GZ055BE1 model (#1602)
* Add `model` support for `TCL112AC` protocol.
* Hack `TEKNOPOINT` decoding to use `TCL112AC` model `GZ055BE1`
* Change Vertical Swing to have multiple positions.
* Add On & Off timer support.
* Add "Night" (aka. Quiet/min fan speed)
* Plenty of Unit Test additions, updates, & improvements.

Fixes #1486
2021-09-13 06:31:08 +10:00
David Conran
ece6bd5729 Epson: Update supported model info. (#1601)
For #1574
2021-09-09 16:14:01 +10:00
David Conran
aef67af9a7 Support for Arris protocol. (#1598)
* Add `sendArris()` & `decodeArris()`.
  - Uses Manchester Encoding.
  - Checksum validation on decode.
  - provide release status (via `address`) and the likely `command`.
* Add helper routines:
  - `toggleArrisRelease()` for changing mesg status between a press & a release of a button.
  - `encodeArris()` to construct a valid ARRIS mesg from a `command` and a `release` status.
* Add & update unit tests.
2021-09-09 10:57:08 +10:00
David Conran
a359a43367 SharpAc: Allow position control of SwingV (#1594)
* Add the ability to set Vertical Swing positions via `setSwingV()`
  - e.g. Coanda setting.
    * Modify `setSwingV()` to take an optional parameter to override the heat mode check.
    * Enable forcing of Coanda mode in Cool.
  - Several other undocumented positions discovered via experimentation.
  - May not work on all models.
* Update & add unit tests accordingly.

Fixes #1590
2021-09-06 14:28:59 +10:00
David Conran
999dde2d71 GREE: Update supported models (#1588)
Ref: #1587
2021-09-01 13:51:50 +10:00
David Conran
0d91c4c2f5 SharpAc: Update supported models (#1591)
Ref #1590
2021-08-30 20:37:21 +10:00
David Conran
21e7dd4a5e v2.7.20 release (#1582)
## _v2.7.20 (20210828)_

**[Bug Fixes]**
- Make `strToSwingH()` match "Right Max" (#1550 #1551)

**[Features]**
- Experimental Bose remote support (#1579)
- Added MitsubishiAC VaneLeft (#1572 #1576)
- HAIER_AC176: Add experimental detailed support (#1480 #1571)
- Detailed support for Tornado/Sanyo 88-bit A/C protocol (#1503 #1568)
- Add support for new `TROTEC_3550` A/C protocol (#1563 #1566 #1507)
- SamsungAc: Use `sendExtended()` going forward. (#1484 #1562)
- SamsungAc: Redo/fix checksum calculations. (#1538 #1554)
- LG: Add support for `AKB73757604` model (#1531 #1545)
- Daikin176: Add support for Unit Id. (#1543 #1544)
- Daikin2: Add support for Humidity setting/operation. (#1535 #1540)
- TCL112AC: Add support for quiet/mute setting. (#1528 #1529)
- LG2: Add Fan speed, Swing, & Light support for new `AKB74955603` model (#1513 #1530)
- Add Mitsubishi AC "fan only" mode (#1527)

**[Misc]**
- Change when some github workflows run (#1583)
- Add/update supported device info (#1580 #1581 #1585)
- Fix pylint issues due to pylint update. (#1569 #1570)
- DAIKIN216: Update supported models. (#1552 #1567)
- IRMQTTServer: Build a minimal OTA image via PlatformIO. (#1513 #1541)
- Reduce memory fragmentation cause by String usage. (#1493 #1536)
- Refactor `decodeMitsubishiAC()` (#1523 #1532)
- Fix incorrect comment.
- Migrate from Travis to GitHub Actions (#1522 #1526)
- Documentation update with additional supported Panasonic AC models (#1525)
v2.7.20
2021-08-28 18:44:49 +10:00
David Conran
acdf018582 Change when some github workflows run (#1583)
Try to run these more frequently/often.
2021-08-28 17:50:32 +10:00
David Conran
cebb7b66f5 Fix doxygen error (#1585) 2021-08-28 17:48:56 +10:00
add30417
8e0902b718 Add note about PROTECT PAC 3900X (#1580)
Adding additional information about support devices (TROTEC PAC 3900 X added.)

Co-authored-by: David Conran <crankyoldgit@users.noreply.github.com>
2021-08-28 17:41:36 +10:00
add30417
6c85e13d97 Updating Support information (#1581)
Adding information about supported TROTEC devices

Co-authored-by: David Conran <crankyoldgit@users.noreply.github.com>
2021-08-28 17:40:22 +10:00
parsnip42
b1b9277f5f Experimental Bose remote support (#1579)
* Experimental Bose remote support
* Unit tests.

Co-authored-by: crankyoldgit <david@xyzzy.com.au>
2021-08-28 15:55:05 +10:00
David Conran
f026c5c290 Fix broken doxygen action. (#1577)
* Fix doxygen action.
* Make the action run on every push.
* Tested that it detects a doxygen warning/error correctly.
2021-08-27 21:19:21 +10:00
David Conran
bdff66753f MitsubishiAC: Fix code lint issue. (#1576)
* Fix a code linter warning.
* Improve documentation.
* Improve a unit test.

Ref #1572
2021-08-27 17:16:38 +10:00
SASAKI Hideo
e507b60832 Added MitsubishiAC VaneLeft (#1572)
* Added MitsubishiAC VaneLeft
2021-08-27 15:38:36 +10:00
David Conran
23b6644503 HAIER_AC176: Add experimental detailed support (#1571)
* `IRHaierACYRW02` inherits from the new `IRHaierAC176`.
  - Except for a few functions that need to be special.
* Add `[sg]et(On|Off)Timer()` & `[sg]etTimerMode()` class methods.
* Update `toString()`.
* Add timer specific unit tests.
* Update existing Unit Tests.
* Add it to the Common A/C API (`IRac`)
* Expand & update the unit tests.

Fixes #1480
2021-08-26 22:47:58 +10:00
David Conran
7e2df070e9 Fix pylint issues due to pylint update. (#1570)
Fixes #1569
2021-08-21 23:31:31 +10:00
David Conran
89d039afa2 Detailed support for Tornado/Sanyo 88-bit A/C protocol (#1568)
* Settings supported:
  - Power
  - Mode
  - Temp
  - Fan Speed
  - Sleep
  - Turbo
  - Filter
  - Clock
* Add support in `IRac` class.
* Unit tests added & updated.
* Other minor code cleanups.

Fixes #1503
2021-08-17 00:17:32 +10:00
David Conran
8eb5636fd9 Add support for new TROTEC_3550 A/C protocol (#1566)
* Add `sendTrotec3550()` and `decodeTrotec3550()` routines.
* Add detailed & Common A/C API support for:
  - Power
  - Temp (Celsius & Fahrenheit)
  - SwingV
  - Mode
  - Fan Speed
  - Timer
  - Checksums
* Add and update Unit tests.

Ref #1507
Fixes #1563
2021-08-16 21:03:08 +10:00
David Conran
963a806732 DAIKIN216: Update supported models. (#1567)
Ref: https://github.com/crankyoldgit/IRremoteESP8266/issues/1552#issuecomment-898348494

Fixes #1552
2021-08-15 15:43:47 +10:00
David Conran
ee7cd5c900 SamsungAc: Use sendExtended() going forward. (#1562)
* As the `checksum()` calculation for extended states has been fixed in #1554, use `sendExtended()` to calculate & send the extended state instead of the `sendOn()` & `sendOff()`.
  - This should allow for custom off messages. e.g. clean.
  - It should also reduce the number of messages sent, and the beeps generated by the A/C on receiving the message.
  - And make the intended transaction quicker.
* Update/adjust unit tests accordingly.
* Refactored `sendExtended()`
  - Use `memcpy()`.
  - Use less stack space / memory.

For #1484
2021-08-14 23:19:30 +10:00
David Conran
0ec49ff404 SamsungAc: Redo/fix checksum calculations. (#1554)
* Refactor & Fix checksum calcs so it works per section & thus with extended states.
* Add additional unit tests checking the section calcs.
* Uncomment the failing unit test as it now works and is explained.
  - Mark TODO as done.
* Cleanup code style & elements in `ir_Samsung_test.cpp`.

Huge kudos to @thermseekr for explaining the algorithm.

Fixes #1538
2021-08-10 15:31:35 +10:00
David Conran
c04c705afd [Bug] Make strToSwingH() match "Right Max" (#1551)
* Fix an old failed cut & paste.
* Add comments to make it clear what was supposed to happen.

Kudos to @Duckle29 for finding it.

Fixes #1550
2021-08-06 22:34:40 +10:00
David Conran
1c9a75b84a [LG] Add support for AKB73757604 model (#1545)
* Support for Vertical Swing on multiple vanes.
* Support for Horizontal Swing.
* Model detection.
* Unit tests added & updated.

Fixes #1531
2021-08-05 00:18:28 +10:00
David Conran
89ead22db1 Daikin176: Add support for Unit Id. (#1544)
* Add `IRDaikin176:setId()` & `IRDaikin176:getId()` for dealing with Unit Identifiers.
* Add "Id:" to `.toString()` output.
* Add unit test coverage for that, and update existing tests.
* Misc code style cleanups.

Fixes #1543
2021-08-01 23:28:11 +10:00
David Conran
b6368bd692 IRMQTTServer: Build a minimal OTA image via PlatformIO. (#1541)
* Allow some flags to be set by compiler flags.
* Fix an issue when all protocols are disabled.
* Upgrade from deprecated build flag `-Wl,-Teagle.flash.1m64.ld` to `board_build.ldscript`

For #1513
2021-07-30 04:28:36 +10:00
David Conran
9a473c94cb Daikin2: Add support for Humidity setting/operation. (#1540)
* Allow setting known humidity percentages via `setHumidity()` & `getHumidity()`
* Report the setting correctly in `toString().
* Enforce it being available only in Heat & Dry Modes.
* Change temp to Max when it's in operation.
* Misc code style cleanups.
* Update unit tests, and add coverage for new features.
* Update supported models.

Fixes #1535
2021-07-23 06:12:09 +10:00
David Conran
4a9a36d484 Reduce memory fragmentation cause by String usage. (#1536)
* Use more `.reserve()` to reduce fragmentation.
* Calculate some reservation values more accurately rather than flat guesses.

For #1493
2021-07-21 23:29:12 +10:00
David Conran
dbc8e86c0c TCL112AC: Add support for quiet/mute setting. (#1529)
* Changes required to handle quiet setting, which is sent in a separate special message.
* Modify checksum alg. for these special messages.
* Add `IRac` support for quiet for TCL112
* Add & update unit tests.
* Update supported models
* General code style cleanups.

Fixes #1528
2021-07-16 07:51:34 +10:00
David Conran
2d4659cd17 Refactor decodeMitsubishiAC() (#1532)
* Use standard code methods to decode it rather than spaghetti.
* Remove Unit Test cases that tried to match bad data. We are just going to ignore bad signals from now on.
* Ensure repeated messages are identical.
* Do the message compliance tests earlier so if it isn't a valid message we can quit earlier.

Fixes #1523
2021-07-14 23:01:24 +10:00
David Conran
178940c404 [LG2] Add Fan speed, Swing, & Light support for new AKB74955603 model (#1530)
* Create new `AKB74955603` LG/LG2 model.
* Add support for different fan speed values for the `AKB74955603` model.
* Tweak `IRLgAc::setRaw()` to accept an optional protocol parameter.
* Improve model detection code & unit tests.
* Improve fan speed text output handling.
* Add support for SwingV & Light settings.
  - Because a normal message turns the light on, we can treat it not as a toggle in most cases.
* Misc cleanup and code improvements.
* Unit tests coverage and improvement.
* Update supported devices info.

Fixes #1513
2021-07-13 18:05:56 +10:00
David Conran
dd301061d6 [Doc] Fix incorrect comment.
Fix a bad cut & paste from the past, with the correct info for this function.
2021-07-11 18:59:30 +10:00
David Conran
c71a150143 Migrate from Travis to GitHub Actions (#1526)
* Move any remaining Travis processes to GitHub Actions
* Remove Travis files and references. (Excluding `ReleaseNotes.md`)
* Change badges as well.
  - Remove two defunct badges.
  - Add a badge per GitHub Actions workflow.

Fixes #1522
2021-07-10 11:49:43 +10:00
Steffen Hein
2f0583ee3b Add Mitsubishi AC "fan only" mode (#1527)
This PR adds "fan only" mode for Mitsubishi AC units. I noticed that it was missing previously and always defaulted to "Auto" instead.

The IR code for this was captured from the remote that came with my indoor unit (Mitsubishi MSZ-SF25VE) and the resulting change to the library has been real-world tested with that device as well. I can't say if it will apply to all Mitsubishi AC units, as I only have this type available for testing.

The commits mostly just add the kMitsubishiAcFan constant and raw bitfield data.
Adds functionality to set the mode of Mitsubishi air conditioners to "fan only". Tested with MSZ-SF25VE indoor units.
2021-07-09 00:38:47 +10:00
ajaypala
88eefdfacd Documentation update with additional supported Panasonic AC models (#1525) 2021-07-07 09:51:27 +10:00
David Conran
985419aebb v2.7.19 release (#1521)
* Regenerate Doxygen documentation

* v2.7.19 release
_v2.7.19 (20210706)_

**[Bug Fixes]**
- Illegal Heap write in rawbuf when the capture has overflowed. (#1516 #1517)
- PANASONIC_AC: Fix Low and High fan speeds (#1515)
- Fix MDNS in IRServer and IRMQTTServer example code (#1498 #1499)
- IRac: Fix off-by-one error in Coolix's sleep setting. (#1500)
- Fix undefined constant (#1490)

**[Features]**
- Add detailed support for Kelon ACs (#1494)
- Experimental basic support for Teknopoint A/C protocol (#1486 #1504)
- Daikin64: Add support for Heat mode (#1492)
- Basic support for `HAIER_AC176` 176 bit protocol. (#1480 #1481)

**[Misc]**
- GREE: Update inter-message gap timing (#1508 #1509)
- IRac: Change Coolix to send special messages after a normal message. (#1501 #1502)
- Fix compiler warnings causing Travis failures. (#1491)
- Update supported model info (#1477 #1485 #1488 #1489)
- Add HTML viewport meta tag to IRServer and IRMQTTServer examples (#1467 #1469)
v2.7.19
2021-07-06 17:26:48 +10:00
David Conran
0b19d9437d [BUG] Illegal Heap write in rawbuf when the capture has overflowed. (#1517)
* Fix an issue where we write past the end of the capture buffer when it is full. Two options to fix this:
  1. Extend all capture buffers by 1 entry. i.e. upto 4 bytes of extra unused heap and some FLASH/PROGMEM bytes. _or_
  2. Skip the memory write when we have overflowed. i.e. Possibly slightly more than 4 bytes of FLASH/PROGMEM used.
  - CPU overhead should be about the same.
  - Given heap & memory is a more critical resource than Flash/PROGMEM, opting for Option 2.
* Add a helper method `IRrecv::_getParamsPtr` to access `params` in Unit tests.
* Unit tests so we can be sure it is fixed, and it doesn't happen again.

Kudos to @davepl for reporting the issue and diagnosing the offending line of code.

Fixes #1516
2021-07-06 13:47:10 +10:00
ajaypala
3c1862f1ad Panasonic AC - Fix Low and High fan speeds (#1515)
* Add Fan low and high speeds to setFan
* Adjust unit tests accordingly.
* Fixes a regression introduced in #934 

Co-authored-by: David Conran <crankyoldgit@users.noreply.github.com>
2021-07-04 19:45:08 +10:00
Davide Depau
7102d8fe83 Add detailed support for Kelon ACs (#1494)
* Detailed support for new Kelon A/C protocol.
* CommonAC api updated.
* Unit tests coverage added.
* Extensive user testing with actual device. Confirmed working.
* Add support for printing `int64_t`s.
* Allow converting signed ints to string.
* Add @Depau to Contributors,
2021-07-03 11:26:27 +10:00