From 1f79fee3b6c30e069dd616d03f5d1e6d6bd64a19 Mon Sep 17 00:00:00 2001 From: David Conran Date: Mon, 8 May 2023 23:45:19 +1000 Subject: [PATCH] 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) --- README.md | 4 +- README_de.md | 4 +- README_fr.md | 4 +- README_nl.md | 4 +- ReleaseNotes.md | 36 + SupportedProtocols.md | 16 +- docs/doxygen/html/IRac_8h_source.html | 1352 ++--- docs/doxygen/html/IRmacros_8h_source.html | 32 +- docs/doxygen/html/IRrecv_8h_source.html | 1472 ++--- docs/doxygen/html/IRremoteESP8266_8h.html | 271 +- .../html/IRremoteESP8266_8h_source.html | 1961 ++++--- docs/doxygen/html/IRsend_8h.html | 63 +- docs/doxygen/html/IRsend_8h_source.html | 2220 +++---- docs/doxygen/html/IRtext_8cpp.html | 857 ++- docs/doxygen/html/IRtext_8h.html | 710 ++- docs/doxygen/html/IRtext_8h_source.html | 418 +- docs/doxygen/html/IRutils_8cpp.html | 35 +- docs/doxygen/html/IRutils_8h.html | 35 +- docs/doxygen/html/IRutils_8h_source.html | 275 +- docs/doxygen/html/annotated.html | 261 +- docs/doxygen/html/classIRArgoAC-members.html | 102 +- docs/doxygen/html/classIRArgoAC.html | 1401 +---- .../html/classIRArgoACBase-members.html | 139 + docs/doxygen/html/classIRArgoACBase.html | 2251 +++++++ .../html/classIRArgoACBase__coll__graph.map | 4 + .../html/classIRArgoACBase__coll__graph.md5 | 1 + .../html/classIRArgoACBase__coll__graph.png | Bin 0 -> 5329 bytes .../html/classIRArgoAC__WREM3-members.html | 175 + docs/doxygen/html/classIRArgoAC__WREM3.html | 1350 +++++ .../classIRArgoAC__WREM3__coll__graph.map | 8 + .../classIRArgoAC__WREM3__coll__graph.md5 | 1 + .../classIRArgoAC__WREM3__coll__graph.png | Bin 0 -> 16843 bytes .../classIRArgoAC__WREM3__inherit__graph.map | 4 + .../classIRArgoAC__WREM3__inherit__graph.md5 | 1 + .../classIRArgoAC__WREM3__inherit__graph.png | Bin 0 -> 6214 bytes .../html/classIRArgoAC__coll__graph.map | 7 +- .../html/classIRArgoAC__coll__graph.md5 | 2 +- .../html/classIRArgoAC__coll__graph.png | Bin 5939 -> 9158 bytes .../html/classIRArgoAC__inherit__graph.map | 4 + .../html/classIRArgoAC__inherit__graph.md5 | 1 + .../html/classIRArgoAC__inherit__graph.png | Bin 0 -> 4592 bytes .../doxygen/html/classIRCoolixAC-members.html | 2 +- docs/doxygen/html/classIRCoolixAC.html | 14 +- docs/doxygen/html/classIRYorkAc-members.html | 107 + docs/doxygen/html/classIRYorkAc.html | 923 +++ .../html/classIRYorkAc__coll__graph.map | 5 + .../html/classIRYorkAc__coll__graph.md5 | 1 + .../html/classIRYorkAc__coll__graph.png | Bin 0 -> 5841 bytes docs/doxygen/html/classIRac-members.html | 128 +- docs/doxygen/html/classIRac.html | 558 +- docs/doxygen/html/classIRrecv-members.html | 217 +- docs/doxygen/html/classIRrecv.html | 326 +- docs/doxygen/html/classIRsend-members.html | 199 +- docs/doxygen/html/classIRsend.html | 273 +- docs/doxygen/html/classdecode__results.html | 32 +- docs/doxygen/html/classes.html | 211 +- docs/doxygen/html/defaults_8h_source.html | 1618 +++--- docs/doxygen/html/deprecated.html | 24 +- .../dir_68267d1309a1af8e8297ef4c3efbcdba.html | 14 +- .../dir_84fe998d1eb06414cc389ad334e77e63.html | 2 + docs/doxygen/html/files.html | 199 +- docs/doxygen/html/functions.html | 44 +- docs/doxygen/html/functions_a.html | 14 +- docs/doxygen/html/functions_b.html | 3 +- docs/doxygen/html/functions_c.html | 64 +- docs/doxygen/html/functions_d.html | 21 + docs/doxygen/html/functions_e.html | 7 +- docs/doxygen/html/functions_f.html | 12 +- docs/doxygen/html/functions_func.html | 6 + docs/doxygen/html/functions_func_a.html | 14 +- docs/doxygen/html/functions_func_b.html | 3 +- docs/doxygen/html/functions_func_c.html | 24 +- docs/doxygen/html/functions_func_d.html | 15 + docs/doxygen/html/functions_func_e.html | 4 +- docs/doxygen/html/functions_func_g.html | 92 +- docs/doxygen/html/functions_func_h.html | 3 + docs/doxygen/html/functions_func_i.html | 12 + docs/doxygen/html/functions_func_m.html | 2 +- docs/doxygen/html/functions_func_o.html | 4 +- docs/doxygen/html/functions_func_s.html | 112 +- docs/doxygen/html/functions_func_t.html | 16 +- docs/doxygen/html/functions_func_v.html | 2 +- docs/doxygen/html/functions_g.html | 92 +- docs/doxygen/html/functions_h.html | 6 +- docs/doxygen/html/functions_i.html | 25 + docs/doxygen/html/functions_k.html | 9 + docs/doxygen/html/functions_l.html | 1 + docs/doxygen/html/functions_m.html | 5 +- docs/doxygen/html/functions_n.html | 1 + docs/doxygen/html/functions_o.html | 6 +- docs/doxygen/html/functions_p.html | 17 + docs/doxygen/html/functions_r.html | 3 + docs/doxygen/html/functions_s.html | 117 +- docs/doxygen/html/functions_t.html | 42 +- docs/doxygen/html/functions_v.html | 5 +- docs/doxygen/html/functions_vars.html | 36 +- docs/doxygen/html/functions_vars_c.html | 38 +- docs/doxygen/html/functions_vars_d.html | 6 + docs/doxygen/html/functions_vars_e.html | 3 + docs/doxygen/html/functions_vars_f.html | 12 +- docs/doxygen/html/functions_vars_h.html | 3 - docs/doxygen/html/functions_vars_i.html | 13 + docs/doxygen/html/functions_vars_k.html | 85 + docs/doxygen/html/functions_vars_l.html | 1 + docs/doxygen/html/functions_vars_m.html | 3 + docs/doxygen/html/functions_vars_n.html | 1 + docs/doxygen/html/functions_vars_o.html | 2 + docs/doxygen/html/functions_vars_p.html | 17 + docs/doxygen/html/functions_vars_r.html | 3 + docs/doxygen/html/functions_vars_s.html | 9 + docs/doxygen/html/functions_vars_t.html | 26 +- docs/doxygen/html/functions_vars_v.html | 3 + docs/doxygen/html/globals_a.html | 21 + docs/doxygen/html/globals_c.html | 7 +- docs/doxygen/html/globals_enum.html | 21 + docs/doxygen/html/globals_eval.html | 18 + docs/doxygen/html/globals_func_i.html | 2 +- docs/doxygen/html/globals_g.html | 3 + docs/doxygen/html/globals_i.html | 2 +- docs/doxygen/html/globals_k.html | 206 +- docs/doxygen/html/globals_s.html | 10 +- docs/doxygen/html/globals_vars_k.html | 210 +- docs/doxygen/html/globals_w.html | 3 + docs/doxygen/html/globals_y.html | 3 + docs/doxygen/html/hierarchy.html | 265 +- docs/doxygen/html/inherit_graph_10.map | 2 +- docs/doxygen/html/inherit_graph_10.md5 | 2 +- docs/doxygen/html/inherit_graph_10.png | Bin 1647 -> 1198 bytes docs/doxygen/html/inherit_graph_100.map | 2 +- docs/doxygen/html/inherit_graph_100.md5 | 2 +- docs/doxygen/html/inherit_graph_100.png | Bin 1308 -> 1480 bytes docs/doxygen/html/inherit_graph_101.map | 2 +- docs/doxygen/html/inherit_graph_101.md5 | 2 +- docs/doxygen/html/inherit_graph_101.png | Bin 1446 -> 1126 bytes docs/doxygen/html/inherit_graph_102.map | 2 +- docs/doxygen/html/inherit_graph_102.md5 | 2 +- docs/doxygen/html/inherit_graph_102.png | Bin 2085 -> 1244 bytes docs/doxygen/html/inherit_graph_103.map | 2 +- docs/doxygen/html/inherit_graph_103.md5 | 2 +- docs/doxygen/html/inherit_graph_103.png | Bin 1693 -> 1518 bytes docs/doxygen/html/inherit_graph_104.map | 2 +- docs/doxygen/html/inherit_graph_104.md5 | 2 +- docs/doxygen/html/inherit_graph_104.png | Bin 1929 -> 1126 bytes docs/doxygen/html/inherit_graph_105.map | 2 +- docs/doxygen/html/inherit_graph_105.md5 | 2 +- docs/doxygen/html/inherit_graph_105.png | Bin 1668 -> 1310 bytes docs/doxygen/html/inherit_graph_106.map | 2 +- docs/doxygen/html/inherit_graph_106.md5 | 2 +- docs/doxygen/html/inherit_graph_106.png | Bin 1833 -> 1308 bytes docs/doxygen/html/inherit_graph_107.map | 2 +- docs/doxygen/html/inherit_graph_107.md5 | 2 +- docs/doxygen/html/inherit_graph_107.png | Bin 1732 -> 1446 bytes docs/doxygen/html/inherit_graph_108.map | 2 +- docs/doxygen/html/inherit_graph_108.md5 | 2 +- docs/doxygen/html/inherit_graph_108.png | Bin 1434 -> 2085 bytes docs/doxygen/html/inherit_graph_109.map | 2 +- docs/doxygen/html/inherit_graph_109.md5 | 2 +- docs/doxygen/html/inherit_graph_109.png | Bin 1936 -> 1693 bytes docs/doxygen/html/inherit_graph_11.map | 2 +- docs/doxygen/html/inherit_graph_11.md5 | 2 +- docs/doxygen/html/inherit_graph_11.png | Bin 1746 -> 1556 bytes docs/doxygen/html/inherit_graph_110.map | 2 +- docs/doxygen/html/inherit_graph_110.md5 | 2 +- docs/doxygen/html/inherit_graph_110.png | Bin 1247 -> 1929 bytes docs/doxygen/html/inherit_graph_111.map | 2 +- docs/doxygen/html/inherit_graph_111.md5 | 2 +- docs/doxygen/html/inherit_graph_111.png | Bin 1790 -> 1668 bytes docs/doxygen/html/inherit_graph_112.map | 2 +- docs/doxygen/html/inherit_graph_112.md5 | 2 +- docs/doxygen/html/inherit_graph_112.png | Bin 1808 -> 1833 bytes docs/doxygen/html/inherit_graph_113.map | 2 +- docs/doxygen/html/inherit_graph_113.md5 | 2 +- docs/doxygen/html/inherit_graph_113.png | Bin 1449 -> 1732 bytes docs/doxygen/html/inherit_graph_114.map | 2 +- docs/doxygen/html/inherit_graph_114.md5 | 2 +- docs/doxygen/html/inherit_graph_114.png | Bin 1530 -> 1434 bytes docs/doxygen/html/inherit_graph_115.map | 2 +- docs/doxygen/html/inherit_graph_115.md5 | 2 +- docs/doxygen/html/inherit_graph_115.png | Bin 1307 -> 1936 bytes docs/doxygen/html/inherit_graph_116.map | 2 +- docs/doxygen/html/inherit_graph_116.md5 | 2 +- docs/doxygen/html/inherit_graph_116.png | Bin 1185 -> 1247 bytes docs/doxygen/html/inherit_graph_117.map | 2 +- docs/doxygen/html/inherit_graph_117.md5 | 2 +- docs/doxygen/html/inherit_graph_117.png | Bin 1443 -> 1790 bytes docs/doxygen/html/inherit_graph_118.map | 2 +- docs/doxygen/html/inherit_graph_118.md5 | 2 +- docs/doxygen/html/inherit_graph_118.png | Bin 1141 -> 1808 bytes docs/doxygen/html/inherit_graph_119.map | 2 +- docs/doxygen/html/inherit_graph_119.md5 | 2 +- docs/doxygen/html/inherit_graph_119.png | Bin 985 -> 1449 bytes docs/doxygen/html/inherit_graph_12.map | 2 +- docs/doxygen/html/inherit_graph_12.md5 | 2 +- docs/doxygen/html/inherit_graph_12.png | Bin 1671 -> 1726 bytes docs/doxygen/html/inherit_graph_120.map | 2 +- docs/doxygen/html/inherit_graph_120.md5 | 2 +- docs/doxygen/html/inherit_graph_120.png | Bin 1518 -> 1530 bytes docs/doxygen/html/inherit_graph_121.map | 2 +- docs/doxygen/html/inherit_graph_121.md5 | 2 +- docs/doxygen/html/inherit_graph_121.png | Bin 1527 -> 1307 bytes docs/doxygen/html/inherit_graph_122.map | 2 +- docs/doxygen/html/inherit_graph_122.md5 | 2 +- docs/doxygen/html/inherit_graph_122.png | Bin 1573 -> 1185 bytes docs/doxygen/html/inherit_graph_123.map | 2 +- docs/doxygen/html/inherit_graph_123.md5 | 2 +- docs/doxygen/html/inherit_graph_123.png | Bin 1083 -> 1443 bytes docs/doxygen/html/inherit_graph_124.map | 2 +- docs/doxygen/html/inherit_graph_124.md5 | 2 +- docs/doxygen/html/inherit_graph_124.png | Bin 1234 -> 1141 bytes docs/doxygen/html/inherit_graph_125.map | 2 +- docs/doxygen/html/inherit_graph_125.md5 | 2 +- docs/doxygen/html/inherit_graph_125.png | Bin 1366 -> 985 bytes docs/doxygen/html/inherit_graph_126.map | 2 +- docs/doxygen/html/inherit_graph_126.md5 | 2 +- docs/doxygen/html/inherit_graph_126.png | Bin 1349 -> 1518 bytes docs/doxygen/html/inherit_graph_127.map | 2 +- docs/doxygen/html/inherit_graph_127.md5 | 2 +- docs/doxygen/html/inherit_graph_127.png | Bin 1411 -> 1527 bytes docs/doxygen/html/inherit_graph_128.map | 3 + docs/doxygen/html/inherit_graph_128.md5 | 1 + docs/doxygen/html/inherit_graph_128.png | Bin 0 -> 1573 bytes docs/doxygen/html/inherit_graph_129.map | 3 + docs/doxygen/html/inherit_graph_129.md5 | 1 + docs/doxygen/html/inherit_graph_129.png | Bin 0 -> 1083 bytes docs/doxygen/html/inherit_graph_13.map | 2 +- docs/doxygen/html/inherit_graph_13.md5 | 2 +- docs/doxygen/html/inherit_graph_13.png | Bin 1668 -> 1647 bytes docs/doxygen/html/inherit_graph_130.map | 3 + docs/doxygen/html/inherit_graph_130.md5 | 1 + docs/doxygen/html/inherit_graph_130.png | Bin 0 -> 1234 bytes docs/doxygen/html/inherit_graph_131.map | 3 + docs/doxygen/html/inherit_graph_131.md5 | 1 + docs/doxygen/html/inherit_graph_131.png | Bin 0 -> 1366 bytes docs/doxygen/html/inherit_graph_132.map | 3 + docs/doxygen/html/inherit_graph_132.md5 | 1 + docs/doxygen/html/inherit_graph_132.png | Bin 0 -> 1349 bytes docs/doxygen/html/inherit_graph_133.map | 3 + docs/doxygen/html/inherit_graph_133.md5 | 1 + docs/doxygen/html/inherit_graph_133.png | Bin 0 -> 1411 bytes docs/doxygen/html/inherit_graph_134.map | 3 + docs/doxygen/html/inherit_graph_134.md5 | 1 + docs/doxygen/html/inherit_graph_134.png | Bin 0 -> 1125 bytes docs/doxygen/html/inherit_graph_14.map | 2 +- docs/doxygen/html/inherit_graph_14.md5 | 2 +- docs/doxygen/html/inherit_graph_14.png | Bin 1479 -> 1746 bytes docs/doxygen/html/inherit_graph_15.map | 2 +- docs/doxygen/html/inherit_graph_15.md5 | 2 +- docs/doxygen/html/inherit_graph_15.png | Bin 1593 -> 1671 bytes docs/doxygen/html/inherit_graph_16.map | 2 +- docs/doxygen/html/inherit_graph_16.md5 | 2 +- docs/doxygen/html/inherit_graph_16.png | Bin 1569 -> 1668 bytes docs/doxygen/html/inherit_graph_17.map | 2 +- docs/doxygen/html/inherit_graph_17.md5 | 2 +- docs/doxygen/html/inherit_graph_17.png | Bin 1406 -> 1479 bytes docs/doxygen/html/inherit_graph_18.map | 2 +- docs/doxygen/html/inherit_graph_18.md5 | 2 +- docs/doxygen/html/inherit_graph_18.png | Bin 1465 -> 1593 bytes docs/doxygen/html/inherit_graph_19.map | 2 +- docs/doxygen/html/inherit_graph_19.md5 | 2 +- docs/doxygen/html/inherit_graph_19.png | Bin 1087 -> 1569 bytes docs/doxygen/html/inherit_graph_20.map | 2 +- docs/doxygen/html/inherit_graph_20.md5 | 2 +- docs/doxygen/html/inherit_graph_20.png | Bin 1331 -> 1406 bytes docs/doxygen/html/inherit_graph_21.map | 2 +- docs/doxygen/html/inherit_graph_21.md5 | 2 +- docs/doxygen/html/inherit_graph_21.png | Bin 1191 -> 1465 bytes docs/doxygen/html/inherit_graph_22.map | 2 +- docs/doxygen/html/inherit_graph_22.md5 | 2 +- docs/doxygen/html/inherit_graph_22.png | Bin 1777 -> 1087 bytes docs/doxygen/html/inherit_graph_23.map | 2 +- docs/doxygen/html/inherit_graph_23.md5 | 2 +- docs/doxygen/html/inherit_graph_23.png | Bin 1204 -> 1331 bytes docs/doxygen/html/inherit_graph_24.map | 2 +- docs/doxygen/html/inherit_graph_24.md5 | 2 +- docs/doxygen/html/inherit_graph_24.png | Bin 1847 -> 1191 bytes docs/doxygen/html/inherit_graph_25.map | 2 +- docs/doxygen/html/inherit_graph_25.md5 | 2 +- docs/doxygen/html/inherit_graph_25.png | Bin 1760 -> 1777 bytes docs/doxygen/html/inherit_graph_26.map | 2 +- docs/doxygen/html/inherit_graph_26.md5 | 2 +- docs/doxygen/html/inherit_graph_26.png | Bin 1220 -> 1204 bytes docs/doxygen/html/inherit_graph_27.map | 2 +- docs/doxygen/html/inherit_graph_27.md5 | 2 +- docs/doxygen/html/inherit_graph_27.png | Bin 1197 -> 1847 bytes docs/doxygen/html/inherit_graph_28.map | 2 +- docs/doxygen/html/inherit_graph_28.md5 | 2 +- docs/doxygen/html/inherit_graph_28.png | Bin 1417 -> 1760 bytes docs/doxygen/html/inherit_graph_29.map | 2 +- docs/doxygen/html/inherit_graph_29.md5 | 2 +- docs/doxygen/html/inherit_graph_29.png | Bin 1910 -> 1220 bytes docs/doxygen/html/inherit_graph_3.map | 2 +- docs/doxygen/html/inherit_graph_3.md5 | 2 +- docs/doxygen/html/inherit_graph_30.map | 2 +- docs/doxygen/html/inherit_graph_30.md5 | 2 +- docs/doxygen/html/inherit_graph_30.png | Bin 1961 -> 1197 bytes docs/doxygen/html/inherit_graph_31.map | 2 +- docs/doxygen/html/inherit_graph_31.md5 | 2 +- docs/doxygen/html/inherit_graph_31.png | Bin 1140 -> 1417 bytes docs/doxygen/html/inherit_graph_32.map | 2 +- docs/doxygen/html/inherit_graph_32.md5 | 2 +- docs/doxygen/html/inherit_graph_32.png | Bin 674 -> 1910 bytes docs/doxygen/html/inherit_graph_33.map | 2 +- docs/doxygen/html/inherit_graph_33.md5 | 2 +- docs/doxygen/html/inherit_graph_33.png | Bin 1116 -> 1961 bytes docs/doxygen/html/inherit_graph_34.map | 2 +- docs/doxygen/html/inherit_graph_34.md5 | 2 +- docs/doxygen/html/inherit_graph_34.png | Bin 1301 -> 1140 bytes docs/doxygen/html/inherit_graph_35.map | 2 +- docs/doxygen/html/inherit_graph_35.md5 | 2 +- docs/doxygen/html/inherit_graph_35.png | Bin 1068 -> 674 bytes docs/doxygen/html/inherit_graph_36.map | 2 +- docs/doxygen/html/inherit_graph_36.md5 | 2 +- docs/doxygen/html/inherit_graph_36.png | Bin 1161 -> 1116 bytes docs/doxygen/html/inherit_graph_37.map | 2 +- docs/doxygen/html/inherit_graph_37.md5 | 2 +- docs/doxygen/html/inherit_graph_37.png | Bin 1694 -> 1301 bytes docs/doxygen/html/inherit_graph_38.map | 2 +- docs/doxygen/html/inherit_graph_38.md5 | 2 +- docs/doxygen/html/inherit_graph_38.png | Bin 1579 -> 1068 bytes docs/doxygen/html/inherit_graph_39.map | 2 +- docs/doxygen/html/inherit_graph_39.md5 | 2 +- docs/doxygen/html/inherit_graph_39.png | Bin 1141 -> 3228 bytes docs/doxygen/html/inherit_graph_4.map | 2 +- docs/doxygen/html/inherit_graph_4.md5 | 2 +- docs/doxygen/html/inherit_graph_4.png | Bin 1451 -> 2003 bytes docs/doxygen/html/inherit_graph_40.map | 3 +- docs/doxygen/html/inherit_graph_40.md5 | 2 +- docs/doxygen/html/inherit_graph_40.png | Bin 1277 -> 2986 bytes docs/doxygen/html/inherit_graph_41.map | 3 +- docs/doxygen/html/inherit_graph_41.md5 | 2 +- docs/doxygen/html/inherit_graph_41.png | Bin 1330 -> 4277 bytes docs/doxygen/html/inherit_graph_42.map | 2 +- docs/doxygen/html/inherit_graph_42.md5 | 2 +- docs/doxygen/html/inherit_graph_42.png | Bin 1257 -> 1694 bytes docs/doxygen/html/inherit_graph_43.map | 2 +- docs/doxygen/html/inherit_graph_43.md5 | 2 +- docs/doxygen/html/inherit_graph_43.png | Bin 1371 -> 1579 bytes docs/doxygen/html/inherit_graph_44.map | 2 +- docs/doxygen/html/inherit_graph_44.md5 | 2 +- docs/doxygen/html/inherit_graph_44.png | Bin 1281 -> 1141 bytes docs/doxygen/html/inherit_graph_45.map | 2 +- docs/doxygen/html/inherit_graph_45.md5 | 2 +- docs/doxygen/html/inherit_graph_45.png | Bin 1088 -> 1277 bytes docs/doxygen/html/inherit_graph_46.map | 2 +- docs/doxygen/html/inherit_graph_46.md5 | 2 +- docs/doxygen/html/inherit_graph_46.png | Bin 1317 -> 1330 bytes docs/doxygen/html/inherit_graph_47.map | 2 +- docs/doxygen/html/inherit_graph_47.md5 | 2 +- docs/doxygen/html/inherit_graph_47.png | Bin 1237 -> 1257 bytes docs/doxygen/html/inherit_graph_48.map | 2 +- docs/doxygen/html/inherit_graph_48.md5 | 2 +- docs/doxygen/html/inherit_graph_48.png | Bin 1264 -> 1371 bytes docs/doxygen/html/inherit_graph_49.map | 2 +- docs/doxygen/html/inherit_graph_49.md5 | 2 +- docs/doxygen/html/inherit_graph_49.png | Bin 1482 -> 1281 bytes docs/doxygen/html/inherit_graph_5.map | 2 +- docs/doxygen/html/inherit_graph_5.md5 | 2 +- docs/doxygen/html/inherit_graph_5.png | Bin 1328 -> 2561 bytes docs/doxygen/html/inherit_graph_50.map | 2 +- docs/doxygen/html/inherit_graph_50.md5 | 2 +- docs/doxygen/html/inherit_graph_50.png | Bin 1114 -> 1088 bytes docs/doxygen/html/inherit_graph_51.map | 2 +- docs/doxygen/html/inherit_graph_51.md5 | 2 +- docs/doxygen/html/inherit_graph_51.png | Bin 1334 -> 1317 bytes docs/doxygen/html/inherit_graph_52.map | 2 +- docs/doxygen/html/inherit_graph_52.md5 | 2 +- docs/doxygen/html/inherit_graph_52.png | Bin 1280 -> 1237 bytes docs/doxygen/html/inherit_graph_53.map | 2 +- docs/doxygen/html/inherit_graph_53.md5 | 2 +- docs/doxygen/html/inherit_graph_53.png | Bin 1904 -> 1264 bytes docs/doxygen/html/inherit_graph_54.map | 2 +- docs/doxygen/html/inherit_graph_54.md5 | 2 +- docs/doxygen/html/inherit_graph_54.png | Bin 1214 -> 1482 bytes docs/doxygen/html/inherit_graph_55.map | 2 +- docs/doxygen/html/inherit_graph_55.md5 | 2 +- docs/doxygen/html/inherit_graph_55.png | Bin 1300 -> 1114 bytes docs/doxygen/html/inherit_graph_56.map | 2 +- docs/doxygen/html/inherit_graph_56.md5 | 2 +- docs/doxygen/html/inherit_graph_56.png | Bin 1730 -> 1334 bytes docs/doxygen/html/inherit_graph_57.map | 3 +- docs/doxygen/html/inherit_graph_57.md5 | 2 +- docs/doxygen/html/inherit_graph_57.png | Bin 2795 -> 1280 bytes docs/doxygen/html/inherit_graph_58.map | 2 +- docs/doxygen/html/inherit_graph_58.md5 | 2 +- docs/doxygen/html/inherit_graph_58.png | Bin 1089 -> 1904 bytes docs/doxygen/html/inherit_graph_59.map | 2 +- docs/doxygen/html/inherit_graph_59.md5 | 2 +- docs/doxygen/html/inherit_graph_59.png | Bin 1144 -> 1214 bytes docs/doxygen/html/inherit_graph_6.map | 2 +- docs/doxygen/html/inherit_graph_6.md5 | 2 +- docs/doxygen/html/inherit_graph_6.png | Bin 1339 -> 2470 bytes docs/doxygen/html/inherit_graph_60.map | 2 +- docs/doxygen/html/inherit_graph_60.md5 | 2 +- docs/doxygen/html/inherit_graph_60.png | Bin 1596 -> 1300 bytes docs/doxygen/html/inherit_graph_61.map | 2 +- docs/doxygen/html/inherit_graph_61.md5 | 2 +- docs/doxygen/html/inherit_graph_61.png | Bin 1273 -> 1730 bytes docs/doxygen/html/inherit_graph_62.map | 5 +- docs/doxygen/html/inherit_graph_62.md5 | 2 +- docs/doxygen/html/inherit_graph_62.png | Bin 3569 -> 2795 bytes docs/doxygen/html/inherit_graph_63.map | 2 +- docs/doxygen/html/inherit_graph_63.md5 | 2 +- docs/doxygen/html/inherit_graph_63.png | Bin 1269 -> 1089 bytes docs/doxygen/html/inherit_graph_64.map | 2 +- docs/doxygen/html/inherit_graph_64.md5 | 2 +- docs/doxygen/html/inherit_graph_64.png | Bin 1725 -> 1144 bytes docs/doxygen/html/inherit_graph_65.map | 2 +- docs/doxygen/html/inherit_graph_65.md5 | 2 +- docs/doxygen/html/inherit_graph_65.png | Bin 911 -> 1596 bytes docs/doxygen/html/inherit_graph_66.map | 2 +- docs/doxygen/html/inherit_graph_66.md5 | 2 +- docs/doxygen/html/inherit_graph_66.png | Bin 1369 -> 1273 bytes docs/doxygen/html/inherit_graph_67.map | 4 +- docs/doxygen/html/inherit_graph_67.md5 | 2 +- docs/doxygen/html/inherit_graph_67.png | Bin 1571 -> 3569 bytes docs/doxygen/html/inherit_graph_68.map | 2 +- docs/doxygen/html/inherit_graph_68.md5 | 2 +- docs/doxygen/html/inherit_graph_68.png | Bin 1340 -> 1269 bytes docs/doxygen/html/inherit_graph_69.map | 2 +- docs/doxygen/html/inherit_graph_69.md5 | 2 +- docs/doxygen/html/inherit_graph_69.png | Bin 1573 -> 1725 bytes docs/doxygen/html/inherit_graph_7.map | 2 +- docs/doxygen/html/inherit_graph_7.md5 | 2 +- docs/doxygen/html/inherit_graph_7.png | Bin 1198 -> 1451 bytes docs/doxygen/html/inherit_graph_70.map | 2 +- docs/doxygen/html/inherit_graph_70.md5 | 2 +- docs/doxygen/html/inherit_graph_70.png | Bin 1583 -> 911 bytes docs/doxygen/html/inherit_graph_71.map | 2 +- docs/doxygen/html/inherit_graph_71.md5 | 2 +- docs/doxygen/html/inherit_graph_71.png | Bin 2616 -> 1369 bytes docs/doxygen/html/inherit_graph_72.map | 2 +- docs/doxygen/html/inherit_graph_72.md5 | 2 +- docs/doxygen/html/inherit_graph_72.png | Bin 2503 -> 1571 bytes docs/doxygen/html/inherit_graph_73.map | 2 +- docs/doxygen/html/inherit_graph_73.md5 | 2 +- docs/doxygen/html/inherit_graph_73.png | Bin 1440 -> 1340 bytes docs/doxygen/html/inherit_graph_74.map | 2 +- docs/doxygen/html/inherit_graph_74.md5 | 2 +- docs/doxygen/html/inherit_graph_74.png | Bin 1494 -> 1573 bytes docs/doxygen/html/inherit_graph_75.map | 2 +- docs/doxygen/html/inherit_graph_75.md5 | 2 +- docs/doxygen/html/inherit_graph_75.png | Bin 1882 -> 1583 bytes docs/doxygen/html/inherit_graph_76.map | 2 +- docs/doxygen/html/inherit_graph_76.md5 | 2 +- docs/doxygen/html/inherit_graph_76.png | Bin 1122 -> 2616 bytes docs/doxygen/html/inherit_graph_77.map | 2 +- docs/doxygen/html/inherit_graph_77.md5 | 2 +- docs/doxygen/html/inherit_graph_77.png | Bin 878 -> 2503 bytes docs/doxygen/html/inherit_graph_78.map | 2 +- docs/doxygen/html/inherit_graph_78.md5 | 2 +- docs/doxygen/html/inherit_graph_78.png | Bin 1123 -> 1440 bytes docs/doxygen/html/inherit_graph_79.map | 2 +- docs/doxygen/html/inherit_graph_79.md5 | 2 +- docs/doxygen/html/inherit_graph_79.png | Bin 1648 -> 1494 bytes docs/doxygen/html/inherit_graph_8.map | 2 +- docs/doxygen/html/inherit_graph_8.md5 | 2 +- docs/doxygen/html/inherit_graph_8.png | Bin 1556 -> 1328 bytes docs/doxygen/html/inherit_graph_80.map | 2 +- docs/doxygen/html/inherit_graph_80.md5 | 2 +- docs/doxygen/html/inherit_graph_80.png | Bin 1443 -> 1882 bytes docs/doxygen/html/inherit_graph_81.map | 2 +- docs/doxygen/html/inherit_graph_81.md5 | 2 +- docs/doxygen/html/inherit_graph_81.png | Bin 1654 -> 1122 bytes docs/doxygen/html/inherit_graph_82.map | 2 +- docs/doxygen/html/inherit_graph_82.md5 | 2 +- docs/doxygen/html/inherit_graph_82.png | Bin 925 -> 878 bytes docs/doxygen/html/inherit_graph_83.map | 2 +- docs/doxygen/html/inherit_graph_83.md5 | 2 +- docs/doxygen/html/inherit_graph_83.png | Bin 1459 -> 1123 bytes docs/doxygen/html/inherit_graph_84.map | 2 +- docs/doxygen/html/inherit_graph_84.md5 | 2 +- docs/doxygen/html/inherit_graph_84.png | Bin 1014 -> 1648 bytes docs/doxygen/html/inherit_graph_85.map | 2 +- docs/doxygen/html/inherit_graph_85.md5 | 2 +- docs/doxygen/html/inherit_graph_85.png | Bin 1212 -> 1443 bytes docs/doxygen/html/inherit_graph_86.map | 2 +- docs/doxygen/html/inherit_graph_86.md5 | 2 +- docs/doxygen/html/inherit_graph_86.png | Bin 1059 -> 1654 bytes docs/doxygen/html/inherit_graph_87.map | 2 +- docs/doxygen/html/inherit_graph_87.md5 | 2 +- docs/doxygen/html/inherit_graph_87.png | Bin 869 -> 925 bytes docs/doxygen/html/inherit_graph_88.map | 2 +- docs/doxygen/html/inherit_graph_88.md5 | 2 +- docs/doxygen/html/inherit_graph_88.png | Bin 1428 -> 1459 bytes docs/doxygen/html/inherit_graph_89.map | 2 +- docs/doxygen/html/inherit_graph_89.md5 | 2 +- docs/doxygen/html/inherit_graph_89.png | Bin 1466 -> 1014 bytes docs/doxygen/html/inherit_graph_9.map | 2 +- docs/doxygen/html/inherit_graph_9.md5 | 2 +- docs/doxygen/html/inherit_graph_9.png | Bin 1726 -> 1339 bytes docs/doxygen/html/inherit_graph_90.map | 2 +- docs/doxygen/html/inherit_graph_90.md5 | 2 +- docs/doxygen/html/inherit_graph_90.png | Bin 1490 -> 1212 bytes docs/doxygen/html/inherit_graph_91.map | 2 +- docs/doxygen/html/inherit_graph_91.md5 | 2 +- docs/doxygen/html/inherit_graph_91.png | Bin 1328 -> 1059 bytes docs/doxygen/html/inherit_graph_92.map | 2 +- docs/doxygen/html/inherit_graph_92.md5 | 2 +- docs/doxygen/html/inherit_graph_92.png | Bin 1154 -> 869 bytes docs/doxygen/html/inherit_graph_93.map | 2 +- docs/doxygen/html/inherit_graph_93.md5 | 2 +- docs/doxygen/html/inherit_graph_93.png | Bin 1310 -> 1428 bytes docs/doxygen/html/inherit_graph_94.map | 2 +- docs/doxygen/html/inherit_graph_94.md5 | 2 +- docs/doxygen/html/inherit_graph_94.png | Bin 1104 -> 1466 bytes docs/doxygen/html/inherit_graph_95.map | 2 +- docs/doxygen/html/inherit_graph_95.md5 | 2 +- docs/doxygen/html/inherit_graph_95.png | Bin 1480 -> 1490 bytes docs/doxygen/html/inherit_graph_96.map | 2 +- docs/doxygen/html/inherit_graph_96.md5 | 2 +- docs/doxygen/html/inherit_graph_96.png | Bin 1244 -> 1328 bytes docs/doxygen/html/inherit_graph_97.map | 2 +- docs/doxygen/html/inherit_graph_97.md5 | 2 +- docs/doxygen/html/inherit_graph_97.png | Bin 1518 -> 1154 bytes docs/doxygen/html/inherit_graph_98.map | 2 +- docs/doxygen/html/inherit_graph_98.md5 | 2 +- docs/doxygen/html/inherit_graph_98.png | Bin 1126 -> 1310 bytes docs/doxygen/html/inherit_graph_99.map | 2 +- docs/doxygen/html/inherit_graph_99.md5 | 2 +- docs/doxygen/html/inherit_graph_99.png | Bin 1310 -> 1104 bytes docs/doxygen/html/inherits.html | 291 +- docs/doxygen/html/ir__Airton_8h_source.html | 14 +- docs/doxygen/html/ir__Airwell_8h_source.html | 12 +- docs/doxygen/html/ir__Amcor_8h_source.html | 14 +- docs/doxygen/html/ir__Argo_8cpp.html | 87 +- docs/doxygen/html/ir__Argo_8h.html | 389 +- docs/doxygen/html/ir__Argo_8h_source.html | 995 +++- docs/doxygen/html/ir__Arris_8cpp.html | 2 +- docs/doxygen/html/ir__Bosch_8h_source.html | 24 +- docs/doxygen/html/ir__Carrier_8cpp.html | 112 + docs/doxygen/html/ir__Carrier_8h.html | 4 +- docs/doxygen/html/ir__Carrier_8h_source.html | 398 +- docs/doxygen/html/ir__Coolix_8h_source.html | 80 +- docs/doxygen/html/ir__Corona_8h_source.html | 14 +- docs/doxygen/html/ir__Daikin_8h.html | 12 +- docs/doxygen/html/ir__Daikin_8h_source.html | 48 +- docs/doxygen/html/ir__Delonghi_8h_source.html | 12 +- docs/doxygen/html/ir__Denon_8cpp.html | 2 +- docs/doxygen/html/ir__Ecoclim_8h_source.html | 14 +- docs/doxygen/html/ir__Electra_8h_source.html | 403 +- docs/doxygen/html/ir__Fujitsu_8h_source.html | 20 +- docs/doxygen/html/ir__GICable_8cpp.html | 2 +- .../html/ir__Goodweather_8h_source.html | 14 +- docs/doxygen/html/ir__Gorenje_8cpp.html | 223 + docs/doxygen/html/ir__Gree_8h_source.html | 24 +- docs/doxygen/html/ir__Haier_8h_source.html | 32 +- docs/doxygen/html/ir__Hitachi_8h_source.html | 30 +- docs/doxygen/html/ir__JVC_8cpp.html | 2 +- docs/doxygen/html/ir__Kelon_8h_source.html | 12 +- .../html/ir__Kelvinator_8h_source.html | 16 +- docs/doxygen/html/ir__LG_8h_source.html | 20 +- .../doxygen/html/ir__Magiquest_8h_source.html | 4 +- docs/doxygen/html/ir__Midea_8h_source.html | 14 +- docs/doxygen/html/ir__Mirage_8h_source.html | 24 +- .../html/ir__MitsubishiHeavy_8h_source.html | 22 +- .../html/ir__Mitsubishi_8h_source.html | 1071 ++-- docs/doxygen/html/ir__NEC_8h.html | 2 +- docs/doxygen/html/ir__NEC_8h_source.html | 2 +- docs/doxygen/html/ir__Neoclima_8h_source.html | 14 +- .../doxygen/html/ir__Panasonic_8h_source.html | 180 +- docs/doxygen/html/ir__Rhoss_8h_source.html | 14 +- docs/doxygen/html/ir__Samsung_8cpp.html | 2 +- docs/doxygen/html/ir__Samsung_8h_source.html | 16 +- docs/doxygen/html/ir__Sanyo_8cpp.html | 2 +- docs/doxygen/html/ir__Sanyo_8h_source.html | 86 +- docs/doxygen/html/ir__Sharp_8cpp.html | 4 +- docs/doxygen/html/ir__Sharp_8h_source.html | 20 +- docs/doxygen/html/ir__Tcl_8h_source.html | 18 +- .../doxygen/html/ir__Technibel_8h_source.html | 14 +- docs/doxygen/html/ir__Teco_8h_source.html | 12 +- docs/doxygen/html/ir__Toshiba_8h_source.html | 16 +- .../doxygen/html/ir__Transcold_8h_source.html | 12 +- docs/doxygen/html/ir__Trotec_8h_source.html | 14 +- docs/doxygen/html/ir__Truma_8h_source.html | 12 +- docs/doxygen/html/ir__Vestel_8h_source.html | 12 +- docs/doxygen/html/ir__Voltas_8h_source.html | 16 +- .../doxygen/html/ir__Whirlpool_8h_source.html | 16 +- docs/doxygen/html/ir__Whynter_8cpp.html | 2 +- docs/doxygen/html/ir__Wowwee_8cpp.html | 189 + docs/doxygen/html/ir__York_8cpp.html | 188 + docs/doxygen/html/ir__York_8h.html | 301 + docs/doxygen/html/ir__York_8h_source.html | 272 + docs/doxygen/html/menudata.js | 1 + docs/doxygen/html/namespaceirutils.html | 309 +- docs/doxygen/html/namespacemembers.html | 24 +- docs/doxygen/html/namespacemembers_enum.html | 3 + docs/doxygen/html/namespacemembers_func.html | 21 +- docs/doxygen/html/namespacestdAc.html | 52 +- docs/doxygen/html/nl-NL_8h.html | 82 + docs/doxygen/html/nl-NL_8h_source.html | 216 + docs/doxygen/html/search/all_0.js | 196 +- docs/doxygen/html/search/all_1.js | 100 +- docs/doxygen/html/search/all_10.js | 70 +- docs/doxygen/html/search/all_11.js | 2 +- docs/doxygen/html/search/all_12.js | 60 +- docs/doxygen/html/search/all_13.js | 765 +-- docs/doxygen/html/search/all_14.js | 172 +- docs/doxygen/html/search/all_15.js | 30 +- docs/doxygen/html/search/all_16.js | 30 +- docs/doxygen/html/search/all_17.js | 22 +- docs/doxygen/html/search/all_18.js | 6 +- docs/doxygen/html/search/all_19.js | 8 +- docs/doxygen/html/search/all_1a.js | 8 +- docs/doxygen/html/search/all_1b.js | 2 +- docs/doxygen/html/search/all_2.js | 34 +- docs/doxygen/html/search/all_3.js | 162 +- docs/doxygen/html/search/all_4.js | 337 +- docs/doxygen/html/search/all_5.js | 89 +- docs/doxygen/html/search/all_6.js | 74 +- docs/doxygen/html/search/all_7.js | 321 +- docs/doxygen/html/search/all_8.js | 105 +- docs/doxygen/html/search/all_9.js | 533 +- docs/doxygen/html/search/all_a.js | 4 +- docs/doxygen/html/search/all_b.js | 5162 +++++++++-------- docs/doxygen/html/search/all_c.js | 48 +- docs/doxygen/html/search/all_d.js | 119 +- docs/doxygen/html/search/all_e.js | 20 +- docs/doxygen/html/search/all_f.js | 98 +- docs/doxygen/html/search/classes_0.js | 9 +- docs/doxygen/html/search/classes_1.js | 2 +- docs/doxygen/html/search/classes_10.js | 19 +- docs/doxygen/html/search/classes_11.js | 4 +- docs/doxygen/html/search/classes_12.js | 2 +- docs/doxygen/html/search/classes_13.html | 30 + docs/doxygen/html/search/classes_13.js | 4 + docs/doxygen/html/search/classes_2.js | 9 +- docs/doxygen/html/search/classes_3.js | 20 +- docs/doxygen/html/search/classes_4.js | 4 +- docs/doxygen/html/search/classes_5.js | 2 +- docs/doxygen/html/search/classes_6.js | 4 +- docs/doxygen/html/search/classes_7.js | 16 +- docs/doxygen/html/search/classes_8.js | 139 +- docs/doxygen/html/search/classes_9.js | 4 +- docs/doxygen/html/search/classes_a.js | 2 +- docs/doxygen/html/search/classes_b.js | 18 +- docs/doxygen/html/search/classes_c.js | 2 +- docs/doxygen/html/search/classes_d.js | 2 +- docs/doxygen/html/search/classes_e.js | 2 +- docs/doxygen/html/search/classes_f.js | 10 +- docs/doxygen/html/search/enums_0.js | 9 +- docs/doxygen/html/search/enums_1.js | 3 +- docs/doxygen/html/search/enums_2.js | 3 +- docs/doxygen/html/search/enums_3.js | 3 +- docs/doxygen/html/search/enums_4.js | 3 +- docs/doxygen/html/search/enums_5.js | 2 +- docs/doxygen/html/search/enums_6.js | 2 +- docs/doxygen/html/search/enums_7.js | 2 +- docs/doxygen/html/search/enums_8.js | 4 +- docs/doxygen/html/search/enums_9.js | 4 +- docs/doxygen/html/search/enums_a.js | 2 +- docs/doxygen/html/search/enums_b.js | 2 +- docs/doxygen/html/search/enums_c.html | 30 + docs/doxygen/html/search/enums_c.js | 4 + docs/doxygen/html/search/enumvalues_0.js | 38 +- docs/doxygen/html/search/enumvalues_1.js | 4 +- docs/doxygen/html/search/enumvalues_10.js | 35 +- docs/doxygen/html/search/enumvalues_11.js | 27 +- docs/doxygen/html/search/enumvalues_12.js | 4 +- docs/doxygen/html/search/enumvalues_13.js | 8 +- docs/doxygen/html/search/enumvalues_14.js | 6 +- docs/doxygen/html/search/enumvalues_15.js | 2 +- docs/doxygen/html/search/enumvalues_16.js | 7 +- docs/doxygen/html/search/enumvalues_17.js | 2 +- docs/doxygen/html/search/enumvalues_2.js | 19 +- docs/doxygen/html/search/enumvalues_3.js | 34 +- docs/doxygen/html/search/enumvalues_4.js | 8 +- docs/doxygen/html/search/enumvalues_5.js | 19 +- docs/doxygen/html/search/enumvalues_6.js | 13 +- docs/doxygen/html/search/enumvalues_7.js | 25 +- docs/doxygen/html/search/enumvalues_8.js | 3 +- docs/doxygen/html/search/enumvalues_9.js | 2 +- docs/doxygen/html/search/enumvalues_a.js | 83 +- docs/doxygen/html/search/enumvalues_b.js | 12 +- docs/doxygen/html/search/enumvalues_c.js | 31 +- docs/doxygen/html/search/enumvalues_d.js | 9 +- docs/doxygen/html/search/enumvalues_e.js | 10 +- docs/doxygen/html/search/enumvalues_f.js | 16 +- docs/doxygen/html/search/files_0.js | 8 +- docs/doxygen/html/search/files_1.js | 10 +- docs/doxygen/html/search/files_2.js | 2 +- docs/doxygen/html/search/files_3.js | 270 +- docs/doxygen/html/search/files_4.js | 2 +- docs/doxygen/html/search/files_5.js | 3 +- docs/doxygen/html/search/files_6.js | 3 +- docs/doxygen/html/search/files_7.js | 2 +- docs/doxygen/html/search/files_8.html | 30 + docs/doxygen/html/search/files_8.js | 4 + docs/doxygen/html/search/functions_0.js | 56 +- docs/doxygen/html/search/functions_1.js | 43 +- docs/doxygen/html/search/functions_10.js | 22 +- docs/doxygen/html/search/functions_11.js | 590 +- docs/doxygen/html/search/functions_12.js | 55 +- docs/doxygen/html/search/functions_13.js | 12 +- docs/doxygen/html/search/functions_14.js | 8 +- docs/doxygen/html/search/functions_15.js | 2 +- docs/doxygen/html/search/functions_16.js | 2 +- docs/doxygen/html/search/functions_17.js | 2 +- docs/doxygen/html/search/functions_2.js | 10 +- docs/doxygen/html/search/functions_3.js | 77 +- docs/doxygen/html/search/functions_4.js | 257 +- docs/doxygen/html/search/functions_5.js | 52 +- docs/doxygen/html/search/functions_6.js | 12 +- docs/doxygen/html/search/functions_7.js | 306 +- docs/doxygen/html/search/functions_8.js | 33 +- docs/doxygen/html/search/functions_9.js | 205 +- docs/doxygen/html/search/functions_a.js | 4 +- docs/doxygen/html/search/functions_b.js | 8 +- docs/doxygen/html/search/functions_c.js | 50 +- docs/doxygen/html/search/functions_d.js | 2 +- docs/doxygen/html/search/functions_e.js | 6 +- docs/doxygen/html/search/functions_f.js | 6 +- docs/doxygen/html/search/namespaces_0.js | 2 +- docs/doxygen/html/search/namespaces_1.js | 6 +- docs/doxygen/html/search/namespaces_2.js | 2 +- docs/doxygen/html/search/pages_0.js | 2 +- docs/doxygen/html/search/pages_1.js | 4 +- docs/doxygen/html/search/pages_2.js | 2 +- docs/doxygen/html/search/related_0.js | 6 +- docs/doxygen/html/search/searchdata.js | 6 +- docs/doxygen/html/search/typedefs_0.js | 2 +- docs/doxygen/html/search/typedefs_1.js | 2 +- docs/doxygen/html/search/variables_0.js | 172 +- docs/doxygen/html/search/variables_1.js | 10 +- docs/doxygen/html/search/variables_10.js | 2 +- docs/doxygen/html/search/variables_11.js | 20 +- docs/doxygen/html/search/variables_12.js | 124 +- docs/doxygen/html/search/variables_13.js | 78 +- docs/doxygen/html/search/variables_14.js | 16 +- docs/doxygen/html/search/variables_15.js | 10 +- docs/doxygen/html/search/variables_16.js | 10 +- docs/doxygen/html/search/variables_17.js | 2 +- docs/doxygen/html/search/variables_18.js | 4 +- docs/doxygen/html/search/variables_2.js | 20 +- docs/doxygen/html/search/variables_3.js | 62 +- docs/doxygen/html/search/variables_4.js | 30 +- docs/doxygen/html/search/variables_5.js | 17 +- docs/doxygen/html/search/variables_6.js | 36 +- docs/doxygen/html/search/variables_7.js | 25 +- docs/doxygen/html/search/variables_8.js | 43 +- docs/doxygen/html/search/variables_9.js | 2 +- docs/doxygen/html/search/variables_a.js | 5075 ++++++++-------- docs/doxygen/html/search/variables_b.js | 26 +- docs/doxygen/html/search/variables_c.js | 30 +- docs/doxygen/html/search/variables_d.js | 8 +- docs/doxygen/html/search/variables_e.js | 90 +- docs/doxygen/html/search/variables_f.js | 50 +- ...ctArgoProtocolWREM3_1_1Config-members.html | 87 + .../structArgoProtocolWREM3_1_1Config.html | 157 + ...uctArgoProtocolWREM3_1_1Timer-members.html | 100 + .../structArgoProtocolWREM3_1_1Timer.html | 365 ++ .../html/structstdAc_1_1state__t-members.html | 19 +- .../doxygen/html/structstdAc_1_1state__t.html | 48 + .../html/unionArgoProtocol-members.html | 44 +- docs/doxygen/html/unionArgoProtocol.html | 233 +- .../html/unionArgoProtocolWREM3-members.html | 102 + docs/doxygen/html/unionArgoProtocolWREM3.html | 550 ++ .../unionArgoProtocolWREM3__coll__graph.map | 5 + .../unionArgoProtocolWREM3__coll__graph.md5 | 1 + .../unionArgoProtocolWREM3__coll__graph.png | Bin 0 -> 8059 bytes docs/doxygen/html/unionBosch144Protocol.html | 126 +- docs/doxygen/html/unionCarrierProtocol.html | 86 +- docs/doxygen/html/unionCoolixProtocol.html | 60 +- docs/doxygen/html/unionCoronaProtocol.html | 70 +- docs/doxygen/html/unionDaikin128Protocol.html | 110 +- docs/doxygen/html/unionDaikin152Protocol.html | 102 +- docs/doxygen/html/unionDaikin160Protocol.html | 78 +- docs/doxygen/html/unionDaikin176Protocol.html | 130 +- docs/doxygen/html/unionDaikin216Protocol.html | 90 +- docs/doxygen/html/unionDaikin2Protocol.html | 242 +- docs/doxygen/html/unionDaikin64Protocol.html | 78 +- docs/doxygen/html/unionDaikinESPProtocol.html | 170 +- docs/doxygen/html/unionDelonghiProtocol.html | 90 +- docs/doxygen/html/unionEcoclimProtocol.html | 102 +- docs/doxygen/html/unionElectraProtocol.html | 118 +- docs/doxygen/html/unionFujitsuProtocol.html | 150 +- .../html/unionGoodweatherProtocol.html | 78 +- docs/doxygen/html/unionGreeProtocol.html | 134 +- .../doxygen/html/unionHaierAc160Protocol.html | 178 +- .../doxygen/html/unionHaierAc176Protocol.html | 174 +- docs/doxygen/html/unionHaierProtocol.html | 90 +- docs/doxygen/html/unionHitachi1Protocol.html | 90 +- .../doxygen/html/unionHitachi424Protocol.html | 86 +- .../html/unionHitachiAC264Protocol.html | 70 +- .../html/unionHitachiAC296Protocol.html | 134 +- docs/doxygen/html/unionHitachiProtocol.html | 66 +- docs/doxygen/html/unionKelonProtocol.html | 74 +- .../doxygen/html/unionKelvinatorProtocol.html | 142 +- docs/doxygen/html/unionLGProtocol.html | 38 +- docs/doxygen/html/unionMideaProtocol.html | 86 +- docs/doxygen/html/unionMirage120Protocol.html | 330 +- .../html/unionMitsubishi112Protocol.html | 74 +- .../html/unionMitsubishi136Protocol.html | 54 +- .../html/unionMitsubishi144Protocol.html | 158 +- .../html/unionMitsubishi152Protocol.html | 114 +- .../html/unionMitsubishi88Protocol.html | 70 +- docs/doxygen/html/unionNeoclimaProtocol.html | 130 +- .../html/unionPanasonicAc32Protocol.html | 52 +- docs/doxygen/html/unionRhossProtocol.html | 78 +- docs/doxygen/html/unionSamsungProtocol.html | 316 +- docs/doxygen/html/unionSanyoAc88Protocol.html | 98 +- docs/doxygen/html/unionSanyoProtocol.html | 100 +- docs/doxygen/html/unionSharpProtocol.html | 114 +- docs/doxygen/html/unionTcl112Protocol.html | 158 +- docs/doxygen/html/unionTechnibelProtocol.html | 82 +- docs/doxygen/html/unionTecoProtocol.html | 74 +- docs/doxygen/html/unionToshibaProtocol.html | 88 +- docs/doxygen/html/unionTranscoldProtocol.html | 34 +- .../doxygen/html/unionTrotec3550Protocol.html | 86 +- docs/doxygen/html/unionTrotecProtocol.html | 78 +- docs/doxygen/html/unionTrumaProtocol.html | 58 +- docs/doxygen/html/unionVestelProtocol.html | 132 +- docs/doxygen/html/unionVoltasProtocol.html | 126 +- docs/doxygen/html/unionWhirlpoolProtocol.html | 174 +- .../html/unionYorkProtocol-members.html | 98 + docs/doxygen/html/unionYorkProtocol.html | 418 ++ docs/doxygen/html/unionmagiquest-members.html | 2 +- docs/doxygen/html/unionmagiquest.html | 26 +- keywords.txt | 196 +- library.json | 2 +- library.properties | 2 +- src/IRremoteESP8266.h | 2 +- 821 files changed, 34468 insertions(+), 20836 deletions(-) create mode 100644 docs/doxygen/html/classIRArgoACBase-members.html create mode 100644 docs/doxygen/html/classIRArgoACBase.html create mode 100644 docs/doxygen/html/classIRArgoACBase__coll__graph.map create mode 100644 docs/doxygen/html/classIRArgoACBase__coll__graph.md5 create mode 100644 docs/doxygen/html/classIRArgoACBase__coll__graph.png create mode 100644 docs/doxygen/html/classIRArgoAC__WREM3-members.html create mode 100644 docs/doxygen/html/classIRArgoAC__WREM3.html create mode 100644 docs/doxygen/html/classIRArgoAC__WREM3__coll__graph.map create mode 100644 docs/doxygen/html/classIRArgoAC__WREM3__coll__graph.md5 create mode 100644 docs/doxygen/html/classIRArgoAC__WREM3__coll__graph.png create mode 100644 docs/doxygen/html/classIRArgoAC__WREM3__inherit__graph.map create mode 100644 docs/doxygen/html/classIRArgoAC__WREM3__inherit__graph.md5 create mode 100644 docs/doxygen/html/classIRArgoAC__WREM3__inherit__graph.png create mode 100644 docs/doxygen/html/classIRArgoAC__inherit__graph.map create mode 100644 docs/doxygen/html/classIRArgoAC__inherit__graph.md5 create mode 100644 docs/doxygen/html/classIRArgoAC__inherit__graph.png create mode 100644 docs/doxygen/html/classIRYorkAc-members.html create mode 100644 docs/doxygen/html/classIRYorkAc.html create mode 100644 docs/doxygen/html/classIRYorkAc__coll__graph.map create mode 100644 docs/doxygen/html/classIRYorkAc__coll__graph.md5 create mode 100644 docs/doxygen/html/classIRYorkAc__coll__graph.png create mode 100644 docs/doxygen/html/functions_vars_k.html create mode 100644 docs/doxygen/html/inherit_graph_128.map create mode 100644 docs/doxygen/html/inherit_graph_128.md5 create mode 100644 docs/doxygen/html/inherit_graph_128.png create mode 100644 docs/doxygen/html/inherit_graph_129.map create mode 100644 docs/doxygen/html/inherit_graph_129.md5 create mode 100644 docs/doxygen/html/inherit_graph_129.png create mode 100644 docs/doxygen/html/inherit_graph_130.map create mode 100644 docs/doxygen/html/inherit_graph_130.md5 create mode 100644 docs/doxygen/html/inherit_graph_130.png create mode 100644 docs/doxygen/html/inherit_graph_131.map create mode 100644 docs/doxygen/html/inherit_graph_131.md5 create mode 100644 docs/doxygen/html/inherit_graph_131.png create mode 100644 docs/doxygen/html/inherit_graph_132.map create mode 100644 docs/doxygen/html/inherit_graph_132.md5 create mode 100644 docs/doxygen/html/inherit_graph_132.png create mode 100644 docs/doxygen/html/inherit_graph_133.map create mode 100644 docs/doxygen/html/inherit_graph_133.md5 create mode 100644 docs/doxygen/html/inherit_graph_133.png create mode 100644 docs/doxygen/html/inherit_graph_134.map create mode 100644 docs/doxygen/html/inherit_graph_134.md5 create mode 100644 docs/doxygen/html/inherit_graph_134.png create mode 100644 docs/doxygen/html/ir__Gorenje_8cpp.html create mode 100644 docs/doxygen/html/ir__Wowwee_8cpp.html create mode 100644 docs/doxygen/html/ir__York_8cpp.html create mode 100644 docs/doxygen/html/ir__York_8h.html create mode 100644 docs/doxygen/html/ir__York_8h_source.html create mode 100644 docs/doxygen/html/nl-NL_8h.html create mode 100644 docs/doxygen/html/nl-NL_8h_source.html create mode 100644 docs/doxygen/html/search/classes_13.html create mode 100644 docs/doxygen/html/search/classes_13.js create mode 100644 docs/doxygen/html/search/enums_c.html create mode 100644 docs/doxygen/html/search/enums_c.js create mode 100644 docs/doxygen/html/search/files_8.html create mode 100644 docs/doxygen/html/search/files_8.js create mode 100644 docs/doxygen/html/structArgoProtocolWREM3_1_1Config-members.html create mode 100644 docs/doxygen/html/structArgoProtocolWREM3_1_1Config.html create mode 100644 docs/doxygen/html/structArgoProtocolWREM3_1_1Timer-members.html create mode 100644 docs/doxygen/html/structArgoProtocolWREM3_1_1Timer.html create mode 100644 docs/doxygen/html/unionArgoProtocolWREM3-members.html create mode 100644 docs/doxygen/html/unionArgoProtocolWREM3.html create mode 100644 docs/doxygen/html/unionArgoProtocolWREM3__coll__graph.map create mode 100644 docs/doxygen/html/unionArgoProtocolWREM3__coll__graph.md5 create mode 100644 docs/doxygen/html/unionArgoProtocolWREM3__coll__graph.png create mode 100644 docs/doxygen/html/unionYorkProtocol-members.html create mode 100644 docs/doxygen/html/unionYorkProtocol.html diff --git a/README.md b/README.md index b15ef1abe..47178861a 100644 --- a/README.md +++ b/README.md @@ -10,8 +10,8 @@ This library enables you to **send _and_ receive** infra-red signals on an [ESP8266](https://github.com/esp8266/Arduino) or an [ESP32](https://github.com/espressif/arduino-esp32) using the [Arduino framework](https://www.arduino.cc/) using common 940nm IR LEDs and common IR receiver modules. e.g. TSOP{17,22,24,36,38,44,48}* demodulators etc. -## v2.8.4 Now Available -Version 2.8.4 of the library is now [available](https://github.com/crankyoldgit/IRremoteESP8266/releases/latest). You can view the [Release Notes](ReleaseNotes.md) for all the significant changes. +## v2.8.5 Now Available +Version 2.8.5 of the library is now [available](https://github.com/crankyoldgit/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 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/crankyoldgit/IRremoteESP8266/wiki/Upgrading-to-v2.0) page. diff --git a/README_de.md b/README_de.md index 51c18c482..f55860528 100644 --- a/README_de.md +++ b/README_de.md @@ -11,8 +11,8 @@ Diese Programmbibliothek ermöglicht das **Senden _und_ Empfangen** von Infrarotsignalen mit [ESP8266](https://github.com/esp8266/Arduino)- und [ESP32](https://github.com/espressif/arduino-esp32)-Mikrocontrollern mithilfe des [Arduino-Frameworks](https://www.arduino.cc/) und handelsüblichen 940nm Infrarot-LEDs undIR-Empfängermodulen, wie zum Beispiel TSOP{17,22,24,36,38,44,48}*-Demodulatoren. -## v2.8.4 jetzt verfügbar -Version 2.8.4 der Bibliothek ist nun [verfügbar](https://github.com/crankyoldgit/IRremoteESP8266/releases/latest). Die [Versionshinweise](ReleaseNotes.md) enthalten alle wichtigen Neuerungen. +## v2.8.5 jetzt verfügbar +Version 2.8.5 der Bibliothek ist nun [verfügbar](https://github.com/crankyoldgit/IRremoteESP8266/releases/latest). Die [Versionshinweise](ReleaseNotes.md) enthalten alle wichtigen Neuerungen. #### Hinweis für Nutzer von Versionen vor v2.0 Die Benutzung der Bibliothek hat sich mit Version 2.0 leicht geändert. Einige Anpassungen im aufrufenden Code werden nötig sein, um mit Version ab 2.0 korrekt zu funktionieren. Mehr zu den Anpassungen finden sich auf unserer [Upgrade to v2.0](https://github.com/crankyoldgit/IRremoteESP8266/wiki/Upgrading-to-v2.0)-Seite. diff --git a/README_fr.md b/README_fr.md index 71e436fc3..430d32de3 100644 --- a/README_fr.md +++ b/README_fr.md @@ -10,8 +10,8 @@ Cette librairie vous permetra de **recevoir et d'envoyer des signaux** infrarouge sur le protocole [ESP8266](https://github.com/esp8266/Arduino) ou sur le protocole [ESP32](https://github.com/espressif/arduino-esp32) en utilisant le [Arduino framework](https://www.arduino.cc/) qui utilise la norme 940nm IR LEDs et le module basique de reception d'onde IR. Exemple : TSOP{17,22,24,36,38,44,48}* modules etc. -## v2.8.4 disponible -Version 2.8.4 de la libraire est maintenant [disponible](https://github.com/crankyoldgit/IRremoteESP8266/releases/latest). Vous pouvez voir le [Release Notes](ReleaseNotes.md) pour tous les changements importants. +## v2.8.5 disponible +Version 2.8.5 de la libraire est maintenant [disponible](https://github.com/crankyoldgit/IRremoteESP8266/releases/latest). Vous pouvez voir le [Release Notes](ReleaseNotes.md) pour tous les changements importants. #### mise à jour depuis pre-v2.0 L'utilisation de la librairie à un peu changer depuis la version in v2.0. Si vous voulez l'utiliser vous devrez changer votre utilisation aussi. Vous pouvez vous renseigner sur les précondition d'utilisation ici : [Upgrade to v2.0](https://github.com/crankyoldgit/IRremoteESP8266/wiki/Upgrading-to-v2.0) page. diff --git a/README_nl.md b/README_nl.md index d85c3e9b1..fdea85cae 100644 --- a/README_nl.md +++ b/README_nl.md @@ -10,8 +10,8 @@ Deze library maakt het mogelijk om Infraroodsignalen **te versturen en ontvangen** via het [Arduino framework](https://www.arduino.cc/) met veelgebruikte 940nm IR LEDs en IR ontvang modules. b.v. TSOP{17,22,24,36,38,44,48}* demodulatoren enz. -## v2.8.4 nu beschikbaar -Versie 2.8.4 van de bibliotheek is nu [beschikbaar](https://github.com/crankyoldgit/IRremoteESP8266/releases/latest). Bekijk de [Release Notes](ReleaseNotes.md) voor alle belangrijke veranderingen. +## v2.8.5 nu beschikbaar +Versie 2.8.5 van de bibliotheek is nu [beschikbaar](https://github.com/crankyoldgit/IRremoteESP8266/releases/latest). Bekijk de [Release Notes](ReleaseNotes.md) voor alle belangrijke veranderingen. #### Upgraden vanaf pre-v2.0 Het gebruik van de bibliotheek is enigszins gewijzigd in v2.0. Je zult het gebruik moeten aanpassen om te kunnen werken met v2.0 en hoger. Je kunt meer lezen over de vereiste aanpassingen op onze [Upgraden naar v2.0](https://github.com/crankyoldgit/IRremoteESP8266/wiki/Upgrading-to-v2.0) pagina. diff --git a/ReleaseNotes.md b/ReleaseNotes.md index 0370c91a6..d9e86c7e3 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -1,5 +1,41 @@ # Release Notes +## _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.4 (20220918)_ **[Bug Fixes]** diff --git a/SupportedProtocols.md b/SupportedProtocols.md index 422a5bf2d..46b65ca5e 100644 --- a/SupportedProtocols.md +++ b/SupportedProtocols.md @@ -1,6 +1,6 @@ + Last generated: Mon 08 May 2023 07:06:16 +0000 ---> # IR Protocols supported by this library | Protocol | Brand | Model | A/C Model | Detailed A/C Support | @@ -9,11 +9,11 @@ | [Airwell](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Airwell.cpp) | **[Airwell](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Airwell.h)** | DLS 21 DCI R410 AW A/C
RC04 remote
RC08W remote | | Yes | | [Aiwa](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Aiwa.cpp) | **Aiwa** | RC-T501 RCU | | - | | [Amcor](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Amcor.cpp) | **[Amcor](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Amcor.h)** | ADR-853H A/C
TAC-444 remote
TAC-495 remote | | Yes | -| [Argo](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Argo.cpp) | **[Argo](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Argo.h)** | Ulisse 13 DCI Mobile Split A/C | | Yes | +| [Argo](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Argo.cpp) | **[Argo](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Argo.h)** | Ulisse 13 DCI Mobile Split A/C [WREM2 remote]
Ulisse Eco Mobile Split A/C (Wifi) [WREM3 remote] | SAC_WREM2
SAC_WREM3 | Yes | | [Arris](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Arris.cpp) | **Arris** | 120A V1.0 A18 remote
VIP1113M Set-top box | | - | | [Bosch](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Bosch.cpp) | **[Bosch](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Bosch.h)** | CL3000i-Set 26 E A/C
RG10A(G2S)BGEF remote | | Yes | | [Bose](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Bose.cpp) | **Bose** | Bose TV Speaker | | - | -| [Carrier](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Carrier.cpp) | **[Carrier](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Carrier.h)** | 40GKX0E2006 remote (CARRIER_AC128) | | Yes | +| [Carrier](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Carrier.cpp) | **[Carrier](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Carrier.h)** | 3021203 RR03-S-Remote (CARRIER_AC84)
342WM100CT A/C (CARRIER_AC84)
40GKX0E2006 remote (CARRIER_AC128) | | Yes | | [Carrier](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Carrier.cpp) | **[Carrier/Surrey](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Carrier.h)** | 42QG5A55970 remote
53NGK009/012 Inverter
619EGX0090E0 A/C
619EGX0120E0 A/C
619EGX0180E0 A/C
619EGX0220E0 A/C | | Yes | | [ClimaButler](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_ClimaButler.cpp) | **Clima-Butler** | AR-715 remote
RCS-SD43UWI A/C | | - | | [Coolix](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Coolix.cpp) | **[Airwell](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Coolix.h)** | RC08B remote | | Yes | @@ -35,6 +35,7 @@ | [Electra](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Electra.cpp) | **[AUX](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Electra.h)** | KFR-35GW/BpNFW=3 A/C
YKR-T/011 remote | | Yes | | [Electra](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Electra.cpp) | **[Centek](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Electra.h)** | SCT-65Q09 A/C
YKR-P/002E remote | | Yes | | [Electra](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Electra.cpp) | **[Electra](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Electra.h)** | Classic INV 17 / AXW12DCS A/C
YKR-M/003E remote | | Yes | +| [Electra](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Electra.cpp) | **[Electrolux](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Electra.h)** | YKR-H/531E A/C | | Yes | | [Electra](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Electra.cpp) | **[Frigidaire](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Electra.h)** | FGPC102AB1 A/C | | Yes | | [Electra](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Electra.cpp) | **[Subtropic](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Electra.h)** | SUB-07HN1_18Y A/C
YKR-H/102E remote | | Yes | | [EliteScreens](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_EliteScreens.cpp) | **Elite Screens** | CineTension2 / CineTension3 series
Home2 / Home3 series
Spectrum series
VMAX Plus4 series
VMAX2 / VMAX2 Plus series
ZSP-IR-B / ZSP-IR-W remote | | - | @@ -46,6 +47,7 @@ | [GICable](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_GICable.cpp) | **G.I. Cable** | XRC-200 remote | | - | | [GlobalCache](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_GlobalCache.cpp) | **Global Cache** | Control Tower IR DB | | - | | [Goodweather](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Goodweather.cpp) | **[Goodweather](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Goodweather.h)** | ZH/JT-03 remote | | Yes | +| [Gorenje](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Gorenje.cpp) | **Gorenje** | DKF 2600 MWT Cooker Hood | | - | | [Gree](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Gree.cpp) | **[Amana](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Gree.h)** | PBC093G00CC A/C
YX1FF remote | YAW1F
YBOFB
YX1FSF | Yes | | [Gree](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Gree.cpp) | **[Cooper & Hunter](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Gree.h)** | CH-S09FTXG A/C
YB1F2 remote | YAW1F
YBOFB
YX1FSF | Yes | | [Gree](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Gree.cpp) | **[EKOKAI](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Gree.h)** | A/C | YAW1F
YBOFB
YX1FSF | Yes | @@ -89,7 +91,7 @@ | [Mirage](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Mirage.cpp) | **[Mirage](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Mirage.h)** | VLU series A/C | KKG29AC1
KKG9AC1 | Yes | | [Mirage](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Mirage.cpp) | **[Tronitechnik](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Mirage.h)** | KKG29A-C1 remote
Reykir 9000 A/C | KKG29AC1
KKG9AC1 | Yes | | [Mitsubishi](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Mitsubishi.cpp) | **[Mitsubishi](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Mitsubishi.h)** | HC3000 Projector (MITSUBISHI2)
KM14A 0179213 remote
MS-GK24VA A/C
TV (MITSUBISHI) | | Yes | -| [Mitsubishi](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Mitsubishi.cpp) | **[Mitsubishi Electric](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Mitsubishi.h)** | 001CP T7WE10714 remote (MITSUBISHI136)
KPOA remote (MITSUBISHI112)
MLZ-RX5017AS A/C (MITSUBISHI_AC)
MSH-A24WV A/C (MITSUBISHI112)
MSZ-FHnnVE A/C (MITSUBISHI_AC)
MSZ-GV2519 A/C (MITSUBISHI_AC)
MSZ-SF25VE3 A/C (MITSUBISHI_AC)
MSZ-ZW4017S A/C (MITSUBISHI_AC)
MUH-A24WV A/C (MITSUBISHI112)
PEAD-RP71JAA Ducted A/C (MITSUBISHI136)
RH151 remote (MITSUBISHI_AC)
RH151/M21ED6426 remote (MITSUBISHI_AC)
SG153/M21EDF426 remote (MITSUBISHI_AC)
SG15D remote (MITSUBISHI_AC) | | Yes | +| [Mitsubishi](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Mitsubishi.cpp) | **[Mitsubishi Electric](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Mitsubishi.h)** | 001CP T7WE10714 remote (MITSUBISHI136)
KPOA remote (MITSUBISHI112)
MLZ-RX5017AS A/C (MITSUBISHI_AC)
MSH-A24WV A/C (MITSUBISHI112)
MSZ-FHnnVE A/C (MITSUBISHI_AC)
MSZ-GV2519 A/C (MITSUBISHI_AC)
MSZ-SF25VE3 A/C (MITSUBISHI_AC)
MSZ-ZW4017S A/C (MITSUBISHI_AC)
MUH-A24WV A/C (MITSUBISHI112)
PAR-FA32MA remote (MITSUBISHI136)
PEAD-RP71JAA Ducted A/C (MITSUBISHI136)
RH151 remote (MITSUBISHI_AC)
RH151/M21ED6426 remote (MITSUBISHI_AC)
SG153/M21EDF426 remote (MITSUBISHI_AC)
SG15D remote (MITSUBISHI_AC) | | Yes | | [MitsubishiHeavy](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_MitsubishiHeavy.cpp) | **[Mitsubishi Heavy Industries](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_MitsubishiHeavy.h)** | RKX502A001C remote (88 bit)
RLA502A700B remote (152 bit)
SRKxxZJ-S A/C (88 bit)
SRKxxZM-S A/C (152 bit)
SRKxxZMXA-S A/C (152 bit) | | Yes | | [Multibrackets](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Multibrackets.cpp) | **Multibrackets** | Motorized Swing mount large - 4500 | | - | | [NEC](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_NEC.cpp) | **[Aloka](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_NEC.h)** | SleepyLights LED Lamp | | - | @@ -137,7 +139,9 @@ | [Voltas](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Voltas.cpp) | **[Voltas](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Voltas.h)** | 122LZF 4011252 Window A/C | 122LZF | Yes | | [Whirlpool](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Whirlpool.cpp) | **[Whirlpool](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Whirlpool.h)** | DG11J1-04 remote
DG11J1-3A remote
DG11J1-91 remote
SPIS409L A/C
SPIS412L A/C
SPIW409L A/C
SPIW412L A/C
SPIW418L A/C | DG11J13A
DG11J191 | Yes | | [Whynter](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Whynter.cpp) | **Whynter** | ARC-110WD A/C | | - | +| [Wowwee](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Wowwee.cpp) | **WowWee** | RoboRapter-X | | - | | [Xmp](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Xmp.cpp) | **Xfinity** | XR11 remote
XR2 remote | | - | +| [York](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_York.cpp) | **[York](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_York.h)** | GRYLH2A remote
MHH07P17 A/C | | Yes | | [Zepeal](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Zepeal.cpp) | **Zepeal** | DRT-A3311(BG) 5 button remote
DRT-A3311(BG) floor fan | | - | @@ -164,6 +168,7 @@ - CARRIER_AC128 - CARRIER_AC40 - CARRIER_AC64 +- CARRIER_AC84 - CLIMABUTLER - COOLIX - COOLIX48 @@ -189,6 +194,7 @@ - FUJITSU_AC - GICABLE - GOODWEATHER +- GORENJE - GREE - HAIER_AC - HAIER_AC160 @@ -267,5 +273,7 @@ - VOLTAS - WHIRLPOOL_AC - WHYNTER +- WOWWEE - XMP +- YORK - ZEPEAL diff --git a/docs/doxygen/html/IRac_8h_source.html b/docs/doxygen/html/IRac_8h_source.html index 38e30a7f9..6ac997213 100644 --- a/docs/doxygen/html/IRac_8h_source.html +++ b/docs/doxygen/html/IRac_8h_source.html @@ -76,686 +76,715 @@
5 
6 #ifndef UNIT_TEST
7 #include <Arduino.h>
-
8 #endif
-
9 #include "IRremoteESP8266.h"
-
10 #include "ir_Airton.h"
-
11 #include "ir_Airwell.h"
-
12 #include "ir_Amcor.h"
-
13 #include "ir_Argo.h"
-
14 #include "ir_Bosch.h"
-
15 #include "ir_Carrier.h"
-
16 #include "ir_Coolix.h"
-
17 #include "ir_Corona.h"
-
18 #include "ir_Daikin.h"
-
19 #include "ir_Delonghi.h"
-
20 #include "ir_Fujitsu.h"
-
21 #include "ir_Ecoclim.h"
-
22 #include "ir_Electra.h"
-
23 #include "ir_Goodweather.h"
-
24 #include "ir_Gree.h"
-
25 #include "ir_Haier.h"
-
26 #include "ir_Hitachi.h"
-
27 #include "ir_Kelon.h"
-
28 #include "ir_Kelvinator.h"
-
29 #include "ir_LG.h"
-
30 #include "ir_Midea.h"
-
31 #include "ir_Mirage.h"
-
32 #include "ir_Mitsubishi.h"
-
33 #include "ir_MitsubishiHeavy.h"
-
34 #include "ir_Neoclima.h"
-
35 #include "ir_Panasonic.h"
-
36 #include "ir_Rhoss.h"
-
37 #include "ir_Samsung.h"
-
38 #include "ir_Sanyo.h"
-
39 #include "ir_Sharp.h"
-
40 #include "ir_Tcl.h"
-
41 #include "ir_Technibel.h"
-
42 #include "ir_Teco.h"
-
43 #include "ir_Toshiba.h"
-
44 #include "ir_Transcold.h"
-
45 #include "ir_Trotec.h"
-
46 #include "ir_Truma.h"
-
47 #include "ir_Vestel.h"
-
48 #include "ir_Voltas.h"
-
49 #include "ir_Whirlpool.h"
-
50 
-
51 // Constants
-
52 const int8_t kGpioUnused = -1;
+
8 #else
+
9 #include <memory>
+
10 #endif
+
11 #include "IRremoteESP8266.h"
+
12 #include "ir_Airton.h"
+
13 #include "ir_Airwell.h"
+
14 #include "ir_Amcor.h"
+
15 #include "ir_Argo.h"
+
16 #include "ir_Bosch.h"
+
17 #include "ir_Carrier.h"
+
18 #include "ir_Coolix.h"
+
19 #include "ir_Corona.h"
+
20 #include "ir_Daikin.h"
+
21 #include "ir_Delonghi.h"
+
22 #include "ir_Fujitsu.h"
+
23 #include "ir_Ecoclim.h"
+
24 #include "ir_Electra.h"
+
25 #include "ir_Goodweather.h"
+
26 #include "ir_Gree.h"
+
27 #include "ir_Haier.h"
+
28 #include "ir_Hitachi.h"
+
29 #include "ir_Kelon.h"
+
30 #include "ir_Kelvinator.h"
+
31 #include "ir_LG.h"
+
32 #include "ir_Midea.h"
+
33 #include "ir_Mirage.h"
+
34 #include "ir_Mitsubishi.h"
+
35 #include "ir_MitsubishiHeavy.h"
+
36 #include "ir_Neoclima.h"
+
37 #include "ir_Panasonic.h"
+
38 #include "ir_Rhoss.h"
+
39 #include "ir_Samsung.h"
+
40 #include "ir_Sanyo.h"
+
41 #include "ir_Sharp.h"
+
42 #include "ir_Tcl.h"
+
43 #include "ir_Technibel.h"
+
44 #include "ir_Teco.h"
+
45 #include "ir_Toshiba.h"
+
46 #include "ir_Transcold.h"
+
47 #include "ir_Trotec.h"
+
48 #include "ir_Truma.h"
+
49 #include "ir_Vestel.h"
+
50 #include "ir_Voltas.h"
+
51 #include "ir_Whirlpool.h"
+
52 #include "ir_York.h"
53 
-
54 // Class
-
56 class IRac {
-
57  public:
-
58  explicit IRac(const uint16_t pin, const bool inverted = false,
-
59  const bool use_modulation = true);
-
60  static bool isProtocolSupported(const decode_type_t protocol);
-
61  static void initState(stdAc::state_t *state,
-
62  const decode_type_t vendor, const int16_t model,
-
63  const bool power, const stdAc::opmode_t mode,
-
64  const float degrees, const bool celsius,
-
65  const stdAc::fanspeed_t fan,
-
66  const stdAc::swingv_t swingv,
-
67  const stdAc::swingh_t swingh,
-
68  const bool quiet, const bool turbo, const bool econo,
-
69  const bool light, const bool filter, const bool clean,
-
70  const bool beep, const int16_t sleep,
-
71  const int16_t clock);
-
72  static void initState(stdAc::state_t *state);
-
73  void markAsSent(void);
-
74  bool sendAc(void);
-
75  bool sendAc(const stdAc::state_t desired, const stdAc::state_t *prev = NULL);
-
76  bool sendAc(const decode_type_t vendor, const int16_t model,
-
77  const bool power, const stdAc::opmode_t mode, const float degrees,
-
78  const bool celsius, const stdAc::fanspeed_t fan,
-
79  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
80  const bool quiet, const bool turbo, const bool econo,
-
81  const bool light, const bool filter, const bool clean,
-
82  const bool beep, const int16_t sleep = -1,
-
83  const int16_t clock = -1);
-
84  static bool cmpStates(const stdAc::state_t a, const stdAc::state_t b);
-
85  static bool strToBool(const char *str, const bool def = false);
-
86  static int16_t strToModel(const char *str, const int16_t def = -1);
-
87  static stdAc::opmode_t strToOpmode(
-
88  const char *str, const stdAc::opmode_t def = stdAc::opmode_t::kAuto);
-
89  static stdAc::fanspeed_t strToFanspeed(
-
90  const char *str,
-
91  const stdAc::fanspeed_t def = stdAc::fanspeed_t::kAuto);
-
92  static stdAc::swingv_t strToSwingV(
-
93  const char *str, const stdAc::swingv_t def = stdAc::swingv_t::kOff);
-
94  static stdAc::swingh_t strToSwingH(
-
95  const char *str, const stdAc::swingh_t def = stdAc::swingh_t::kOff);
-
96  static String boolToString(const bool value);
-
97  static String opmodeToString(const stdAc::opmode_t mode,
-
98  const bool ha = false);
-
99  static String fanspeedToString(const stdAc::fanspeed_t speed);
-
100  static String swingvToString(const stdAc::swingv_t swingv);
-
101  static String swinghToString(const stdAc::swingh_t swingh);
-
102  stdAc::state_t getState(void);
-
103  stdAc::state_t getStatePrev(void);
-
104  bool hasStateChanged(void);
-
105  stdAc::state_t next;
-
106 #ifndef UNIT_TEST
-
107 
-
108  private:
-
109 #endif
-
110  uint16_t _pin;
-
111  bool _inverted;
-
112  bool _modulation;
-
113  stdAc::state_t _prev;
-
114 #if SEND_AIRTON
-
115  void airton(IRAirtonAc *ac,
-
116  const bool on, const stdAc::opmode_t mode,
-
117  const float degrees, const stdAc::fanspeed_t fan,
-
118  const stdAc::swingv_t swingv, const bool turbo,
-
119  const bool light, const bool econo, const bool filter,
-
120  const int16_t sleep = -1);
-
121 #endif // SEND_AIRTON
-
122 #if SEND_AIRWELL
-
123  void airwell(IRAirwellAc *ac,
-
124  const bool on, const stdAc::opmode_t mode, const float degrees,
-
125  const stdAc::fanspeed_t fan);
-
126 #endif // SEND_AIRWELL
-
127 #if SEND_AMCOR
-
128  void amcor(IRAmcorAc *ac,
-
129  const bool on, const stdAc::opmode_t mode, const float degrees,
-
130  const stdAc::fanspeed_t fan);
-
131 #endif // SEND_AMCOR
-
132 #if SEND_ARGO
-
133  void argo(IRArgoAC *ac,
-
134  const bool on, const stdAc::opmode_t mode, const float degrees,
-
135  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
136  const bool turbo, const int16_t sleep = -1);
-
137 #endif // SEND_ARGO
-
138 #if SEND_BOSCH144
-
139  void bosch144(IRBosch144AC *ac,
-
140  const bool on, const stdAc::opmode_t mode, const float degrees,
-
141  const stdAc::fanspeed_t fan,
-
142  const bool quiet);
-
143 #endif // SEND_COOLIX
-
144 #if SEND_CARRIER_AC64
-
145 void carrier64(IRCarrierAc64 *ac,
-
146  const bool on, const stdAc::opmode_t mode,
-
147  const float degrees, const stdAc::fanspeed_t fan,
-
148  const stdAc::swingv_t swingv, const int16_t sleep = -1);
-
149 #endif // SEND_CARRIER_AC64
-
150 #if SEND_COOLIX
-
151  void coolix(IRCoolixAC *ac,
-
152  const bool on, const stdAc::opmode_t mode, const float degrees,
-
153  const stdAc::fanspeed_t fan,
-
154  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
155  const bool turbo, const bool light, const bool clean,
-
156  const int16_t sleep = -1);
-
157 #endif // SEND_COOLIX
-
158 #if SEND_CORONA_AC
-
159  void corona(IRCoronaAc *ac,
-
160  const bool on, const stdAc::opmode_t mode,
-
161  const float degrees, const stdAc::fanspeed_t fan,
-
162  const stdAc::swingv_t swingv, const bool econo);
-
163 #endif // SEND_CORONA_AC
-
164 #if SEND_DAIKIN
-
165  void daikin(IRDaikinESP *ac,
-
166  const bool on, const stdAc::opmode_t mode, const float degrees,
-
167  const stdAc::fanspeed_t fan,
-
168  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
169  const bool quiet, const bool turbo, const bool econo,
-
170  const bool clean);
-
171 #endif // SEND_DAIKIN
-
172 #if SEND_DAIKIN128
-
173  void daikin128(IRDaikin128 *ac,
-
174  const bool on, const stdAc::opmode_t mode,
-
175  const float degrees, const stdAc::fanspeed_t fan,
-
176  const stdAc::swingv_t swingv,
-
177  const bool quiet, const bool turbo, const bool light,
-
178  const bool econo, const int16_t sleep = -1,
-
179  const int16_t clock = -1);
-
180 #endif // SEND_DAIKIN128
-
181 #if SEND_DAIKIN152
-
182  void daikin152(IRDaikin152 *ac,
-
183  const bool on, const stdAc::opmode_t mode,
-
184  const float degrees, const stdAc::fanspeed_t fan,
-
185  const stdAc::swingv_t swingv,
-
186  const bool quiet, const bool turbo, const bool econo);
-
187 #endif // SEND_DAIKIN152
-
188 #if SEND_DAIKIN160
-
189  void daikin160(IRDaikin160 *ac,
-
190  const bool on, const stdAc::opmode_t mode,
-
191  const float degrees, const stdAc::fanspeed_t fan,
-
192  const stdAc::swingv_t swingv);
-
193 #endif // SEND_DAIKIN160
-
194 #if SEND_DAIKIN176
-
195  void daikin176(IRDaikin176 *ac,
-
196  const bool on, const stdAc::opmode_t mode,
-
197  const float degrees, const stdAc::fanspeed_t fan,
-
198  const stdAc::swingh_t swingh);
-
199 #endif // SEND_DAIKIN176
-
200 #if SEND_DAIKIN2
-
201  void daikin2(IRDaikin2 *ac,
-
202  const bool on, const stdAc::opmode_t mode,
-
203  const float degrees, const stdAc::fanspeed_t fan,
-
204  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
205  const bool quiet, const bool turbo, const bool light,
-
206  const bool econo, const bool filter, const bool clean,
-
207  const bool beep, const int16_t sleep = -1,
-
208  const int16_t clock = -1);
-
209 #endif // SEND_DAIKIN2
-
210 #if SEND_DAIKIN216
-
211 void daikin216(IRDaikin216 *ac,
-
212  const bool on, const stdAc::opmode_t mode,
-
213  const float degrees, const stdAc::fanspeed_t fan,
-
214  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
215  const bool quiet, const bool turbo);
-
216 #endif // SEND_DAIKIN216
-
217 #if SEND_DAIKIN64
-
218  void daikin64(IRDaikin64 *ac,
-
219  const bool on, const stdAc::opmode_t mode,
-
220  const float degrees, const stdAc::fanspeed_t fan,
-
221  const stdAc::swingv_t swingv,
-
222  const bool quiet, const bool turbo,
-
223  const int16_t sleep = -1, const int16_t clock = -1);
-
224 #endif // SEND_DAIKIN64
-
225 #if SEND_DELONGHI_AC
-
226  void delonghiac(IRDelonghiAc *ac,
-
227  const bool on, const stdAc::opmode_t mode, const bool celsius,
-
228  const float degrees, const stdAc::fanspeed_t fan,
-
229  const bool turbo, const int16_t sleep = -1);
-
230 #endif // SEND_DELONGHI_AC
-
231 #if SEND_ECOCLIM
-
232 void ecoclim(IREcoclimAc *ac,
-
233  const bool on, const stdAc::opmode_t mode,
-
234  const float degrees, const stdAc::fanspeed_t fan,
-
235  const int16_t sleep = -1, const int16_t clock = -1);
-
236 #endif // SEND_ECOCLIM
-
237 #if SEND_ELECTRA_AC
-
238 void electra(IRElectraAc *ac,
-
239  const bool on, const stdAc::opmode_t mode,
-
240  const float degrees, const stdAc::fanspeed_t fan,
-
241  const stdAc::swingv_t swingv,
-
242  const stdAc::swingh_t swingh, const bool turbo,
-
243  const bool lighttoggle, const bool clean);
-
244 #endif // SEND_ELECTRA_AC
-
245 #if SEND_FUJITSU_AC
-
246  void fujitsu(IRFujitsuAC *ac, const fujitsu_ac_remote_model_t model,
-
247  const bool on, const stdAc::opmode_t mode,
-
248  const bool celsius, const float degrees,
-
249  const stdAc::fanspeed_t fan,
-
250  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
251  const bool quiet, const bool turbo, const bool econo,
-
252  const bool filter, const bool clean, const int16_t sleep = -1);
-
253 #endif // SEND_FUJITSU_AC
-
254 #if SEND_GOODWEATHER
-
255  void goodweather(IRGoodweatherAc *ac,
-
256  const bool on, const stdAc::opmode_t mode,
-
257  const float degrees,
-
258  const stdAc::fanspeed_t fan,
-
259  const stdAc::swingv_t swingv,
-
260  const bool turbo, const bool light,
-
261  const int16_t sleep = -1);
-
262 #endif // SEND_GOODWEATHER
-
263 #if SEND_GREE
-
264  void gree(IRGreeAC *ac, const gree_ac_remote_model_t model,
-
265  const bool on, const stdAc::opmode_t mode, const bool celsius,
-
266  const float degrees, const stdAc::fanspeed_t fan,
-
267  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
268  const bool turbo, const bool econo, const bool light,
-
269  const bool clean, const int16_t sleep = -1);
-
270 #endif // SEND_GREE
-
271 #if SEND_HAIER_AC
-
272  void haier(IRHaierAC *ac,
-
273  const bool on, const stdAc::opmode_t mode, const float degrees,
-
274  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
275  const bool filter, const int16_t sleep = -1,
-
276  const int16_t clock = -1);
-
277 #endif // SEND_HAIER_AC
-
278 #if SEND_HAIER_AC160
-
279  void haier160(IRHaierAC160 *ac,
-
280  const bool on, const stdAc::opmode_t mode, const bool celsius,
-
281  const float degrees, const stdAc::fanspeed_t fan,
-
282  const stdAc::swingv_t swingv,
-
283  const bool turbo, const bool quiet, const bool filter,
-
284  const bool clean, const bool light, const bool prevlight,
-
285  const int16_t sleep = -1);
-
286 #endif // SEND_HAIER_AC160
-
287 #if SEND_HAIER_AC176
-
288  void haier176(IRHaierAC176 *ac,
-
289  const haier_ac176_remote_model_t model, const bool on,
-
290  const stdAc::opmode_t mode, const bool celsius,
-
291  const float degrees, const stdAc::fanspeed_t fan,
-
292  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
293  const bool turbo, const bool quiet, const bool filter,
-
294  const int16_t sleep = -1);
-
295 #endif // SEND_HAIER_AC176
-
296 #if SEND_HAIER_AC_YRW02
-
297  void haierYrwo2(IRHaierACYRW02 *ac,
-
298  const bool on, const stdAc::opmode_t mode,
-
299  const bool celsius, const float degrees,
-
300  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
301  const stdAc::swingh_t swingh, const bool turbo,
-
302  const bool quiet, const bool filter,
-
303  const int16_t sleep = -1);
-
304 #endif // SEND_HAIER_AC_YRW02
-
305 #if SEND_HITACHI_AC
-
306  void hitachi(IRHitachiAc *ac,
-
307  const bool on, const stdAc::opmode_t mode,
-
308  const float degrees, const stdAc::fanspeed_t fan,
-
309  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh);
-
310 #endif // SEND_HITACHI_AC
-
311 #if SEND_HITACHI_AC1
-
312  void hitachi1(IRHitachiAc1 *ac, const hitachi_ac1_remote_model_t model,
-
313  const bool on, const bool power_toggle,
-
314  const stdAc::opmode_t mode,
-
315  const float degrees, const stdAc::fanspeed_t fan,
-
316  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
317  const bool swing_toggle, const int16_t sleep = -1);
-
318 #endif // SEND_HITACHI_AC1
-
319 #if SEND_HITACHI_AC264
-
320  void hitachi264(IRHitachiAc264 *ac,
-
321  const bool on, const stdAc::opmode_t mode,
-
322  const float degrees, const stdAc::fanspeed_t fan);
-
323 #endif // SEND_HITACHI_AC264
-
324 #if SEND_HITACHI_AC296
-
325  void hitachi296(IRHitachiAc296 *ac,
-
326  const bool on, const stdAc::opmode_t mode,
-
327  const float degrees, const stdAc::fanspeed_t fan);
-
328 #endif // SEND_HITACHI_AC296
-
329 #if SEND_HITACHI_AC344
-
330  void hitachi344(IRHitachiAc344 *ac,
-
331  const bool on, const stdAc::opmode_t mode,
-
332  const float degrees, const stdAc::fanspeed_t fan,
-
333  const stdAc::swingv_t swingv,
-
334  const stdAc::swingh_t swingh);
-
335 #endif // SEND_HITACHI_AC344
-
336 #if SEND_HITACHI_AC424
-
337  void hitachi424(IRHitachiAc424 *ac,
-
338  const bool on, const stdAc::opmode_t mode,
-
339  const float degrees, const stdAc::fanspeed_t fan,
-
340  const stdAc::swingv_t swingv);
-
341 #endif // SEND_HITACHI_AC424
-
342 #if SEND_KELON
-
343  void kelon(IRKelonAc *ac, const bool togglePower, const stdAc::opmode_t mode,
-
344  const int8_t dryGrade, const float degrees,
-
345  const stdAc::fanspeed_t fan, const bool toggleSwing,
-
346  const bool superCool, const int16_t sleep);
-
347 #endif // SEND_KELON
-
348 #if SEND_KELVINATOR
-
349  void kelvinator(IRKelvinatorAC *ac,
-
350  const bool on, const stdAc::opmode_t mode,
-
351  const float degrees, const stdAc::fanspeed_t fan,
-
352  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
353  const bool quiet, const bool turbo, const bool light,
-
354  const bool filter, const bool clean);
-
355 #endif // SEND_KELVINATOR
-
356 #if SEND_LG
-
357  void lg(IRLgAc *ac, const lg_ac_remote_model_t model,
-
358  const bool on, const stdAc::opmode_t mode,
-
359  const float degrees, const stdAc::fanspeed_t fan,
-
360  const stdAc::swingv_t swingv, const stdAc::swingv_t swingv_prev,
-
361  const stdAc::swingh_t swingh, const bool light);
-
362 #endif // SEND_LG
-
363 #if SEND_MIDEA
-
364  void midea(IRMideaAC *ac,
-
365  const bool on, const stdAc::opmode_t mode, const bool celsius,
-
366  const float degrees, const stdAc::fanspeed_t fan,
-
367  const stdAc::swingv_t swingv,
-
368  const bool quiet, const bool quiet_prev, const bool turbo,
-
369  const bool econo, const bool light, const bool clean,
-
370  const int16_t sleep = -1);
-
371 #endif // SEND_MIDEA
-
372 #if SEND_MIRAGE
-
373  void mirage(IRMirageAc *ac, const stdAc::state_t state);
-
374 #endif // SEND_MIRAGE
-
375 #if SEND_MITSUBISHI_AC
-
376  void mitsubishi(IRMitsubishiAC *ac,
-
377  const bool on, const stdAc::opmode_t mode,
-
378  const float degrees,
-
379  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
380  const stdAc::swingh_t swingh,
-
381  const bool quiet, const int16_t clock = -1);
-
382 #endif // SEND_MITSUBISHI_AC
-
383 #if SEND_MITSUBISHI112
-
384  void mitsubishi112(IRMitsubishi112 *ac,
-
385  const bool on, const stdAc::opmode_t mode,
-
386  const float degrees, const stdAc::fanspeed_t fan,
-
387  const stdAc::swingv_t swingv,
-
388  const stdAc::swingh_t swingh,
-
389  const bool quiet);
-
390 #endif // SEND_MITSUBISHI112
-
391 #if SEND_MITSUBISHI136
-
392  void mitsubishi136(IRMitsubishi136 *ac,
-
393  const bool on, const stdAc::opmode_t mode,
-
394  const float degrees, const stdAc::fanspeed_t fan,
-
395  const stdAc::swingv_t swingv, const bool quiet);
-
396 #endif // SEND_MITSUBISHI136
-
397 #if SEND_MITSUBISHIHEAVY
-
398  void mitsubishiHeavy88(IRMitsubishiHeavy88Ac *ac,
-
399  const bool on, const stdAc::opmode_t mode,
-
400  const float degrees, const stdAc::fanspeed_t fan,
-
401  const stdAc::swingv_t swingv,
-
402  const stdAc::swingh_t swingh,
-
403  const bool turbo, const bool econo, const bool clean);
-
404  void mitsubishiHeavy152(IRMitsubishiHeavy152Ac *ac,
-
405  const bool on, const stdAc::opmode_t mode,
-
406  const float degrees, const stdAc::fanspeed_t fan,
-
407  const stdAc::swingv_t swingv,
-
408  const stdAc::swingh_t swingh,
-
409  const bool quiet, const bool turbo, const bool econo,
-
410  const bool filter, const bool clean,
-
411  const int16_t sleep = -1);
-
412 #endif // SEND_MITSUBISHIHEAVY
-
413 #if SEND_NEOCLIMA
-
414  void neoclima(IRNeoclimaAc *ac, const bool on, const stdAc::opmode_t mode,
-
415  const bool celsius, const float degrees,
-
416  const stdAc::fanspeed_t fan,
-
417  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
418  const bool turbo, const bool econo, const bool light,
-
419  const bool filter, const int16_t sleep = -1);
-
420 #endif // SEND_NEOCLIMA
-
421 #if SEND_PANASONIC_AC
-
422  void panasonic(IRPanasonicAc *ac, const panasonic_ac_remote_model_t model,
-
423  const bool on, const stdAc::opmode_t mode, const float degrees,
-
424  const stdAc::fanspeed_t fan,
-
425  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
426  const bool quiet, const bool turbo, const bool filter,
-
427  const int16_t clock = -1);
-
428 #endif // SEND_PANASONIC_AC
-
429 #if SEND_PANASONIC_AC32
-
430  void panasonic32(IRPanasonicAc32 *ac,
-
431  const bool on, const stdAc::opmode_t mode,
-
432  const float degrees, const stdAc::fanspeed_t fan,
-
433  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh);
-
434 #endif // SEND_PANASONIC_AC32
-
435 #if SEND_RHOSS
-
436  void rhoss(IRRhossAc *ac,
-
437  const bool on, const stdAc::opmode_t mode, const float degrees,
-
438  const stdAc::fanspeed_t fan, const stdAc::swingv_t swing);
-
439 #endif // SEND_RHOSS
-
440 #if SEND_SAMSUNG_AC
-
441  void samsung(IRSamsungAc *ac,
-
442  const bool on, const stdAc::opmode_t mode, const float degrees,
-
443  const stdAc::fanspeed_t fan,
-
444  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
445  const bool quiet, const bool turbo, const bool econo,
-
446  const bool light, const bool filter, const bool clean,
-
447  const bool beep, const int16_t sleep = -1,
-
448  const bool prevpower = true, const int16_t prevsleep = -1,
-
449  const bool forceextended = true);
-
450 #endif // SEND_SAMSUNG_AC
-
451 #if SEND_SANYO_AC
-
452  void sanyo(IRSanyoAc *ac,
-
453  const bool on, const stdAc::opmode_t mode, const float degrees,
-
454  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
455  const bool beep, const int16_t sleep = -1);
-
456 #endif // SEND_SANYO_AC
-
457 #if SEND_SANYO_AC88
-
458  void sanyo88(IRSanyoAc88 *ac,
-
459  const bool on, const stdAc::opmode_t mode,
-
460  const float degrees, const stdAc::fanspeed_t fan,
-
461  const stdAc::swingv_t swingv, const bool turbo,
-
462  const bool filter,
-
463  const int16_t sleep = -1, const int16_t clock = -1);
-
464 #endif // SEND_SANYO_AC88
-
465 #if SEND_SHARP_AC
-
466  void sharp(IRSharpAc *ac, const sharp_ac_remote_model_t model,
-
467  const bool on, const bool prev_power, const stdAc::opmode_t mode,
-
468  const float degrees, const stdAc::fanspeed_t fan,
-
469  const stdAc::swingv_t swingv, const stdAc::swingv_t swingv_prev,
-
470  const bool turbo, const bool light,
-
471  const bool filter, const bool clean);
-
472 #endif // SEND_SHARP_AC
-
473 #if SEND_TCL112AC
-
474  void tcl112(IRTcl112Ac *ac, const tcl_ac_remote_model_t model,
-
475  const bool on, const stdAc::opmode_t mode, const float degrees,
-
476  const stdAc::fanspeed_t fan,
-
477  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
478  const bool quiet, const bool turbo, const bool light,
-
479  const bool econo, const bool filter);
-
480 #endif // SEND_TCL112AC
-
481 #if SEND_TECHNIBEL_AC
-
482  void technibel(IRTechnibelAc *ac,
-
483  const bool on, const stdAc::opmode_t mode, const bool celsius,
-
484  const float degrees, const stdAc::fanspeed_t fan,
-
485  const stdAc::swingv_t swingv, const int16_t sleep = -1);
-
486 #endif // SEND_TECHNIBEL_AC
-
487 #if SEND_TECO
-
488  void teco(IRTecoAc *ac,
-
489  const bool on, const stdAc::opmode_t mode, const float degrees,
-
490  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
491  const bool light, const int16_t sleep = -1);
-
492 #endif // SEND_TECO
-
493 #if SEND_TOSHIBA_AC
-
494  void toshiba(IRToshibaAC *ac,
-
495  const bool on, const stdAc::opmode_t mode, const float degrees,
-
496  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
497  const bool turbo, const bool econo, const bool filter);
-
498 #endif // SEND_TOSHIBA_AC
-
499 #if SEND_TROTEC
-
500  void trotec(IRTrotecESP *ac,
+
54 // Constants
+
55 const int8_t kGpioUnused = -1;
+
56 
+
57 // Class
+
59 class IRac {
+
60  public:
+
61  explicit IRac(const uint16_t pin, const bool inverted = false,
+
62  const bool use_modulation = true);
+
63  static bool isProtocolSupported(const decode_type_t protocol);
+
64  static void initState(stdAc::state_t *state,
+
65  const decode_type_t vendor, const int16_t model,
+
66  const bool power, const stdAc::opmode_t mode,
+
67  const float degrees, const bool celsius,
+
68  const stdAc::fanspeed_t fan,
+
69  const stdAc::swingv_t swingv,
+
70  const stdAc::swingh_t swingh,
+
71  const bool quiet, const bool turbo, const bool econo,
+
72  const bool light, const bool filter, const bool clean,
+
73  const bool beep, const int16_t sleep,
+
74  const int16_t clock);
+
75  static void initState(stdAc::state_t *state);
+
76  void markAsSent(void);
+
77  bool sendAc(void);
+
78  bool sendAc(const stdAc::state_t desired, const stdAc::state_t *prev = NULL);
+
79  bool sendAc(const decode_type_t vendor, const int16_t model,
+
80  const bool power, const stdAc::opmode_t mode, const float degrees,
+
81  const bool celsius, const stdAc::fanspeed_t fan,
+
82  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
83  const bool quiet, const bool turbo, const bool econo,
+
84  const bool light, const bool filter, const bool clean,
+
85  const bool beep, const int16_t sleep = -1,
+
86  const int16_t clock = -1);
+
87  static bool cmpStates(const stdAc::state_t a, const stdAc::state_t b);
+
88  static bool strToBool(const char *str, const bool def = false);
+
89  static int16_t strToModel(const char *str, const int16_t def = -1);
+
90  static stdAc::ac_command_t strToCommandType(const char *str,
+
91  const stdAc::ac_command_t def = stdAc::ac_command_t::kControlCommand);
+
92  static stdAc::opmode_t strToOpmode(
+
93  const char *str, const stdAc::opmode_t def = stdAc::opmode_t::kAuto);
+
94  static stdAc::fanspeed_t strToFanspeed(
+
95  const char *str,
+
96  const stdAc::fanspeed_t def = stdAc::fanspeed_t::kAuto);
+
97  static stdAc::swingv_t strToSwingV(
+
98  const char *str, const stdAc::swingv_t def = stdAc::swingv_t::kOff);
+
99  static stdAc::swingh_t strToSwingH(
+
100  const char *str, const stdAc::swingh_t def = stdAc::swingh_t::kOff);
+
101  static String boolToString(const bool value);
+
102  static String commandTypeToString(const stdAc::ac_command_t cmdType);
+
103  static String opmodeToString(const stdAc::opmode_t mode,
+
104  const bool ha = false);
+
105  static String fanspeedToString(const stdAc::fanspeed_t speed);
+
106  static String swingvToString(const stdAc::swingv_t swingv);
+
107  static String swinghToString(const stdAc::swingh_t swingh);
+
108  stdAc::state_t getState(void);
+
109  stdAc::state_t getStatePrev(void);
+
110  bool hasStateChanged(void);
+
111  stdAc::state_t next;
+
112 #ifdef UNIT_TEST
+
113  std::shared_ptr<IRrecv> _utReceiver = nullptr;
+
117  std::unique_ptr<decode_results> _lastDecodeResults = nullptr;
+
119 #else
+
120 
+
121  private:
+
122 #endif // UNIT_TEST
+
123  uint16_t _pin;
+
124  bool _inverted;
+
125  bool _modulation;
+
126  stdAc::state_t _prev;
+
127 #if SEND_AIRTON
+
128  void airton(IRAirtonAc *ac,
+
129  const bool on, const stdAc::opmode_t mode,
+
130  const float degrees, const stdAc::fanspeed_t fan,
+
131  const stdAc::swingv_t swingv, const bool turbo,
+
132  const bool light, const bool econo, const bool filter,
+
133  const int16_t sleep = -1);
+
134 #endif // SEND_AIRTON
+
135 #if SEND_AIRWELL
+
136  void airwell(IRAirwellAc *ac,
+
137  const bool on, const stdAc::opmode_t mode, const float degrees,
+
138  const stdAc::fanspeed_t fan);
+
139 #endif // SEND_AIRWELL
+
140 #if SEND_AMCOR
+
141  void amcor(IRAmcorAc *ac,
+
142  const bool on, const stdAc::opmode_t mode, const float degrees,
+
143  const stdAc::fanspeed_t fan);
+
144 #endif // SEND_AMCOR
+
145 #if SEND_ARGO
+
146  void argo(IRArgoAC *ac,
+
147  const bool on, const stdAc::opmode_t mode, const float degrees,
+
148  const float sensorTemp, const stdAc::fanspeed_t fan,
+
149  const stdAc::swingv_t swingv, const bool iFeel, const bool turbo,
+
150  const int16_t sleep = -1);
+
151  void argoWrem3_ACCommand(IRArgoAC_WREM3 *ac,
+
152  const bool on, const stdAc::opmode_t mode, const float degrees,
+
153  const float sensorTemp, const stdAc::fanspeed_t fan,
+
154  const stdAc::swingv_t swingv, const bool iFeel, const bool night,
+
155  const bool econo, const bool turbo, const bool filter, const bool light);
+
156  void argoWrem3_iFeelReport(IRArgoAC_WREM3 *ac, const float sensorTemp);
+
157  void argoWrem3_ConfigSet(IRArgoAC_WREM3 *ac, const uint8_t param,
+
158  const uint8_t value, bool safe = true);
+
159  void argoWrem3_SetTimer(IRArgoAC_WREM3 *ac, bool on,
+
160  const uint16_t currentTime, const uint16_t delayMinutes);
+
161 #endif // SEND_ARGO
+
162 #if SEND_BOSCH144
+
163  void bosch144(IRBosch144AC *ac,
+
164  const bool on, const stdAc::opmode_t mode, const float degrees,
+
165  const stdAc::fanspeed_t fan,
+
166  const bool quiet);
+
167 #endif // SEND_BOSCH144
+
168 #if SEND_CARRIER_AC64
+
169 void carrier64(IRCarrierAc64 *ac,
+
170  const bool on, const stdAc::opmode_t mode,
+
171  const float degrees, const stdAc::fanspeed_t fan,
+
172  const stdAc::swingv_t swingv, const int16_t sleep = -1);
+
173 #endif // SEND_CARRIER_AC64
+
174 #if SEND_COOLIX
+
175  void coolix(IRCoolixAC *ac,
+
176  const bool on, const stdAc::opmode_t mode, const float degrees,
+
177  const float sensorTemp, const stdAc::fanspeed_t fan,
+
178  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
179  const bool iFeel, const bool turbo, const bool light,
+
180  const bool clean, const int16_t sleep = -1);
+
181 #endif // SEND_COOLIX
+
182 #if SEND_CORONA_AC
+
183  void corona(IRCoronaAc *ac,
+
184  const bool on, const stdAc::opmode_t mode,
+
185  const float degrees, const stdAc::fanspeed_t fan,
+
186  const stdAc::swingv_t swingv, const bool econo);
+
187 #endif // SEND_CORONA_AC
+
188 #if SEND_DAIKIN
+
189  void daikin(IRDaikinESP *ac,
+
190  const bool on, const stdAc::opmode_t mode, const float degrees,
+
191  const stdAc::fanspeed_t fan,
+
192  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
193  const bool quiet, const bool turbo, const bool econo,
+
194  const bool clean);
+
195 #endif // SEND_DAIKIN
+
196 #if SEND_DAIKIN128
+
197  void daikin128(IRDaikin128 *ac,
+
198  const bool on, const stdAc::opmode_t mode,
+
199  const float degrees, const stdAc::fanspeed_t fan,
+
200  const stdAc::swingv_t swingv,
+
201  const bool quiet, const bool turbo, const bool light,
+
202  const bool econo, const int16_t sleep = -1,
+
203  const int16_t clock = -1);
+
204 #endif // SEND_DAIKIN128
+
205 #if SEND_DAIKIN152
+
206  void daikin152(IRDaikin152 *ac,
+
207  const bool on, const stdAc::opmode_t mode,
+
208  const float degrees, const stdAc::fanspeed_t fan,
+
209  const stdAc::swingv_t swingv,
+
210  const bool quiet, const bool turbo, const bool econo);
+
211 #endif // SEND_DAIKIN152
+
212 #if SEND_DAIKIN160
+
213  void daikin160(IRDaikin160 *ac,
+
214  const bool on, const stdAc::opmode_t mode,
+
215  const float degrees, const stdAc::fanspeed_t fan,
+
216  const stdAc::swingv_t swingv);
+
217 #endif // SEND_DAIKIN160
+
218 #if SEND_DAIKIN176
+
219  void daikin176(IRDaikin176 *ac,
+
220  const bool on, const stdAc::opmode_t mode,
+
221  const float degrees, const stdAc::fanspeed_t fan,
+
222  const stdAc::swingh_t swingh);
+
223 #endif // SEND_DAIKIN176
+
224 #if SEND_DAIKIN2
+
225  void daikin2(IRDaikin2 *ac,
+
226  const bool on, const stdAc::opmode_t mode,
+
227  const float degrees, const stdAc::fanspeed_t fan,
+
228  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
229  const bool quiet, const bool turbo, const bool light,
+
230  const bool econo, const bool filter, const bool clean,
+
231  const bool beep, const int16_t sleep = -1,
+
232  const int16_t clock = -1);
+
233 #endif // SEND_DAIKIN2
+
234 #if SEND_DAIKIN216
+
235 void daikin216(IRDaikin216 *ac,
+
236  const bool on, const stdAc::opmode_t mode,
+
237  const float degrees, const stdAc::fanspeed_t fan,
+
238  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
239  const bool quiet, const bool turbo);
+
240 #endif // SEND_DAIKIN216
+
241 #if SEND_DAIKIN64
+
242  void daikin64(IRDaikin64 *ac,
+
243  const bool on, const stdAc::opmode_t mode,
+
244  const float degrees, const stdAc::fanspeed_t fan,
+
245  const stdAc::swingv_t swingv,
+
246  const bool quiet, const bool turbo,
+
247  const int16_t sleep = -1, const int16_t clock = -1);
+
248 #endif // SEND_DAIKIN64
+
249 #if SEND_DELONGHI_AC
+
250  void delonghiac(IRDelonghiAc *ac,
+
251  const bool on, const stdAc::opmode_t mode, const bool celsius,
+
252  const float degrees, const stdAc::fanspeed_t fan,
+
253  const bool turbo, const int16_t sleep = -1);
+
254 #endif // SEND_DELONGHI_AC
+
255 #if SEND_ECOCLIM
+
256 void ecoclim(IREcoclimAc *ac,
+
257  const bool on, const stdAc::opmode_t mode,
+
258  const float degrees, const float sensorTemp,
+
259  const stdAc::fanspeed_t fan, const int16_t sleep = -1,
+
260  const int16_t clock = -1);
+
261 #endif // SEND_ECOCLIM
+
262 #if SEND_ELECTRA_AC
+
263 void electra(IRElectraAc *ac,
+
264  const bool on, const stdAc::opmode_t mode,
+
265  const float degrees, const float sensorTemp,
+
266  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
267  const stdAc::swingh_t swingh, const bool iFeel, const bool turbo,
+
268  const bool lighttoggle, const bool clean);
+
269 #endif // SEND_ELECTRA_AC
+
270 #if SEND_FUJITSU_AC
+
271  void fujitsu(IRFujitsuAC *ac, const fujitsu_ac_remote_model_t model,
+
272  const bool on, const stdAc::opmode_t mode,
+
273  const bool celsius, const float degrees,
+
274  const stdAc::fanspeed_t fan,
+
275  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
276  const bool quiet, const bool turbo, const bool econo,
+
277  const bool filter, const bool clean, const int16_t sleep = -1);
+
278 #endif // SEND_FUJITSU_AC
+
279 #if SEND_GOODWEATHER
+
280  void goodweather(IRGoodweatherAc *ac,
+
281  const bool on, const stdAc::opmode_t mode,
+
282  const float degrees,
+
283  const stdAc::fanspeed_t fan,
+
284  const stdAc::swingv_t swingv,
+
285  const bool turbo, const bool light,
+
286  const int16_t sleep = -1);
+
287 #endif // SEND_GOODWEATHER
+
288 #if SEND_GREE
+
289  void gree(IRGreeAC *ac, const gree_ac_remote_model_t model,
+
290  const bool on, const stdAc::opmode_t mode, const bool celsius,
+
291  const float degrees, const stdAc::fanspeed_t fan,
+
292  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
293  const bool iFeel, const bool turbo, const bool econo,
+
294  const bool light, const bool clean, const int16_t sleep = -1);
+
295 #endif // SEND_GREE
+
296 #if SEND_HAIER_AC
+
297  void haier(IRHaierAC *ac,
+
298  const bool on, const stdAc::opmode_t mode, const float degrees,
+
299  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
300  const bool filter, const int16_t sleep = -1,
+
301  const int16_t clock = -1);
+
302 #endif // SEND_HAIER_AC
+
303 #if SEND_HAIER_AC160
+
304  void haier160(IRHaierAC160 *ac,
+
305  const bool on, const stdAc::opmode_t mode, const bool celsius,
+
306  const float degrees, const stdAc::fanspeed_t fan,
+
307  const stdAc::swingv_t swingv,
+
308  const bool turbo, const bool quiet, const bool filter,
+
309  const bool clean, const bool light, const bool prevlight,
+
310  const int16_t sleep = -1);
+
311 #endif // SEND_HAIER_AC160
+
312 #if SEND_HAIER_AC176
+
313  void haier176(IRHaierAC176 *ac,
+
314  const haier_ac176_remote_model_t model, const bool on,
+
315  const stdAc::opmode_t mode, const bool celsius,
+
316  const float degrees, const stdAc::fanspeed_t fan,
+
317  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
318  const bool turbo, const bool quiet, const bool filter,
+
319  const int16_t sleep = -1);
+
320 #endif // SEND_HAIER_AC176
+
321 #if SEND_HAIER_AC_YRW02
+
322  void haierYrwo2(IRHaierACYRW02 *ac,
+
323  const bool on, const stdAc::opmode_t mode,
+
324  const bool celsius, const float degrees,
+
325  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
326  const stdAc::swingh_t swingh, const bool turbo,
+
327  const bool quiet, const bool filter,
+
328  const int16_t sleep = -1);
+
329 #endif // SEND_HAIER_AC_YRW02
+
330 #if SEND_HITACHI_AC
+
331  void hitachi(IRHitachiAc *ac,
+
332  const bool on, const stdAc::opmode_t mode,
+
333  const float degrees, const stdAc::fanspeed_t fan,
+
334  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh);
+
335 #endif // SEND_HITACHI_AC
+
336 #if SEND_HITACHI_AC1
+
337  void hitachi1(IRHitachiAc1 *ac, const hitachi_ac1_remote_model_t model,
+
338  const bool on, const bool power_toggle,
+
339  const stdAc::opmode_t mode,
+
340  const float degrees, const stdAc::fanspeed_t fan,
+
341  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
342  const bool swing_toggle, const int16_t sleep = -1);
+
343 #endif // SEND_HITACHI_AC1
+
344 #if SEND_HITACHI_AC264
+
345  void hitachi264(IRHitachiAc264 *ac,
+
346  const bool on, const stdAc::opmode_t mode,
+
347  const float degrees, const stdAc::fanspeed_t fan);
+
348 #endif // SEND_HITACHI_AC264
+
349 #if SEND_HITACHI_AC296
+
350  void hitachi296(IRHitachiAc296 *ac,
+
351  const bool on, const stdAc::opmode_t mode,
+
352  const float degrees, const stdAc::fanspeed_t fan);
+
353 #endif // SEND_HITACHI_AC296
+
354 #if SEND_HITACHI_AC344
+
355  void hitachi344(IRHitachiAc344 *ac,
+
356  const bool on, const stdAc::opmode_t mode,
+
357  const float degrees, const stdAc::fanspeed_t fan,
+
358  const stdAc::swingv_t swingv,
+
359  const stdAc::swingh_t swingh);
+
360 #endif // SEND_HITACHI_AC344
+
361 #if SEND_HITACHI_AC424
+
362  void hitachi424(IRHitachiAc424 *ac,
+
363  const bool on, const stdAc::opmode_t mode,
+
364  const float degrees, const stdAc::fanspeed_t fan,
+
365  const stdAc::swingv_t swingv);
+
366 #endif // SEND_HITACHI_AC424
+
367 #if SEND_KELON
+
368  void kelon(IRKelonAc *ac, const bool togglePower, const stdAc::opmode_t mode,
+
369  const int8_t dryGrade, const float degrees,
+
370  const stdAc::fanspeed_t fan, const bool toggleSwing,
+
371  const bool superCool, const int16_t sleep);
+
372 #endif // SEND_KELON
+
373 #if SEND_KELVINATOR
+
374  void kelvinator(IRKelvinatorAC *ac,
+
375  const bool on, const stdAc::opmode_t mode,
+
376  const float degrees, const stdAc::fanspeed_t fan,
+
377  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
378  const bool quiet, const bool turbo, const bool light,
+
379  const bool filter, const bool clean);
+
380 #endif // SEND_KELVINATOR
+
381 #if SEND_LG
+
382  void lg(IRLgAc *ac, const lg_ac_remote_model_t model,
+
383  const bool on, const stdAc::opmode_t mode,
+
384  const float degrees, const stdAc::fanspeed_t fan,
+
385  const stdAc::swingv_t swingv, const stdAc::swingv_t swingv_prev,
+
386  const stdAc::swingh_t swingh, const bool light);
+
387 #endif // SEND_LG
+
388 #if SEND_MIDEA
+
389  void midea(IRMideaAC *ac,
+
390  const bool on, const stdAc::opmode_t mode, const bool celsius,
+
391  const float degrees, const float sensorTemp,
+
392  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
393  const bool iFeel, const bool quiet, const bool quiet_prev,
+
394  const bool turbo, const bool econo, const bool light,
+
395  const bool clean, const int16_t sleep = -1);
+
396 #endif // SEND_MIDEA
+
397 #if SEND_MIRAGE
+
398  void mirage(IRMirageAc *ac, const stdAc::state_t state);
+
399 #endif // SEND_MIRAGE
+
400 #if SEND_MITSUBISHI_AC
+
401  void mitsubishi(IRMitsubishiAC *ac,
+
402  const bool on, const stdAc::opmode_t mode,
+
403  const float degrees,
+
404  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
405  const stdAc::swingh_t swingh,
+
406  const bool quiet, const int16_t clock = -1);
+
407 #endif // SEND_MITSUBISHI_AC
+
408 #if SEND_MITSUBISHI112
+
409  void mitsubishi112(IRMitsubishi112 *ac,
+
410  const bool on, const stdAc::opmode_t mode,
+
411  const float degrees, const stdAc::fanspeed_t fan,
+
412  const stdAc::swingv_t swingv,
+
413  const stdAc::swingh_t swingh,
+
414  const bool quiet);
+
415 #endif // SEND_MITSUBISHI112
+
416 #if SEND_MITSUBISHI136
+
417  void mitsubishi136(IRMitsubishi136 *ac,
+
418  const bool on, const stdAc::opmode_t mode,
+
419  const float degrees, const stdAc::fanspeed_t fan,
+
420  const stdAc::swingv_t swingv, const bool quiet);
+
421 #endif // SEND_MITSUBISHI136
+
422 #if SEND_MITSUBISHIHEAVY
+
423  void mitsubishiHeavy88(IRMitsubishiHeavy88Ac *ac,
+
424  const bool on, const stdAc::opmode_t mode,
+
425  const float degrees, const stdAc::fanspeed_t fan,
+
426  const stdAc::swingv_t swingv,
+
427  const stdAc::swingh_t swingh,
+
428  const bool turbo, const bool econo, const bool clean);
+
429  void mitsubishiHeavy152(IRMitsubishiHeavy152Ac *ac,
+
430  const bool on, const stdAc::opmode_t mode,
+
431  const float degrees, const stdAc::fanspeed_t fan,
+
432  const stdAc::swingv_t swingv,
+
433  const stdAc::swingh_t swingh,
+
434  const bool quiet, const bool turbo, const bool econo,
+
435  const bool filter, const bool clean,
+
436  const int16_t sleep = -1);
+
437 #endif // SEND_MITSUBISHIHEAVY
+
438 #if SEND_NEOCLIMA
+
439  void neoclima(IRNeoclimaAc *ac, const bool on, const stdAc::opmode_t mode,
+
440  const bool celsius, const float degrees,
+
441  const stdAc::fanspeed_t fan,
+
442  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
443  const bool turbo, const bool econo, const bool light,
+
444  const bool filter, const int16_t sleep = -1);
+
445 #endif // SEND_NEOCLIMA
+
446 #if SEND_PANASONIC_AC
+
447  void panasonic(IRPanasonicAc *ac, const panasonic_ac_remote_model_t model,
+
448  const bool on, const stdAc::opmode_t mode, const float degrees,
+
449  const stdAc::fanspeed_t fan,
+
450  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
451  const bool quiet, const bool turbo, const bool filter,
+
452  const int16_t clock = -1);
+
453 #endif // SEND_PANASONIC_AC
+
454 #if SEND_PANASONIC_AC32
+
455  void panasonic32(IRPanasonicAc32 *ac,
+
456  const bool on, const stdAc::opmode_t mode,
+
457  const float degrees, const stdAc::fanspeed_t fan,
+
458  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh);
+
459 #endif // SEND_PANASONIC_AC32
+
460 #if SEND_RHOSS
+
461  void rhoss(IRRhossAc *ac,
+
462  const bool on, const stdAc::opmode_t mode, const float degrees,
+
463  const stdAc::fanspeed_t fan, const stdAc::swingv_t swing);
+
464 #endif // SEND_RHOSS
+
465 #if SEND_SAMSUNG_AC
+
466  void samsung(IRSamsungAc *ac,
+
467  const bool on, const stdAc::opmode_t mode, const float degrees,
+
468  const stdAc::fanspeed_t fan,
+
469  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
470  const bool quiet, const bool turbo, const bool econo,
+
471  const bool light, const bool filter, const bool clean,
+
472  const bool beep, const int16_t sleep = -1,
+
473  const bool prevpower = true, const int16_t prevsleep = -1,
+
474  const bool forceextended = true);
+
475 #endif // SEND_SAMSUNG_AC
+
476 #if SEND_SANYO_AC
+
477  void sanyo(IRSanyoAc *ac,
+
478  const bool on, const stdAc::opmode_t mode, const float degrees,
+
479  const float sensorTemp, const stdAc::fanspeed_t fan,
+
480  const stdAc::swingv_t swingv, const bool iFeel, const bool beep,
+
481  const int16_t sleep = -1);
+
482 #endif // SEND_SANYO_AC
+
483 #if SEND_SANYO_AC88
+
484  void sanyo88(IRSanyoAc88 *ac,
+
485  const bool on, const stdAc::opmode_t mode,
+
486  const float degrees, const stdAc::fanspeed_t fan,
+
487  const stdAc::swingv_t swingv, const bool turbo,
+
488  const bool filter,
+
489  const int16_t sleep = -1, const int16_t clock = -1);
+
490 #endif // SEND_SANYO_AC88
+
491 #if SEND_SHARP_AC
+
492  void sharp(IRSharpAc *ac, const sharp_ac_remote_model_t model,
+
493  const bool on, const bool prev_power, const stdAc::opmode_t mode,
+
494  const float degrees, const stdAc::fanspeed_t fan,
+
495  const stdAc::swingv_t swingv, const stdAc::swingv_t swingv_prev,
+
496  const bool turbo, const bool light,
+
497  const bool filter, const bool clean);
+
498 #endif // SEND_SHARP_AC
+
499 #if SEND_TCL112AC
+
500  void tcl112(IRTcl112Ac *ac, const tcl_ac_remote_model_t model,
501  const bool on, const stdAc::opmode_t mode, const float degrees,
-
502  const stdAc::fanspeed_t fan, const int16_t sleep = -1);
-
503 #endif // SEND_TROTEC
-
504 #if SEND_TROTEC_3550
-
505  void trotec3550(IRTrotec3550 *ac,
-
506  const bool on, const stdAc::opmode_t mode,
-
507  const bool celsius, const float degrees,
-
508  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv);
-
509 #endif // SEND_TROTEC_3550
-
510 #if SEND_TRUMA
-
511  void truma(IRTrumaAc *ac,
-
512  const bool on, const stdAc::opmode_t mode, const float degrees,
-
513  const stdAc::fanspeed_t fan, const bool quiet);
-
514 #endif // SEND_TRUMA
-
515 #if SEND_VESTEL_AC
-
516  void vestel(IRVestelAc *ac,
-
517  const bool on, const stdAc::opmode_t mode, const float degrees,
-
518  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
519  const bool turbo, const bool filter,
-
520  const int16_t sleep = -1, const int16_t clock = -1,
-
521  const bool sendNormal = true);
-
522 #endif // SEND_VESTEL_AC
-
523 #if SEND_VOLTAS
-
524  void voltas(IRVoltas *ac, const voltas_ac_remote_model_t model,
-
525  const bool on, const stdAc::opmode_t mode,
-
526  const float degrees, const stdAc::fanspeed_t fan,
-
527  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
528  const bool turbo, const bool econo, const bool light,
-
529  const int16_t sleep = -1);
-
530 #endif // SEND_VOLTAS
-
531 #if SEND_WHIRLPOOL_AC
-
532  void whirlpool(IRWhirlpoolAc *ac, const whirlpool_ac_remote_model_t model,
-
533  const bool on, const stdAc::opmode_t mode, const float degrees,
-
534  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
535  const bool turbo, const bool light,
-
536  const int16_t sleep = -1, const int16_t clock = -1);
-
537 #endif // SEND_WHIRLPOOL_AC
-
538 #if SEND_TRANSCOLD
-
539  void transcold(IRTranscoldAc *ac,
-
540  const bool on, const stdAc::opmode_t mode, const float degrees,
-
541  const stdAc::fanspeed_t fan,
-
542  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh);
-
543 #endif // SEND_TRANSCOLD
-
544 static stdAc::state_t cleanState(const stdAc::state_t state);
-
545 static stdAc::state_t handleToggles(const stdAc::state_t desired,
-
546  const stdAc::state_t *prev = NULL);
-
547 }; // IRac class
-
548 
-
550 namespace IRAcUtils {
-
551  String resultAcToString(const decode_results * const results);
-
552  bool decodeToState(const decode_results *decode, stdAc::state_t *result,
-
553  const stdAc::state_t *prev = NULL);
-
554 } // namespace IRAcUtils
-
555 #endif // IRAC_H_
+
502  const stdAc::fanspeed_t fan,
+
503  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
504  const bool quiet, const bool turbo, const bool light,
+
505  const bool econo, const bool filter);
+
506 #endif // SEND_TCL112AC
+
507 #if SEND_TECHNIBEL_AC
+
508  void technibel(IRTechnibelAc *ac,
+
509  const bool on, const stdAc::opmode_t mode, const bool celsius,
+
510  const float degrees, const stdAc::fanspeed_t fan,
+
511  const stdAc::swingv_t swingv, const int16_t sleep = -1);
+
512 #endif // SEND_TECHNIBEL_AC
+
513 #if SEND_TECO
+
514  void teco(IRTecoAc *ac,
+
515  const bool on, const stdAc::opmode_t mode, const float degrees,
+
516  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
517  const bool light, const int16_t sleep = -1);
+
518 #endif // SEND_TECO
+
519 #if SEND_TOSHIBA_AC
+
520  void toshiba(IRToshibaAC *ac,
+
521  const bool on, const stdAc::opmode_t mode, const float degrees,
+
522  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
523  const bool turbo, const bool econo, const bool filter);
+
524 #endif // SEND_TOSHIBA_AC
+
525 #if SEND_TROTEC
+
526  void trotec(IRTrotecESP *ac,
+
527  const bool on, const stdAc::opmode_t mode, const float degrees,
+
528  const stdAc::fanspeed_t fan, const int16_t sleep = -1);
+
529 #endif // SEND_TROTEC
+
530 #if SEND_TROTEC_3550
+
531  void trotec3550(IRTrotec3550 *ac,
+
532  const bool on, const stdAc::opmode_t mode,
+
533  const bool celsius, const float degrees,
+
534  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv);
+
535 #endif // SEND_TROTEC_3550
+
536 #if SEND_TRUMA
+
537  void truma(IRTrumaAc *ac,
+
538  const bool on, const stdAc::opmode_t mode, const float degrees,
+
539  const stdAc::fanspeed_t fan, const bool quiet);
+
540 #endif // SEND_TRUMA
+
541 #if SEND_VESTEL_AC
+
542  void vestel(IRVestelAc *ac,
+
543  const bool on, const stdAc::opmode_t mode, const float degrees,
+
544  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
545  const bool turbo, const bool filter,
+
546  const int16_t sleep = -1, const int16_t clock = -1,
+
547  const bool sendNormal = true);
+
548 #endif // SEND_VESTEL_AC
+
549 #if SEND_VOLTAS
+
550  void voltas(IRVoltas *ac, const voltas_ac_remote_model_t model,
+
551  const bool on, const stdAc::opmode_t mode,
+
552  const float degrees, const stdAc::fanspeed_t fan,
+
553  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
554  const bool turbo, const bool econo, const bool light,
+
555  const int16_t sleep = -1);
+
556 #endif // SEND_VOLTAS
+
557 #if SEND_WHIRLPOOL_AC
+
558  void whirlpool(IRWhirlpoolAc *ac, const whirlpool_ac_remote_model_t model,
+
559  const bool on, const stdAc::opmode_t mode, const float degrees,
+
560  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
561  const bool turbo, const bool light,
+
562  const int16_t sleep = -1, const int16_t clock = -1);
+
563 #endif // SEND_WHIRLPOOL_AC
+
564 #if SEND_TRANSCOLD
+
565  void transcold(IRTranscoldAc *ac,
+
566  const bool on, const stdAc::opmode_t mode, const float degrees,
+
567  const stdAc::fanspeed_t fan,
+
568  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh);
+
569 #endif // SEND_TRANSCOLD
+
570 static stdAc::state_t cleanState(const stdAc::state_t state);
+
571 static stdAc::state_t handleToggles(const stdAc::state_t desired,
+
572  const stdAc::state_t *prev = NULL);
+
573 }; // IRac class
+
574 
+
576 namespace IRAcUtils {
+
577  String resultAcToString(const decode_results * const results);
+
578  bool decodeToState(const decode_results *decode, stdAc::state_t *result,
+
579  const stdAc::state_t *prev = NULL);
+
580 } // namespace IRAcUtils
+
581 #endif // IRAC_H_
Class for handling detailed Panasonic A/C messages.
Definition: ir_Panasonic.h:104
-
void airwell(IRAirwellAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan)
Send an Airwell A/C message with the supplied settings.
Definition: IRac.cpp:387
+
void airwell(IRAirwellAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan)
Send an Airwell A/C message with the supplied settings.
Definition: IRac.cpp:421
Support for Kelvinator A/C protocols.
+
void electra(IRElectraAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const float sensorTemp, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool iFeel, const bool turbo, const bool lighttoggle, const bool clean)
Send an Electra A/C message with the supplied settings.
Definition: IRac.cpp:1166
Class for handling detailed Samsung A/C messages.
Definition: ir_Samsung.h:186
-
void hitachi(IRHitachiAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh)
Send a Hitachi A/C message with the supplied settings.
Definition: IRac.cpp:1345
+
static String commandTypeToString(const stdAc::ac_command_t cmdType)
Convert the supplied operation mode into the appropriate String.
Definition: IRac.cpp:3971
+
void hitachi(IRHitachiAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh)
Send a Hitachi A/C message with the supplied settings.
Definition: IRac.cpp:1529
Class for handling detailed Toshiba A/C messages.
Definition: ir_Toshiba.h:127
-
decode_type_t
Enumerator for defining and numbering of supported IR protocol.
Definition: IRremoteESP8266.h:982
-
stdAc::state_t getStatePrev(void)
Get the previous internal A/C climate state that should have already been sent to the device....
Definition: IRac.cpp:146
-
stdAc::state_t getState(void)
Get the current internal A/C climate state.
Definition: IRac.cpp:141
+
decode_type_t
Enumerator for defining and numbering of supported IR protocol.
Definition: IRremoteESP8266.h:1011
+
stdAc::state_t getStatePrev(void)
Get the previous internal A/C climate state that should have already been sent to the device....
Definition: IRac.cpp:177
+
stdAc::state_t getState(void)
Get the current internal A/C climate state.
Definition: IRac.cpp:172
Class for handling detailed Mitsubishi Heavy 152-bit A/C messages.
Definition: ir_MitsubishiHeavy.h:184
-
static stdAc::swingh_t strToSwingH(const char *str, const stdAc::swingh_t def=stdAc::swingh_t::kOff)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:3544
-
void hitachi344(IRHitachiAc344 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh)
Send a Hitachi 344-bit A/C message with the supplied settings.
Definition: IRac.cpp:1479
+
static stdAc::swingh_t strToSwingH(const char *str, const stdAc::swingh_t def=stdAc::swingh_t::kOff)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:3803
+
void hitachi344(IRHitachiAc344 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh)
Send a Hitachi 344-bit A/C message with the supplied settings.
Definition: IRac.cpp:1663
@ kAuto
Class for handling detailed Airton 56-bit A/C messages.
Definition: ir_Airton.h:75
Support for Electra A/C protocols.
-
void ecoclim(IREcoclimAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const int16_t sleep=-1, const int16_t clock=-1)
Send an EcoClim A/C message with the supplied settings.
Definition: IRac.cpp:946
-
void markAsSent(void)
Update the previous state to the current one.
Definition: IRac.cpp:3401
-
swingv_t
Common A/C settings for Vertical Swing.
Definition: IRsend.h:70
+
void markAsSent(void)
Update the previous state to the current one.
Definition: IRac.cpp:3634
+
swingv_t
Common A/C settings for Vertical Swing.
Definition: IRsend.h:74
Airwell "Manchester code" based protocol. Some other Airwell products use the COOLIX protocol.
-
void daikin2(IRDaikin2 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool light, const bool econo, const bool filter, const bool clean, const bool beep, const int16_t sleep=-1, const int16_t clock=-1)
Send a Daikin2 A/C message with the supplied settings.
Definition: IRac.cpp:823
+
void daikin2(IRDaikin2 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool light, const bool econo, const bool filter, const bool clean, const bool beep, const int16_t sleep=-1, const int16_t clock=-1)
Send a Daikin2 A/C message with the supplied settings.
Definition: IRac.cpp:990
+
static stdAc::ac_command_t strToCommandType(const char *str, const stdAc::ac_command_t def=stdAc::ac_command_t::kControlCommand)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:3671
Support for Trotec protocols.
Support for Bosch A/C protocol.
-
void sanyo(IRSanyoAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool beep, const int16_t sleep=-1)
Send a Sanyo A/C message with the supplied settings.
Definition: IRac.cpp:2087
+
void argoWrem3_SetTimer(IRArgoAC_WREM3 *ac, bool on, const uint16_t currentTime, const uint16_t delayMinutes)
Send an Argo A/C WREM-3 Delay timer command.
Definition: IRac.cpp:613
Class for handling detailed Daikin 280-bit A/C messages.
Definition: ir_Daikin.h:723
Class for handling detailed Delonghi A/C messages.
Definition: ir_Delonghi.h:73
Class for handling detailed Corona A/C messages.
Definition: ir_Corona.h:107
-
void kelvinator(IRKelvinatorAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool light, const bool filter, const bool clean)
Send a Kelvinator A/C message with the supplied settings.
Definition: IRac.cpp:1582
+
void kelvinator(IRKelvinatorAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool light, const bool filter, const bool clean)
Send a Kelvinator A/C message with the supplied settings.
Definition: IRac.cpp:1766
Class for handling detailed Daikin 312-bit A/C messages.
Definition: ir_Daikin.h:805
-
void fujitsu(IRFujitsuAC *ac, const fujitsu_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool econo, const bool filter, const bool clean, const int16_t sleep=-1)
Send a Fujitsu A/C message with the supplied settings.
Definition: IRac.cpp:1031
+
void fujitsu(IRFujitsuAC *ac, const fujitsu_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool econo, const bool filter, const bool clean, const int16_t sleep=-1)
Send a Fujitsu A/C message with the supplied settings.
Definition: IRac.cpp:1213
Support for Neoclima protocols. Analysis by crankyoldgit & AndreyShpilevoy.
Class for handling detailed Daikin 128-bit A/C messages.
Definition: ir_Daikin.h:1070
-
fanspeed_t
Common A/C settings for Fan Speeds.
Definition: IRsend.h:58
+
fanspeed_t
Common A/C settings for Fan Speeds.
Definition: IRsend.h:61
Support for Sharp protocols.
-
static String fanspeedToString(const stdAc::fanspeed_t speed)
Convert the supplied fan speed enum into the appropriate String.
Definition: IRac.cpp:3723
-
whirlpool_ac_remote_model_t
Whirlpool A/C model numbers.
Definition: IRsend.h:191
+
static String fanspeedToString(const stdAc::fanspeed_t speed)
Convert the supplied fan speed enum into the appropriate String.
Definition: IRac.cpp:4000
+
whirlpool_ac_remote_model_t
Whirlpool A/C model numbers.
Definition: IRsend.h:211
Carrier A/C.
-
void whirlpool(IRWhirlpoolAc *ac, const whirlpool_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool light, const int16_t sleep=-1, const int16_t clock=-1)
Send a Whirlpool A/C message with the supplied settings.
Definition: IRac.cpp:2550
+
void whirlpool(IRWhirlpoolAc *ac, const whirlpool_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool light, const int16_t sleep=-1, const int16_t clock=-1)
Send a Whirlpool A/C message with the supplied settings.
Definition: IRac.cpp:2747
Results returned from the decoder.
Definition: IRrecv.h:99
-
void daikin64(IRDaikin64 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool quiet, const bool turbo, const int16_t sleep=-1, const int16_t clock=-1)
Send a Daikin 64-bit A/C message with the supplied settings.
Definition: IRac.cpp:892
-
void samsung(IRSamsungAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool econo, const bool light, const bool filter, const bool clean, const bool beep, const int16_t sleep=-1, const bool prevpower=true, const int16_t prevsleep=-1, const bool forceextended=true)
Send a Samsung A/C message with the supplied settings.
Definition: IRac.cpp:2043
-
void voltas(IRVoltas *ac, const voltas_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool econo, const bool light, const int16_t sleep=-1)
Send a Voltas A/C message with the supplied settings.
Definition: IRac.cpp:2509
-
void transcold(IRTranscoldAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh)
Send a Transcold A/C message with the supplied settings.
Definition: IRac.cpp:2587
-
tcl_ac_remote_model_t
TCL (& Teknopoint) A/C model numbers.
Definition: IRsend.h:179
-
bool sendAc(void)
Send an A/C message based soley on our internal state.
Definition: IRac.cpp:3407
-
static bool cmpStates(const stdAc::state_t a, const stdAc::state_t b)
Compare two AirCon states.
Definition: IRac.cpp:3418
+
void daikin64(IRDaikin64 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool quiet, const bool turbo, const int16_t sleep=-1, const int16_t clock=-1)
Send a Daikin 64-bit A/C message with the supplied settings.
Definition: IRac.cpp:1059
+
void samsung(IRSamsungAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool econo, const bool light, const bool filter, const bool clean, const bool beep, const int16_t sleep=-1, const bool prevpower=true, const int16_t prevsleep=-1, const bool forceextended=true)
Send a Samsung A/C message with the supplied settings.
Definition: IRac.cpp:2234
+
void voltas(IRVoltas *ac, const voltas_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool econo, const bool light, const int16_t sleep=-1)
Send a Voltas A/C message with the supplied settings.
Definition: IRac.cpp:2706
+
void transcold(IRTranscoldAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh)
Send a Transcold A/C message with the supplied settings.
Definition: IRac.cpp:2784
+
tcl_ac_remote_model_t
TCL (& Teknopoint) A/C model numbers.
Definition: IRsend.h:199
+
bool sendAc(void)
Send an A/C message based soley on our internal state.
Definition: IRac.cpp:3640
+
static bool cmpStates(const stdAc::state_t a, const stdAc::state_t b)
Compare two AirCon states.
Definition: IRac.cpp:3651
+
void argoWrem3_ConfigSet(IRArgoAC_WREM3 *ac, const uint8_t param, const uint8_t value, bool safe=true)
Send an Argo A/C WREM-3 Config command.
Definition: IRac.cpp:581
Support for Midea protocols. Midea added by crankyoldgit & bwze.
-
void midea(IRMideaAC *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool quiet, const bool quiet_prev, const bool turbo, const bool econo, const bool light, const bool clean, const int16_t sleep=-1)
Send a Midea A/C message with the supplied settings.
Definition: IRac.cpp:1674
Support for Daikin A/C protocols.
-
gree_ac_remote_model_t
Gree A/C model numbers.
Definition: IRsend.h:135
+
gree_ac_remote_model_t
Gree A/C model numbers.
Definition: IRsend.h:155
Class for handling detailed Daikin 64-bit A/C messages.
Definition: ir_Daikin.h:1200
-
void haierYrwo2(IRHaierACYRW02 *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool quiet, const bool filter, const int16_t sleep=-1)
Send a Haier YRWO2 A/C message with the supplied settings.
Definition: IRac.cpp:1309
+
void haierYrwo2(IRHaierACYRW02 *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool quiet, const bool filter, const int16_t sleep=-1)
Send a Haier YRWO2 A/C message with the supplied settings.
Definition: IRac.cpp:1493
Support for Coolix A/C protocols.
-
void vestel(IRVestelAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool filter, const int16_t sleep=-1, const int16_t clock=-1, const bool sendNormal=true)
Send a Vestel A/C message with the supplied settings.
Definition: IRac.cpp:2467
+
void vestel(IRVestelAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool filter, const int16_t sleep=-1, const int16_t clock=-1, const bool sendNormal=true)
Send a Vestel A/C message with the supplied settings.
Definition: IRac.cpp:2664
Class for handling detailed Rhoss A/C messages.
Definition: ir_Rhoss.h:94
Class for handling detailed Hitachi 53-byte/424-bit A/C messages.
Definition: ir_Hitachi.h:497
-
void daikin(IRDaikinESP *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool econo, const bool clean)
Send a Daikin A/C message with the supplied settings.
Definition: IRac.cpp:659
-
IRac(const uint16_t pin, const bool inverted=false, const bool use_modulation=true)
Class constructor.
Definition: IRac.cpp:71
+
void daikin(IRDaikinESP *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool econo, const bool clean)
Send a Daikin A/C message with the supplied settings.
Definition: IRac.cpp:826
+
IRac(const uint16_t pin, const bool inverted=false, const bool use_modulation=true)
Class constructor.
Definition: IRac.cpp:102
Class for handling detailed Daikin 216-bit A/C messages.
Definition: ir_Daikin.h:903
Class for handling detailed Voltas A/C messages.
Definition: ir_Voltas.h:91
-
void sharp(IRSharpAc *ac, const sharp_ac_remote_model_t model, const bool on, const bool prev_power, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingv_t swingv_prev, const bool turbo, const bool light, const bool filter, const bool clean)
Send a Sharp A/C message with the supplied settings.
Definition: IRac.cpp:2170
-
hitachi_ac1_remote_model_t
HITACHI_AC1 A/C model numbers.
Definition: IRsend.h:149
-
void haier176(IRHaierAC176 *ac, const haier_ac176_remote_model_t model, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool quiet, const bool filter, const int16_t sleep=-1)
Send a Haier 176 bit A/C message with the supplied settings.
Definition: IRac.cpp:1267
-
void daikin128(IRDaikin128 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool quiet, const bool turbo, const bool light, const bool econo, const int16_t sleep=-1, const int16_t clock=-1)
Send a Daikin 128-bit A/C message with the supplied settings.
Definition: IRac.cpp:699
+
void sharp(IRSharpAc *ac, const sharp_ac_remote_model_t model, const bool on, const bool prev_power, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingv_t swingv_prev, const bool turbo, const bool light, const bool filter, const bool clean)
Send a Sharp A/C message with the supplied settings.
Definition: IRac.cpp:2367
+
hitachi_ac1_remote_model_t
HITACHI_AC1 A/C model numbers.
Definition: IRsend.h:169
+
void haier176(IRHaierAC176 *ac, const haier_ac176_remote_model_t model, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool quiet, const bool filter, const int16_t sleep=-1)
Send a Haier 176 bit A/C message with the supplied settings.
Definition: IRac.cpp:1451
+
void daikin128(IRDaikin128 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool quiet, const bool turbo, const bool light, const bool econo, const int16_t sleep=-1, const int16_t clock=-1)
Send a Daikin 128-bit A/C message with the supplied settings.
Definition: IRac.cpp:866
Class for handling detailed Hitachi 224-bit A/C messages.
Definition: ir_Hitachi.h:372
-
const int8_t kGpioUnused
A placeholder for not using an actual GPIO.
Definition: IRac.h:52
-
Common functions for use with all A/Cs supported by the IRac class.
Definition: IRac.cpp:3768
+
const int8_t kGpioUnused
A placeholder for not using an actual GPIO.
Definition: IRac.h:55
+
Common functions for use with all A/Cs supported by the IRac class.
Definition: IRac.cpp:4047
Class for handling detailed Sanyo A/C messages.
Definition: ir_Sanyo.h:111
-
void haier(IRHaierAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool filter, const int16_t sleep=-1, const int16_t clock=-1)
Send a Haier A/C message with the supplied settings.
Definition: IRac.cpp:1180
+
ac_command_t
Tyoe of A/C command (if the remote uses different codes for each)
Definition: IRsend.h:90
+
void haier(IRHaierAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool filter, const int16_t sleep=-1, const int16_t clock=-1)
Send a Haier A/C message with the supplied settings.
Definition: IRac.cpp:1364
Definition: ir_Kelon.h:77
Class for handling detailed Whirlpool A/C messages.
Definition: ir_Whirlpool.h:132
-
void haier160(IRHaierAC160 *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool quiet, const bool filter, const bool clean, const bool light, const bool prevlight, const int16_t sleep=-1)
Send a Haier 160 bit A/C message with the supplied settings.
Definition: IRac.cpp:1222
+
void haier160(IRHaierAC160 *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool quiet, const bool filter, const bool clean, const bool light, const bool prevlight, const int16_t sleep=-1)
Send a Haier 160 bit A/C message with the supplied settings.
Definition: IRac.cpp:1406
Class for handling detailed Hitachi 344-bit A/C messages.
Definition: ir_Hitachi.h:586
-
static String boolToString(const bool value)
Convert the supplied boolean into the appropriate String.
Definition: IRac.cpp:3700
-
stdAc::state_t next
The state we want the device to be in after we send.
Definition: IRac.h:105
-
std::string String
Definition: IRremoteESP8266.h:1472
-
Class for handling detailed Mitsubishi 144-bit A/C messages.
Definition: ir_Mitsubishi.h:266
-
void trotec(IRTrotecESP *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const int16_t sleep=-1)
Send a Trotec A/C message with the supplied settings.
Definition: IRac.cpp:2366
-
static int16_t strToModel(const char *str, const int16_t def=-1)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:3585
-
void hitachi296(IRHitachiAc296 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan)
Send a Hitachi 296-bit A/C message with the supplied settings.
Definition: IRac.cpp:1448
+
static String boolToString(const bool value)
Convert the supplied boolean into the appropriate String.
Definition: IRac.cpp:3964
+
stdAc::state_t next
The state we want the device to be in after we send.
Definition: IRac.h:111
+
std::string String
Definition: IRremoteESP8266.h:1521
+
Class for handling detailed Mitsubishi 144-bit A/C messages.
Definition: ir_Mitsubishi.h:267
+
void trotec(IRTrotecESP *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const int16_t sleep=-1)
Send a Trotec A/C message with the supplied settings.
Definition: IRac.cpp:2563
+
static int16_t strToModel(const char *str, const int16_t def=-1)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:3844
+
void hitachi296(IRHitachiAc296 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan)
Send a Hitachi 296-bit A/C message with the supplied settings.
Definition: IRac.cpp:1632
Class for handling detailed Amcor A/C messages.
Definition: ir_Amcor.h:90
-
Class for handling detailed Mitsubishi 122-bit A/C messages.
Definition: ir_Mitsubishi.h:400
+
Support for the York AC protocol (remote GRYLH2A)
+
Class for handling detailed Mitsubishi 122-bit A/C messages.
Definition: ir_Mitsubishi.h:401
EcoClim A/C protocol.
Class for handling detailed TCL A/C messages.
Definition: ir_Tcl.h:125
-
void daikin176(IRDaikin176 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingh_t swingh)
Send a Daikin 176-bit A/C message with the supplied settings.
Definition: IRac.cpp:791
-
Class for handling detailed Electra A/C messages.
Definition: ir_Electra.h:113
+
void daikin176(IRDaikin176 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingh_t swingh)
Send a Daikin 176-bit A/C message with the supplied settings.
Definition: IRac.cpp:958
+
Class for handling detailed Electra A/C messages.
Definition: ir_Electra.h:114
Support for TCL protocols.
-
bool hasStateChanged(void)
Check if the internal state has changed from what was previously sent.
Definition: IRac.cpp:3430
-
void daikin216(IRDaikin216 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo)
Send a Daikin 216-bit A/C message with the supplied settings.
Definition: IRac.cpp:862
+
bool hasStateChanged(void)
Check if the internal state has changed from what was previously sent.
Definition: IRac.cpp:3665
+
void daikin216(IRDaikin216 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo)
Send a Daikin 216-bit A/C message with the supplied settings.
Definition: IRac.cpp:1029
Support for Transcold A/C protocols.
Support for Hitachi A/C protocols.
Support for Panasonic protocols.
-
void rhoss(IRRhossAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swing)
Send an Rhoss A/C message with the supplied settings.
Definition: IRac.cpp:2626
-
static stdAc::state_t handleToggles(const stdAc::state_t desired, const stdAc::state_t *prev=NULL)
Create a new state base on desired & previous states but handle any state changes for options that ne...
Definition: IRac.cpp:2665
-
Class for handling detailed Mitsubishi 136-bit A/C messages.
Definition: ir_Mitsubishi.h:346
-
panasonic_ac_remote_model_t
Panasonic A/C model numbers.
Definition: IRsend.h:161
+
void rhoss(IRRhossAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swing)
Send an Rhoss A/C message with the supplied settings.
Definition: IRac.cpp:2823
+
static stdAc::state_t handleToggles(const stdAc::state_t desired, const stdAc::state_t *prev=NULL)
Create a new state base on desired & previous states but handle any state changes for options that ne...
Definition: IRac.cpp:2862
+
void argoWrem3_iFeelReport(IRArgoAC_WREM3 *ac, const float sensorTemp)
Send an Argo A/C WREM-3 iFeel (room temp) silent (no beep) report.
Definition: IRac.cpp:563
+
Class for handling detailed Mitsubishi 136-bit A/C messages.
Definition: ir_Mitsubishi.h:347
+
panasonic_ac_remote_model_t
Panasonic A/C model numbers.
Definition: IRsend.h:181
-
void hitachi264(IRHitachiAc264 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan)
Send a Hitachi 264-bit A/C message with the supplied settings.
Definition: IRac.cpp:1419
-
swingh_t
Common A/C settings for Horizontal Swing.
Definition: IRsend.h:83
-
void mitsubishi112(IRMitsubishi112 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet)
Send a Mitsubishi 112-bit A/C message with the supplied settings.
Definition: IRac.cpp:1764
+
void hitachi264(IRHitachiAc264 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan)
Send a Hitachi 264-bit A/C message with the supplied settings.
Definition: IRac.cpp:1603
+
swingh_t
Common A/C settings for Horizontal Swing.
Definition: IRsend.h:100
+
void mitsubishi112(IRMitsubishi112 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet)
Send a Mitsubishi 112-bit A/C message with the supplied settings.
Definition: IRac.cpp:1955
Class for handling detailed Hitachi 264-bit A/C messages.
Definition: ir_Hitachi.h:607
-
bool decodeToState(const decode_results *decode, stdAc::state_t *result, const stdAc::state_t *prev)
Convert a valid IR A/C remote message that we understand enough into a Common A/C state.
Definition: IRac.cpp:4225
+
bool decodeToState(const decode_results *decode, stdAc::state_t *result, const stdAc::state_t *prev)
Convert a valid IR A/C remote message that we understand enough into a Common A/C state.
Definition: IRac.cpp:4517
Class for handling detailed Hitachi 104-bit A/C messages.
Definition: ir_Hitachi.h:429
Class for handling detailed Mirage 120-bit A/C messages.
Definition: ir_Mirage.h:196
-
void hitachi424(IRHitachiAc424 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv)
Send a Hitachi 424-bit A/C message with the supplied settings.
Definition: IRac.cpp:1513
+
void hitachi424(IRHitachiAc424 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv)
Send a Hitachi 424-bit A/C message with the supplied settings.
Definition: IRac.cpp:1697
Support for Samsung protocols. Samsung originally added from https://github.com/shirriff/Arduino-IRre...
-
static String opmodeToString(const stdAc::opmode_t mode, const bool ha=false)
Convert the supplied operation mode into the appropriate String.
Definition: IRac.cpp:3708
-
String resultAcToString(const decode_results *const result)
Display the human readable state of an A/C message if we can.
Definition: IRac.cpp:3774
-
void daikin152(IRDaikin152 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool quiet, const bool turbo, const bool econo)
Send a Daikin 152-bit A/C message with the supplied settings.
Definition: IRac.cpp:736
-
fujitsu_ac_remote_model_t
Fujitsu A/C model numbers.
Definition: IRsend.h:120
+
Supports Argo A/C SAC-WREM3 IR remote protocol.
Definition: ir_Argo.h:449
+
static String opmodeToString(const stdAc::opmode_t mode, const bool ha=false)
Convert the supplied operation mode into the appropriate String.
Definition: IRac.cpp:3985
+
String resultAcToString(const decode_results *const result)
Display the human readable state of an A/C message if we can.
Definition: IRac.cpp:4053
+
void daikin152(IRDaikin152 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool quiet, const bool turbo, const bool econo)
Send a Daikin 152-bit A/C message with the supplied settings.
Definition: IRac.cpp:903
+
fujitsu_ac_remote_model_t
Fujitsu A/C model numbers.
Definition: IRsend.h:140
Support for Gree A/C protocols.
-
Class for handling detailed Carrier 64 bit A/C messages.
Definition: ir_Carrier.h:86
+
Class for handling detailed Carrier 64 bit A/C messages.
Definition: ir_Carrier.h:89
Definition: ir_Hitachi.h:624
+
void argoWrem3_ACCommand(IRArgoAC_WREM3 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const float sensorTemp, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool iFeel, const bool night, const bool econo, const bool turbo, const bool filter, const bool light)
Send an Argo A/C WREM-3 AC control message with the supplied settings.
Definition: IRac.cpp:529
Support for Mirage protocol.
Class for handling detailed Midea A/C messages.
Definition: ir_Midea.h:175
Class for handling detailed Kelvinator A/C messages.
Definition: ir_Kelvinator.h:132
-
bool _inverted
IR LED is lit when GPIO is LOW (true) or HIGH (false)?
Definition: IRac.h:111
+
bool _inverted
IR LED is lit when GPIO is LOW (true) or HIGH (false)?
Definition: IRac.h:124
+
void midea(IRMideaAC *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const float sensorTemp, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool iFeel, const bool quiet, const bool quiet_prev, const bool turbo, const bool econo, const bool light, const bool clean, const int16_t sleep=-1)
Send a Midea A/C message with the supplied settings.
Definition: IRac.cpp:1861
Class for handling detailed Fujitsu A/C messages.
Definition: ir_Fujitsu.h:179
Support for Airton protocol.
Support for Mitsubishi Heavy Industry protocols. Code to emulate Mitsubishi Heavy Industries A/C IR r...
Class for handling detailed Coolix A/C messages.
Definition: ir_Coolix.h:120
-
void panasonic(IRPanasonicAc *ac, const panasonic_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool filter, const int16_t clock=-1)
Send a Panasonic A/C message with the supplied settings.
Definition: IRac.cpp:1961
-
static String swingvToString(const stdAc::swingv_t swingv)
Convert the supplied enum into the appropriate String.
Definition: IRac.cpp:3738
+
void panasonic(IRPanasonicAc *ac, const panasonic_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool filter, const int16_t clock=-1)
Send a Panasonic A/C message with the supplied settings.
Definition: IRac.cpp:2152
+
static String swingvToString(const stdAc::swingv_t swingv)
Convert the supplied enum into the appropriate String.
Definition: IRac.cpp:4016
Support for Mitsubishi protocols. Mitsubishi (TV) decoding added from https://github....
-
A universal/common/generic interface for controling supported A/Cs.
Definition: IRac.h:56
+
A universal/common/generic interface for controling supported A/Cs.
Definition: IRac.h:59
Support for Teco protocols.
Class for handling detailed Trotec 3550 A/C messages.
Definition: ir_Trotec.h:198
Delonghi A/C.
-
void electra(IRElectraAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool lighttoggle, const bool clean)
Send an Electra A/C message with the supplied settings.
Definition: IRac.cpp:988
Class for handling detailed Haier 160 bit A/C messages.
Definition: ir_Haier.h:563
-
static stdAc::state_t cleanState(const stdAc::state_t state)
Create a new state base on the provided state that has been suitably fixed.
Definition: IRac.cpp:2652
+
static stdAc::state_t cleanState(const stdAc::state_t state)
Create a new state base on the provided state that has been suitably fixed.
Definition: IRac.cpp:2849
Support for Argo Ulisse 13 DCI Mobile Split ACs.
-
void mitsubishi(IRMitsubishiAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const int16_t clock=-1)
Send a Mitsubishi A/C message with the supplied settings.
Definition: IRac.cpp:1725
-
void amcor(IRAmcorAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan)
Send an Amcor A/C message with the supplied settings.
Definition: IRac.cpp:415
+
void mitsubishi(IRMitsubishiAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const int16_t clock=-1)
Send a Mitsubishi A/C message with the supplied settings.
Definition: IRac.cpp:1916
+
void amcor(IRAmcorAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan)
Send an Amcor A/C message with the supplied settings.
Definition: IRac.cpp:449
Class for handling detailed Technibel A/C messages.
Definition: ir_Technibel.h:77
Class for handling detailed EcoClim A/C 56 bit messages.
Definition: ir_Ecoclim.h:84
Class for handling detailed Airwell A/C messages.
Definition: ir_Airwell.h:60
@@ -763,83 +792,86 @@
Class for handling detailed Daikin 152-bit A/C messages.
Definition: ir_Daikin.h:1140
Class for handling detailed LG A/C messages.
Definition: ir_LG.h:114
Support for Fujitsu A/C protocols. Fujitsu A/C support added by Jonny Graham.
-
void trotec3550(IRTrotec3550 *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv)
Send a Trotec 3550 A/C message with the supplied settings.
Definition: IRac.cpp:2398
+
void trotec3550(IRTrotec3550 *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv)
Send a Trotec 3550 A/C message with the supplied settings.
Definition: IRac.cpp:2595
Class for handling detailed Haier A/C messages.
Definition: ir_Haier.h:376
-
void neoclima(IRNeoclimaAc *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool econo, const bool light, const bool filter, const int16_t sleep=-1)
Send a Neoclima A/C message with the supplied settings.
Definition: IRac.cpp:1920
+
void argo(IRArgoAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const float sensorTemp, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool iFeel, const bool turbo, const int16_t sleep=-1)
Send an Argo A/C message with the supplied settings.
Definition: IRac.cpp:484
+
void neoclima(IRNeoclimaAc *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool econo, const bool light, const bool filter, const int16_t sleep=-1)
Send a Neoclima A/C message with the supplied settings.
Definition: IRac.cpp:2111
Class for handling detailed Daikin 160-bit A/C messages.
Definition: ir_Daikin.h:959
Class for handling detailed Sharp A/C messages.
Definition: ir_Sharp.h:153
Class for handling detailed Haier 176 bit A/C messages.
Definition: ir_Haier.h:446
Support for Goodweather compatible HVAC protocols.
-
void argo(IRArgoAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const int16_t sleep=-1)
Send an Argo A/C message with the supplied settings.
Definition: IRac.cpp:447
-
void toshiba(IRToshibaAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool econo, const bool filter)
Send a Toshiba A/C message with the supplied settings.
Definition: IRac.cpp:2330
-
lg_ac_remote_model_t
LG A/C model numbers.
Definition: IRsend.h:197
-
void mitsubishi136(IRMitsubishi136 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool quiet)
Send a Mitsubishi 136-bit A/C message with the supplied settings.
Definition: IRac.cpp:1800
+
void toshiba(IRToshibaAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool econo, const bool filter)
Send a Toshiba A/C message with the supplied settings.
Definition: IRac.cpp:2527
+
lg_ac_remote_model_t
LG A/C model numbers.
Definition: IRsend.h:217
+
void mitsubishi136(IRMitsubishi136 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool quiet)
Send a Mitsubishi 136-bit A/C message with the supplied settings.
Definition: IRac.cpp:1991
@ kAuto
Support for Rhoss A/C protocol.
-
void airton(IRAirtonAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool light, const bool econo, const bool filter, const int16_t sleep=-1)
Send an Airton 56-bit A/C message with the supplied settings.
Definition: IRac.cpp:356
-
bool _modulation
Is frequency modulation to be used?
Definition: IRac.h:112
-
void teco(IRTecoAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool light, const int16_t sleep=-1)
Send a Teco A/C message with the supplied settings.
Definition: IRac.cpp:2296
-
static stdAc::opmode_t strToOpmode(const char *str, const stdAc::opmode_t def=stdAc::opmode_t::kAuto)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:3436
+
void airton(IRAirtonAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool light, const bool econo, const bool filter, const int16_t sleep=-1)
Send an Airton 56-bit A/C message with the supplied settings.
Definition: IRac.cpp:390
+
bool _modulation
Is frequency modulation to be used?
Definition: IRac.h:125
+
void teco(IRTecoAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool light, const int16_t sleep=-1)
Send a Teco A/C message with the supplied settings.
Definition: IRac.cpp:2493
+
static stdAc::opmode_t strToOpmode(const char *str, const stdAc::opmode_t def=stdAc::opmode_t::kAuto)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:3691
Support for Sanyo protocols. Sanyo LC7461 support originally by marcosamarinho Sanyo SA 8650B origina...
-
void hitachi1(IRHitachiAc1 *ac, const hitachi_ac1_remote_model_t model, const bool on, const bool power_toggle, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool swing_toggle, const int16_t sleep=-1)
Send a Hitachi1 A/C message with the supplied settings.
Definition: IRac.cpp:1382
+
void hitachi1(IRHitachiAc1 *ac, const hitachi_ac1_remote_model_t model, const bool on, const bool power_toggle, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool swing_toggle, const int16_t sleep=-1)
Send a Hitachi1 A/C message with the supplied settings.
Definition: IRac.cpp:1566
+
void gree(IRGreeAC *ac, const gree_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool iFeel, const bool turbo, const bool econo, const bool light, const bool clean, const int16_t sleep=-1)
Send a Gree A/C message with the supplied settings.
Definition: IRac.cpp:1323
Class for handling detailed Transcold A/C messages.
Definition: ir_Transcold.h:120
@ kOff
-
void panasonic32(IRPanasonicAc32 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh)
Send a Panasonic A/C message with the supplied settings.
Definition: IRac.cpp:1997
+
void panasonic32(IRPanasonicAc32 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh)
Send a Panasonic A/C message with the supplied settings.
Definition: IRac.cpp:2188
Support for Whirlpool protocols. Decoding help from: @redmusicxd, @josh929800, @raducostea.
-
static bool strToBool(const char *str, const bool def=false)
Convert the supplied str into the appropriate boolean value.
Definition: IRac.cpp:3682
-
void sanyo88(IRSanyoAc88 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool filter, const int16_t sleep=-1, const int16_t clock=-1)
Send a Sanyo 88-bit A/C message with the supplied settings.
Definition: IRac.cpp:2128
-
void mitsubishiHeavy88(IRMitsubishiHeavy88Ac *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool econo, const bool clean)
Send a Mitsubishi Heavy 88-bit A/C message with the supplied settings.
Definition: IRac.cpp:1835
-
static stdAc::swingv_t strToSwingV(const char *str, const stdAc::swingv_t def=stdAc::swingv_t::kOff)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:3503
+
static bool strToBool(const char *str, const bool def=false)
Convert the supplied str into the appropriate boolean value.
Definition: IRac.cpp:3946
+
void sanyo88(IRSanyoAc88 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool filter, const int16_t sleep=-1, const int16_t clock=-1)
Send a Sanyo 88-bit A/C message with the supplied settings.
Definition: IRac.cpp:2325
+
void mitsubishiHeavy88(IRMitsubishiHeavy88Ac *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool econo, const bool clean)
Send a Mitsubishi Heavy 88-bit A/C message with the supplied settings.
Definition: IRac.cpp:2026
+
static stdAc::swingv_t strToSwingV(const char *str, const stdAc::swingv_t def=stdAc::swingv_t::kOff)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:3760
Class for handling detailed Vestel A/C messages.
Definition: ir_Vestel.h:100
Class for handling detailed Panasonic 32bit A/C messages.
Definition: ir_Panasonic.h:223
-
void tcl112(IRTcl112Ac *ac, const tcl_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool light, const bool econo, const bool filter)
Send a TCL 112-bit A/C message with the supplied settings.
Definition: IRac.cpp:2226
-
void mirage(IRMirageAc *ac, const stdAc::state_t state)
Send a Mirage 120-bit A/C message with the supplied settings.
Definition: IRac.cpp:1706
+
void tcl112(IRTcl112Ac *ac, const tcl_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool light, const bool econo, const bool filter)
Send a TCL 112-bit A/C message with the supplied settings.
Definition: IRac.cpp:2423
+
void mirage(IRMirageAc *ac, const stdAc::state_t state)
Send a Mirage 120-bit A/C message with the supplied settings.
Definition: IRac.cpp:1897
+
void ecoclim(IREcoclimAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const float sensorTemp, const stdAc::fanspeed_t fan, const int16_t sleep=-1, const int16_t clock=-1)
Send an EcoClim A/C message with the supplied settings.
Definition: IRac.cpp:1115
Class for handling detailed Trotec A/C messages.
Definition: ir_Trotec.h:133
Support for Truma protocol.
Class for handling detailed Teco A/C messages.
Definition: ir_Teco.h:62
-
void truma(IRTrumaAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const bool quiet)
Send a Truma A/C message with the supplied settings.
Definition: IRac.cpp:2430
-
static String swinghToString(const stdAc::swingh_t swingh)
Convert the supplied enum into the appropriate String.
Definition: IRac.cpp:3754
+
void truma(IRTrumaAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const bool quiet)
Send a Truma A/C message with the supplied settings.
Definition: IRac.cpp:2627
+
static String swinghToString(const stdAc::swingh_t swingh)
Convert the supplied enum into the appropriate String.
Definition: IRac.cpp:4033
Class for handling detailed Truma A/C messages.
Definition: ir_Truma.h:69
Support for Technibel protocol.
-
void delonghiac(IRDelonghiAc *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const bool turbo, const int16_t sleep=-1)
Send a Delonghi A/C message with the supplied settings.
Definition: IRac.cpp:922
-
void kelon(IRKelonAc *ac, const bool togglePower, const stdAc::opmode_t mode, const int8_t dryGrade, const float degrees, const stdAc::fanspeed_t fan, const bool toggleSwing, const bool superCool, const int16_t sleep)
Send a Kelon A/C message with the supplied settings.
Definition: IRac.cpp:1548
+
void delonghiac(IRDelonghiAc *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const bool turbo, const int16_t sleep=-1)
Send a Delonghi A/C message with the supplied settings.
Definition: IRac.cpp:1089
+
void kelon(IRKelonAc *ac, const bool togglePower, const stdAc::opmode_t mode, const int8_t dryGrade, const float degrees, const stdAc::fanspeed_t fan, const bool toggleSwing, const bool superCool, const int16_t sleep)
Send a Kelon A/C message with the supplied settings.
Definition: IRac.cpp:1732
Support for Kelan AC protocol.
-
stdAc::state_t _prev
The state we expect the device to currently be in.
Definition: IRac.h:113
+
stdAc::state_t _prev
The state we expect the device to currently be in.
Definition: IRac.h:126
Class for handling detailed Haier ACYRW02 A/C messages.
Definition: ir_Haier.h:544
-
void daikin160(IRDaikin160 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv)
Send a Daikin 160-bit A/C message with the supplied settings.
Definition: IRac.cpp:769
-
void corona(IRCoronaAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool econo)
Send a Corona A/C message with the supplied settings.
Definition: IRac.cpp:624
-
static void initState(stdAc::state_t *state, const decode_type_t vendor, const int16_t model, const bool power, const stdAc::opmode_t mode, const float degrees, const bool celsius, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool econo, const bool light, const bool filter, const bool clean, const bool beep, const int16_t sleep, const int16_t clock)
Initialise the given state with the supplied settings.
Definition: IRac.cpp:101
-
void lg(IRLgAc *ac, const lg_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingv_t swingv_prev, const stdAc::swingh_t swingh, const bool light)
Send a LG A/C message with the supplied settings.
Definition: IRac.cpp:1621
-
void mitsubishiHeavy152(IRMitsubishiHeavy152Ac *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool econo, const bool filter, const bool clean, const int16_t sleep=-1)
Send a Mitsubishi Heavy 152-bit A/C message with the supplied settings.
Definition: IRac.cpp:1876
+
void daikin160(IRDaikin160 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv)
Send a Daikin 160-bit A/C message with the supplied settings.
Definition: IRac.cpp:936
+
void corona(IRCoronaAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool econo)
Send a Corona A/C message with the supplied settings.
Definition: IRac.cpp:791
+
static void initState(stdAc::state_t *state, const decode_type_t vendor, const int16_t model, const bool power, const stdAc::opmode_t mode, const float degrees, const bool celsius, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool econo, const bool light, const bool filter, const bool clean, const bool beep, const int16_t sleep, const int16_t clock)
Initialise the given state with the supplied settings.
Definition: IRac.cpp:132
+
void lg(IRLgAc *ac, const lg_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingv_t swingv_prev, const stdAc::swingh_t swingh, const bool light)
Send a LG A/C message with the supplied settings.
Definition: IRac.cpp:1805
+
void mitsubishiHeavy152(IRMitsubishiHeavy152Ac *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool quiet, const bool turbo, const bool econo, const bool filter, const bool clean, const int16_t sleep=-1)
Send a Mitsubishi Heavy 152-bit A/C message with the supplied settings.
Definition: IRac.cpp:2067
@ kOff
Support for Haier A/C protocols. The specifics of reverse engineering the protocols details:
Class for handling detailed Mitsubishi Heavy 88-bit A/C messages.
Definition: ir_MitsubishiHeavy.h:271
-
void bosch144(IRBosch144AC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const bool quiet)
Send a Bosch144 A/C message with the supplied settings.
Definition: IRac.cpp:479
+
void bosch144(IRBosch144AC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const bool quiet)
Send a Bosch144 A/C message with the supplied settings.
Definition: IRac.cpp:636
Class for handling detailed Gree A/C messages.
Definition: ir_Gree.h:156
-
void coolix(IRCoolixAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool light, const bool clean, const int16_t sleep=-1)
Send a Coolix A/C message with the supplied settings.
Definition: IRac.cpp:557
-
static stdAc::fanspeed_t strToFanspeed(const char *str, const stdAc::fanspeed_t def=stdAc::fanspeed_t::kAuto)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:3472
+
static stdAc::fanspeed_t strToFanspeed(const char *str, const stdAc::fanspeed_t def=stdAc::fanspeed_t::kAuto)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:3727
Support for Toshiba protocols.
-
void gree(IRGreeAC *ac, const gree_ac_remote_model_t model, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool turbo, const bool econo, const bool light, const bool clean, const int16_t sleep=-1)
Send a Gree A/C message with the supplied settings.
Definition: IRac.cpp:1140
-
void goodweather(IRGoodweatherAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool light, const int16_t sleep=-1)
Send a Goodweather A/C message with the supplied settings.
Definition: IRac.cpp:1096
-
Structure to hold a common A/C state.
Definition: IRsend.h:97
+
void coolix(IRCoolixAC *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const float sensorTemp, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const stdAc::swingh_t swingh, const bool iFeel, const bool turbo, const bool light, const bool clean, const int16_t sleep=-1)
Send a Coolix A/C message with the supplied settings.
Definition: IRac.cpp:717
+
@ kControlCommand
+
void goodweather(IRGoodweatherAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool turbo, const bool light, const int16_t sleep=-1)
Send a Goodweather A/C message with the supplied settings.
Definition: IRac.cpp:1278
+
Structure to hold a common A/C state.
Definition: IRsend.h:114
+
void sanyo(IRSanyoAc *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const float sensorTemp, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const bool iFeel, const bool beep, const int16_t sleep=-1)
Send a Sanyo A/C message with the supplied settings.
Definition: IRac.cpp:2281
Class for handling detailed Goodweather A/C messages.
Definition: ir_Goodweather.h:100
Support for Vestel protocols. Vestel added by Erdem U. Altinyurt.
-
Class for handling detailed Argo A/C messages.
Definition: ir_Argo.h:127
+
Supports Argo A/C SAC-WREM2 IR remote protocol.
Definition: ir_Argo.h:422
Class for handling detailed Sanyo A/C messages.
Definition: ir_Sanyo.h:229
Class for handling detailed Neoclima A/C messages.
Definition: ir_Neoclima.h:120
-
static bool isProtocolSupported(const decode_type_t protocol)
Is the given protocol supported by the IRac class?
Definition: IRac.cpp:151
+
static bool isProtocolSupported(const decode_type_t protocol)
Is the given protocol supported by the IRac class?
Definition: IRac.cpp:182
Class for handling detailed Bosch144 A/C messages.
Definition: ir_Bosch.h:140
Class for handling detailed Daikin 176-bit A/C messages.
Definition: ir_Daikin.h:1011
Amcor A/C protocol.
-
uint16_t _pin
The GPIO to use to transmit messages from.
Definition: IRac.h:110
-
void technibel(IRTechnibelAc *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const int16_t sleep=-1)
Send a Technibel A/C message with the supplied settings.
Definition: IRac.cpp:2263
-
voltas_ac_remote_model_t
Voltas A/C model numbers.
Definition: IRsend.h:185
-
sharp_ac_remote_model_t
Sharp A/C model numbers.
Definition: IRsend.h:172
+
uint16_t _pin
The GPIO to use to transmit messages from.
Definition: IRac.h:123
+
void technibel(IRTechnibelAc *ac, const bool on, const stdAc::opmode_t mode, const bool celsius, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const int16_t sleep=-1)
Send a Technibel A/C message with the supplied settings.
Definition: IRac.cpp:2460
+
voltas_ac_remote_model_t
Voltas A/C model numbers.
Definition: IRsend.h:205
+
sharp_ac_remote_model_t
Sharp A/C model numbers.
Definition: IRsend.h:192
Support for LG protocols.
-
void carrier64(IRCarrierAc64 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const int16_t sleep=-1)
Send a Carrier 64-bit A/C message with the supplied settings.
Definition: IRac.cpp:520
-
haier_ac176_remote_model_t
HAIER_AC176 A/C model numbers.
Definition: IRsend.h:143
-
opmode_t
Common A/C settings for A/C operating modes.
Definition: IRsend.h:46
+
void carrier64(IRCarrierAc64 *ac, const bool on, const stdAc::opmode_t mode, const float degrees, const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv, const int16_t sleep=-1)
Send a Carrier 64-bit A/C message with the supplied settings.
Definition: IRac.cpp:677
+
haier_ac176_remote_model_t
HAIER_AC176 A/C model numbers.
Definition: IRsend.h:163
+
opmode_t
Common A/C settings for A/C operating modes.
Definition: IRsend.h:49