Skip to content
Permalink
Browse files

Update IRRemoteESP8266 version to 2.5.5

factorize IR send signal function between the 2 types of receiving
Add new IRRemoteESP8266 protocols
replace pins on mega according schema
remove unecessaries spaces
  • Loading branch information...
1technophile committed Feb 7, 2019
1 parent 0180a0d commit f0305236dbc431123332afcb5ef5a198ba5c93f8
Showing with 20,980 additions and 7,873 deletions.
  1. +416 −437 ZgatewayIR.ino
  2. +30 −3 config_IR.h
  3. +2 −0 lib/IRremoteESP8266/.github/Contributors.md
  4. +4 −0 lib/IRremoteESP8266/.gitignore
  5. +1 −0 lib/IRremoteESP8266/.gitmodules
  6. +6 −5 lib/IRremoteESP8266/.travis.yml
  7. +19 −3 lib/IRremoteESP8266/README.md
  8. +120 −0 lib/IRremoteESP8266/ReleaseNotes.md
  9. +99 −0 lib/IRremoteESP8266/examples/ControlSamsungAC/ControlSamsungAC.ino
  10. +17 −0 lib/IRremoteESP8266/examples/ControlSamsungAC/platformio.ini
  11. +11 −10 lib/IRremoteESP8266/examples/IRGCSendDemo/IRGCSendDemo.ino
  12. +4 −4 lib/IRremoteESP8266/examples/IRGCTCPServer/IRGCTCPServer.ino
  13. +575 −186 lib/IRremoteESP8266/examples/IRMQTTServer/IRMQTTServer.ino
  14. +1 −1 lib/IRremoteESP8266/examples/IRMQTTServer/platformio.ini
  15. +7 −7 lib/IRremoteESP8266/examples/IRServer/IRServer.ino
  16. +4 −4 lib/IRremoteESP8266/examples/IRrecvDemo/IRrecvDemo.ino
  17. +2 −2 lib/IRremoteESP8266/examples/IRrecvDump/IRrecvDump.ino
  18. +114 −40 lib/IRremoteESP8266/examples/IRrecvDumpV2/IRrecvDumpV2.ino
  19. +13 −12 lib/IRremoteESP8266/examples/IRsendDemo/IRsendDemo.ino
  20. +3 −3 lib/IRremoteESP8266/examples/IRsendProntoDemo/IRsendProntoDemo.ino
  21. +9 −13 lib/IRremoteESP8266/examples/JVCPanasonicSendDemo/JVCPanasonicSendDemo.ino
  22. +5 −5 lib/IRremoteESP8266/examples/LGACSend/LGACSend.ino
  23. +17 −0 lib/IRremoteESP8266/examples/LGACSend/platformio.ini
  24. +10 −10 lib/IRremoteESP8266/examples/TurnOnArgoAC/TurnOnArgoAC.ino
  25. +15 −15 lib/IRremoteESP8266/examples/TurnOnDaikinAC/TurnOnDaikinAC.ino
  26. +17 −15 lib/IRremoteESP8266/examples/TurnOnFujitsuAC/TurnOnFujitsuAC.ino
  27. +18 −25 lib/IRremoteESP8266/examples/TurnOnKelvinatorAC/TurnOnKelvinatorAC.ino
  28. +14 −17 lib/IRremoteESP8266/examples/TurnOnMitsubishiAC/TurnOnMitsubishiAC.ino
  29. +13 −15 lib/IRremoteESP8266/examples/TurnOnToshibaAC/TurnOnToshibaAC.ino
  30. +9 −9 lib/IRremoteESP8266/examples/TurnOnTrotecAC/TurnOnTrotecAC.ino
  31. +1,196 −477 lib/IRremoteESP8266/keywords.txt
  32. +1 −1 lib/IRremoteESP8266/library.json
  33. +1 −1 lib/IRremoteESP8266/library.properties
  34. +159 −144 lib/IRremoteESP8266/src/IRrecv.cpp
  35. +146 −96 lib/IRremoteESP8266/src/IRrecv.h
  36. +304 −169 lib/IRremoteESP8266/src/IRremoteESP8266.h
  37. +108 −55 lib/IRremoteESP8266/src/IRsend.cpp
  38. +140 −91 lib/IRremoteESP8266/src/IRsend.h
  39. +3 −7 lib/IRremoteESP8266/src/IRtimer.cpp
  40. +273 −86 lib/IRremoteESP8266/src/IRutils.cpp
  41. +7 −0 lib/IRremoteESP8266/src/IRutils.h
  42. +17 −20 lib/IRremoteESP8266/src/ir_Aiwa.cpp
  43. +32 −58 lib/IRremoteESP8266/src/ir_Argo.cpp
  44. +46 −28 lib/IRremoteESP8266/src/ir_Argo.h
  45. +24 −29 lib/IRremoteESP8266/src/ir_Carrier.cpp
  46. +307 −44 lib/IRremoteESP8266/src/ir_Coolix.cpp
  47. +140 −0 lib/IRremoteESP8266/src/ir_Coolix.h
  48. +825 −205 lib/IRremoteESP8266/src/ir_Daikin.cpp
  49. +230 −100 lib/IRremoteESP8266/src/ir_Daikin.h
  50. +36 −40 lib/IRremoteESP8266/src/ir_Denon.cpp
  51. +32 −35 lib/IRremoteESP8266/src/ir_Dish.cpp
  52. +112 −0 lib/IRremoteESP8266/src/ir_Electra.cpp
  53. +135 −163 lib/IRremoteESP8266/src/ir_Fujitsu.cpp
  54. +53 −32 lib/IRremoteESP8266/src/ir_Fujitsu.h
  55. +34 −37 lib/IRremoteESP8266/src/ir_GICable.cpp
  56. +15 −16 lib/IRremoteESP8266/src/ir_GlobalCache.cpp
  57. +121 −141 lib/IRremoteESP8266/src/ir_Gree.cpp
  58. +56 −32 lib/IRremoteESP8266/src/ir_Gree.h
  59. +522 −154 lib/IRremoteESP8266/src/ir_Haier.cpp
  60. +211 −40 lib/IRremoteESP8266/src/ir_Haier.h
  61. +266 −57 lib/IRremoteESP8266/src/ir_Hitachi.cpp
  62. +76 −0 lib/IRremoteESP8266/src/ir_Hitachi.h
  63. +44 −48 lib/IRremoteESP8266/src/ir_JVC.cpp
  64. +163 −175 lib/IRremoteESP8266/src/ir_Kelvinator.cpp
  65. +30 −18 lib/IRremoteESP8266/src/ir_Kelvinator.h
  66. +145 −73 lib/IRremoteESP8266/src/ir_LG.cpp
  67. +29 −31 lib/IRremoteESP8266/src/ir_Lasertag.cpp
  68. +156 −0 lib/IRremoteESP8266/src/ir_Lutron.cpp
  69. +202 −0 lib/IRremoteESP8266/src/ir_MWM.cpp
  70. +36 −30 lib/IRremoteESP8266/src/ir_Magiquest.cpp
  71. +14 −16 lib/IRremoteESP8266/src/ir_Magiquest.h
  72. +94 −117 lib/IRremoteESP8266/src/ir_Midea.cpp
  73. +38 −22 lib/IRremoteESP8266/src/ir_Midea.h
  74. +392 −132 lib/IRremoteESP8266/src/ir_Mitsubishi.cpp
  75. +60 −16 lib/IRremoteESP8266/src/ir_Mitsubishi.h
  76. +36 −67 lib/IRremoteESP8266/src/ir_NEC.cpp
  77. +46 −0 lib/IRremoteESP8266/src/ir_NEC.h
  78. +31 −37 lib/IRremoteESP8266/src/ir_Nikai.cpp
  79. +737 −57 lib/IRremoteESP8266/src/ir_Panasonic.cpp
  80. +145 −0 lib/IRremoteESP8266/src/ir_Panasonic.h
  81. +143 −0 lib/IRremoteESP8266/src/ir_Pioneer.cpp
  82. +15 −15 lib/IRremoteESP8266/src/ir_Pronto.cpp
  83. +104 −107 lib/IRremoteESP8266/src/ir_RC5_RC6.cpp
  84. +61 −55 lib/IRremoteESP8266/src/ir_RCMM.cpp
  85. +491 −52 lib/IRremoteESP8266/src/ir_Samsung.cpp
  86. +109 −0 lib/IRremoteESP8266/src/ir_Samsung.h
  87. +51 −48 lib/IRremoteESP8266/src/ir_Sanyo.cpp
  88. +51 −59 lib/IRremoteESP8266/src/ir_Sharp.cpp
  89. +4 −5 lib/IRremoteESP8266/src/ir_Sherwood.cpp
  90. +36 −39 lib/IRremoteESP8266/src/ir_Sony.cpp
  91. +66 −75 lib/IRremoteESP8266/src/ir_Toshiba.cpp
  92. +25 −14 lib/IRremoteESP8266/src/ir_Toshiba.h
  93. +43 −62 lib/IRremoteESP8266/src/ir_Trotec.cpp
  94. +33 −21 lib/IRremoteESP8266/src/ir_Trotec.h
  95. +481 −0 lib/IRremoteESP8266/src/ir_Vestel.cpp
  96. +160 −0 lib/IRremoteESP8266/src/ir_Vestel.h
  97. +634 −0 lib/IRremoteESP8266/src/ir_Whirlpool.cpp
  98. +161 −0 lib/IRremoteESP8266/src/ir_Whirlpool.h
  99. +45 −50 lib/IRremoteESP8266/src/ir_Whynter.cpp
  100. +55 −68 lib/IRremoteESP8266/test/IRrecv_test.cpp
  101. +6 −3 lib/IRremoteESP8266/test/IRrecv_test.h
  102. +33 −29 lib/IRremoteESP8266/test/IRsend_test.cpp
  103. +24 −41 lib/IRremoteESP8266/test/IRsend_test.h
  104. +89 −37 lib/IRremoteESP8266/test/IRutils_test.cpp
  105. +91 −13 lib/IRremoteESP8266/test/Makefile
  106. +55 −59 lib/IRremoteESP8266/test/ir_Aiwa_test.cpp
  107. +85 −79 lib/IRremoteESP8266/test/ir_Carrier_test.cpp
  108. +236 −33 lib/IRremoteESP8266/test/ir_Coolix_test.cpp
  109. +789 −168 lib/IRremoteESP8266/test/ir_Daikin_test.cpp
  110. +37 −31 lib/IRremoteESP8266/test/ir_Denon_test.cpp
  111. +70 −63 lib/IRremoteESP8266/test/ir_Dish_test.cpp
  112. +98 −0 lib/IRremoteESP8266/test/ir_Electra_test.cpp
  113. +83 −80 lib/IRremoteESP8266/test/ir_Fujitsu_test.cpp
  114. +34 −25 lib/IRremoteESP8266/test/ir_GICable_test.cpp
  115. +32 −29 lib/IRremoteESP8266/test/ir_GlobalCache_test.cpp
  116. +184 −173 lib/IRremoteESP8266/test/ir_Gree_test.cpp
  117. +655 −226 lib/IRremoteESP8266/test/ir_Haier_test.cpp
  118. +502 −314 lib/IRremoteESP8266/test/ir_Hitachi_test.cpp
  119. +45 −38 lib/IRremoteESP8266/test/ir_JVC_test.cpp
  120. +71 −66 lib/IRremoteESP8266/test/ir_Kelvinator_test.cpp
  121. +128 −64 lib/IRremoteESP8266/test/ir_LG_test.cpp
  122. +71 −70 lib/IRremoteESP8266/test/ir_Lasertag_test.cpp
  123. +143 −0 lib/IRremoteESP8266/test/ir_Lutron_test.cpp
  124. +124 −0 lib/IRremoteESP8266/test/ir_MWM_test.cpp
  125. +23 −22 lib/IRremoteESP8266/test/ir_Magiquest_test.cpp
  126. +175 −164 lib/IRremoteESP8266/test/ir_Midea_test.cpp
  127. +415 −131 lib/IRremoteESP8266/test/ir_Mitsubishi_test.cpp
  128. +79 −68 lib/IRremoteESP8266/test/ir_NEC_test.cpp
  129. +73 −71 lib/IRremoteESP8266/test/ir_Nikai_test.cpp
  130. +744 −66 lib/IRremoteESP8266/test/ir_Panasonic_test.cpp
  131. +152 −0 lib/IRremoteESP8266/test/ir_Pioneer_test.cpp
  132. +64 −64 lib/IRremoteESP8266/test/ir_Pronto_test.cpp
  133. +172 −149 lib/IRremoteESP8266/test/ir_RC5_RC6_test.cpp
  134. +50 −38 lib/IRremoteESP8266/test/ir_RCMM_test.cpp
  135. +777 −75 lib/IRremoteESP8266/test/ir_Samsung_test.cpp
  136. +65 −65 lib/IRremoteESP8266/test/ir_Sanyo_test.cpp
  137. +48 −51 lib/IRremoteESP8266/test/ir_Sharp_test.cpp
  138. +26 −20 lib/IRremoteESP8266/test/ir_Sherwood_test.cpp
  139. +155 −121 lib/IRremoteESP8266/test/ir_Sony_test.cpp
  140. +262 −256 lib/IRremoteESP8266/test/ir_Toshiba_test.cpp
  141. +511 −0 lib/IRremoteESP8266/test/ir_Vestel_test.cpp
  142. +584 −0 lib/IRremoteESP8266/test/ir_Whirlpool_test.cpp
  143. +37 −28 lib/IRremoteESP8266/test/ir_Whynter_test.cpp
  144. +28 −4 lib/IRremoteESP8266/tools/Makefile
  145. +86 −60 lib/IRremoteESP8266/tools/auto_analyse_raw_data.py
  146. +251 −47 lib/IRremoteESP8266/tools/auto_analyse_raw_data_test.py
  147. +24 −23 lib/IRremoteESP8266/tools/gc_decode.cpp
  148. +3 −1 lib/IRremoteESP8266/tools/mkkeywords
  149. +122 −0 lib/IRremoteESP8266/tools/mode2_decode.cpp

Large diffs are not rendered by default.

@@ -68,6 +68,33 @@
#define IR_DENON
#define IR_AIWA_RC_T501
#define IR_JVC
#define IR_SANYO
#define IR_DAIKIN
#define IR_KELVINATOR
#define IR_MITSUBISHI_AC
#define IR_SANYO_LC7461
#define IR_GREE
#define IR_ARGO
#define IR_TROTEC
#define IR_TOSHIBA_AC
#define IR_FUJITSU_AC
#define IR_MAGIQUEST
#define IR_HAIER_AC
#define IR_HITACHI_AC
#define IR_HITACHI_AC1
#define IR_HITACHI_AC2
#define IR_GICABLE
#define IR_HAIER_AC_YRW02
#define IR_WHIRLPOOL_AC
#define IR_SAMSUNG_AC
#define IR_LUTRON
#define IR_ELECTRA_AC
#define IR_PANASONIC_AC
#define IR_PIONEER
#define IR_LG2
#define IR_MWM
#define IR_DAIKIN2
#define IR_VESTEL_AC
#elif ESP32
#define IR_Raw
#define IR_COOLIX
@@ -105,14 +132,14 @@

/*-------------------PIN DEFINITIONS----------------------*/
#ifdef ESP8266
#define IR_RECEIVER_PIN 2
#define IR_EMITTER_PIN 16 // replace by 0 (D3) if you use IR LOLIN controller shield
#define IR_RECEIVER_PIN 2 //D4
#define IR_EMITTER_PIN 16 //D0/ replace by 0 (D3) if you use IR LOLIN controller shield
#elif ESP32
#define IR_RECEIVER_PIN 27
#define IR_EMITTER_PIN 14
#elif __AVR_ATmega2560__
#define IR_RECEIVER_PIN 2 // 2 = D2 on mega
#define IR_EMITTER_PIN 7
#define IR_EMITTER_PIN 9
#else
#define IR_RECEIVER_PIN 0 // 0 = D2 on arduino
#define IR_EMITTER_PIN 9
@@ -10,6 +10,8 @@
- [Jonny Graham](https://github.com/jonnygraham/)
- [Stu Fisher](https://github.com/stufisher/)
- [Jorge Cisneros](https://github.com/jorgecis/)
- [Denes Varga](https://github.com/denxhun/)
- [Brett T. Warden](https://github.com/bwarden/)

All contributors can be found on the [contributors site](https://github.com/markszabo/IRremoteESP8266/graphs/contributors).

@@ -35,8 +35,12 @@ test/*_test
tools/*.o
tools/*.a
tools/gc_decode
tools/mode2_decode

.pioenvs
.piolibdeps
.clang_complete
.gcc-flags.json

#Cygwin builds
*.exe
@@ -1,3 +1,4 @@
[submodule "lib/googletest"]
path = lib/googletest
url = https://github.com/google/googletest.git
branch = v1.8.x
@@ -1,14 +1,14 @@
language: c
env:
- BD=esp8266:esp8266:nodemcuv2:CpuFrequency=80,FlashSize=4M3M
- BD=esp8266:esp8266:d1_mini:CpuFrequency=80,FlashSize=4M3M
- BD=esp8266:esp8266:nodemcuv2:xtal=80,eesz=4M3M,ip=lm2f,exception=disabled
- BD=esp8266:esp8266:d1_mini:xtal=80,eesz=4M3M,ip=lm2f,exception=disabled
before_install:
- "/sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_1.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :1 -ac -screen 0 1280x1024x16"
- sleep 3
- export DISPLAY=:1.0
- wget http://downloads.arduino.cc/arduino-1.8.2-linux64.tar.xz
- tar xf arduino-1.8.2-linux64.tar.xz
- sudo mv arduino-1.8.2 /usr/local/share/arduino
- wget http://downloads.arduino.cc/arduino-1.8.8-linux64.tar.xz
- tar xf arduino-1.8.8-linux64.tar.xz
- sudo mv arduino-1.8.8 /usr/local/share/arduino
- sudo ln -s /usr/local/share/arduino/arduino /usr/local/bin/arduino
- wget https://raw.githubusercontent.com/google/styleguide/gh-pages/cpplint/cpplint.py
install:
@@ -40,6 +40,7 @@ script:
- arduino --verify --board $BD $PWD/examples/TurnOnArgoAC/TurnOnArgoAC.ino
- arduino --verify --board $BD $PWD/examples/IRMQTTServer/IRMQTTServer.ino
- arduino --verify --board $BD $PWD/examples/TurnOnToshibaAC/TurnOnToshibaAC.ino
- arduino --verify --board $BD $PWD/examples/ControlSamsungAC/ControlSamsungAC.ino
# Also check the tools programs compile.
- (cd tools; make all)
# Check for lint issues.
@@ -1,17 +1,33 @@
# IRremote ESP8266 Library

[![Build Status](https://travis-ci.org/markszabo/IRremoteESP8266.svg?branch=master)](https://travis-ci.org/markszabo/IRremoteESP8266)
[![arduino-library-badge](https://www.ardu-badge.com/badge/IRremoteESP8266.svg?)](https://www.ardu-badge.com/IRremoteESP8266)
[![Average time to resolve an issue](http://isitmaintained.com/badge/resolution/markszabo/IRremoteESP8266.svg)](http://isitmaintained.com/project/markszabo/IRremoteESP8266 "Average time to resolve an issue")
[![Percentage of issues still open](http://isitmaintained.com/badge/open/markszabo/IRremoteESP8266.svg)](http://isitmaintained.com/project/markszabo/IRremoteESP8266 "Percentage of issues still open")
[![GitLicense](https://gitlicense.com/badge/markszabo/IRremoteESP8266)](https://gitlicense.com/license/markszabo/IRremoteESP8266)

This library enables you to **send _and_ receive** infra-red signals on an [ESP8266 using the Arduino framework](https://github.com/esp8266/Arduino) using common 940nm IR LEDs and common IR receiver modules. e.g. TSOP{17,22,24,36,38,44,48}* etc.

## v2.4.2 Now Available
Version 2.4.2 of the library is now [available](https://github.com/markszabo/IRremoteESP8266/releases/latest). You can view the [Release Notes](ReleaseNotes.md) for all the significant changes.
## v2.5.5 Now Available
Version 2.5.5 of the library is now [available](https://github.com/markszabo/IRremoteESP8266/releases/latest). You can view the [Release Notes](ReleaseNotes.md) for all the significant changes.

#### Upgrading from pre-v2.0
Usage of the library slight changed at v2.0. You will need to change your usage to work with v2.0 and beyond. You can read more about the changes required on our [Upgrade to v2.0](https://github.com/markszabo/IRremoteESP8266/wiki/Upgrading-to-v2.0) page.
Usage of the library has been slightly changed in v2.0. You will need to change your usage to work with v2.0 and beyond. You can read more about the changes required on our [Upgrade to v2.0](https://github.com/markszabo/IRremoteESP8266/wiki/Upgrading-to-v2.0) page.

#### Upgrading from pre-v2.5
The library has changed from using constants declared as `#define` to
[const](https://google.github.io/styleguide/cppguide.html#Constant_Names) with
the appropriate naming per the
[C++ style guide](https://google.github.io/styleguide/cppguide.html).
This may potentially cause old programs to not compile.
The most likely externally used `#define`s have been _aliased_ for limited
backward compatibility for projects using the old style. Going forward, only the
new `kConstantName` style will be supported for new protocol additions.

In the unlikely case it does break your code, then you may have been referencing
something you likely should not have. You should be able to quickly determine
the new name from the old. e.g. `CONSTANT_NAME` to `kConstantName`.
Use common sense or examining the library's code if this does affect code.

## Troubleshooting
Before reporting an issue or asking for help, please try to follow our [Troubleshooting Guide](https://github.com/markszabo/IRremoteESP8266/wiki/Troubleshooting-Guide) first.
@@ -1,5 +1,125 @@
# Release Notes

## _v2.5.5 (20190207)_

**[Bug Fixes]**
- Fix decoding of Samsung A/C Extended messages. (#610)
- Fix IRMQTTServer example to work with GPIO0 as IR_RX (#608)
- Fix incorrect #define usage. (#597, #596)

**[Features]**
- Add deep decoding/construction of Daikin2 messages (#600)
- Added Old Vestel A/C support (56 Bits) with full functions. (#607)

**[Misc]**
- Add ControlSamsungAC example code. (#599)
- Add how to send a state/air-con to IRsendDemo.ino (#594)


## _v2.5.4 (20190102)_

**[Features]**
- Experimental basic support for 39 Byte Daikin A/C (#583)
- Handle send() repeats in A/C classes. Improve Coolix support. (#580)
- Add optional RX pin pullup and dump raw messages in IRMQTTServer.ino (#589)

**[Misc]**
- Make auto_analyse_raw_data.py work with Python3 (#581)
- Update CI/travis config due to esp8266 core 2.5.0 changes (#591)


## _v2.5.3 (20181123)_

**[Features]**
- Add deep support for the Hitachi 28-Byte A/C Protocol (#563)
- Deep decoding for Whirlpool A/C (#572)
- Improve security options for IRMQTTServer example. (#575)
- Require a changed firmware password before upload. (#576)

**[Misc]**
- Add missing '}' in output of Auto analyse. (#562)
- Make A/C example code a bit more simple. (#571)


## _v2.5.2 (20181021)_

**[Bug Fixes]**
- Add missing send() method to IRPanasonicAC class. (#545)
- Add missing sendWhirlpoolAC() to IRMQTTServer.ino (#558)

**[Features]**
- Add IR receiving support to IRMQTTServer. (#543)
- Pioneer support (#547)
- Add support for a second LG protocol variant. (#552)
- Support for short Panasonic A/C messages. (#553)
- Add support for Panasonic CKP series A/Cs. (#554)
- Experimental timer/clock support for Panasonic A/Cs. (#546)
- Add Made With Magic (MWM) support (#557)

**[Misc]**
- Grammar and typo fixes (#541, #549)
- Increase Panasonic A/C message tolerances. (#542)
- Added command mode2_decode in tools/ (#557)
- General code style cleanup (#560)


## _v2.5.1 (20181002)_

**[Bug Fixes]**
- Correct the byte used for Samsung AC Swing. (#529)
- Fix not sending Samsung A/C messages in IRMQTTServer. (#529)

**[Features]**
- Experimental support for Electra A/C messages. (#528)
- Experimental support for Panasonic A/C messages. (#535)
- Samsung A/C fixes & improvements (#529)
- IRMQTTServer v0.6.0 (#530)

**[Misc]**
- Change required WifiManager lib version to v0.14
- Add alias for RAWTICK to kRawTick. (#535)
- Update sendLutron() status. (#515)
- Remove leftover debug message in IRrecvDumpV2 (#526)


## _v2.5.0 (20180919)_

**[Bug Fixes]**
- Fix HTML menu error for GICABLE in IRMQTTServer. (#516)
- Fix Mitsubishi A/C mode setting. (#514)
- Add missing ',' in auto analyse tool generated code. (#513)
- Fix Fujitsu checksum validation. (#501)
- Remove errant Repeat debug statement in IRMQTTServer. (#507)

**[Features]**
- Mitsubishi A/C decode improvements. (#514)
- Basic support for Whirlpool A/C messages. (#511)
- Basic support for Samsung A/C messages. (#512)
- Experimental support for detailed Samsung A/C messages. (#521)
- Experimental support for detailed Coolix A/C messages. (#518)
- Experimental support for Lutron protocol. (#516)
- Calculate and use average values for timings in analysing tool. (#513)

**[Misc]**
- Style change from using #define's for constants to `const kConstantName`.
- Improve the JVC example code.


## _v2.4.3 (20180727)_

**[Bug Fixes]**
- Handle Space Gaps better in auto analyse tool. (#482)
- Correct min repeat for GICABLE in IRMQTTServer. (#494)

**[Features]**
- Add static IP config option to IRMQTTServer (#480)
- Full decoding/encoding support for the Haier YRW02 A/C. (#485 #486 #487)

**[Misc]**
- Update LG (28-bit) HDR mark and space timings. (#492)
- Spelling and grammar fixes (#491)


## _v2.4.2 (20180601)_

**[Bug Fixes]**
@@ -0,0 +1,99 @@
/* Copyright 2019 David Conran
*
* An IR LED circuit *MUST* be connected to the ESP8266 on a pin
* as specified by kIrLed below.
*
* TL;DR: The IR LED needs to be driven by a transistor for a good result.
*
* Suggested circuit:
* https://github.com/markszabo/IRremoteESP8266/wiki#ir-sending
*
* Common mistakes & tips:
* * Don't just connect the IR LED directly to the pin, it won't
* have enough current to drive the IR LED effectively.
* * Make sure you have the IR LED polarity correct.
* See: https://learn.sparkfun.com/tutorials/polarity/diode-and-led-polarity
* * Typical digital camera/phones can be used to see if the IR LED is flashed.
* Replace the IR LED with a normal LED if you don't have a digital camera
* when debugging.
* * Avoid using the following pins unless you really know what you are doing:
* * Pin 0/D3: Can interfere with the boot/program mode & support circuits.
* * Pin 1/TX/TXD0: Any serial transmissions from the ESP8266 will interfere.
* * Pin 3/RX/RXD0: Any serial transmissions to the ESP8266 will interfere.
* * ESP-01 modules are tricky. We suggest you use a module with more GPIOs
* for your first time. e.g. ESP-12 etc.
*/
#ifndef UNIT_TEST
#include <Arduino.h>
#endif
#include <IRremoteESP8266.h>
#include <IRsend.h>
#include <ir_Samsung.h>

const uint16_t kIrLed = 4; // ESP8266 GPIO pin to use. Recommended: 4 (D2).
IRSamsungAc ac(kIrLed); // Set the GPIO used for sending messages.

void printState() {
// Display the settings.
Serial.println("Samsung A/C remote is in the following state:");
Serial.printf(" %s\n", ac.toString().c_str());
}

void setup() {
ac.begin();
Serial.begin(115200);
delay(200);

// Set up what we want to send. See ir_Samsung.cpp for all the options.
Serial.println("Default state of the remote.");
printState();
Serial.println("Setting initial state for A/C.");
ac.off();
ac.setFan(kSamsungAcFanLow);
ac.setMode(kSamsungAcCool);
ac.setTemp(25);
ac.setSwing(false);
printState();
}

void loop() {
// Turn the A/C unit on and set to cooling mode.
// Power changes require we send an extended message.
Serial.println("Sending an extended IR command to A/C ...");
ac.on();
ac.setMode(kSamsungAcCool);
ac.sendExtended();
printState();
delay(15000); // wait 15 seconds

// Increase the fan speed.
Serial.println("Sending a normal IR command to A/C ...");
ac.setFan(kSamsungAcFanHigh);
ac.send();
printState();
delay(15000);

// Change to swing the fan.
Serial.println("Sending a normal IR command to A/C ...");
ac.setSwing(true);
ac.send();
printState();
delay(15000);

// Change to Fan mode, lower the speed, and stop the swing.
Serial.println("Sending a normal IR command to A/C ...");
ac.setSwing(false);
ac.setMode(kSamsungAcFan);
ac.setFan(kSamsungAcFanLow);
ac.send();
printState();
delay(15000);

// Turn the A/C unit off.
// Power changes require we send an extended message.
Serial.println("Sending an extended IR command to A/C ...");
ac.off();
ac.sendExtended();
printState();
delay(15000); // wait 15 seconds
}
@@ -0,0 +1,17 @@
[platformio]
lib_extra_dirs = ../../
src_dir=.

[common]
build_flags =
lib_deps_builtin =
lib_deps_external =

[env:nodemcuv2]
platform = espressif8266
framework = arduino
board = nodemcuv2
build_flags = ${common.build_flags}
lib_deps =
${common.lib_deps_builtin}
${common.lib_deps_external}

0 comments on commit f030523

Please sign in to comment.
You can’t perform that action at this time.