From 9fd3ed597f01f59e2ace42a11b322a1ab7ad4f07 Mon Sep 17 00:00:00 2001 From: mikep1998 <44448320+mikep1998@users.noreply.github.com> Date: Mon, 5 Jul 2021 23:23:38 -0700 Subject: [PATCH 01/21] Update xdrv_54_lvgl.ino (#12574) Fix compile error with LVGL define and without USE_BERRY defined --- tasmota/xdrv_54_lvgl.ino | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tasmota/xdrv_54_lvgl.ino b/tasmota/xdrv_54_lvgl.ino index b95318e4d..0601ccd6b 100644 --- a/tasmota/xdrv_54_lvgl.ino +++ b/tasmota/xdrv_54_lvgl.ino @@ -42,6 +42,7 @@ Adafruit_LvGL_Glue * glue; // Logging // ************************************************** #if LV_USE_LOG +#ifdef USE_BERRY static void lvbe_debug(lv_log_level_t level, const char *file, uint32_t line, const char *fname, const char *msg); static void lvbe_debug(lv_log_level_t level, const char *file, uint32_t line, const char *fname, const char *msg) { be_writebuffer("LVG: ", sizeof("LVG: ")); @@ -51,6 +52,7 @@ static void lvbe_debug(lv_log_level_t level, const char *file, uint32_t line, co be_writebuffer("\n", sizeof("\n")); } #endif +#endif /************************************************************ * Main screen refresh function From d44fc80cd30f0ca68d9b1a2bdf8448d89f978e30 Mon Sep 17 00:00:00 2001 From: Theo Arends <11044339+arendst@users.noreply.github.com> Date: Tue, 6 Jul 2021 11:28:33 +0200 Subject: [PATCH 02/21] Fix exception 28 when unable to send MQTT message Fix exception 28 when unable to send MQTT message and a topic name without a slash '/' (#12555) --- CHANGELOG.md | 2 ++ RELEASENOTES.md | 2 ++ tasmota/xdrv_02_9_mqtt.ino | 3 ++- 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e58d2322d..cb75babcb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,8 @@ All notable changes to this project will be documented in this file. - Scripter moving average and sml input validation (#12541) - Zigbee Hue angle encoding (#12545) - AM2320 value reporting (#12552) +- Exception 28 when unable to send MQTT message and a topic name without a slash '/' (#12555) +- Wi-Fi initial setup workaround for 11n only routers (#12566) ## [9.5.0.1] 20210701 ### Added diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 955fe79df..2c7e4034c 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -126,6 +126,8 @@ The latter links can be used for OTA upgrades too like ``OtaUrl http://ota.tasmo - Scripter and Display MQTT errors due to MQTT_DATA move to String [#12525](https://github.com/arendst/Tasmota/issues/12525) - Scripter moving average and sml input validation [#12541](https://github.com/arendst/Tasmota/issues/12541) - Zigbee Hue angle encoding [#12545](https://github.com/arendst/Tasmota/issues/12545) +- Exception 28 when unable to send MQTT message and a topic name without a slash '/' [#12555](https://github.com/arendst/Tasmota/issues/12555) +- Wi-Fi initial setup workaround for 11n only routers [#12566](https://github.com/arendst/Tasmota/issues/12566) ### Noted - ESP32 single core **tasmota32solo1.bin** binary can only be uploaded using the GUI as OTA upload will trigger the watchdog timer \ No newline at end of file diff --git a/tasmota/xdrv_02_9_mqtt.ino b/tasmota/xdrv_02_9_mqtt.ino index 167fea8a3..bbc37b29e 100644 --- a/tasmota/xdrv_02_9_mqtt.ino +++ b/tasmota/xdrv_02_9_mqtt.ino @@ -640,7 +640,8 @@ void MqttPublishPayload(const char* topic, const char* payload, uint32_t binary_ log_data_topic += topic; // stat/tasmota/STATUS2 } else { log_data_topic = F(D_LOG_RESULT); // RSL: - log_data_topic += strrchr(topic,'/')+1; // STATUS2 + char *command = strrchr(topic, '/'); // If last part of topic it is always the command + log_data_topic += (command == nullptr) ? topic : command +1; // STATUS2 retained = false; // Without MQTT enabled there is no retained message } log_data_topic += F(" = "); // = From 52181f0822529cddc0b726d2f4f19ff955fc0e43 Mon Sep 17 00:00:00 2001 From: Stephan Hadinger Date: Tue, 6 Jul 2021 12:21:23 +0200 Subject: [PATCH 03/21] IRremoteESP8266 library from v2.7.18 to v2.7.19 --- CHANGELOG.md | 1 + .../IRremoteESP8266/IRremoteESP8266/README.md | 6 +- .../IRremoteESP8266/README_de.md | 6 +- .../IRremoteESP8266/README_fr.md | 6 +- .../IRremoteESP8266/ReleaseNotes.md | 23 + .../IRremoteESP8266/SupportedProtocols.md | 15 +- .../docs/doxygen/html/IRac_8h_source.html | 1098 ++-- .../docs/doxygen/html/IRrecv_8h_source.html | 1419 +++--- .../docs/doxygen/html/IRremoteESP8266_8h.html | 109 +- .../html/IRremoteESP8266_8h_source.html | 3056 +++++------ .../docs/doxygen/html/IRsend_8h_source.html | 755 +-- .../docs/doxygen/html/IRutils_8cpp.html | 44 + .../docs/doxygen/html/IRutils_8h.html | 44 + .../docs/doxygen/html/IRutils_8h_source.html | 303 +- .../docs/doxygen/html/annotated.html | 110 +- .../doxygen/html/classIRKelonAc-members.html | 118 + .../docs/doxygen/html/classIRKelonAc.html | 1209 +++++ .../html/classIRKelonAc__coll__graph.map | 5 + .../html/classIRKelonAc__coll__graph.md5 | 1 + .../html/classIRKelonAc__coll__graph.png | Bin 0 -> 5872 bytes .../docs/doxygen/html/classIRac-members.html | 77 +- .../docs/doxygen/html/classIRac.html | 97 + .../doxygen/html/classIRrecv-members.html | 162 +- .../docs/doxygen/html/classIRrecv.html | 222 + .../doxygen/html/classIRsend-members.html | 47 +- .../docs/doxygen/html/classIRsend.html | 153 +- .../doxygen/html/classdecode__results.html | 32 +- .../docs/doxygen/html/classes.html | 54 +- .../docs/doxygen/html/defaults_8h_source.html | 481 +- .../dir_68267d1309a1af8e8297ef4c3efbcdba.html | 9 + .../docs/doxygen/html/files.html | 155 +- .../docs/doxygen/html/functions.html | 14 + .../docs/doxygen/html/functions_b.html | 1 + .../docs/doxygen/html/functions_c.html | 5 +- .../docs/doxygen/html/functions_d.html | 12 + .../docs/doxygen/html/functions_e.html | 3 + .../docs/doxygen/html/functions_f.html | 1 + .../docs/doxygen/html/functions_func.html | 3 + .../docs/doxygen/html/functions_func_b.html | 1 + .../docs/doxygen/html/functions_func_c.html | 3 + .../docs/doxygen/html/functions_func_d.html | 9 + .../docs/doxygen/html/functions_func_e.html | 3 + .../docs/doxygen/html/functions_func_g.html | 19 + .../docs/doxygen/html/functions_func_i.html | 5 +- .../docs/doxygen/html/functions_func_k.html | 3 + .../docs/doxygen/html/functions_func_s.html | 32 +- .../docs/doxygen/html/functions_func_t.html | 4 + .../docs/doxygen/html/functions_g.html | 19 + .../docs/doxygen/html/functions_i.html | 3 + .../docs/doxygen/html/functions_k.html | 3 + .../docs/doxygen/html/functions_m.html | 1 + .../docs/doxygen/html/functions_p.html | 6 + .../docs/doxygen/html/functions_r.html | 1 + .../docs/doxygen/html/functions_s.html | 43 + .../docs/doxygen/html/functions_t.html | 12 + .../docs/doxygen/html/functions_vars.html | 13 +- .../docs/doxygen/html/functions_vars_c.html | 2 +- .../docs/doxygen/html/functions_vars_d.html | 3 + .../docs/doxygen/html/functions_vars_f.html | 1 + .../docs/doxygen/html/functions_vars_m.html | 1 + .../docs/doxygen/html/functions_vars_p.html | 6 + .../docs/doxygen/html/functions_vars_r.html | 1 + .../docs/doxygen/html/functions_vars_s.html | 13 + .../docs/doxygen/html/functions_vars_t.html | 8 + .../docs/doxygen/html/globals_eval.html | 9 + .../docs/doxygen/html/globals_func.html | 4 + .../docs/doxygen/html/globals_h.html | 7 +- .../docs/doxygen/html/globals_i.html | 8 +- .../docs/doxygen/html/globals_k.html | 259 +- .../docs/doxygen/html/globals_t.html | 3 + .../docs/doxygen/html/globals_vars_i.html | 85 - .../docs/doxygen/html/globals_vars_k.html | 264 +- .../docs/doxygen/html/hierarchy.html | 112 +- .../docs/doxygen/html/inherit_graph_100.map | 2 +- .../docs/doxygen/html/inherit_graph_100.md5 | 2 +- .../docs/doxygen/html/inherit_graph_100.png | Bin 1141 -> 1185 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 985 -> 1443 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 1518 -> 1141 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 1527 -> 985 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 1083 -> 1518 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 1234 -> 1527 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 1366 -> 1083 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 1349 -> 1234 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 1411 -> 1366 bytes .../docs/doxygen/html/inherit_graph_109.map | 3 + .../docs/doxygen/html/inherit_graph_109.md5 | 1 + .../docs/doxygen/html/inherit_graph_109.png | Bin 0 -> 1349 bytes .../docs/doxygen/html/inherit_graph_110.map | 3 + .../docs/doxygen/html/inherit_graph_110.md5 | 1 + .../docs/doxygen/html/inherit_graph_110.png | Bin 0 -> 1411 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 1725 -> 1269 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 911 -> 1725 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 1369 -> 911 bytes .../docs/doxygen/html/inherit_graph_57.map | 2 +- .../docs/doxygen/html/inherit_graph_57.md5 | 2 +- .../docs/doxygen/html/inherit_graph_57.png | Bin 1340 -> 1369 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 1573 -> 1340 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 1583 -> 1573 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 2616 -> 1583 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 2503 -> 2616 bytes .../docs/doxygen/html/inherit_graph_62.map | 2 +- .../docs/doxygen/html/inherit_graph_62.md5 | 2 +- .../docs/doxygen/html/inherit_graph_62.png | Bin 1440 -> 2503 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 1494 -> 1440 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 1882 -> 1494 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 1122 -> 1882 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 878 -> 1122 bytes .../docs/doxygen/html/inherit_graph_67.map | 2 +- .../docs/doxygen/html/inherit_graph_67.md5 | 2 +- .../docs/doxygen/html/inherit_graph_67.png | Bin 1648 -> 878 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 1443 -> 1648 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 925 -> 1443 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 1459 -> 925 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 1014 -> 1459 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 1212 -> 1014 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 1059 -> 1212 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 869 -> 1059 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 1428 -> 869 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 1466 -> 1428 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 1328 -> 1466 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 1154 -> 1328 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 1310 -> 1154 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 1104 -> 1310 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 1480 -> 1104 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 1518 -> 1480 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 1126 -> 1244 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 1310 -> 1518 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 1308 -> 1126 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 1446 -> 1310 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 1693 -> 1308 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 1929 -> 1446 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 1668 -> 1693 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 1833 -> 1929 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 1732 -> 1668 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 1434 -> 1833 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 1936 -> 1732 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 1790 -> 1434 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 1449 -> 1936 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 1530 -> 1790 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 1307 -> 1449 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 1185 -> 1530 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 1443 -> 1307 bytes .../docs/doxygen/html/inherits.html | 120 +- .../doxygen/html/ir__Airwell_8h_source.html | 4 +- .../doxygen/html/ir__Amcor_8h_source.html | 6 +- .../docs/doxygen/html/ir__Argo_8h_source.html | 6 +- .../doxygen/html/ir__Carrier_8h_source.html | 4 +- .../doxygen/html/ir__Coolix_8h_source.html | 434 +- .../doxygen/html/ir__Corona_8h_source.html | 6 +- .../docs/doxygen/html/ir__Daikin_8h.html | 46 +- .../doxygen/html/ir__Daikin_8h_source.html | 2981 +++++------ .../doxygen/html/ir__Delonghi_8h_source.html | 4 +- .../docs/doxygen/html/ir__Denon_8cpp.html | 2 +- .../doxygen/html/ir__Ecoclim_8h_source.html | 4 +- .../doxygen/html/ir__Electra_8h_source.html | 349 +- .../doxygen/html/ir__Fujitsu_8h_source.html | 12 +- .../docs/doxygen/html/ir__GICable_8cpp.html | 2 +- .../html/ir__Goodweather_8h_source.html | 4 +- .../docs/doxygen/html/ir__Gree_8cpp.html | 11 +- .../docs/doxygen/html/ir__Gree_8h.html | 4 +- .../docs/doxygen/html/ir__Gree_8h_source.html | 622 +-- .../docs/doxygen/html/ir__Haier_8cpp.html | 4 +- .../doxygen/html/ir__Haier_8h_source.html | 1044 ++-- .../doxygen/html/ir__Hitachi_8h_source.html | 14 +- .../docs/doxygen/html/ir__JVC_8cpp.html | 2 +- .../docs/doxygen/html/ir__Kelon_8cpp.html | 210 + .../docs/doxygen/html/ir__Kelon_8h.html | 316 ++ .../doxygen/html/ir__Kelon_8h_source.html | 311 ++ .../html/ir__Kelvinator_8h_source.html | 6 +- .../docs/doxygen/html/ir__LG_8h_source.html | 6 +- .../doxygen/html/ir__Magiquest_8h_source.html | 4 +- .../doxygen/html/ir__Midea_8h_source.html | 4 +- .../html/ir__MitsubishiHeavy_8h_source.html | 10 +- .../html/ir__Mitsubishi_8h_source.html | 14 +- .../docs/doxygen/html/ir__NEC_8h.html | 2 +- .../docs/doxygen/html/ir__NEC_8h_source.html | 2 +- .../doxygen/html/ir__Neoclima_8h_source.html | 6 +- .../docs/doxygen/html/ir__Panasonic_8h.html | 32 + .../doxygen/html/ir__Panasonic_8h_source.html | 652 +-- .../docs/doxygen/html/ir__Samsung_8cpp.html | 2 +- .../doxygen/html/ir__Samsung_8h_source.html | 454 +- .../docs/doxygen/html/ir__Sanyo_8cpp.html | 2 +- .../doxygen/html/ir__Sanyo_8h_source.html | 6 +- .../docs/doxygen/html/ir__Sharp_8cpp.html | 4 +- .../doxygen/html/ir__Sharp_8h_source.html | 6 +- .../docs/doxygen/html/ir__Tcl_8h_source.html | 6 +- .../doxygen/html/ir__Technibel_8h_source.html | 4 +- .../docs/doxygen/html/ir__Teco_8h_source.html | 4 +- .../doxygen/html/ir__Teknopoint_8cpp.html | 205 + .../doxygen/html/ir__Toshiba_8h_source.html | 8 +- .../doxygen/html/ir__Transcold_8h_source.html | 4 +- .../doxygen/html/ir__Trotec_8h_source.html | 6 +- .../doxygen/html/ir__Truma_8h_source.html | 4 +- .../doxygen/html/ir__Vestel_8h_source.html | 4 +- .../doxygen/html/ir__Voltas_8h_source.html | 6 +- .../doxygen/html/ir__Whirlpool_8h_source.html | 6 +- .../docs/doxygen/html/ir__Whynter_8cpp.html | 2 +- .../docs/doxygen/html/namespaceirutils.html | 48 + .../docs/doxygen/html/namespacemembers.html | 3 + .../doxygen/html/namespacemembers_func.html | 3 + .../docs/doxygen/html/search/all_0.js | 93 +- .../docs/doxygen/html/search/all_1.js | 67 +- .../docs/doxygen/html/search/all_10.js | 67 +- .../docs/doxygen/html/search/all_11.js | 6 +- .../docs/doxygen/html/search/all_12.js | 52 +- .../docs/doxygen/html/search/all_13.js | 617 +-- .../docs/doxygen/html/search/all_14.js | 113 +- .../docs/doxygen/html/search/all_15.js | 28 +- .../docs/doxygen/html/search/all_16.js | 26 +- .../docs/doxygen/html/search/all_17.js | 20 +- .../docs/doxygen/html/search/all_18.js | 6 +- .../docs/doxygen/html/search/all_19.js | 4 +- .../docs/doxygen/html/search/all_1a.js | 8 +- .../docs/doxygen/html/search/all_1b.js | 2 +- .../docs/doxygen/html/search/all_2.js | 28 +- .../docs/doxygen/html/search/all_3.js | 128 +- .../docs/doxygen/html/search/all_4.js | 280 +- .../docs/doxygen/html/search/all_5.js | 77 +- .../docs/doxygen/html/search/all_6.js | 46 +- .../docs/doxygen/html/search/all_7.js | 264 +- .../docs/doxygen/html/search/all_8.js | 75 +- .../docs/doxygen/html/search/all_9.js | 419 +- .../docs/doxygen/html/search/all_a.js | 4 +- .../docs/doxygen/html/search/all_b.js | 4508 +++++++++-------- .../docs/doxygen/html/search/all_c.js | 40 +- .../docs/doxygen/html/search/all_d.js | 106 +- .../docs/doxygen/html/search/all_e.js | 14 +- .../docs/doxygen/html/search/all_f.js | 74 +- .../docs/doxygen/html/search/classes_0.js | 6 +- .../docs/doxygen/html/search/classes_1.js | 8 +- .../docs/doxygen/html/search/classes_10.js | 2 +- .../docs/doxygen/html/search/classes_2.js | 20 +- .../docs/doxygen/html/search/classes_3.js | 4 +- .../docs/doxygen/html/search/classes_4.js | 2 +- .../docs/doxygen/html/search/classes_5.js | 4 +- .../docs/doxygen/html/search/classes_6.js | 10 +- .../docs/doxygen/html/search/classes_7.js | 113 +- .../docs/doxygen/html/search/classes_8.js | 3 +- .../docs/doxygen/html/search/classes_9.js | 2 +- .../docs/doxygen/html/search/classes_a.js | 16 +- .../docs/doxygen/html/search/classes_b.js | 2 +- .../docs/doxygen/html/search/classes_c.js | 2 +- .../docs/doxygen/html/search/classes_d.js | 8 +- .../docs/doxygen/html/search/classes_e.js | 16 +- .../docs/doxygen/html/search/classes_f.js | 4 +- .../docs/doxygen/html/search/enums_0.js | 2 +- .../docs/doxygen/html/search/enums_1.js | 4 +- .../docs/doxygen/html/search/enums_2.js | 2 +- .../docs/doxygen/html/search/enums_3.js | 2 +- .../docs/doxygen/html/search/enums_4.js | 2 +- .../docs/doxygen/html/search/enums_5.js | 2 +- .../docs/doxygen/html/search/enums_6.js | 2 +- .../docs/doxygen/html/search/enums_7.js | 6 +- .../docs/doxygen/html/search/enums_8.js | 2 +- .../docs/doxygen/html/search/enums_9.js | 2 +- .../docs/doxygen/html/search/enumvalues_0.js | 28 +- .../docs/doxygen/html/search/enumvalues_1.js | 10 +- .../docs/doxygen/html/search/enumvalues_10.js | 15 +- .../docs/doxygen/html/search/enumvalues_11.js | 4 +- .../docs/doxygen/html/search/enumvalues_12.js | 4 +- .../docs/doxygen/html/search/enumvalues_13.js | 4 +- .../docs/doxygen/html/search/enumvalues_14.js | 2 +- .../docs/doxygen/html/search/enumvalues_15.js | 4 +- .../docs/doxygen/html/search/enumvalues_16.js | 2 +- .../docs/doxygen/html/search/enumvalues_2.js | 28 +- .../docs/doxygen/html/search/enumvalues_3.js | 8 +- .../docs/doxygen/html/search/enumvalues_4.js | 2 +- .../docs/doxygen/html/search/enumvalues_5.js | 10 +- .../docs/doxygen/html/search/enumvalues_6.js | 17 +- .../docs/doxygen/html/search/enumvalues_7.js | 2 +- .../docs/doxygen/html/search/enumvalues_8.js | 2 +- .../docs/doxygen/html/search/enumvalues_9.js | 69 +- .../docs/doxygen/html/search/enumvalues_a.js | 10 +- .../docs/doxygen/html/search/enumvalues_b.js | 30 +- .../docs/doxygen/html/search/enumvalues_c.js | 8 +- .../docs/doxygen/html/search/enumvalues_d.js | 10 +- .../docs/doxygen/html/search/enumvalues_e.js | 14 +- .../docs/doxygen/html/search/enumvalues_f.js | 24 +- .../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 | 239 +- .../docs/doxygen/html/search/files_4.js | 2 +- .../docs/doxygen/html/search/files_5.js | 2 +- .../docs/doxygen/html/search/files_6.js | 2 +- .../docs/doxygen/html/search/functions_0.js | 35 +- .../docs/doxygen/html/search/functions_1.js | 33 +- .../docs/doxygen/html/search/functions_10.js | 20 +- .../docs/doxygen/html/search/functions_11.js | 489 +- .../docs/doxygen/html/search/functions_12.js | 44 +- .../docs/doxygen/html/search/functions_13.js | 10 +- .../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 | 8 +- .../docs/doxygen/html/search/functions_3.js | 70 +- .../docs/doxygen/html/search/functions_4.js | 211 +- .../docs/doxygen/html/search/functions_5.js | 49 +- .../docs/doxygen/html/search/functions_6.js | 10 +- .../docs/doxygen/html/search/functions_7.js | 252 +- .../docs/doxygen/html/search/functions_8.js | 24 +- .../docs/doxygen/html/search/functions_9.js | 150 +- .../docs/doxygen/html/search/functions_a.js | 3 +- .../docs/doxygen/html/search/functions_b.js | 8 +- .../docs/doxygen/html/search/functions_c.js | 48 +- .../docs/doxygen/html/search/functions_d.js | 2 +- .../docs/doxygen/html/search/functions_e.js | 6 +- .../docs/doxygen/html/search/functions_f.js | 4 +- .../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 | 2 +- .../docs/doxygen/html/search/typedefs_0.js | 2 +- .../docs/doxygen/html/search/typedefs_1.js | 2 +- .../docs/doxygen/html/search/variables_0.js | 130 +- .../docs/doxygen/html/search/variables_1.js | 6 +- .../docs/doxygen/html/search/variables_10.js | 6 +- .../docs/doxygen/html/search/variables_11.js | 18 +- .../docs/doxygen/html/search/variables_12.js | 92 +- .../docs/doxygen/html/search/variables_13.js | 46 +- .../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 | 44 +- .../docs/doxygen/html/search/variables_4.js | 25 +- .../docs/doxygen/html/search/variables_5.js | 8 +- .../docs/doxygen/html/search/variables_6.js | 26 +- .../docs/doxygen/html/search/variables_7.js | 20 +- .../docs/doxygen/html/search/variables_8.js | 16 +- .../docs/doxygen/html/search/variables_9.js | 2 +- .../docs/doxygen/html/search/variables_a.js | 4436 ++++++++-------- .../docs/doxygen/html/search/variables_b.js | 20 +- .../docs/doxygen/html/search/variables_c.js | 22 +- .../docs/doxygen/html/search/variables_d.js | 4 +- .../docs/doxygen/html/search/variables_e.js | 66 +- .../docs/doxygen/html/search/variables_f.js | 49 +- .../html/unionKelonProtocol-members.html | 96 + .../docs/doxygen/html/unionKelonProtocol.html | 378 ++ .../doxygen/html/unionKelvinatorProtocol.html | 146 +- .../docs/doxygen/html/unionLGProtocol.html | 42 +- .../docs/doxygen/html/unionMideaProtocol.html | 86 +- .../html/unionMitsubishi112Protocol.html | 74 +- .../html/unionMitsubishi136Protocol.html | 54 +- .../html/unionMitsubishi144Protocol.html | 106 +- .../html/unionMitsubishi152Protocol.html | 114 +- .../html/unionMitsubishi88Protocol.html | 70 +- .../doxygen/html/unionNeoclimaProtocol.html | 130 +- .../html/unionPanasonicAc32Protocol.html | 52 +- .../doxygen/html/unionSamsungProtocol.html | 168 +- .../docs/doxygen/html/unionSanyoProtocol.html | 100 +- .../docs/doxygen/html/unionSharpProtocol.html | 114 +- .../doxygen/html/unionTcl112Protocol.html | 98 +- .../doxygen/html/unionTechnibelProtocol.html | 82 +- .../docs/doxygen/html/unionTecoProtocol.html | 74 +- .../doxygen/html/unionToshibaProtocol.html | 80 +- .../doxygen/html/unionTranscoldProtocol.html | 34 +- .../doxygen/html/unionTrotecProtocol.html | 78 +- .../docs/doxygen/html/unionTrumaProtocol.html | 58 +- .../doxygen/html/unionVestelProtocol.html | 122 +- .../doxygen/html/unionVoltasProtocol.html | 126 +- .../doxygen/html/unionWhirlpoolProtocol.html | 174 +- .../doxygen/html/unionmagiquest-members.html | 2 +- .../docs/doxygen/html/unionmagiquest.html | 26 +- .../examples/IRMQTTServer/IRMQTTServer.ino | 7 + .../examples/IRServer/IRServer.ino | 8 + .../examples/IRrecvDumpV2/platformio.ini | 2 +- .../examples/SmartIRRepeater/platformio.ini | 1 + .../IRremoteESP8266/keywords.txt | 64 + .../IRremoteESP8266/library.json | 50 + .../IRremoteESP8266/library.properties | 2 +- .../IRremoteESP8266/src/IRac.cpp | 83 +- .../IRremoteESP8266/src/IRac.h | 7 + .../IRremoteESP8266/src/IRrecv.cpp | 27 +- .../IRremoteESP8266/src/IRrecv.h | 18 + .../IRremoteESP8266/src/IRremoteESP8266.h | 39 +- .../IRremoteESP8266/src/IRsend.cpp | 20 + .../IRremoteESP8266/src/IRsend.h | 24 +- .../IRremoteESP8266/src/IRtext.cpp | 3 + .../IRremoteESP8266/src/IRutils.cpp | 27 + .../IRremoteESP8266/src/IRutils.h | 3 + .../IRremoteESP8266/src/ir_Coolix.h | 4 + .../IRremoteESP8266/src/ir_Daikin.cpp | 7 +- .../IRremoteESP8266/src/ir_Daikin.h | 8 +- .../IRremoteESP8266/src/ir_Electra.h | 1 + .../IRremoteESP8266/src/ir_Fujitsu.h | 4 +- .../IRremoteESP8266/src/ir_Gree.cpp | 3 +- .../IRremoteESP8266/src/ir_Gree.h | 3 + .../IRremoteESP8266/src/ir_Haier.cpp | 53 +- .../IRremoteESP8266/src/ir_Haier.h | 2 + .../IRremoteESP8266/src/ir_Kelon.cpp | 502 ++ .../IRremoteESP8266/src/ir_Kelon.h | 170 + .../IRremoteESP8266/src/ir_Panasonic.cpp | 20 +- .../IRremoteESP8266/src/ir_Panasonic.h | 2 + .../IRremoteESP8266/src/ir_Samsung.h | 2 + .../IRremoteESP8266/src/ir_Teknopoint.cpp | 75 + .../IRremoteESP8266/src/locale/defaults.h | 9 + .../IRremoteESP8266/test/IRac_test.cpp | 69 +- .../IRremoteESP8266/test/IRrecv_test.cpp | 43 + .../IRremoteESP8266/test/ir_Daikin_test.cpp | 6 +- .../IRremoteESP8266/test/ir_Gree_test.cpp | 28 +- .../IRremoteESP8266/test/ir_Haier_test.cpp | 166 +- .../IRremoteESP8266/test/ir_Kelon_test.cpp | 428 ++ .../test/ir_Panasonic_test.cpp | 14 +- .../test/ir_Teknopoint_test.cpp | 101 + lib/lib_basic/IRremoteESP8266/library.json | 2 +- 514 files changed, 22350 insertions(+), 16142 deletions(-) create mode 100644 lib/lib_basic/IRremoteESP8266/IRremoteESP8266/docs/doxygen/html/classIRKelonAc-members.html create mode 100644 lib/lib_basic/IRremoteESP8266/IRremoteESP8266/docs/doxygen/html/classIRKelonAc.html create mode 100644 lib/lib_basic/IRremoteESP8266/IRremoteESP8266/docs/doxygen/html/classIRKelonAc__coll__graph.map create mode 100644 lib/lib_basic/IRremoteESP8266/IRremoteESP8266/docs/doxygen/html/classIRKelonAc__coll__graph.md5 create mode 100644 lib/lib_basic/IRremoteESP8266/IRremoteESP8266/docs/doxygen/html/classIRKelonAc__coll__graph.png delete mode 100644 lib/lib_basic/IRremoteESP8266/IRremoteESP8266/docs/doxygen/html/globals_vars_i.html create mode 100644 lib/lib_basic/IRremoteESP8266/IRremoteESP8266/docs/doxygen/html/inherit_graph_109.map create mode 100644 lib/lib_basic/IRremoteESP8266/IRremoteESP8266/docs/doxygen/html/inherit_graph_109.md5 create mode 100644 lib/lib_basic/IRremoteESP8266/IRremoteESP8266/docs/doxygen/html/inherit_graph_109.png create mode 100644 lib/lib_basic/IRremoteESP8266/IRremoteESP8266/docs/doxygen/html/inherit_graph_110.map create mode 100644 lib/lib_basic/IRremoteESP8266/IRremoteESP8266/docs/doxygen/html/inherit_graph_110.md5 create mode 100644 lib/lib_basic/IRremoteESP8266/IRremoteESP8266/docs/doxygen/html/inherit_graph_110.png create mode 100644 lib/lib_basic/IRremoteESP8266/IRremoteESP8266/docs/doxygen/html/ir__Kelon_8cpp.html create mode 100644 lib/lib_basic/IRremoteESP8266/IRremoteESP8266/docs/doxygen/html/ir__Kelon_8h.html create mode 100644 lib/lib_basic/IRremoteESP8266/IRremoteESP8266/docs/doxygen/html/ir__Kelon_8h_source.html create mode 100644 lib/lib_basic/IRremoteESP8266/IRremoteESP8266/docs/doxygen/html/ir__Teknopoint_8cpp.html create mode 100644 lib/lib_basic/IRremoteESP8266/IRremoteESP8266/docs/doxygen/html/unionKelonProtocol-members.html create mode 100644 lib/lib_basic/IRremoteESP8266/IRremoteESP8266/docs/doxygen/html/unionKelonProtocol.html create mode 100644 lib/lib_basic/IRremoteESP8266/IRremoteESP8266/library.json create mode 100644 lib/lib_basic/IRremoteESP8266/IRremoteESP8266/src/ir_Kelon.cpp create mode 100644 lib/lib_basic/IRremoteESP8266/IRremoteESP8266/src/ir_Kelon.h create mode 100644 lib/lib_basic/IRremoteESP8266/IRremoteESP8266/src/ir_Teknopoint.cpp create mode 100644 lib/lib_basic/IRremoteESP8266/IRremoteESP8266/test/ir_Kelon_test.cpp create mode 100644 lib/lib_basic/IRremoteESP8266/IRremoteESP8266/test/ir_Teknopoint_test.cpp diff --git a/CHANGELOG.md b/CHANGELOG.md index cb75babcb..3e4c11eb3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ All notable changes to this project will be documented in this file. - Initial support for Tasmota Mesh (TasMesh) providing node/broker communication using ESP-NOW (#11939) - MQTT minimum password length restriction in GUI (#12553) - Command ``SetOption127 1`` to force Wifi in no-sleep mode even if ``Sleep 0`` is not enabled +- IRremoteESP8266 library from v2.7.18 to v2.7.19 ### Changed - ESP32 core library from v1.0.7 to v1.0.7.1 diff --git a/lib/lib_basic/IRremoteESP8266/IRremoteESP8266/README.md b/lib/lib_basic/IRremoteESP8266/IRremoteESP8266/README.md index 9c21f22e6..de007d9c8 100644 --- a/lib/lib_basic/IRremoteESP8266/IRremoteESP8266/README.md +++ b/lib/lib_basic/IRremoteESP8266/IRremoteESP8266/README.md @@ -1,6 +1,6 @@ ![IRremoteESP8266 Library](./assets/images/banner.svg) -[![Build Status](https://travis-ci.org/crankyoldgit/IRremoteESP8266.svg?branch=master)](https://travis-ci.org/crankyoldgit/IRremoteESP8266) +[![Build Status](https://travis-ci.com/crankyoldgit/IRremoteESP8266.svg?branch=master)](https://travis-ci.com/crankyoldgit/IRremoteESP8266) [![arduino-library-badge](https://www.ardu-badge.com/badge/IRremoteESP8266.svg?)](https://www.ardu-badge.com/IRremoteESP8266) [![Average time to resolve an issue](http://isitmaintained.com/badge/resolution/crankyoldgit/IRremoteESP8266.svg)](http://isitmaintained.com/project/crankyoldgit/IRremoteESP8266 "Average time to resolve an issue") [![Percentage of issues still open](http://isitmaintained.com/badge/open/crankyoldgit/IRremoteESP8266.svg)](http://isitmaintained.com/project/crankyoldgit/IRremoteESP8266 "Percentage of issues still open") @@ -9,8 +9,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.7.18 Now Available -Version 2.7.18 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.7.19 Now Available +Version 2.7.19 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/lib/lib_basic/IRremoteESP8266/IRremoteESP8266/README_de.md b/lib/lib_basic/IRremoteESP8266/IRremoteESP8266/README_de.md index d666a4a43..690ce281a 100644 --- a/lib/lib_basic/IRremoteESP8266/IRremoteESP8266/README_de.md +++ b/lib/lib_basic/IRremoteESP8266/IRremoteESP8266/README_de.md @@ -1,6 +1,6 @@ ![IRremoteESP8266 Library](./assets/images/banner.svg) -[![Build-Status](https://travis-ci.org/crankyoldgit/IRremoteESP8266.svg?branch=master)](https://travis-ci.org/crankyoldgit/IRremoteESP8266) +[![Build-Status](https://travis-ci.com/crankyoldgit/IRremoteESP8266.svg?branch=master)](https://travis-ci.com/crankyoldgit/IRremoteESP8266) [![Arduino-Bibliothek-Abzeichen](https://www.ardu-badge.com/badge/IRremoteESP8266.svg?)](https://www.ardu-badge.com/IRremoteESP8266) [![Durchschnittliche Zeit bis zur Problemlösung](http://isitmaintained.com/badge/resolution/crankyoldgit/IRremoteESP8266.svg)](http://isitmaintained.com/project/crankyoldgit/IRremoteESP8266 "Resolution Time") [![Prozentsatz der offenen Probleme](http://isitmaintained.com/badge/open/crankyoldgit/IRremoteESP8266.svg)](http://isitmaintained.com/project/crankyoldgit/IRremoteESP8266 "Open issues") @@ -9,8 +9,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.7.18 jetzt verfügbar -Version 2.7.18 der Bibliothek ist nun [verfügbar](https://github.com/crankyoldgit/IRremoteESP8266/releases/latest). Die [Versionshinweise](ReleaseNotes.md) enthalten alle wichtigen Neuerungen. +## v2.7.19 jetzt verfügbar +Version 2.7.19 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/lib/lib_basic/IRremoteESP8266/IRremoteESP8266/README_fr.md b/lib/lib_basic/IRremoteESP8266/IRremoteESP8266/README_fr.md index 7cfe2a58f..c87ab75cf 100644 --- a/lib/lib_basic/IRremoteESP8266/IRremoteESP8266/README_fr.md +++ b/lib/lib_basic/IRremoteESP8266/IRremoteESP8266/README_fr.md @@ -1,6 +1,6 @@ ![IRremoteESP8266 Library](./assets/images/banner.svg) -[![Build Status](https://travis-ci.org/crankyoldgit/IRremoteESP8266.svg?branch=master)](https://travis-ci.org/crankyoldgit/IRremoteESP8266) +[![Build Status](https://travis-ci.com/crankyoldgit/IRremoteESP8266.svg?branch=master)](https://travis-ci.com/crankyoldgit/IRremoteESP8266) [![arduino-library-badge](https://www.ardu-badge.com/badge/IRremoteESP8266.svg?)](https://www.ardu-badge.com/IRremoteESP8266) [![Average time to resolve an issue](http://isitmaintained.com/badge/resolution/crankyoldgit/IRremoteESP8266.svg)](http://isitmaintained.com/project/crankyoldgit/IRremoteESP8266 "Average time to resolve an issue") [![Percentage of issues still open](http://isitmaintained.com/badge/open/crankyoldgit/IRremoteESP8266.svg)](http://isitmaintained.com/project/crankyoldgit/IRremoteESP8266 "Percentage of issues still open") @@ -9,8 +9,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.7.18 disponible -Version 2.7.18 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.7.19 disponible +Version 2.7.19 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/lib/lib_basic/IRremoteESP8266/IRremoteESP8266/ReleaseNotes.md b/lib/lib_basic/IRremoteESP8266/IRremoteESP8266/ReleaseNotes.md index 318790e60..6fcd6f183 100644 --- a/lib/lib_basic/IRremoteESP8266/IRremoteESP8266/ReleaseNotes.md +++ b/lib/lib_basic/IRremoteESP8266/IRremoteESP8266/ReleaseNotes.md @@ -1,5 +1,28 @@ # Release Notes +## _v2.7.19 (20210706)_ + +**[Bug Fixes]** +- Illegal Heap write in rawbuf when the capture has overflowed. (#1516 #1517) +- PANASONIC_AC: Fix Low and High fan speeds (#1515) +- Fix MDNS in IRServer and IRMQTTServer example code (#1498 #1499) +- IRac: Fix off-by-one error in Coolix's sleep setting. (#1500) +- Fix undefined constant (#1490) + +**[Features]** +- Add detailed support for Kelon ACs (#1494) +- Experimental basic support for Teknopoint A/C protocol (#1486 #1504) +- Daikin64: Add support for Heat mode (#1492) +- Basic support for `HAIER_AC176` 176 bit protocol. (#1480 #1481) + +**[Misc]** +- GREE: Update inter-message gap timing (#1508 #1509) +- IRac: Change Coolix to send special messages after a normal message. (#1501 #1502) +- Fix compiler warnings causing Travis failures. (#1491) +- Update supported model info (#1477 #1485 #1488 #1489) +- Add HTML viewport meta tag to IRServer and IRMQTTServer examples (#1467 #1469) + + ## _v2.7.18 (20210420)_ **[Misc]** diff --git a/lib/lib_basic/IRremoteESP8266/IRremoteESP8266/SupportedProtocols.md b/lib/lib_basic/IRremoteESP8266/IRremoteESP8266/SupportedProtocols.md index f150f8b4d..9f91b52e9 100644 --- a/lib/lib_basic/IRremoteESP8266/IRremoteESP8266/SupportedProtocols.md +++ b/lib/lib_basic/IRremoteESP8266/IRremoteESP8266/SupportedProtocols.md @@ -1,6 +1,6 @@ + Last generated: Tue 06 Jul 2021 05:31:05 +0000 ---> # IR Protocols supported by this library | Protocol | Brand | Model | A/C Model | Detailed A/C Support | @@ -16,8 +16,9 @@ | [Coolix](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Coolix.cpp) | **[Kaysun](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Coolix.h)** | Casual CF A/C | | Yes | | [Coolix](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Coolix.cpp) | **[Midea](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Coolix.h)** | MS12FU-10HRDN1-QRD0GW(B) A/C
MSABAU-07HRFN1-QRD0GW A/C (circa 2016)
RG52D/BGE Remote | | Yes | | [Coolix](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Coolix.cpp) | **[Tokio](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Coolix.h)** | AATOEMF17-12CHR1SW split-type RG51\|50/BGE Remote | | Yes | +| [Coolix](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Coolix.cpp) | **[Toshiba](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Coolix.h)** | RAS-4M27YAV-E A/C
RAS-M10YKV-E A/C
RAS-M13YKV-E A/C
WH-E1YE remote | | Yes | | [Corona](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Corona.cpp) | **[Corona](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Corona.h)** | AR-01 remote
CSH-N2211 A/C
CSH-N2511 A/C
CSH-N2811 A/C
CSH-N4011 A/C | | Yes | -| [Daikin](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Daikin.cpp) | **[Daikin](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Daikin.h)** | 17 Series A/C (DAIKIN128)
ARC423A5 remote (DAIKIN160)
ARC433** remote (DAIKIN)
ARC433B69 remote (DAIKIN216)
ARC466A33 remote (DAIKIN)
ARC477A1 remote (DAIKIN2)
ARC480A5 remote (DAIKIN152)
BRC4C151 remote (DAIKIN176)
BRC4C153 remote (DAIKIN176)
BRC52B63 remote (DAIKIN128)
DGS01 remote (DAIKIN64)
FFN-C/FCN-F Series A/C (DAIKIN64)
FFQ35B8V1B A/C (DAIKIN176)
FTE12HV2S A/C
FTXB09AXVJU A/C (DAIKIN128)
FTXB12AXVJU A/C (DAIKIN128)
FTXM-M A/C (DAIKIN)
FTXZ25NV1B A/C (DAIKIN2)
FTXZ35NV1B A/C (DAIKIN2)
FTXZ50NV1B A/C (DAIKIN2)
M Series A/C (DAIKIN) | | Yes | +| [Daikin](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Daikin.cpp) | **[Daikin](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Daikin.h)** | 17 Series A/C (DAIKIN128)
ARC423A5 remote (DAIKIN160)
ARC433** remote (DAIKIN)
ARC433B69 remote (DAIKIN216)
ARC466A33 remote (DAIKIN)
ARC477A1 remote (DAIKIN2)
ARC480A5 remote (DAIKIN152)
BRC4C151 remote (DAIKIN176)
BRC4C153 remote (DAIKIN176)
BRC52B63 remote (DAIKIN128)
DGS01 remote (DAIKIN64)
FFN-C/FCN-F Series A/C (DAIKIN64)
FFQ35B8V1B A/C (DAIKIN176)
FTE12HV2S A/C
FTWX35AXV1 A/C (DAIKIN64)
FTXB09AXVJU A/C (DAIKIN128)
FTXB12AXVJU A/C (DAIKIN128)
FTXM-M A/C (DAIKIN)
FTXZ25NV1B A/C (DAIKIN2)
FTXZ35NV1B A/C (DAIKIN2)
FTXZ50NV1B A/C (DAIKIN2)
M Series A/C (DAIKIN) | | Yes | | [Delonghi](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Delonghi.cpp) | **[Delonghi](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Delonghi.h)** | PAC A95 | | Yes | | [Denon](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Denon.cpp) | **Denon** | AVR-3801 A/V Receiver (probably) | | - | | [Dish](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Dish.cpp) | **DISH NETWORK** | echostar 301 | | - | @@ -25,6 +26,7 @@ | [Ecoclim](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Ecoclim.cpp) | **[EcoClim](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Ecoclim.h)** | HYSFR-P348 remote
ZC200DPO A/C | | Yes | | [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) | **[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) | **[Frigidaire](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Electra.h)** | FGPC102AB1 A/C | | 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 | | - | | [EliteScreens](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_EliteScreens.cpp) | **Lumene Screens** | Embassy | | - | | [Epson](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Epson.cpp) | **Epson** | EN-TW9100W Projector | | - | @@ -34,15 +36,18 @@ | [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 | | [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 | 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 | 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 | Yes | | [Gree](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Gree.cpp) | **[Gree](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Gree.h)** | YAA1FBF remote
YB1F2F remote | YAW1F
YBOFB | Yes | | [Gree](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Gree.cpp) | **[Green](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Gree.h)** | YBOFB remote
YBOFB2 remote | YAW1F
YBOFB | Yes | | [Gree](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Gree.cpp) | **[RusClimate](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Gree.h)** | EACS/I-09HAR_X/N3 A/C
YAW1F remote | YAW1F
YBOFB | Yes | | [Gree](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Gree.cpp) | **[Ultimate](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Gree.h)** | Heat Pump | YAW1F
YBOFB | Yes | | [Haier](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Haier.cpp) | **[Haier](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Haier.h)** | HSU-09HMC203 A/C (HAIER_AC_YRW02)
HSU07-HEA03 remote (HAIER_AC)
YR-W02 remote (HAIER_AC_YRW02) | | Yes | +| [Haier](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Haier.cpp) | **[Mabe](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Haier.h)** | MMI18HDBWCA6MI8 A/C (HAIER_AC176)
V12843 HJ200223 remote (HAIER_AC176) | | Yes | | [Hitachi](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Hitachi.cpp) | **[Hitachi](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Hitachi.h)** | KAZE-312KSDP A/C (HITACHI_AC1)
LT0541-HTA remote (HITACHI_AC1)
PC-LH3B (HITACHI_AC3)
R-LT0541-HTA/Y.K.1.1-1 V2.3 remote (HITACHI_AC1)
RAR-8P2 remote (HITACHI_AC424)
RAS-22NK A/C (HITACHI_AC344)
RAS-35THA6 remote
RAS-AJ25H A/C (HITACHI_AC424)
RF11T1 remote (HITACHI_AC344)
Series VI A/C (Circa 2007) (HITACHI_AC1) | | Yes | | [Inax](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Inax.cpp) | **Lixil** | Inax DT-BA283 Toilet | | - | | [JVC](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_JVC.cpp) | **JVC** | PTU94023B remote | | - | +| [Kelon](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Kelon.cpp) | **[Kelon](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Kelon.h)** | ON/OFF 9000-12000 | | Yes | | [Kelvinator](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Kelvinator.cpp) | **[Green](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Kelvinator.h)** | YAPOF3 remote | | Yes | | [Kelvinator](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Kelvinator.cpp) | **[Kelvinator](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Kelvinator.h)** | KSV26CRC A/C
KSV26HRC A/C
KSV35CRC A/C
KSV35HRC A/C
KSV53HRC A/C
KSV62HRC A/C
KSV70CRC A/C
KSV70HRC A/C
KSV80HRC A/C
YALIF Remote | | Yes | | [Kelvinator](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Kelvinator.cpp) | **[Sharp](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Kelvinator.h)** | A5VEY A/C
YB1FA remote | | Yes | @@ -80,7 +85,7 @@ | [Pronto](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Pronto.cpp) | **Pronto** | Pronto Hex | | - | | [RC5_RC6](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_RC5_RC6.cpp) | **Philips** | RC-5X (RC5X)
Standard RC-5 (RC5)
Standard RC-6 (RC6) | | - | | [RCMM](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_RCMM.cpp) | **Microsoft** | XBOX 360 | | - | -| [Samsung](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Samsung.cpp) | **[Samsung](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Samsung.h)** | AH59-02692E Soundbar remote (SAMSUNG36)
AK59-00167A Bluray remote (SAMSUNG36)
AR09FSSDAWKNFA A/C (SAMSUNG_AC)
AR12HSSDBWKNEU A/C (SAMSUNG_AC)
AR12KSFPEWQNET A/C (SAMSUNG_AC)
AR12NXCXAWKXEU A/C (SAMSUNG_AC)
BN59-01178B TV remote (SAMSUNG)
DB63-03556X003 remote
DB93-16761C remote
HW-J551 Soundbar (SAMSUNG36)
IEC-R03 remote
UA55H6300 TV (SAMSUNG) | | Yes | +| [Samsung](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Samsung.cpp) | **[Samsung](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Samsung.h)** | AH59-02692E Soundbar remote (SAMSUNG36)
AK59-00167A Bluray remote (SAMSUNG36)
AR09FSSDAWKNFA A/C (SAMSUNG_AC)
AR09HSFSBWKN A/C (SAMSUNG_AC)
AR12HSSDBWKNEU A/C (SAMSUNG_AC)
AR12KSFPEWQNET A/C (SAMSUNG_AC)
AR12NXCXAWKXEU A/C (SAMSUNG_AC)
BN59-01178B TV remote (SAMSUNG)
DB63-03556X003 remote
DB93-14195A remote (SAMSUNG_AC)
DB93-16761C remote
HW-J551 Soundbar (SAMSUNG36)
IEC-R03 remote
UA55H6300 TV (SAMSUNG) | | Yes | | [Sanyo](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Sanyo.cpp) | **[Sanyo](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Sanyo.h)** | LC7461 transmitter IC (SANYO_LC7461)
RCS-2HS4E remote (SANYO_AC)
RCS-2S4E remote (SANYO_AC)
SA 8650B - disabled
SAP-K121AHA A/C (SANYO_AC)
SAP-K242AH A/C (SANYO_AC) | | Yes | | [Sharp](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Sharp.cpp) | **[Sharp](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Sharp.h)** | AH-A12REVP-1 A/C (A903)
AH-AxSAY A/C (A907)
AH-PR13-GL A/C (A903)
AH-XP10NRY A/C (A903)
AY-ZP40KR A/C (A907)
CRMC-820 JBEZ remote (A903)
CRMC-A705 JBEZ remote (A705)
CRMC-A863 JBEZ remote (A903)
CRMC-A903JBEZ remote (A903)
CRMC-A907 JBEZ remote (A907)
LC-52D62U TV | A705
A903
A907 | Yes | | [Sherwood](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Sherwood.cpp) | **Sherwood** | RC-138 remote
RD6505(B) Receiver | | - | @@ -93,6 +98,7 @@ | [Tcl](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Tcl.cpp) | **[Leberg](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Tcl.h)** | LBS-TOR07 A/C | | Yes | | [Technibel](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Technibel.cpp) | **[Technibel](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Technibel.h)** | IRO PLUS | | Yes | | [Teco](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Teco.cpp) | **[Alaska](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Teco.h)** | SAC9010QC A/C
SAC9010QC remote | | Yes | +| [Teknopoint](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Teknopoint.cpp) | **Teknopoint** | Allegro SSA-09H A/C
GZ-055B-E1 remote | | - | | [Toshiba](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Toshiba.cpp) | **[Carrier](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Toshiba.h)** | 42NQV025M2 / 38NYV025M2 A/C
42NQV035M2 / 38NYV035M2 A/C
42NQV050M2 / 38NYV050M2 A/C
42NQV060M2 / 38NYV060M2 A/C | | Yes | | [Toshiba](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Toshiba.cpp) | **[Toshiba](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Toshiba.h)** | Akita EVO II
RAS 18SKP-ES
RAS-2558V A/C
RAS-B13N3KV2
RAS-B13N3KVP-E
WC-L03SE
WH-TA04NE
WH-UB03NJ remote | | Yes | | [Transcold](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Transcold.cpp) | **[Transcold](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Transcold.h)** | M1-F-NO-6 A/C | | Yes | @@ -148,6 +154,7 @@ - GOODWEATHER - GREE - HAIER_AC +- HAIER_AC176 - HAIER_AC_YRW02 - HITACHI_AC - HITACHI_AC1 @@ -157,6 +164,7 @@ - HITACHI_AC424 - INAX - JVC +- KELON - KELVINATOR - LASERTAG - LEGOPF @@ -203,6 +211,7 @@ - TCL112AC - TECHNIBEL_AC - TECO +- TEKNOPOINT - TOSHIBA_AC - TRANSCOLD - TROTEC diff --git a/lib/lib_basic/IRremoteESP8266/IRremoteESP8266/docs/doxygen/html/IRac_8h_source.html b/lib/lib_basic/IRremoteESP8266/IRremoteESP8266/docs/doxygen/html/IRac_8h_source.html index 5b3ba1925..d5c997fb1 100644 --- a/lib/lib_basic/IRremoteESP8266/IRremoteESP8266/docs/doxygen/html/IRac_8h_source.html +++ b/lib/lib_basic/IRremoteESP8266/IRremoteESP8266/docs/doxygen/html/IRac_8h_source.html @@ -93,638 +93,648 @@ $(function() {
22 #include "ir_Gree.h"
23 #include "ir_Haier.h"
24 #include "ir_Hitachi.h"
-
25 #include "ir_Kelvinator.h"
-
26 #include "ir_LG.h"
-
27 #include "ir_Midea.h"
-
28 #include "ir_Mitsubishi.h"
-
29 #include "ir_MitsubishiHeavy.h"
-
30 #include "ir_Neoclima.h"
-
31 #include "ir_Panasonic.h"
-
32 #include "ir_Samsung.h"
-
33 #include "ir_Sanyo.h"
-
34 #include "ir_Sharp.h"
-
35 #include "ir_Tcl.h"
-
36 #include "ir_Technibel.h"
-
37 #include "ir_Teco.h"
-
38 #include "ir_Toshiba.h"
-
39 #include "ir_Transcold.h"
-
40 #include "ir_Trotec.h"
-
41 #include "ir_Truma.h"
-
42 #include "ir_Vestel.h"
-
43 #include "ir_Voltas.h"
-
44 #include "ir_Whirlpool.h"
-
45 
-
46 // Constants
-
47 const int8_t kGpioUnused = -1;
-
48 
-
49 // Class
-
51 class IRac {
-
52  public:
-
53  explicit IRac(const uint16_t pin, const bool inverted = false,
-
54  const bool use_modulation = true);
-
55  static bool isProtocolSupported(const decode_type_t protocol);
-
56  static void initState(stdAc::state_t *state,
-
57  const decode_type_t vendor, const int16_t model,
-
58  const bool power, const stdAc::opmode_t mode,
-
59  const float degrees, const bool celsius,
-
60  const stdAc::fanspeed_t fan,
-
61  const stdAc::swingv_t swingv,
-
62  const stdAc::swingh_t swingh,
-
63  const bool quiet, const bool turbo, const bool econo,
-
64  const bool light, const bool filter, const bool clean,
-
65  const bool beep, const int16_t sleep,
-
66  const int16_t clock);
-
67  static void initState(stdAc::state_t *state);
-
68  void markAsSent(void);
-
69  bool sendAc(void);
-
70  bool sendAc(const stdAc::state_t desired, const stdAc::state_t *prev = NULL);
-
71  bool sendAc(const decode_type_t vendor, const int16_t model,
-
72  const bool power, const stdAc::opmode_t mode, const float degrees,
-
73  const bool celsius, const stdAc::fanspeed_t fan,
-
74  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
75  const bool quiet, const bool turbo, const bool econo,
-
76  const bool light, const bool filter, const bool clean,
-
77  const bool beep, const int16_t sleep = -1,
-
78  const int16_t clock = -1);
-
79  static bool cmpStates(const stdAc::state_t a, const stdAc::state_t b);
-
80  static bool strToBool(const char *str, const bool def = false);
-
81  static int16_t strToModel(const char *str, const int16_t def = -1);
-
82  static stdAc::opmode_t strToOpmode(
-
83  const char *str, const stdAc::opmode_t def = stdAc::opmode_t::kAuto);
-
84  static stdAc::fanspeed_t strToFanspeed(
-
85  const char *str,
-
86  const stdAc::fanspeed_t def = stdAc::fanspeed_t::kAuto);
-
87  static stdAc::swingv_t strToSwingV(
-
88  const char *str, const stdAc::swingv_t def = stdAc::swingv_t::kOff);
-
89  static stdAc::swingh_t strToSwingH(
-
90  const char *str, const stdAc::swingh_t def = stdAc::swingh_t::kOff);
-
91  static String boolToString(const bool value);
-
92  static String opmodeToString(const stdAc::opmode_t mode);
-
93  static String fanspeedToString(const stdAc::fanspeed_t speed);
-
94  static String swingvToString(const stdAc::swingv_t swingv);
-
95  static String swinghToString(const stdAc::swingh_t swingh);
-
96  stdAc::state_t getState(void);
-
97  stdAc::state_t getStatePrev(void);
-
98  bool hasStateChanged(void);
-
99  stdAc::state_t next;
-
100 #ifndef UNIT_TEST
-
101 
-
102  private:
-
103 #endif
-
104  uint16_t _pin;
-
105  bool _inverted;
-
106  bool _modulation;
-
107  stdAc::state_t _prev;
-
108 #if SEND_AIRWELL
-
109  void airwell(IRAirwellAc *ac,
-
110  const bool on, const stdAc::opmode_t mode, const float degrees,
-
111  const stdAc::fanspeed_t fan);
-
112 #endif // SEND_AIRWELL
-
113 #if SEND_AMCOR
-
114  void amcor(IRAmcorAc *ac,
-
115  const bool on, const stdAc::opmode_t mode, const float degrees,
-
116  const stdAc::fanspeed_t fan);
-
117 #endif // SEND_AMCOR
-
118 #if SEND_ARGO
-
119  void argo(IRArgoAC *ac,
-
120  const bool on, const stdAc::opmode_t mode, const float degrees,
-
121  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
122  const bool turbo, const int16_t sleep = -1);
-
123 #endif // SEND_ARGO
-
124 #if SEND_CARRIER_AC64
-
125 void carrier64(IRCarrierAc64 *ac,
-
126  const bool on, const stdAc::opmode_t mode,
-
127  const float degrees, const stdAc::fanspeed_t fan,
-
128  const stdAc::swingv_t swingv, const int16_t sleep = -1);
-
129 #endif // SEND_CARRIER_AC64
-
130 #if SEND_COOLIX
-
131  void coolix(IRCoolixAC *ac,
-
132  const bool on, const stdAc::opmode_t mode, const float degrees,
-
133  const stdAc::fanspeed_t fan,
-
134  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
135  const bool turbo, const bool light, const bool clean,
-
136  const int16_t sleep = -1);
-
137 #endif // SEND_COOLIX
-
138 #if SEND_CORONA_AC
-
139  void corona(IRCoronaAc *ac,
-
140  const bool on, const stdAc::opmode_t mode,
-
141  const float degrees, const stdAc::fanspeed_t fan,
-
142  const stdAc::swingv_t swingv, const bool econo);
-
143 #endif // SEND_CORONA_AC
-
144 #if SEND_DAIKIN
-
145  void daikin(IRDaikinESP *ac,
-
146  const bool on, const stdAc::opmode_t mode, const float degrees,
-
147  const stdAc::fanspeed_t fan,
-
148  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
149  const bool quiet, const bool turbo, const bool econo,
-
150  const bool clean);
-
151 #endif // SEND_DAIKIN
-
152 #if SEND_DAIKIN128
-
153  void daikin128(IRDaikin128 *ac,
-
154  const bool on, const stdAc::opmode_t mode,
-
155  const float degrees, const stdAc::fanspeed_t fan,
-
156  const stdAc::swingv_t swingv,
-
157  const bool quiet, const bool turbo, const bool light,
-
158  const bool econo, const int16_t sleep = -1,
-
159  const int16_t clock = -1);
-
160 #endif // SEND_DAIKIN128
-
161 #if SEND_DAIKIN152
-
162  void daikin152(IRDaikin152 *ac,
-
163  const bool on, const stdAc::opmode_t mode,
-
164  const float degrees, const stdAc::fanspeed_t fan,
-
165  const stdAc::swingv_t swingv,
-
166  const bool quiet, const bool turbo, const bool econo);
-
167 #endif // SEND_DAIKIN152
-
168 #if SEND_DAIKIN160
-
169  void daikin160(IRDaikin160 *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);
-
173 #endif // SEND_DAIKIN160
-
174 #if SEND_DAIKIN176
-
175  void daikin176(IRDaikin176 *ac,
-
176  const bool on, const stdAc::opmode_t mode,
-
177  const float degrees, const stdAc::fanspeed_t fan,
-
178  const stdAc::swingh_t swingh);
-
179 #endif // SEND_DAIKIN176
-
180 #if SEND_DAIKIN2
-
181  void daikin2(IRDaikin2 *ac,
-
182  const bool on, const stdAc::opmode_t mode,
-
183  const float degrees, const stdAc::fanspeed_t fan,
-
184  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
185  const bool quiet, const bool turbo, const bool light,
-
186  const bool econo, const bool filter, const bool clean,
-
187  const bool beep, const int16_t sleep = -1,
-
188  const int16_t clock = -1);
-
189 #endif // SEND_DAIKIN2
-
190 #if SEND_DAIKIN216
-
191 void daikin216(IRDaikin216 *ac,
-
192  const bool on, const stdAc::opmode_t mode,
-
193  const float degrees, const stdAc::fanspeed_t fan,
-
194  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
195  const bool quiet, const bool turbo);
-
196 #endif // SEND_DAIKIN216
-
197 #if SEND_DAIKIN64
-
198  void daikin64(IRDaikin64 *ac,
-
199  const bool on, const stdAc::opmode_t mode,
-
200  const float degrees, const stdAc::fanspeed_t fan,
-
201  const stdAc::swingv_t swingv,
-
202  const bool quiet, const bool turbo,
-
203  const int16_t sleep = -1, const int16_t clock = -1);
-
204 #endif // SEND_DAIKIN64
-
205 #if SEND_DELONGHI_AC
-
206  void delonghiac(IRDelonghiAc *ac,
-
207  const bool on, const stdAc::opmode_t mode, const bool celsius,
-
208  const float degrees, const stdAc::fanspeed_t fan,
-
209  const bool turbo, const int16_t sleep = -1);
-
210 #endif // SEND_DELONGHI_AC
-
211 #if SEND_ECOCLIM
-
212 void ecoclim(IREcoclimAc *ac,
-
213  const bool on, const stdAc::opmode_t mode,
-
214  const float degrees, const stdAc::fanspeed_t fan,
-
215  const int16_t sleep = -1, const int16_t clock = -1);
-
216 #endif // SEND_ECOCLIM
-
217 #if SEND_ELECTRA_AC
-
218 void electra(IRElectraAc *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 stdAc::swingh_t swingh, const bool turbo,
-
223  const bool lighttoggle, const bool clean);
-
224 #endif // SEND_ELECTRA_AC
-
225 #if SEND_FUJITSU_AC
-
226  void fujitsu(IRFujitsuAC *ac, const fujitsu_ac_remote_model_t model,
-
227  const bool on, const stdAc::opmode_t mode,
-
228  const bool celsius, const float degrees,
-
229  const stdAc::fanspeed_t fan,
-
230  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
231  const bool quiet, const bool turbo, const bool econo,
-
232  const bool filter, const bool clean, const int16_t sleep = -1);
-
233 #endif // SEND_FUJITSU_AC
-
234 #if SEND_GOODWEATHER
-
235  void goodweather(IRGoodweatherAc *ac,
-
236  const bool on, const stdAc::opmode_t mode,
-
237  const float degrees,
-
238  const stdAc::fanspeed_t fan,
-
239  const stdAc::swingv_t swingv,
-
240  const bool turbo, const bool light,
-
241  const int16_t sleep = -1);
-
242 #endif // SEND_GOODWEATHER
-
243 #if SEND_GREE
-
244  void gree(IRGreeAC *ac, const gree_ac_remote_model_t model,
-
245  const bool on, const stdAc::opmode_t mode, const bool celsius,
-
246  const float degrees, const stdAc::fanspeed_t fan,
-
247  const stdAc::swingv_t swingv, const bool turbo, const bool light,
-
248  const bool clean, const int16_t sleep = -1);
-
249 #endif // SEND_GREE
-
250 #if SEND_HAIER_AC
-
251  void haier(IRHaierAC *ac,
-
252  const bool on, const stdAc::opmode_t mode, const float degrees,
-
253  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
254  const bool filter, const int16_t sleep = -1,
-
255  const int16_t clock = -1);
-
256 #endif // SEND_HAIER_AC
-
257 #if SEND_HAIER_AC_YRW02
-
258  void haierYrwo2(IRHaierACYRW02 *ac,
-
259  const bool on, const stdAc::opmode_t mode,
-
260  const float degrees, const stdAc::fanspeed_t fan,
-
261  const stdAc::swingv_t swingv,
-
262  const bool turbo, const bool filter,
-
263  const int16_t sleep = -1);
-
264 #endif // SEND_HAIER_AC_YRW02
-
265 #if SEND_HITACHI_AC
-
266  void hitachi(IRHitachiAc *ac,
-
267  const bool on, const stdAc::opmode_t mode,
-
268  const float degrees, const stdAc::fanspeed_t fan,
-
269  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh);
-
270 #endif // SEND_HITACHI_AC
-
271 #if SEND_HITACHI_AC1
-
272  void hitachi1(IRHitachiAc1 *ac, const hitachi_ac1_remote_model_t model,
-
273  const bool on, const bool power_toggle,
-
274  const stdAc::opmode_t mode,
-
275  const float degrees, const stdAc::fanspeed_t fan,
-
276  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
277  const bool swing_toggle, const int16_t sleep = -1);
-
278 #endif // SEND_HITACHI_AC1
-
279 #if SEND_HITACHI_AC344
-
280  void hitachi344(IRHitachiAc344 *ac,
-
281  const bool on, const stdAc::opmode_t mode,
-
282  const float degrees, const stdAc::fanspeed_t fan,
-
283  const stdAc::swingv_t swingv,
-
284  const stdAc::swingh_t swingh);
-
285 #endif // SEND_HITACHI_AC344
-
286 #if SEND_HITACHI_AC424
-
287  void hitachi424(IRHitachiAc424 *ac,
-
288  const bool on, const stdAc::opmode_t mode,
-
289  const float degrees, const stdAc::fanspeed_t fan,
-
290  const stdAc::swingv_t swingv);
-
291 #endif // SEND_HITACHI_AC424
-
292 #if SEND_KELVINATOR
-
293  void kelvinator(IRKelvinatorAC *ac,
-
294  const bool on, const stdAc::opmode_t mode,
-
295  const float degrees, const stdAc::fanspeed_t fan,
-
296  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
297  const bool quiet, const bool turbo, const bool light,
-
298  const bool filter, const bool clean);
-
299 #endif // SEND_KELVINATOR
-
300 #if SEND_LG
-
301  void lg(IRLgAc *ac, const lg_ac_remote_model_t model,
-
302  const bool on, const stdAc::opmode_t mode,
-
303  const float degrees, const stdAc::fanspeed_t fan);
-
304 #endif // SEND_LG
-
305 #if SEND_MIDEA
-
306  void midea(IRMideaAC *ac,
-
307  const bool on, const stdAc::opmode_t mode, const bool celsius,
-
308  const float degrees, const stdAc::fanspeed_t fan,
-
309  const stdAc::swingv_t swingv, const bool turbo, const bool econo,
-
310  const bool light, const int16_t sleep = -1);
-
311 #endif // SEND_MIDEA
-
312 #if SEND_MITSUBISHI_AC
-
313  void mitsubishi(IRMitsubishiAC *ac,
-
314  const bool on, const stdAc::opmode_t mode,
-
315  const float degrees,
-
316  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
317  const stdAc::swingh_t swingh,
-
318  const bool quiet, const int16_t clock = -1);
-
319 #endif // SEND_MITSUBISHI_AC
-
320 #if SEND_MITSUBISHI112
-
321  void mitsubishi112(IRMitsubishi112 *ac,
-
322  const bool on, const stdAc::opmode_t mode,
-
323  const float degrees, const stdAc::fanspeed_t fan,
-
324  const stdAc::swingv_t swingv,
-
325  const stdAc::swingh_t swingh,
-
326  const bool quiet);
-
327 #endif // SEND_MITSUBISHI112
-
328 #if SEND_MITSUBISHI136
-
329  void mitsubishi136(IRMitsubishi136 *ac,
-
330  const bool on, const stdAc::opmode_t mode,
-
331  const float degrees, const stdAc::fanspeed_t fan,
-
332  const stdAc::swingv_t swingv, const bool quiet);
-
333 #endif // SEND_MITSUBISHI136
-
334 #if SEND_MITSUBISHIHEAVY
-
335  void mitsubishiHeavy88(IRMitsubishiHeavy88Ac *ac,
-
336  const bool on, const stdAc::opmode_t mode,
-
337  const float degrees, const stdAc::fanspeed_t fan,
-
338  const stdAc::swingv_t swingv,
-
339  const stdAc::swingh_t swingh,
-
340  const bool turbo, const bool econo, const bool clean);
-
341  void mitsubishiHeavy152(IRMitsubishiHeavy152Ac *ac,
-
342  const bool on, const stdAc::opmode_t mode,
-
343  const float degrees, const stdAc::fanspeed_t fan,
-
344  const stdAc::swingv_t swingv,
-
345  const stdAc::swingh_t swingh,
-
346  const bool quiet, const bool turbo, const bool econo,
-
347  const bool filter, const bool clean,
-
348  const int16_t sleep = -1);
-
349 #endif // SEND_MITSUBISHIHEAVY
-
350 #if SEND_NEOCLIMA
-
351  void neoclima(IRNeoclimaAc *ac, const bool on, const stdAc::opmode_t mode,
-
352  const bool celsius, const float degrees,
-
353  const stdAc::fanspeed_t fan,
-
354  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
355  const bool turbo, const bool econo, const bool light,
-
356  const bool filter, const int16_t sleep = -1);
-
357 #endif // SEND_NEOCLIMA
-
358 #if SEND_PANASONIC_AC
-
359  void panasonic(IRPanasonicAc *ac, const panasonic_ac_remote_model_t model,
-
360  const bool on, const stdAc::opmode_t mode, const float degrees,
-
361  const stdAc::fanspeed_t fan,
-
362  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
363  const bool quiet, const bool turbo, const bool filter,
-
364  const int16_t clock = -1);
-
365 #endif // SEND_PANASONIC_AC
-
366 #if SEND_PANASONIC_AC32
-
367  void panasonic32(IRPanasonicAc32 *ac,
-
368  const bool on, const stdAc::opmode_t mode,
-
369  const float degrees, const stdAc::fanspeed_t fan,
-
370  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh);
-
371 #endif // SEND_PANASONIC_AC32
-
372 #if SEND_SAMSUNG_AC
-
373  void samsung(IRSamsungAc *ac,
-
374  const bool on, const stdAc::opmode_t mode, const float degrees,
-
375  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
376  const bool quiet, const bool turbo, const bool light,
-
377  const bool filter, const bool clean,
-
378  const bool beep, const bool prevpower = true,
-
379  const bool forcepower = true);
-
380 #endif // SEND_SAMSUNG_AC
-
381 #if SEND_SANYO_AC
-
382  void sanyo(IRSanyoAc *ac,
-
383  const bool on, const stdAc::opmode_t mode, const float degrees,
-
384  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
385  const bool beep, const int16_t sleep = -1);
-
386 #endif // SEND_SANYO_AC
-
387 #if SEND_SHARP_AC
-
388  void sharp(IRSharpAc *ac, const sharp_ac_remote_model_t model,
-
389  const bool on, const bool prev_power, const stdAc::opmode_t mode,
-
390  const float degrees, const stdAc::fanspeed_t fan,
-
391  const stdAc::swingv_t swingv, const bool turbo, const bool light,
-
392  const bool filter, const bool clean);
-
393 #endif // SEND_SHARP_AC
-
394 #if SEND_TCL112AC
-
395  void tcl112(IRTcl112Ac *ac,
-
396  const bool on, const stdAc::opmode_t mode, const float degrees,
-
397  const stdAc::fanspeed_t fan,
-
398  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
399  const bool turbo, const bool light, const bool econo,
-
400  const bool filter);
-
401 #endif // SEND_TCL112AC
-
402 #if SEND_TECHNIBEL_AC
-
403  void technibel(IRTechnibelAc *ac,
-
404  const bool on, const stdAc::opmode_t mode, const bool celsius,
-
405  const float degrees, const stdAc::fanspeed_t fan,
-
406  const stdAc::swingv_t swingv, const int16_t sleep = -1);
-
407 #endif // SEND_TECHNIBEL_AC
-
408 #if SEND_TECO
-
409  void teco(IRTecoAc *ac,
-
410  const bool on, const stdAc::opmode_t mode, const float degrees,
-
411  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
412  const bool light, const int16_t sleep = -1);
-
413 #endif // SEND_TECO
-
414 #if SEND_TOSHIBA_AC
-
415  void toshiba(IRToshibaAC *ac,
-
416  const bool on, const stdAc::opmode_t mode, const float degrees,
-
417  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
418  const bool turbo, const bool econo);
-
419 #endif // SEND_TOSHIBA_AC
-
420 #if SEND_TROTEC
-
421  void trotec(IRTrotecESP *ac,
-
422  const bool on, const stdAc::opmode_t mode, const float degrees,
-
423  const stdAc::fanspeed_t fan, const int16_t sleep = -1);
-
424 #endif // SEND_TROTEC
-
425 #if SEND_TRUMA
-
426  void truma(IRTrumaAc *ac,
-
427  const bool on, const stdAc::opmode_t mode, const float degrees,
-
428  const stdAc::fanspeed_t fan, const bool quiet);
-
429 #endif // SEND_TRUMA
-
430 #if SEND_VESTEL_AC
-
431  void vestel(IRVestelAc *ac,
-
432  const bool on, const stdAc::opmode_t mode, const float degrees,
-
433  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
434  const bool turbo, const bool filter,
-
435  const int16_t sleep = -1, const int16_t clock = -1,
-
436  const bool sendNormal = true);
-
437 #endif // SEND_VESTEL_AC
-
438 #if SEND_VOLTAS
-
439  void voltas(IRVoltas *ac, const voltas_ac_remote_model_t model,
-
440  const bool on, const stdAc::opmode_t mode,
-
441  const float degrees, 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 int16_t sleep = -1);
-
445 #endif // SEND_VOLTAS
-
446 #if SEND_WHIRLPOOL_AC
-
447  void whirlpool(IRWhirlpoolAc *ac, const whirlpool_ac_remote_model_t model,
-
448  const bool on, const stdAc::opmode_t mode, const float degrees,
-
449  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
450  const bool turbo, const bool light,
-
451  const int16_t sleep = -1, const int16_t clock = -1);
-
452 #endif // SEND_WHIRLPOOL_AC
-
453 #if SEND_TRANSCOLD
-
454  void transcold(IRTranscoldAc *ac,
-
455  const bool on, const stdAc::opmode_t mode, const float degrees,
-
456  const stdAc::fanspeed_t fan,
-
457  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh);
-
458 #endif // SEND_TRANSCOLD
-
459 static stdAc::state_t cleanState(const stdAc::state_t state);
-
460 static stdAc::state_t handleToggles(const stdAc::state_t desired,
-
461  const stdAc::state_t *prev = NULL);
-
462 }; // IRac class
-
463 
-
465 namespace IRAcUtils {
-
466  String resultAcToString(const decode_results * const results);
-
467  bool decodeToState(const decode_results *decode, stdAc::state_t *result,
-
468  const stdAc::state_t *prev = NULL);
-
469 } // namespace IRAcUtils
-
470 #endif // IRAC_H_
+
25 #include "ir_Kelon.h"
+
26 #include "ir_Kelvinator.h"
+
27 #include "ir_LG.h"
+
28 #include "ir_Midea.h"
+
29 #include "ir_Mitsubishi.h"
+
30 #include "ir_MitsubishiHeavy.h"
+
31 #include "ir_Neoclima.h"
+
32 #include "ir_Panasonic.h"
+
33 #include "ir_Samsung.h"
+
34 #include "ir_Sanyo.h"
+
35 #include "ir_Sharp.h"
+
36 #include "ir_Tcl.h"
+
37 #include "ir_Technibel.h"
+
38 #include "ir_Teco.h"
+
39 #include "ir_Toshiba.h"
+
40 #include "ir_Transcold.h"
+
41 #include "ir_Trotec.h"
+
42 #include "ir_Truma.h"
+
43 #include "ir_Vestel.h"
+
44 #include "ir_Voltas.h"
+
45 #include "ir_Whirlpool.h"
+
46 
+
47 // Constants
+
48 const int8_t kGpioUnused = -1;
+
49 
+
50 // Class
+
52 class IRac {
+
53  public:
+
54  explicit IRac(const uint16_t pin, const bool inverted = false,
+
55  const bool use_modulation = true);
+
56  static bool isProtocolSupported(const decode_type_t protocol);
+
57  static void initState(stdAc::state_t *state,
+
58  const decode_type_t vendor, const int16_t model,
+
59  const bool power, const stdAc::opmode_t mode,
+
60  const float degrees, const bool celsius,
+
61  const stdAc::fanspeed_t fan,
+
62  const stdAc::swingv_t swingv,
+
63  const stdAc::swingh_t swingh,
+
64  const bool quiet, const bool turbo, const bool econo,
+
65  const bool light, const bool filter, const bool clean,
+
66  const bool beep, const int16_t sleep,
+
67  const int16_t clock);
+
68  static void initState(stdAc::state_t *state);
+
69  void markAsSent(void);
+
70  bool sendAc(void);
+
71  bool sendAc(const stdAc::state_t desired, const stdAc::state_t *prev = NULL);
+
72  bool sendAc(const decode_type_t vendor, const int16_t model,
+
73  const bool power, const stdAc::opmode_t mode, const float degrees,
+
74  const bool celsius, const stdAc::fanspeed_t fan,
+
75  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
76  const bool quiet, const bool turbo, const bool econo,
+
77  const bool light, const bool filter, const bool clean,
+
78  const bool beep, const int16_t sleep = -1,
+
79  const int16_t clock = -1);
+
80  static bool cmpStates(const stdAc::state_t a, const stdAc::state_t b);
+
81  static bool strToBool(const char *str, const bool def = false);
+
82  static int16_t strToModel(const char *str, const int16_t def = -1);
+
83  static stdAc::opmode_t strToOpmode(
+
84  const char *str, const stdAc::opmode_t def = stdAc::opmode_t::kAuto);
+
85  static stdAc::fanspeed_t strToFanspeed(
+
86  const char *str,
+
87  const stdAc::fanspeed_t def = stdAc::fanspeed_t::kAuto);
+
88  static stdAc::swingv_t strToSwingV(
+
89  const char *str, const stdAc::swingv_t def = stdAc::swingv_t::kOff);
+
90  static stdAc::swingh_t strToSwingH(
+
91  const char *str, const stdAc::swingh_t def = stdAc::swingh_t::kOff);
+
92  static String boolToString(const bool value);
+
93  static String opmodeToString(const stdAc::opmode_t mode);
+
94  static String fanspeedToString(const stdAc::fanspeed_t speed);
+
95  static String swingvToString(const stdAc::swingv_t swingv);
+
96  static String swinghToString(const stdAc::swingh_t swingh);
+
97  stdAc::state_t getState(void);
+
98  stdAc::state_t getStatePrev(void);
+
99  bool hasStateChanged(void);
+
100  stdAc::state_t next;
+
101 #ifndef UNIT_TEST
+
102 
+
103  private:
+
104 #endif
+
105  uint16_t _pin;
+
106  bool _inverted;
+
107  bool _modulation;
+
108  stdAc::state_t _prev;
+
109 #if SEND_AIRWELL
+
110  void airwell(IRAirwellAc *ac,
+
111  const bool on, const stdAc::opmode_t mode, const float degrees,
+
112  const stdAc::fanspeed_t fan);
+
113 #endif // SEND_AIRWELL
+
114 #if SEND_AMCOR
+
115  void amcor(IRAmcorAc *ac,
+
116  const bool on, const stdAc::opmode_t mode, const float degrees,
+
117  const stdAc::fanspeed_t fan);
+
118 #endif // SEND_AMCOR
+
119 #if SEND_ARGO
+
120  void argo(IRArgoAC *ac,
+
121  const bool on, const stdAc::opmode_t mode, const float degrees,
+
122  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
123  const bool turbo, const int16_t sleep = -1);
+
124 #endif // SEND_ARGO
+
125 #if SEND_CARRIER_AC64
+
126 void carrier64(IRCarrierAc64 *ac,
+
127  const bool on, const stdAc::opmode_t mode,
+
128  const float degrees, const stdAc::fanspeed_t fan,
+
129  const stdAc::swingv_t swingv, const int16_t sleep = -1);
+
130 #endif // SEND_CARRIER_AC64
+
131 #if SEND_COOLIX
+
132  void coolix(IRCoolixAC *ac,
+
133  const bool on, const stdAc::opmode_t mode, const float degrees,
+
134  const stdAc::fanspeed_t fan,
+
135  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
136  const bool turbo, const bool light, const bool clean,
+
137  const int16_t sleep = -1);
+
138 #endif // SEND_COOLIX
+
139 #if SEND_CORONA_AC
+
140  void corona(IRCoronaAc *ac,
+
141  const bool on, const stdAc::opmode_t mode,
+
142  const float degrees, const stdAc::fanspeed_t fan,
+
143  const stdAc::swingv_t swingv, const bool econo);
+
144 #endif // SEND_CORONA_AC
+
145 #if SEND_DAIKIN
+
146  void daikin(IRDaikinESP *ac,
+
147  const bool on, const stdAc::opmode_t mode, const float degrees,
+
148  const stdAc::fanspeed_t fan,
+
149  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
150  const bool quiet, const bool turbo, const bool econo,
+
151  const bool clean);
+
152 #endif // SEND_DAIKIN
+
153 #if SEND_DAIKIN128
+
154  void daikin128(IRDaikin128 *ac,
+
155  const bool on, const stdAc::opmode_t mode,
+
156  const float degrees, const stdAc::fanspeed_t fan,
+
157  const stdAc::swingv_t swingv,
+
158  const bool quiet, const bool turbo, const bool light,
+
159  const bool econo, const int16_t sleep = -1,
+
160  const int16_t clock = -1);
+
161 #endif // SEND_DAIKIN128
+
162 #if SEND_DAIKIN152
+
163  void daikin152(IRDaikin152 *ac,
+
164  const bool on, const stdAc::opmode_t mode,
+
165  const float degrees, const stdAc::fanspeed_t fan,
+
166  const stdAc::swingv_t swingv,
+
167  const bool quiet, const bool turbo, const bool econo);
+
168 #endif // SEND_DAIKIN152
+
169 #if SEND_DAIKIN160
+
170  void daikin160(IRDaikin160 *ac,
+
171  const bool on, const stdAc::opmode_t mode,
+
172  const float degrees, const stdAc::fanspeed_t fan,
+
173  const stdAc::swingv_t swingv);
+
174 #endif // SEND_DAIKIN160
+
175 #if SEND_DAIKIN176
+
176  void daikin176(IRDaikin176 *ac,
+
177  const bool on, const stdAc::opmode_t mode,
+
178  const float degrees, const stdAc::fanspeed_t fan,
+
179  const stdAc::swingh_t swingh);
+
180 #endif // SEND_DAIKIN176
+
181 #if SEND_DAIKIN2
+
182  void daikin2(IRDaikin2 *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, const stdAc::swingh_t swingh,
+
186  const bool quiet, const bool turbo, const bool light,
+
187  const bool econo, const bool filter, const bool clean,
+
188  const bool beep, const int16_t sleep = -1,
+
189  const int16_t clock = -1);
+
190 #endif // SEND_DAIKIN2
+
191 #if SEND_DAIKIN216
+
192 void daikin216(IRDaikin216 *ac,
+
193  const bool on, const stdAc::opmode_t mode,
+
194  const float degrees, const stdAc::fanspeed_t fan,
+
195  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
196  const bool quiet, const bool turbo);
+
197 #endif // SEND_DAIKIN216
+
198 #if SEND_DAIKIN64
+
199  void daikin64(IRDaikin64 *ac,
+
200  const bool on, const stdAc::opmode_t mode,
+
201  const float degrees, const stdAc::fanspeed_t fan,
+
202  const stdAc::swingv_t swingv,
+
203  const bool quiet, const bool turbo,
+
204  const int16_t sleep = -1, const int16_t clock = -1);
+
205 #endif // SEND_DAIKIN64
+
206 #if SEND_DELONGHI_AC
+
207  void delonghiac(IRDelonghiAc *ac,
+
208  const bool on, const stdAc::opmode_t mode, const bool celsius,
+
209  const float degrees, const stdAc::fanspeed_t fan,
+
210  const bool turbo, const int16_t sleep = -1);
+
211 #endif // SEND_DELONGHI_AC
+
212 #if SEND_ECOCLIM
+
213 void ecoclim(IREcoclimAc *ac,
+
214  const bool on, const stdAc::opmode_t mode,
+
215  const float degrees, const stdAc::fanspeed_t fan,
+
216  const int16_t sleep = -1, const int16_t clock = -1);
+
217 #endif // SEND_ECOCLIM
+
218 #if SEND_ELECTRA_AC
+
219 void electra(IRElectraAc *ac,
+
220  const bool on, const stdAc::opmode_t mode,
+
221  const float degrees, const stdAc::fanspeed_t fan,
+
222  const stdAc::swingv_t swingv,
+
223  const stdAc::swingh_t swingh, const bool turbo,
+
224  const bool lighttoggle, const bool clean);
+
225 #endif // SEND_ELECTRA_AC
+
226 #if SEND_FUJITSU_AC
+
227  void fujitsu(IRFujitsuAC *ac, const fujitsu_ac_remote_model_t model,
+
228  const bool on, const stdAc::opmode_t mode,
+
229  const bool celsius, const float degrees,
+
230  const stdAc::fanspeed_t fan,
+
231  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
232  const bool quiet, const bool turbo, const bool econo,
+
233  const bool filter, const bool clean, const int16_t sleep = -1);
+
234 #endif // SEND_FUJITSU_AC
+
235 #if SEND_GOODWEATHER
+
236  void goodweather(IRGoodweatherAc *ac,
+
237  const bool on, const stdAc::opmode_t mode,
+
238  const float degrees,
+
239  const stdAc::fanspeed_t fan,
+
240  const stdAc::swingv_t swingv,
+
241  const bool turbo, const bool light,
+
242  const int16_t sleep = -1);
+
243 #endif // SEND_GOODWEATHER
+
244 #if SEND_GREE
+
245  void gree(IRGreeAC *ac, const gree_ac_remote_model_t model,
+
246  const bool on, const stdAc::opmode_t mode, const bool celsius,
+
247  const float degrees, const stdAc::fanspeed_t fan,
+
248  const stdAc::swingv_t swingv, const bool turbo, const bool light,
+
249  const bool clean, const int16_t sleep = -1);
+
250 #endif // SEND_GREE
+
251 #if SEND_HAIER_AC
+
252  void haier(IRHaierAC *ac,
+
253  const bool on, const stdAc::opmode_t mode, const float degrees,
+
254  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
255  const bool filter, const int16_t sleep = -1,
+
256  const int16_t clock = -1);
+
257 #endif // SEND_HAIER_AC
+
258 #if SEND_HAIER_AC_YRW02
+
259  void haierYrwo2(IRHaierACYRW02 *ac,
+
260  const bool on, const stdAc::opmode_t mode,
+
261  const float degrees, const stdAc::fanspeed_t fan,
+
262  const stdAc::swingv_t swingv,
+
263  const bool turbo, const bool filter,
+
264  const int16_t sleep = -1);
+
265 #endif // SEND_HAIER_AC_YRW02
+
266 #if SEND_HITACHI_AC
+
267  void hitachi(IRHitachiAc *ac,
+
268  const bool on, const stdAc::opmode_t mode,
+
269  const float degrees, const stdAc::fanspeed_t fan,
+
270  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh);
+
271 #endif // SEND_HITACHI_AC
+
272 #if SEND_HITACHI_AC1
+
273  void hitachi1(IRHitachiAc1 *ac, const hitachi_ac1_remote_model_t model,
+
274  const bool on, const bool power_toggle,
+
275  const stdAc::opmode_t mode,
+
276  const float degrees, const stdAc::fanspeed_t fan,
+
277  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
278  const bool swing_toggle, const int16_t sleep = -1);
+
279 #endif // SEND_HITACHI_AC1
+
280 #if SEND_HITACHI_AC344
+
281  void hitachi344(IRHitachiAc344 *ac,
+
282  const bool on, const stdAc::opmode_t mode,
+
283  const float degrees, const stdAc::fanspeed_t fan,
+
284  const stdAc::swingv_t swingv,
+
285  const stdAc::swingh_t swingh);
+
286 #endif // SEND_HITACHI_AC344
+
287 #if SEND_HITACHI_AC424
+
288  void hitachi424(IRHitachiAc424 *ac,
+
289  const bool on, const stdAc::opmode_t mode,
+
290  const float degrees, const stdAc::fanspeed_t fan,
+
291  const stdAc::swingv_t swingv);
+
292 #endif // SEND_HITACHI_AC424
+
293 #if SEND_KELON
+
294  void kelon(IRKelonAc *ac, const bool togglePower, const stdAc::opmode_t mode,
+
295  const int8_t dryGrade, const float degrees,
+
296  const stdAc::fanspeed_t fan, const bool toggleSwing,
+
297  const bool superCool, const int16_t sleep);
+
298 #endif // SEND_KELON
+
299 #if SEND_KELVINATOR
+
300  void kelvinator(IRKelvinatorAC *ac,
+
301  const bool on, const stdAc::opmode_t mode,
+
302  const float degrees, const stdAc::fanspeed_t fan,
+
303  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
304  const bool quiet, const bool turbo, const bool light,
+
305  const bool filter, const bool clean);
+
306 #endif // SEND_KELVINATOR
+
307 #if SEND_LG
+
308  void lg(IRLgAc *ac, const lg_ac_remote_model_t model,
+
309  const bool on, const stdAc::opmode_t mode,
+
310  const float degrees, const stdAc::fanspeed_t fan);
+
311 #endif // SEND_LG
+
312 #if SEND_MIDEA
+
313  void midea(IRMideaAC *ac,
+
314  const bool on, const stdAc::opmode_t mode, const bool celsius,
+
315  const float degrees, const stdAc::fanspeed_t fan,
+
316  const stdAc::swingv_t swingv, const bool turbo, const bool econo,
+
317  const bool light, const int16_t sleep = -1);
+
318 #endif // SEND_MIDEA
+
319 #if SEND_MITSUBISHI_AC
+
320  void mitsubishi(IRMitsubishiAC *ac,
+
321  const bool on, const stdAc::opmode_t mode,
+
322  const float degrees,
+
323  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
324  const stdAc::swingh_t swingh,
+
325  const bool quiet, const int16_t clock = -1);
+
326 #endif // SEND_MITSUBISHI_AC
+
327 #if SEND_MITSUBISHI112
+
328  void mitsubishi112(IRMitsubishi112 *ac,
+
329  const bool on, const stdAc::opmode_t mode,
+
330  const float degrees, const stdAc::fanspeed_t fan,
+
331  const stdAc::swingv_t swingv,
+
332  const stdAc::swingh_t swingh,
+
333  const bool quiet);
+
334 #endif // SEND_MITSUBISHI112
+
335 #if SEND_MITSUBISHI136
+
336  void mitsubishi136(IRMitsubishi136 *ac,
+
337  const bool on, const stdAc::opmode_t mode,
+
338  const float degrees, const stdAc::fanspeed_t fan,
+
339  const stdAc::swingv_t swingv, const bool quiet);
+
340 #endif // SEND_MITSUBISHI136
+
341 #if SEND_MITSUBISHIHEAVY
+
342  void mitsubishiHeavy88(IRMitsubishiHeavy88Ac *ac,
+
343  const bool on, const stdAc::opmode_t mode,
+
344  const float degrees, const stdAc::fanspeed_t fan,
+
345  const stdAc::swingv_t swingv,
+
346  const stdAc::swingh_t swingh,
+
347  const bool turbo, const bool econo, const bool clean);
+
348  void mitsubishiHeavy152(IRMitsubishiHeavy152Ac *ac,
+
349  const bool on, const stdAc::opmode_t mode,
+
350  const float degrees, const stdAc::fanspeed_t fan,
+
351  const stdAc::swingv_t swingv,
+
352  const stdAc::swingh_t swingh,
+
353  const bool quiet, const bool turbo, const bool econo,
+
354  const bool filter, const bool clean,
+
355  const int16_t sleep = -1);
+
356 #endif // SEND_MITSUBISHIHEAVY
+
357 #if SEND_NEOCLIMA
+
358  void neoclima(IRNeoclimaAc *ac, const bool on, const stdAc::opmode_t mode,
+
359  const bool celsius, const float degrees,
+
360  const stdAc::fanspeed_t fan,
+
361  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
362  const bool turbo, const bool econo, const bool light,
+
363  const bool filter, const int16_t sleep = -1);
+
364 #endif // SEND_NEOCLIMA
+
365 #if SEND_PANASONIC_AC
+
366  void panasonic(IRPanasonicAc *ac, const panasonic_ac_remote_model_t model,
+
367  const bool on, const stdAc::opmode_t mode, const float degrees,
+
368  const stdAc::fanspeed_t fan,
+
369  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
370  const bool quiet, const bool turbo, const bool filter,
+
371  const int16_t clock = -1);
+
372 #endif // SEND_PANASONIC_AC
+
373 #if SEND_PANASONIC_AC32
+
374  void panasonic32(IRPanasonicAc32 *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 #endif // SEND_PANASONIC_AC32
+
379 #if SEND_SAMSUNG_AC
+
380  void samsung(IRSamsungAc *ac,
+
381  const bool on, const stdAc::opmode_t mode, const float degrees,
+
382  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
383  const bool quiet, const bool turbo, const bool light,
+
384  const bool filter, const bool clean,
+
385  const bool beep, const bool prevpower = true,
+
386  const bool forcepower = true);
+
387 #endif // SEND_SAMSUNG_AC
+
388 #if SEND_SANYO_AC
+
389  void sanyo(IRSanyoAc *ac,
+
390  const bool on, const stdAc::opmode_t mode, const float degrees,
+
391  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
392  const bool beep, const int16_t sleep = -1);
+
393 #endif // SEND_SANYO_AC
+
394 #if SEND_SHARP_AC
+
395  void sharp(IRSharpAc *ac, const sharp_ac_remote_model_t model,
+
396  const bool on, const bool prev_power, const stdAc::opmode_t mode,
+
397  const float degrees, const stdAc::fanspeed_t fan,
+
398  const stdAc::swingv_t swingv, const bool turbo, const bool light,
+
399  const bool filter, const bool clean);
+
400 #endif // SEND_SHARP_AC
+
401 #if SEND_TCL112AC
+
402  void tcl112(IRTcl112Ac *ac,
+
403  const bool on, const stdAc::opmode_t mode, const float degrees,
+
404  const stdAc::fanspeed_t fan,
+
405  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
406  const bool turbo, const bool light, const bool econo,
+
407  const bool filter);
+
408 #endif // SEND_TCL112AC
+
409 #if SEND_TECHNIBEL_AC
+
410  void technibel(IRTechnibelAc *ac,
+
411  const bool on, const stdAc::opmode_t mode, const bool celsius,
+
412  const float degrees, const stdAc::fanspeed_t fan,
+
413  const stdAc::swingv_t swingv, const int16_t sleep = -1);
+
414 #endif // SEND_TECHNIBEL_AC
+
415 #if SEND_TECO
+
416  void teco(IRTecoAc *ac,
+
417  const bool on, const stdAc::opmode_t mode, const float degrees,
+
418  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
419  const bool light, const int16_t sleep = -1);
+
420 #endif // SEND_TECO
+
421 #if SEND_TOSHIBA_AC
+
422  void toshiba(IRToshibaAC *ac,
+
423  const bool on, const stdAc::opmode_t mode, const float degrees,
+
424  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
425  const bool turbo, const bool econo);
+
426 #endif // SEND_TOSHIBA_AC
+
427 #if SEND_TROTEC
+
428  void trotec(IRTrotecESP *ac,
+
429  const bool on, const stdAc::opmode_t mode, const float degrees,
+
430  const stdAc::fanspeed_t fan, const int16_t sleep = -1);
+
431 #endif // SEND_TROTEC
+
432 #if SEND_TRUMA
+
433  void truma(IRTrumaAc *ac,
+
434  const bool on, const stdAc::opmode_t mode, const float degrees,
+
435  const stdAc::fanspeed_t fan, const bool quiet);
+
436 #endif // SEND_TRUMA
+
437 #if SEND_VESTEL_AC
+
438  void vestel(IRVestelAc *ac,
+
439  const bool on, const stdAc::opmode_t mode, const float degrees,
+
440  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
441  const bool turbo, const bool filter,
+
442  const int16_t sleep = -1, const int16_t clock = -1,
+
443  const bool sendNormal = true);
+
444 #endif // SEND_VESTEL_AC
+
445 #if SEND_VOLTAS
+
446  void voltas(IRVoltas *ac, const voltas_ac_remote_model_t model,
+
447  const bool on, const stdAc::opmode_t mode,
+
448  const float degrees, const stdAc::fanspeed_t fan,
+
449  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
450  const bool turbo, const bool econo, const bool light,
+
451  const int16_t sleep = -1);
+
452 #endif // SEND_VOLTAS
+
453 #if SEND_WHIRLPOOL_AC
+
454  void whirlpool(IRWhirlpoolAc *ac, const whirlpool_ac_remote_model_t model,
+
455  const bool on, const stdAc::opmode_t mode, const float degrees,
+
456  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
457  const bool turbo, const bool light,
+
458  const int16_t sleep = -1, const int16_t clock = -1);
+
459 #endif // SEND_WHIRLPOOL_AC
+
460 #if SEND_TRANSCOLD
+
461  void transcold(IRTranscoldAc *ac,
+
462  const bool on, const stdAc::opmode_t mode, const float degrees,
+
463  const stdAc::fanspeed_t fan,
+
464  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh);
+
465 #endif // SEND_TRANSCOLD
+
466 static stdAc::state_t cleanState(const stdAc::state_t state);
+
467 static stdAc::state_t handleToggles(const stdAc::state_t desired,
+
468  const stdAc::state_t *prev = NULL);
+
469 }; // IRac class
+
470 
+
472 namespace IRAcUtils {
+
473  String resultAcToString(const decode_results * const results);
+
474  bool decodeToState(const decode_results *decode, stdAc::state_t *result,
+
475  const stdAc::state_t *prev = NULL);
+
476 } // namespace IRAcUtils
+
477 #endif // IRAC_H_
-
Class for handling detailed Panasonic A/C messages.
Definition: ir_Panasonic.h:100
-
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:310
+
Class for handling detailed Panasonic A/C messages.
Definition: ir_Panasonic.h:102
+
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:306
Support for Kelvinator A/C protocols.
-
Class for handling detailed Samsung A/C messages.
Definition: ir_Samsung.h:130
-
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:1121
+
Class for handling detailed Samsung A/C messages.
Definition: ir_Samsung.h:132
+
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:1123
Class for handling detailed Toshiba A/C messages.
Definition: ir_Toshiba.h:121
-
decode_type_t
Enumerator for defining and numbering of supported IR protocol.
Definition: IRremoteESP8266.h:799
-
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:135
-
stdAc::state_t getState(void)
Get the current internal A/C climate state.
Definition: IRac.cpp:130
+
decode_type_t
Enumerator for defining and numbering of supported IR protocol.
Definition: IRremoteESP8266.h:823
+
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:136
+
stdAc::state_t getState(void)
Get the current internal A/C climate state.
Definition: IRac.cpp:131
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:2944
-
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 bool turbo, const bool light, const bool filter, const bool clean)
Send a Sharp A/C message with the supplied settings.
Definition: IRac.cpp:1775
-
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:1197
+
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:2992
+
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 bool turbo, const bool light, const bool filter, const bool clean)
Send a Sharp A/C message with the supplied settings.
Definition: IRac.cpp:1808
+
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:1199
@ kAuto
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:822
-
void markAsSent(void)
Update the previous state to the current one.
Definition: IRac.cpp:2807
+
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:824
+
void markAsSent(void)
Update the previous state to the current one.
Definition: IRac.cpp:2855
swingv_t
Common A/C settings for Vertical Swing.
Definition: IRsend.h:70
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:699
+
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:701
Support for Trotec protocols.
-
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 Toshiba A/C message with the supplied settings.
Definition: IRac.cpp:1731
-
Class for handling detailed Daikin 280-bit A/C messages.
Definition: ir_Daikin.h:658
-
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)
Send a LG A/C message with the supplied settings.
Definition: IRac.cpp:1303
+
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 Toshiba A/C message with the supplied settings.
Definition: IRac.cpp:1764
+
Class for handling detailed Daikin 280-bit A/C messages.
Definition: ir_Daikin.h:660
+
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)
Send a LG A/C message with the supplied settings.
Definition: IRac.cpp:1336
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:1269
-
Class for handling detailed Daikin 312-bit A/C messages.
Definition: ir_Daikin.h:740
-
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:907
+
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:1302
+
Class for handling detailed Daikin 312-bit A/C messages.
Definition: ir_Daikin.h:742
+
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:909
Support for Neoclima protocols. Analysis by crankyoldgit & AndreyShpilevoy.
-
Class for handling detailed Daikin 128-bit A/C messages.
Definition: ir_Daikin.h:1001
+
Class for handling detailed Daikin 128-bit A/C messages.
Definition: ir_Daikin.h:1003
fanspeed_t
Common A/C settings for Fan Speeds.
Definition: IRsend.h:58
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:3094
+
static String fanspeedToString(const stdAc::fanspeed_t speed)
Convert the supplied fan speed enum into the appropriate String.
Definition: IRac.cpp:3142
whirlpool_ac_remote_model_t
Whirlpool A/C model numbers.
Definition: IRsend.h:170
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:2117
+
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:2150
Results returned from the decoder.
Definition: IRrecv.h:92
-
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:768
-
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:2076
-
void tcl112(IRTcl112Ac *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 econo, const bool filter)
Send a TCL 112-bit A/C message with the supplied settings.
Definition: IRac.cpp:1828
-
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:2154
-
bool sendAc(void)
Send an A/C message based soley on our internal state.
Definition: IRac.cpp:2813
-
static bool cmpStates(const stdAc::state_t a, const stdAc::state_t b)
Compare two AirCon states.
Definition: IRac.cpp:2824
+
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:770
+
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:2109
+
void tcl112(IRTcl112Ac *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 econo, const bool filter)
Send a TCL 112-bit A/C message with the supplied settings.
Definition: IRac.cpp:1861
+
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:2187
+
bool sendAc(void)
Send an A/C message based soley on our internal state.
Definition: IRac.cpp:2861
+
static bool cmpStates(const stdAc::state_t a, const stdAc::state_t b)
Compare two AirCon states.
Definition: IRac.cpp:2872
Support for Midea protocols. Midea added by crankyoldgit & bwze.
Support for Daikin A/C protocols.
gree_ac_remote_model_t
Gree A/C model numbers.
Definition: IRsend.h:134
-
Class for handling detailed Daikin 64-bit A/C messages.
Definition: ir_Daikin.h:1131
+
Class for handling detailed Daikin 64-bit A/C messages.
Definition: ir_Daikin.h:1133
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:2034
+
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:2067
Class for handling detailed Hitachi 53-byte/424-bit A/C messages.
Definition: ir_Hitachi.h:371
-
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:535
-
IRac(const uint16_t pin, const bool inverted=false, const bool use_modulation=true)
Class constructor.
Definition: IRac.cpp:56
-
Class for handling detailed Daikin 216-bit A/C messages.
Definition: ir_Daikin.h:836
+
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:537
+
IRac(const uint16_t pin, const bool inverted=false, const bool use_modulation=true)
Class constructor.
Definition: IRac.cpp:57
+
Class for handling detailed Daikin 216-bit A/C messages.
Definition: ir_Daikin.h:838
Class for handling detailed Voltas A/C messages.
Definition: ir_Voltas.h:90
hitachi_ac1_remote_model_t
HITACHI_AC1 A/C model numbers.
Definition: IRsend.h:140
-
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 bool quiet, const bool turbo, const bool light, const bool filter, const bool clean, const bool beep, const bool prevpower=true, const bool forcepower=true)
Send a Samsung A/C message with the supplied settings.
Definition: IRac.cpp:1690
-
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:575
+
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 bool quiet, const bool turbo, const bool light, const bool filter, const bool clean, const bool beep, const bool prevpower=true, const bool forcepower=true)
Send a Samsung A/C message with the supplied settings.
Definition: IRac.cpp:1723
+
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:577
Class for handling detailed Hitachi 224-bit A/C messages.
Definition: ir_Hitachi.h:246
-
const int8_t kGpioUnused
A placeholder for not using an actual GPIO.
Definition: IRac.h:47
-
Common functions for use with all A/Cs supported by the IRac class.
Definition: IRac.cpp:3163
+
const int8_t kGpioUnused
A placeholder for not using an actual GPIO.
Definition: IRac.h:48
+
Common functions for use with all A/Cs supported by the IRac class.
Definition: IRac.cpp:3211
Class for handling detailed Sanyo A/C messages.
Definition: ir_Sanyo.h:106
-
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:1052
+
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:1054
+
Definition: ir_Kelon.h:70
Class for handling detailed Whirlpool A/C messages.
Definition: ir_Whirlpool.h:132
Class for handling detailed Hitachi 344-bit A/C messages.
Definition: ir_Hitachi.h:459
-
static String boolToString(const bool value)
Convert the supplied boolean into the appropriate String.
Definition: IRac.cpp:3065
-
stdAc::state_t next
The state we want the device to be in after we send.
Definition: IRac.h:99
-
std::string String
Definition: IRremoteESP8266.h:1217
+
static String boolToString(const bool value)
Convert the supplied boolean into the appropriate String.
Definition: IRac.cpp:3113
+
stdAc::state_t next
The state we want the device to be in after we send.
Definition: IRac.h:100
+
std::string String
Definition: IRremoteESP8266.h:1250
Class for handling detailed Mitsubishi 144-bit A/C messages.
Definition: ir_Mitsubishi.h:242
-
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:1966
-
static int16_t strToModel(const char *str, const int16_t def=-1)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:2984
+
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:1999
+
static int16_t strToModel(const char *str, const int16_t def=-1)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:3032
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:362
EcoClim A/C protocol.
Class for handling detailed TCL A/C messages.
Definition: ir_Tcl.h:89
-
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:667
-
Class for handling detailed Electra A/C messages.
Definition: ir_Electra.h:98
+
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:669
+
Class for handling detailed Electra A/C messages.
Definition: ir_Electra.h:99
Support for TCL protocols.
-
bool hasStateChanged(void)
Check if the internal state has changed from what was previously sent.
Definition: IRac.cpp:2836
-
void haierYrwo2(IRHaierACYRW02 *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)
Send a Haier YRWO2 A/C message with the supplied settings.
Definition: IRac.cpp:1089
-
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:738
+
bool hasStateChanged(void)
Check if the internal state has changed from what was previously sent.
Definition: IRac.cpp:2884
+
void haierYrwo2(IRHaierACYRW02 *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)
Send a Haier YRWO2 A/C message with the supplied settings.
Definition: IRac.cpp:1091
+
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:740
Support for Transcold A/C protocols.
Support for Hitachi A/C protocols.
Support for Panasonic protocols.
-
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:2203
+
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:2236
Class for handling detailed Mitsubishi 136-bit A/C messages.
Definition: ir_Mitsubishi.h:308
panasonic_ac_remote_model_t
Panasonic A/C model numbers.
Definition: IRsend.h:146
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:1415
-
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:3549
+
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:1448
+
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:3604
Class for handling detailed Hitachi 104-bit A/C messages.
Definition: ir_Hitachi.h:303
-
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:1231
+
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:1233
Support for Samsung protocols. Samsung originally added from https://github.com/shirriff/Arduino-IRre...
-
String resultAcToString(const decode_results *const result)
Display the human readable state of an A/C message if we can.
Definition: IRac.cpp:3169
-
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:612
+
String resultAcToString(const decode_results *const result)
Display the human readable state of an A/C message if we can.
Definition: IRac.cpp:3217
+
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:614
fujitsu_ac_remote_model_t
Fujitsu A/C model numbers.
Definition: IRsend.h:120
Support for Gree A/C protocols.
Class for handling detailed Carrier 64 bit A/C messages.
Definition: ir_Carrier.h:84
Class for handling detailed Midea A/C messages.
Definition: ir_Midea.h:151
Class for handling detailed Kelvinator A/C messages.
Definition: ir_Kelvinator.h:121
-
bool _inverted
IR LED is lit when GPIO is LOW (true) or HIGH (false)?
Definition: IRac.h:105
+
bool _inverted
IR LED is lit when GPIO is LOW (true) or HIGH (false)?
Definition: IRac.h:106
Class for handling detailed Fujitsu A/C messages.
Definition: ir_Fujitsu.h:169
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:112
-
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 turbo, const bool econo, const bool light, const int16_t sleep=-1)
Send a Midea A/C message with the supplied settings.
Definition: IRac.cpp:1340
-
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:1612
-
static String swingvToString(const stdAc::swingv_t swingv)
Convert the supplied enum into the appropriate String.
Definition: IRac.cpp:3116
+
Class for handling detailed Coolix A/C messages.
Definition: ir_Coolix.h:116
+
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 turbo, const bool econo, const bool light, const int16_t sleep=-1)
Send a Midea A/C message with the supplied settings.
Definition: IRac.cpp:1373
+
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:1645
+
static String swingvToString(const stdAc::swingv_t swingv)
Convert the supplied enum into the appropriate String.
Definition: IRac.cpp:3164
Support for Mitsubishi protocols. Mitsubishi (TV) decoding added from https://github....
-
A universal/common/generic interface for controling supported A/Cs.
Definition: IRac.h:51
+
A universal/common/generic interface for controling supported A/Cs.
Definition: IRac.h:52
Support for Teco 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 bool turbo, const bool light, const bool clean, const int16_t sleep=-1)
Send a Gree A/C message with the supplied settings.
Definition: IRac.cpp:1014
+
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 bool turbo, const bool light, const bool clean, const int16_t sleep=-1)
Send a Gree A/C message with the supplied settings.
Definition: IRac.cpp:1016
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:864
-
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:2190
+
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:866
+
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:2223
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:1378
-
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:338
+
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:1411
+
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:334
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
Support for Voltas A/C protocol.
-
Class for handling detailed Daikin 152-bit A/C messages.
Definition: ir_Daikin.h:1071
+
Class for handling detailed Daikin 152-bit A/C messages.
Definition: ir_Daikin.h:1073
Class for handling detailed LG A/C messages.
Definition: ir_LG.h:67
Support for Fujitsu A/C protocols. Fujitsu A/C support added by Jonny Graham.
-
Class for handling detailed Haier A/C messages.
Definition: ir_Haier.h:244
-
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:1571
-
Class for handling detailed Daikin 160-bit A/C messages.
Definition: ir_Daikin.h:892
-
static String opmodeToString(const stdAc::opmode_t mode)
Convert the supplied operation mode into the appropriate String.
Definition: IRac.cpp:3072
+
Class for handling detailed Haier A/C messages.
Definition: ir_Haier.h:246
+
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:1604
+
Class for handling detailed Daikin 160-bit A/C messages.
Definition: ir_Daikin.h:894
+
static String opmodeToString(const stdAc::opmode_t mode)
Convert the supplied operation mode into the appropriate String.
Definition: IRac.cpp:3120
Class for handling detailed Sharp A/C messages.
Definition: ir_Sharp.h:137
-
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)
Send a Toshiba A/C message with the supplied settings.
Definition: IRac.cpp:1930
+
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)
Send a Toshiba A/C message with the supplied settings.
Definition: IRac.cpp:1963
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:370
+
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:366
lg_ac_remote_model_t
LG A/C model numbers.
Definition: IRsend.h:176
-
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:1451
+
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:1484
@ kAuto
-
bool _modulation
Is frequency modulation to be used?
Definition: IRac.h:106
-
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:1897
-
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:2842
+
bool _modulation
Is frequency modulation to be used?
Definition: IRac.h:107
+
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:1930
+
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:2890
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:1158
+
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:1160
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:1648
+
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:1681
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:3047
-
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:1486
-
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:2903
+
static bool strToBool(const char *str, const bool def=false)
Convert the supplied str into the appropriate boolean value.
Definition: IRac.cpp:3095
+
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:1519
+
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:2951
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:219
+
Class for handling detailed Panasonic 32bit A/C messages.
Definition: ir_Panasonic.h:221
Class for handling detailed Trotec A/C messages.
Definition: ir_Trotec.h:91
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:1997
-
static String swinghToString(const stdAc::swingh_t swingh)
Convert the supplied enum into the appropriate String.
Definition: IRac.cpp:3140
+
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:2030
+
static String swinghToString(const stdAc::swingh_t swingh)
Convert the supplied enum into the appropriate String.
Definition: IRac.cpp:3188
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:798
-
stdAc::state_t _prev
The state we expect the device to currently be in.
Definition: IRac.h:107
-
Class for handling detailed Haier ACYRW02 A/C messages.
Definition: ir_Haier.h:314
-
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:645
-
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:500
-
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:87
-
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:1527
+
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:800
+
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:1268
+
Support for Kelan AC protocol. Both sending and decoding should be functional for models of series KE...
+
stdAc::state_t _prev
The state we expect the device to currently be in.
Definition: IRac.h:108
+
Class for handling detailed Haier ACYRW02 A/C messages.
Definition: ir_Haier.h:316
+
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:647
+
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:502
+
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:88
+
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:1560
@ 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
-
Class for handling detailed Gree A/C messages.
Definition: ir_Gree.h:133
-
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:439
-
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:2872
+
Class for handling detailed Gree A/C messages.
Definition: ir_Gree.h:136
+
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:435
+
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:2920
Support for Toshiba protocols.
-
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:972
+
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:974
Structure to hold a common A/C state.
Definition: IRsend.h:97
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
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:140
-
Class for handling detailed Daikin 176-bit A/C messages.
Definition: ir_Daikin.h:944
+
static bool isProtocolSupported(const decode_type_t protocol)
Is the given protocol supported by the IRac class?
Definition: IRac.cpp:141
+
Class for handling detailed Daikin 176-bit A/C messages.
Definition: ir_Daikin.h:946
Amcor A/C protocol.
-
uint16_t _pin
The GPIO to use to transmit messages from.
Definition: IRac.h:104
-
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:1864
+
uint16_t _pin
The GPIO to use to transmit messages from.
Definition: IRac.h:105
+
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:1897
voltas_ac_remote_model_t
Voltas A/C model numbers.
Definition: IRsend.h:164
sharp_ac_remote_model_t
Sharp A/C model numbers.
Definition: IRsend.h:157
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:402
+
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:398
opmode_t
Common A/C settings for A/C operating modes.
Definition: IRsend.h:46