From 87d448fa9902f36fc8b1d27aa1b3d158b906d927 Mon Sep 17 00:00:00 2001 From: David Conran Date: Tue, 1 Sep 2020 00:07:58 +1000 Subject: [PATCH] v2.7.10 Release (#1257) ## v2.7.10 release _v2.7.10 (20200831)_ **[BREAKING CHANGES]** - move SPIFFS to LittleFS for ESP8266 (#1182 #1226) - Daikin176: Change & increase operating mode values. (#1233 #1235) **[Bug Fixes]** - TOSHIBA_AC: not turning off when using `IRac` class. (#1250 #1251) - Haier: change position of Fan speed bits. (#1246 #1247) **[Features]** - Voltas: Add detailed support for Voltas A/Cs (#1238 #1248) - Add support for Metz protocol. (#1241 #1242) - Basic support for Voltas A/C protocol (#1238 #1243) - Add low level bit formatting sanity checks. (#1232) **[Misc]** - Rewrite Airwell by using bit fields (#1254) - Rewrite Haier YRW02 using bit fields (#1253) - rewrite Haier HSU07-HEA03 (#1246 #1247) - rewrite ir_Gree & ir_Midea by using bit field (#1240) - Incorrect usage of `assert()` (#1244 #1245 #1232) - rewrite Gree (#1210) --- README.md | 4 +- README_fr.md | 4 +- ReleaseNotes.md | 25 + SupportedProtocols.md | 8 +- docs/doxygen/html/IRac_8h_source.html | 971 +-- docs/doxygen/html/IRrecv_8h_source.html | 1001 ++-- docs/doxygen/html/IRremoteESP8266_8h.html | 75 +- .../html/IRremoteESP8266_8h_source.html | 1493 ++--- docs/doxygen/html/IRsend_8h.html | 25 + docs/doxygen/html/IRsend_8h_source.html | 1358 ++--- docs/doxygen/html/IRutils_8cpp.html | 3 + docs/doxygen/html/IRutils_8h.html | 3 + docs/doxygen/html/IRutils_8h_source.html | 76 +- docs/doxygen/html/annotated.html | 115 +- .../html/classIRAirwellAc-members.html | 45 +- docs/doxygen/html/classIRAirwellAc.html | 163 +- .../html/classIRAirwellAc__coll__graph.map | 5 +- .../html/classIRAirwellAc__coll__graph.md5 | 2 +- .../html/classIRAirwellAc__coll__graph.png | Bin 3147 -> 5989 bytes docs/doxygen/html/classIRGreeAC-members.html | 62 +- docs/doxygen/html/classIRGreeAC.html | 280 +- .../html/classIRGreeAC__coll__graph.map | 5 +- .../html/classIRGreeAC__coll__graph.md5 | 2 +- .../html/classIRGreeAC__coll__graph.png | Bin 3146 -> 5813 bytes docs/doxygen/html/classIRHaierAC-members.html | 70 +- docs/doxygen/html/classIRHaierAC.html | 305 +- .../html/classIRHaierACYRW02-members.html | 46 +- docs/doxygen/html/classIRHaierACYRW02.html | 200 +- .../html/classIRHaierACYRW02__coll__graph.map | 5 +- .../html/classIRHaierACYRW02__coll__graph.md5 | 2 +- .../html/classIRHaierACYRW02__coll__graph.png | Bin 4003 -> 7509 bytes .../html/classIRHaierAC__coll__graph.map | 5 +- .../html/classIRHaierAC__coll__graph.md5 | 2 +- .../html/classIRHaierAC__coll__graph.png | Bin 3157 -> 5758 bytes docs/doxygen/html/classIRMideaAC-members.html | 48 +- docs/doxygen/html/classIRMideaAC.html | 164 +- .../html/classIRMideaAC__coll__graph.map | 5 +- .../html/classIRMideaAC__coll__graph.md5 | 2 +- .../html/classIRMideaAC__coll__graph.png | Bin 3328 -> 6165 bytes docs/doxygen/html/classIRVoltas-members.html | 130 + docs/doxygen/html/classIRVoltas.html | 1585 +++++ .../html/classIRVoltas__coll__graph.map | 5 + .../html/classIRVoltas__coll__graph.md5 | 1 + .../html/classIRVoltas__coll__graph.png | Bin 0 -> 5880 bytes docs/doxygen/html/classIRac-members.html | 3 +- docs/doxygen/html/classIRac.html | 138 +- docs/doxygen/html/classIRrecv-members.html | 66 +- docs/doxygen/html/classIRrecv.html | 128 + docs/doxygen/html/classIRsend-members.html | 167 +- docs/doxygen/html/classIRsend.html | 163 +- docs/doxygen/html/classdecode__results.html | 32 +- docs/doxygen/html/classes.html | 124 +- docs/doxygen/html/defaults_8h_source.html | 328 +- .../dir_68267d1309a1af8e8297ef4c3efbcdba.html | 9 + docs/doxygen/html/files.html | 113 +- docs/doxygen/html/functions.html | 71 + docs/doxygen/html/functions_b.html | 4 + docs/doxygen/html/functions_c.html | 22 +- docs/doxygen/html/functions_d.html | 9 + docs/doxygen/html/functions_e.html | 6 + docs/doxygen/html/functions_f.html | 10 + docs/doxygen/html/functions_func_b.html | 1 + docs/doxygen/html/functions_func_c.html | 8 +- docs/doxygen/html/functions_func_d.html | 6 + docs/doxygen/html/functions_func_e.html | 3 + docs/doxygen/html/functions_func_g.html | 117 +- docs/doxygen/html/functions_func_i.html | 7 +- docs/doxygen/html/functions_func_o.html | 2 + docs/doxygen/html/functions_func_s.html | 31 +- docs/doxygen/html/functions_func_t.html | 16 +- docs/doxygen/html/functions_func_v.html | 4 + docs/doxygen/html/functions_g.html | 117 +- docs/doxygen/html/functions_h.html | 4 + docs/doxygen/html/functions_i.html | 12 +- docs/doxygen/html/functions_l.html | 6 + docs/doxygen/html/functions_m.html | 13 + docs/doxygen/html/functions_o.html | 44 + docs/doxygen/html/functions_p.html | 15 + docs/doxygen/html/functions_r.html | 13 +- docs/doxygen/html/functions_s.html | 61 +- docs/doxygen/html/functions_t.html | 49 +- docs/doxygen/html/functions_u.html | 15 + docs/doxygen/html/functions_v.html | 4 + docs/doxygen/html/functions_vars.html | 71 + docs/doxygen/html/functions_vars_b.html | 3 + docs/doxygen/html/functions_vars_c.html | 14 +- docs/doxygen/html/functions_vars_d.html | 3 + docs/doxygen/html/functions_vars_e.html | 3 + docs/doxygen/html/functions_vars_f.html | 10 + docs/doxygen/html/functions_vars_h.html | 4 + docs/doxygen/html/functions_vars_i.html | 3 + docs/doxygen/html/functions_vars_l.html | 6 + docs/doxygen/html/functions_vars_m.html | 13 + docs/doxygen/html/functions_vars_o.html | 42 + docs/doxygen/html/functions_vars_p.html | 15 + docs/doxygen/html/functions_vars_r.html | 13 +- docs/doxygen/html/functions_vars_s.html | 32 + docs/doxygen/html/functions_vars_t.html | 33 + docs/doxygen/html/functions_vars_u.html | 15 + docs/doxygen/html/functions_vars_w.html | 6 + docs/doxygen/html/functions_vars_x.html | 79 + docs/doxygen/html/functions_w.html | 6 + docs/doxygen/html/functions_x.html | 79 + docs/doxygen/html/globals_enum.html | 3 + docs/doxygen/html/globals_eval.html | 12 + docs/doxygen/html/globals_k.html | 488 +- docs/doxygen/html/globals_m.html | 3 + docs/doxygen/html/globals_v.html | 6 + docs/doxygen/html/globals_vars_k.html | 476 +- docs/doxygen/html/hierarchy.html | 117 +- docs/doxygen/html/inherit_graph_0.map | 2 +- docs/doxygen/html/inherit_graph_0.md5 | 2 +- docs/doxygen/html/inherit_graph_0.png | Bin 1406 -> 1531 bytes docs/doxygen/html/inherit_graph_1.map | 2 +- docs/doxygen/html/inherit_graph_1.md5 | 2 +- docs/doxygen/html/inherit_graph_1.png | Bin 674 -> 1406 bytes docs/doxygen/html/inherit_graph_10.map | 2 +- docs/doxygen/html/inherit_graph_10.md5 | 2 +- docs/doxygen/html/inherit_graph_10.png | Bin 1371 -> 1141 bytes docs/doxygen/html/inherit_graph_11.map | 2 +- docs/doxygen/html/inherit_graph_11.md5 | 2 +- docs/doxygen/html/inherit_graph_11.png | Bin 1281 -> 1277 bytes docs/doxygen/html/inherit_graph_12.map | 2 +- docs/doxygen/html/inherit_graph_12.md5 | 2 +- docs/doxygen/html/inherit_graph_12.png | Bin 1088 -> 1330 bytes docs/doxygen/html/inherit_graph_13.map | 2 +- docs/doxygen/html/inherit_graph_13.md5 | 2 +- docs/doxygen/html/inherit_graph_13.png | Bin 1317 -> 1257 bytes docs/doxygen/html/inherit_graph_14.map | 2 +- docs/doxygen/html/inherit_graph_14.md5 | 2 +- docs/doxygen/html/inherit_graph_14.png | Bin 1237 -> 1371 bytes docs/doxygen/html/inherit_graph_15.map | 2 +- docs/doxygen/html/inherit_graph_15.md5 | 2 +- docs/doxygen/html/inherit_graph_15.png | Bin 1264 -> 1281 bytes docs/doxygen/html/inherit_graph_16.map | 2 +- docs/doxygen/html/inherit_graph_16.md5 | 2 +- docs/doxygen/html/inherit_graph_16.png | Bin 1482 -> 1088 bytes docs/doxygen/html/inherit_graph_17.map | 2 +- docs/doxygen/html/inherit_graph_17.md5 | 2 +- docs/doxygen/html/inherit_graph_17.png | Bin 1334 -> 1317 bytes docs/doxygen/html/inherit_graph_18.map | 2 +- docs/doxygen/html/inherit_graph_18.md5 | 2 +- docs/doxygen/html/inherit_graph_18.png | Bin 1280 -> 1237 bytes docs/doxygen/html/inherit_graph_19.map | 2 +- docs/doxygen/html/inherit_graph_19.md5 | 2 +- docs/doxygen/html/inherit_graph_19.png | Bin 1904 -> 1264 bytes docs/doxygen/html/inherit_graph_2.map | 2 +- docs/doxygen/html/inherit_graph_2.md5 | 2 +- docs/doxygen/html/inherit_graph_2.png | Bin 1301 -> 1204 bytes docs/doxygen/html/inherit_graph_20.map | 2 +- docs/doxygen/html/inherit_graph_20.md5 | 2 +- docs/doxygen/html/inherit_graph_20.png | Bin 1214 -> 1482 bytes docs/doxygen/html/inherit_graph_21.map | 2 +- docs/doxygen/html/inherit_graph_21.md5 | 2 +- docs/doxygen/html/inherit_graph_21.png | Bin 1300 -> 1334 bytes docs/doxygen/html/inherit_graph_22.map | 2 +- docs/doxygen/html/inherit_graph_22.md5 | 2 +- docs/doxygen/html/inherit_graph_22.png | Bin 1924 -> 1280 bytes docs/doxygen/html/inherit_graph_23.map | 2 +- docs/doxygen/html/inherit_graph_23.md5 | 2 +- docs/doxygen/html/inherit_graph_23.png | Bin 1089 -> 1904 bytes docs/doxygen/html/inherit_graph_24.map | 2 +- docs/doxygen/html/inherit_graph_24.md5 | 2 +- docs/doxygen/html/inherit_graph_24.png | Bin 1144 -> 1214 bytes docs/doxygen/html/inherit_graph_25.map | 2 +- docs/doxygen/html/inherit_graph_25.md5 | 2 +- docs/doxygen/html/inherit_graph_25.png | Bin 1273 -> 1300 bytes docs/doxygen/html/inherit_graph_26.map | 3 +- docs/doxygen/html/inherit_graph_26.md5 | 2 +- docs/doxygen/html/inherit_graph_26.png | Bin 2195 -> 1924 bytes docs/doxygen/html/inherit_graph_27.map | 2 +- docs/doxygen/html/inherit_graph_27.md5 | 2 +- docs/doxygen/html/inherit_graph_27.png | Bin 1725 -> 1089 bytes docs/doxygen/html/inherit_graph_28.map | 2 +- docs/doxygen/html/inherit_graph_28.md5 | 2 +- docs/doxygen/html/inherit_graph_28.png | Bin 911 -> 1144 bytes docs/doxygen/html/inherit_graph_29.map | 2 +- docs/doxygen/html/inherit_graph_29.md5 | 2 +- docs/doxygen/html/inherit_graph_29.png | Bin 1369 -> 1273 bytes docs/doxygen/html/inherit_graph_3.map | 2 +- docs/doxygen/html/inherit_graph_3.md5 | 2 +- docs/doxygen/html/inherit_graph_3.png | Bin 1068 -> 1220 bytes docs/doxygen/html/inherit_graph_30.map | 3 +- docs/doxygen/html/inherit_graph_30.md5 | 2 +- docs/doxygen/html/inherit_graph_30.png | Bin 1340 -> 2195 bytes docs/doxygen/html/inherit_graph_31.map | 2 +- docs/doxygen/html/inherit_graph_31.md5 | 2 +- docs/doxygen/html/inherit_graph_31.png | Bin 1573 -> 1725 bytes docs/doxygen/html/inherit_graph_32.map | 2 +- docs/doxygen/html/inherit_graph_32.md5 | 2 +- docs/doxygen/html/inherit_graph_32.png | Bin 1583 -> 911 bytes docs/doxygen/html/inherit_graph_33.map | 2 +- docs/doxygen/html/inherit_graph_33.md5 | 2 +- docs/doxygen/html/inherit_graph_33.png | Bin 2616 -> 1369 bytes docs/doxygen/html/inherit_graph_34.map | 2 +- docs/doxygen/html/inherit_graph_34.md5 | 2 +- docs/doxygen/html/inherit_graph_34.png | Bin 2503 -> 1340 bytes docs/doxygen/html/inherit_graph_35.map | 2 +- docs/doxygen/html/inherit_graph_35.md5 | 2 +- docs/doxygen/html/inherit_graph_35.png | Bin 1440 -> 1573 bytes docs/doxygen/html/inherit_graph_36.map | 2 +- docs/doxygen/html/inherit_graph_36.md5 | 2 +- docs/doxygen/html/inherit_graph_36.png | Bin 1494 -> 1583 bytes docs/doxygen/html/inherit_graph_37.map | 2 +- docs/doxygen/html/inherit_graph_37.md5 | 2 +- docs/doxygen/html/inherit_graph_37.png | Bin 1122 -> 2616 bytes docs/doxygen/html/inherit_graph_38.map | 2 +- docs/doxygen/html/inherit_graph_38.md5 | 2 +- docs/doxygen/html/inherit_graph_38.png | Bin 878 -> 2503 bytes docs/doxygen/html/inherit_graph_39.map | 2 +- docs/doxygen/html/inherit_graph_39.md5 | 2 +- docs/doxygen/html/inherit_graph_39.png | Bin 1648 -> 1440 bytes docs/doxygen/html/inherit_graph_4.map | 2 +- docs/doxygen/html/inherit_graph_4.md5 | 2 +- docs/doxygen/html/inherit_graph_4.png | Bin 1161 -> 2265 bytes docs/doxygen/html/inherit_graph_40.map | 2 +- docs/doxygen/html/inherit_graph_40.md5 | 2 +- docs/doxygen/html/inherit_graph_40.png | Bin 1443 -> 1494 bytes docs/doxygen/html/inherit_graph_41.map | 2 +- docs/doxygen/html/inherit_graph_41.md5 | 2 +- docs/doxygen/html/inherit_graph_41.png | Bin 925 -> 1122 bytes docs/doxygen/html/inherit_graph_42.map | 2 +- docs/doxygen/html/inherit_graph_42.md5 | 2 +- docs/doxygen/html/inherit_graph_42.png | Bin 1459 -> 878 bytes docs/doxygen/html/inherit_graph_43.map | 2 +- docs/doxygen/html/inherit_graph_43.md5 | 2 +- docs/doxygen/html/inherit_graph_43.png | Bin 1014 -> 1648 bytes docs/doxygen/html/inherit_graph_44.map | 2 +- docs/doxygen/html/inherit_graph_44.md5 | 2 +- docs/doxygen/html/inherit_graph_44.png | Bin 1059 -> 1443 bytes docs/doxygen/html/inherit_graph_45.map | 2 +- docs/doxygen/html/inherit_graph_45.md5 | 2 +- docs/doxygen/html/inherit_graph_45.png | Bin 869 -> 925 bytes docs/doxygen/html/inherit_graph_46.map | 2 +- docs/doxygen/html/inherit_graph_46.md5 | 2 +- docs/doxygen/html/inherit_graph_46.png | Bin 1428 -> 1459 bytes docs/doxygen/html/inherit_graph_47.map | 2 +- docs/doxygen/html/inherit_graph_47.md5 | 2 +- docs/doxygen/html/inherit_graph_47.png | Bin 1328 -> 1014 bytes docs/doxygen/html/inherit_graph_48.map | 2 +- docs/doxygen/html/inherit_graph_48.md5 | 2 +- docs/doxygen/html/inherit_graph_48.png | Bin 1310 -> 1059 bytes docs/doxygen/html/inherit_graph_49.map | 2 +- docs/doxygen/html/inherit_graph_49.md5 | 2 +- docs/doxygen/html/inherit_graph_49.png | Bin 1480 -> 869 bytes docs/doxygen/html/inherit_graph_5.map | 2 +- docs/doxygen/html/inherit_graph_5.md5 | 2 +- docs/doxygen/html/inherit_graph_5.png | Bin 1579 -> 674 bytes docs/doxygen/html/inherit_graph_50.map | 2 +- docs/doxygen/html/inherit_graph_50.md5 | 2 +- docs/doxygen/html/inherit_graph_50.png | Bin 1310 -> 1428 bytes docs/doxygen/html/inherit_graph_51.map | 2 +- docs/doxygen/html/inherit_graph_51.md5 | 2 +- docs/doxygen/html/inherit_graph_51.png | Bin 1308 -> 1328 bytes docs/doxygen/html/inherit_graph_52.map | 2 +- docs/doxygen/html/inherit_graph_52.md5 | 2 +- docs/doxygen/html/inherit_graph_52.png | Bin 1307 -> 1310 bytes docs/doxygen/html/inherit_graph_53.map | 2 +- docs/doxygen/html/inherit_graph_53.md5 | 2 +- docs/doxygen/html/inherit_graph_53.png | Bin 985 -> 1104 bytes docs/doxygen/html/inherit_graph_54.map | 3 + docs/doxygen/html/inherit_graph_54.md5 | 1 + docs/doxygen/html/inherit_graph_54.png | Bin 0 -> 1480 bytes docs/doxygen/html/inherit_graph_55.map | 3 + docs/doxygen/html/inherit_graph_55.md5 | 1 + docs/doxygen/html/inherit_graph_55.png | Bin 0 -> 1310 bytes docs/doxygen/html/inherit_graph_56.map | 3 + docs/doxygen/html/inherit_graph_56.md5 | 1 + docs/doxygen/html/inherit_graph_56.png | Bin 0 -> 1308 bytes docs/doxygen/html/inherit_graph_57.map | 3 + docs/doxygen/html/inherit_graph_57.md5 | 1 + docs/doxygen/html/inherit_graph_57.png | Bin 0 -> 1446 bytes docs/doxygen/html/inherit_graph_58.map | 3 + docs/doxygen/html/inherit_graph_58.md5 | 1 + docs/doxygen/html/inherit_graph_58.png | Bin 0 -> 1307 bytes docs/doxygen/html/inherit_graph_59.map | 3 + docs/doxygen/html/inherit_graph_59.md5 | 1 + docs/doxygen/html/inherit_graph_59.png | Bin 0 -> 985 bytes docs/doxygen/html/inherit_graph_6.map | 2 +- docs/doxygen/html/inherit_graph_6.md5 | 2 +- docs/doxygen/html/inherit_graph_6.png | Bin 1141 -> 1301 bytes docs/doxygen/html/inherit_graph_60.map | 3 + docs/doxygen/html/inherit_graph_60.md5 | 1 + docs/doxygen/html/inherit_graph_60.png | Bin 0 -> 1349 bytes docs/doxygen/html/inherit_graph_7.map | 2 +- docs/doxygen/html/inherit_graph_7.md5 | 2 +- docs/doxygen/html/inherit_graph_7.png | Bin 1277 -> 1068 bytes docs/doxygen/html/inherit_graph_8.map | 2 +- docs/doxygen/html/inherit_graph_8.md5 | 2 +- docs/doxygen/html/inherit_graph_8.png | Bin 1330 -> 1161 bytes docs/doxygen/html/inherit_graph_9.map | 2 +- docs/doxygen/html/inherit_graph_9.md5 | 2 +- docs/doxygen/html/inherit_graph_9.png | Bin 1257 -> 1579 bytes docs/doxygen/html/inherits.html | 143 +- docs/doxygen/html/ir__Airwell_8h.html | 114 +- docs/doxygen/html/ir__Airwell_8h_source.html | 224 +- docs/doxygen/html/ir__Amcor_8h_source.html | 8 +- docs/doxygen/html/ir__Argo_8h_source.html | 8 +- docs/doxygen/html/ir__Carrier_8h_source.html | 6 +- docs/doxygen/html/ir__Coolix_8h_source.html | 6 +- docs/doxygen/html/ir__Corona_8h_source.html | 8 +- docs/doxygen/html/ir__Daikin_8h.html | 128 +- docs/doxygen/html/ir__Daikin_8h_source.html | 2996 +++++----- docs/doxygen/html/ir__Delonghi_8h_source.html | 6 +- docs/doxygen/html/ir__Denon_8cpp.html | 2 +- docs/doxygen/html/ir__Electra_8h_source.html | 8 +- docs/doxygen/html/ir__Fujitsu_8h_source.html | 8 +- docs/doxygen/html/ir__GICable_8cpp.html | 2 +- .../html/ir__Goodweather_8h_source.html | 6 +- docs/doxygen/html/ir__Gree_8h.html | 386 +- docs/doxygen/html/ir__Gree_8h_source.html | 556 +- docs/doxygen/html/ir__Haier_8h.html | 324 +- docs/doxygen/html/ir__Haier_8h_source.html | 987 +-- docs/doxygen/html/ir__Hitachi_8h_source.html | 16 +- docs/doxygen/html/ir__JVC_8cpp.html | 2 +- .../html/ir__Kelvinator_8h_source.html | 8 +- docs/doxygen/html/ir__LG_8h_source.html | 10 +- .../doxygen/html/ir__Magiquest_8h_source.html | 4 +- docs/doxygen/html/ir__Metz_8cpp.html | 239 + docs/doxygen/html/ir__Midea_8h.html | 130 +- docs/doxygen/html/ir__Midea_8h_source.html | 350 +- .../html/ir__MitsubishiHeavy_8h_source.html | 12 +- .../html/ir__Mitsubishi_8h_source.html | 16 +- docs/doxygen/html/ir__NEC_8h.html | 2 +- docs/doxygen/html/ir__NEC_8h_source.html | 2 +- docs/doxygen/html/ir__Neoclima_8h_source.html | 8 +- docs/doxygen/html/ir__Panasonic_8cpp.html | 2 +- .../doxygen/html/ir__Panasonic_8h_source.html | 8 +- docs/doxygen/html/ir__Samsung_8cpp.html | 2 +- docs/doxygen/html/ir__Samsung_8h_source.html | 10 +- docs/doxygen/html/ir__Sanyo_8cpp.html | 2 +- docs/doxygen/html/ir__Sanyo_8h_source.html | 8 +- docs/doxygen/html/ir__Sharp_8cpp.html | 4 +- docs/doxygen/html/ir__Sharp_8h_source.html | 8 +- docs/doxygen/html/ir__Tcl_8h_source.html | 8 +- docs/doxygen/html/ir__Teco_8h_source.html | 6 +- docs/doxygen/html/ir__Toshiba_8h_source.html | 10 +- docs/doxygen/html/ir__Trotec_8h_source.html | 8 +- docs/doxygen/html/ir__Vestel_8h_source.html | 6 +- docs/doxygen/html/ir__Voltas_8cpp.html | 169 + docs/doxygen/html/ir__Voltas_8h.html | 351 ++ docs/doxygen/html/ir__Voltas_8h_source.html | 331 ++ .../doxygen/html/ir__Whirlpool_8h_source.html | 10 +- docs/doxygen/html/ir__Whynter_8cpp.html | 2 +- docs/doxygen/html/menudata.js | 17 +- docs/doxygen/html/namespaceirutils.html | 24 + docs/doxygen/html/namespacemembers.html | 11 +- docs/doxygen/html/namespacemembers_func.html | 53 +- docs/doxygen/html/search/all_0.js | 120 +- docs/doxygen/html/search/all_1.js | 41 +- docs/doxygen/html/search/all_10.js | 24 +- docs/doxygen/html/search/all_11.js | 2 +- docs/doxygen/html/search/all_12.js | 52 +- docs/doxygen/html/search/all_13.js | 495 +- docs/doxygen/html/search/all_14.js | 57 +- docs/doxygen/html/search/all_15.js | 17 +- docs/doxygen/html/search/all_16.js | 13 +- docs/doxygen/html/search/all_17.js | 11 +- docs/doxygen/html/search/all_18.js | 3 +- docs/doxygen/html/search/all_19.js | 4 +- docs/doxygen/html/search/all_1a.js | 6 +- docs/doxygen/html/search/all_1b.js | 2 +- docs/doxygen/html/search/all_2.js | 21 +- docs/doxygen/html/search/all_3.js | 88 +- docs/doxygen/html/search/all_4.js | 221 +- docs/doxygen/html/search/all_5.js | 63 +- docs/doxygen/html/search/all_6.js | 25 +- docs/doxygen/html/search/all_7.js | 234 +- docs/doxygen/html/search/all_8.js | 47 +- docs/doxygen/html/search/all_9.js | 361 +- docs/doxygen/html/search/all_a.js | 2 +- docs/doxygen/html/search/all_b.js | 5268 ++++++++--------- docs/doxygen/html/search/all_c.js | 25 +- docs/doxygen/html/search/all_d.js | 73 +- docs/doxygen/html/search/all_e.js | 10 +- docs/doxygen/html/search/all_f.js | 32 +- docs/doxygen/html/search/classes_0.js | 2 +- docs/doxygen/html/search/classes_1.js | 51 +- docs/doxygen/html/search/classes_2.js | 3 +- docs/doxygen/html/search/classes_3.js | 3 +- docs/doxygen/html/search/classes_4.js | 52 +- docs/doxygen/html/search/classes_5.html | 30 + docs/doxygen/html/search/classes_5.js | 6 + docs/doxygen/html/search/classes_6.html | 30 + docs/doxygen/html/search/classes_6.js | 4 + docs/doxygen/html/search/classes_7.html | 30 + docs/doxygen/html/search/classes_7.js | 4 + docs/doxygen/html/search/classes_8.html | 30 + docs/doxygen/html/search/classes_8.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 | 4 +- docs/doxygen/html/search/enums_8.js | 2 +- docs/doxygen/html/search/enums_9.html | 30 + docs/doxygen/html/search/enums_9.js | 4 + docs/doxygen/html/search/enumvalues_0.js | 20 +- docs/doxygen/html/search/enumvalues_1.js | 10 +- docs/doxygen/html/search/enumvalues_10.js | 8 +- docs/doxygen/html/search/enumvalues_11.js | 4 +- docs/doxygen/html/search/enumvalues_12.js | 3 +- docs/doxygen/html/search/enumvalues_13.js | 4 +- docs/doxygen/html/search/enumvalues_14.js | 4 +- docs/doxygen/html/search/enumvalues_15.js | 2 +- docs/doxygen/html/search/enumvalues_2.js | 28 +- docs/doxygen/html/search/enumvalues_3.js | 4 +- docs/doxygen/html/search/enumvalues_4.js | 2 +- docs/doxygen/html/search/enumvalues_5.js | 10 +- docs/doxygen/html/search/enumvalues_6.js | 16 +- docs/doxygen/html/search/enumvalues_7.js | 2 +- docs/doxygen/html/search/enumvalues_8.js | 2 +- docs/doxygen/html/search/enumvalues_9.js | 66 +- docs/doxygen/html/search/enumvalues_a.js | 10 +- docs/doxygen/html/search/enumvalues_b.js | 25 +- docs/doxygen/html/search/enumvalues_c.js | 8 +- docs/doxygen/html/search/enumvalues_d.js | 8 +- 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 | 209 +- docs/doxygen/html/search/files_4.js | 2 +- docs/doxygen/html/search/files_5.js | 2 +- docs/doxygen/html/search/functions_0.js | 34 +- docs/doxygen/html/search/functions_1.js | 24 +- docs/doxygen/html/search/functions_10.js | 20 +- docs/doxygen/html/search/functions_11.js | 439 +- docs/doxygen/html/search/functions_12.js | 36 +- docs/doxygen/html/search/functions_13.js | 6 +- docs/doxygen/html/search/functions_14.js | 7 +- docs/doxygen/html/search/functions_15.js | 2 +- docs/doxygen/html/search/functions_16.js | 2 +- docs/doxygen/html/search/functions_17.js | 2 +- docs/doxygen/html/search/functions_2.js | 10 +- docs/doxygen/html/search/functions_3.js | 64 +- docs/doxygen/html/search/functions_4.js | 188 +- docs/doxygen/html/search/functions_5.js | 47 +- docs/doxygen/html/search/functions_6.js | 10 +- docs/doxygen/html/search/functions_7.js | 225 +- docs/doxygen/html/search/functions_8.js | 24 +- docs/doxygen/html/search/functions_9.js | 131 +- docs/doxygen/html/search/functions_a.js | 2 +- docs/doxygen/html/search/functions_b.js | 7 +- docs/doxygen/html/search/functions_c.js | 44 +- docs/doxygen/html/search/functions_d.js | 2 +- docs/doxygen/html/search/functions_e.js | 6 +- docs/doxygen/html/search/functions_f.js | 2 +- docs/doxygen/html/search/namespaces_0.js | 4 +- docs/doxygen/html/search/namespaces_1.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/searchdata.js | 6 +- docs/doxygen/html/search/typedefs_0.js | 2 +- docs/doxygen/html/search/variables_0.js | 86 +- docs/doxygen/html/search/variables_1.js | 4 +- docs/doxygen/html/search/variables_10.js | 17 +- docs/doxygen/html/search/variables_11.js | 28 +- docs/doxygen/html/search/variables_12.js | 15 +- docs/doxygen/html/search/variables_13.js | 8 +- docs/doxygen/html/search/variables_14.js | 2 +- docs/doxygen/html/search/variables_15.js | 3 +- docs/doxygen/html/search/variables_16.js | 2 +- docs/doxygen/html/search/variables_17.html | 30 + docs/doxygen/html/search/variables_17.js | 4 + docs/doxygen/html/search/variables_2.js | 11 +- docs/doxygen/html/search/variables_3.js | 17 +- docs/doxygen/html/search/variables_4.js | 7 +- docs/doxygen/html/search/variables_5.js | 2 +- docs/doxygen/html/search/variables_6.js | 7 +- docs/doxygen/html/search/variables_7.js | 3 +- docs/doxygen/html/search/variables_8.js | 9 +- docs/doxygen/html/search/variables_9.js | 5206 ++++++++-------- docs/doxygen/html/search/variables_a.js | 8 +- docs/doxygen/html/search/variables_b.js | 9 +- docs/doxygen/html/search/variables_c.js | 2 +- docs/doxygen/html/search/variables_d.js | 24 +- docs/doxygen/html/search/variables_e.js | 14 +- docs/doxygen/html/search/variables_f.js | 2 +- .../html/unionAirwellProtocol-members.html | 87 + docs/doxygen/html/unionAirwellProtocol.html | 234 + .../html/unionGreeProtocol-members.html | 108 + docs/doxygen/html/unionGreeProtocol.html | 573 ++ .../html/unionHaierProtocol-members.html | 100 + docs/doxygen/html/unionHaierProtocol.html | 445 ++ .../html/unionHaierYRW02Protocol-members.html | 104 + .../doxygen/html/unionHaierYRW02Protocol.html | 509 ++ .../html/unionMideaProtocol-members.html | 92 + docs/doxygen/html/unionMideaProtocol.html | 317 + .../html/unionVoltasProtocol-members.html | 109 + docs/doxygen/html/unionVoltasProtocol.html | 589 ++ docs/doxygen/html/unionmagiquest-members.html | 2 +- docs/doxygen/html/unionmagiquest.html | 26 +- keywords.txt | 117 +- library.json | 2 +- library.properties | 2 +- src/IRremoteESP8266.h | 2 +- 503 files changed, 22678 insertions(+), 15564 deletions(-) create mode 100644 docs/doxygen/html/classIRVoltas-members.html create mode 100644 docs/doxygen/html/classIRVoltas.html create mode 100644 docs/doxygen/html/classIRVoltas__coll__graph.map create mode 100644 docs/doxygen/html/classIRVoltas__coll__graph.md5 create mode 100644 docs/doxygen/html/classIRVoltas__coll__graph.png create mode 100644 docs/doxygen/html/functions_vars_x.html create mode 100644 docs/doxygen/html/functions_x.html create mode 100644 docs/doxygen/html/inherit_graph_54.map create mode 100644 docs/doxygen/html/inherit_graph_54.md5 create mode 100644 docs/doxygen/html/inherit_graph_54.png create mode 100644 docs/doxygen/html/inherit_graph_55.map create mode 100644 docs/doxygen/html/inherit_graph_55.md5 create mode 100644 docs/doxygen/html/inherit_graph_55.png create mode 100644 docs/doxygen/html/inherit_graph_56.map create mode 100644 docs/doxygen/html/inherit_graph_56.md5 create mode 100644 docs/doxygen/html/inherit_graph_56.png create mode 100644 docs/doxygen/html/inherit_graph_57.map create mode 100644 docs/doxygen/html/inherit_graph_57.md5 create mode 100644 docs/doxygen/html/inherit_graph_57.png create mode 100644 docs/doxygen/html/inherit_graph_58.map create mode 100644 docs/doxygen/html/inherit_graph_58.md5 create mode 100644 docs/doxygen/html/inherit_graph_58.png create mode 100644 docs/doxygen/html/inherit_graph_59.map create mode 100644 docs/doxygen/html/inherit_graph_59.md5 create mode 100644 docs/doxygen/html/inherit_graph_59.png create mode 100644 docs/doxygen/html/inherit_graph_60.map create mode 100644 docs/doxygen/html/inherit_graph_60.md5 create mode 100644 docs/doxygen/html/inherit_graph_60.png create mode 100644 docs/doxygen/html/ir__Metz_8cpp.html create mode 100644 docs/doxygen/html/ir__Voltas_8cpp.html create mode 100644 docs/doxygen/html/ir__Voltas_8h.html create mode 100644 docs/doxygen/html/ir__Voltas_8h_source.html create mode 100644 docs/doxygen/html/search/classes_5.html create mode 100644 docs/doxygen/html/search/classes_5.js create mode 100644 docs/doxygen/html/search/classes_6.html create mode 100644 docs/doxygen/html/search/classes_6.js create mode 100644 docs/doxygen/html/search/classes_7.html create mode 100644 docs/doxygen/html/search/classes_7.js create mode 100644 docs/doxygen/html/search/classes_8.html create mode 100644 docs/doxygen/html/search/classes_8.js create mode 100644 docs/doxygen/html/search/enums_9.html create mode 100644 docs/doxygen/html/search/enums_9.js create mode 100644 docs/doxygen/html/search/variables_17.html create mode 100644 docs/doxygen/html/search/variables_17.js create mode 100644 docs/doxygen/html/unionAirwellProtocol-members.html create mode 100644 docs/doxygen/html/unionAirwellProtocol.html create mode 100644 docs/doxygen/html/unionGreeProtocol-members.html create mode 100644 docs/doxygen/html/unionGreeProtocol.html create mode 100644 docs/doxygen/html/unionHaierProtocol-members.html create mode 100644 docs/doxygen/html/unionHaierProtocol.html create mode 100644 docs/doxygen/html/unionHaierYRW02Protocol-members.html create mode 100644 docs/doxygen/html/unionHaierYRW02Protocol.html create mode 100644 docs/doxygen/html/unionMideaProtocol-members.html create mode 100644 docs/doxygen/html/unionMideaProtocol.html create mode 100644 docs/doxygen/html/unionVoltasProtocol-members.html create mode 100644 docs/doxygen/html/unionVoltasProtocol.html diff --git a/README.md b/README.md index a58dc2198..0640c53ff 100644 --- a/README.md +++ b/README.md @@ -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.9 Now Available -Version 2.7.9 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.10 Now Available +Version 2.7.10 of the library is now [available](https://github.com/crankyoldgit/IRremoteESP8266/releases/latest). You can view the [Release Notes](ReleaseNotes.md) for all the significant changes. #### Upgrading from pre-v2.0 Usage of the library has been slightly changed in v2.0. You will need to change your usage to work with v2.0 and beyond. You can read more about the changes required on our [Upgrade to v2.0](https://github.com/crankyoldgit/IRremoteESP8266/wiki/Upgrading-to-v2.0) page. diff --git a/README_fr.md b/README_fr.md index 90a754d7f..3c26ff76f 100644 --- a/README_fr.md +++ b/README_fr.md @@ -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.9 disponible -Version 2.7.9 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.10 disponible +Version 2.7.10 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/ReleaseNotes.md b/ReleaseNotes.md index 01ca1e653..3e62465e8 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -1,5 +1,30 @@ # Release Notes +## _v2.7.10 (20200831)_ + +**[BREAKING CHANGES]** +- move SPIFFS to LittleFS for ESP8266 (#1182 #1226) +- Daikin176: Change & increase operating mode values. (#1233 #1235) + +**[Bug Fixes]** +- TOSHIBA_AC: not turning off when using `IRac` class. (#1250 #1251) +- Haier: change position of Fan speed bits. (#1246 #1247) + +**[Features]** +- Voltas: Add detailed support for Voltas A/Cs (#1238 #1248) +- Add support for Metz protocol. (#1241 #1242) +- Basic support for Voltas A/C protocol (#1238 #1243) +- Add low level bit formatting sanity checks. (#1232) + +**[Misc]** +- Rewrite Airwell by using bit fields (#1254) +- Rewrite Haier YRW02 using bit fields (#1253) +- rewrite Haier HSU07-HEA03 (#1246 #1247) +- rewrite ir_Gree & ir_Midea by using bit field (#1240) +- Incorrect usage of `assert()` (#1244 #1245 #1232) +- rewrite Gree (#1210) + + ## _v2.7.9 (20200730)_ **[Bug Fixes]** diff --git a/SupportedProtocols.md b/SupportedProtocols.md index 6b6452884..ab3b47f51 100644 --- a/SupportedProtocols.md +++ b/SupportedProtocols.md @@ -1,6 +1,6 @@ + Last generated: Mon 31 Aug 2020 10:57:08 +0000 ---> # IR Protocols supported by this library | Protocol | Brand | Model | A/C Model | Detailed A/C Support | @@ -15,7 +15,7 @@ | [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 | | [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)
BRC4C153 remote (DAIKIN176)
BRC52B63 remote (DAIKIN128)
DGS01 remote (DAIKIN64)
FFN-C/FCN-F Series A/C (DAIKIN64)
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
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 | | - | @@ -46,6 +46,7 @@ | [Lutron](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Lutron.cpp) | **Lutron** | MIR-ITFS remote
MIR-ITFS-F remote
MIR-ITFS-LF remote
SP-HT remote | | - | | [MWM](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_MWM.cpp) | **Disney** | Made With Magic (Glow With The Show) wand | | - | | [Magiquest](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Magiquest.cpp) | **[MagiQuest](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Magiquest.h)** | Wand | | - | +| [Metz](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Metz.cpp) | **Metz** | CH610 TV
RM16 remote
RM17 remote
RM19 remote | | - | | [Midea](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Midea.cpp) | **[Comfee](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Midea.h)** | MPD1-12CRN7 A/C (MIDEA) | | Yes | | [Midea](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Midea.cpp) | **[Danby](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Midea.h)** | DAC080BGUWDB (MIDEA)
DAC100BGUWDB (MIDEA)
DAC120BGUWDB (MIDEA)
R09C/BCGE remote (MIDEA) | | Yes | | [Midea](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Midea.cpp) | **[Keystone](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Midea.h)** | RG57H4(B)BGEF remote (MIDEA) | | Yes | @@ -84,6 +85,7 @@ | [Trotec](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Trotec.cpp) | **[Duux](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Trotec.h)** | Blizzard Smart 10K / DXMA04 A/C | | Yes | | [Trotec](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Trotec.cpp) | **[Trotec](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Trotec.h)** | PAC 3200 A/C | | Yes | | [Vestel](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Vestel.cpp) | **[Vestel](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Vestel.h)** | BIOX CXP-9 A/C (9K BTU) | | Yes | +| [Voltas](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Voltas.cpp) | **[Voltas](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Voltas.h)** | 122LZF 4011252 Window A/C | 122LZF | Yes | | [Whirlpool](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Whirlpool.cpp) | **[Whirlpool](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Whirlpool.h)** | DG11J1-04 remote
DG11J1-3A remote
DG11J1-91 remote
SPIS409L A/C
SPIS412L A/C
SPIW409L A/C
SPIW412L A/C
SPIW418L A/C | DG11J13A
DG11J191 | Yes | | [Whynter](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Whynter.cpp) | **Whynter** | ARC-110WD A/C | | - | | [Zepeal](https://github.com/crankyoldgit/IRremoteESP8266/blob/master/src/ir_Zepeal.cpp) | **Zepeal** | DRT-A3311(BG) 5 button remote
DRT-A3311(BG) floor fan | | - | @@ -144,6 +146,7 @@ - LG2 - LUTRON - MAGIQUEST +- METZ - MIDEA - MIDEA24 - MITSUBISHI @@ -181,6 +184,7 @@ - TOSHIBA_AC - TROTEC - VESTEL_AC +- VOLTAS - WHIRLPOOL_AC - WHYNTER - ZEPEAL diff --git a/docs/doxygen/html/IRac_8h_source.html b/docs/doxygen/html/IRac_8h_source.html index 8854acdeb..25336b9b2 100644 --- a/docs/doxygen/html/IRac_8h_source.html +++ b/docs/doxygen/html/IRac_8h_source.html @@ -107,561 +107,574 @@
36 #include "ir_Toshiba.h"
37 #include "ir_Trotec.h"
38 #include "ir_Vestel.h"
-
39 #include "ir_Whirlpool.h"
-
40 
-
41 // Constants
-
42 const int8_t kGpioUnused = -1;
-
43 
-
44 // Class
-
46 class IRac {
-
47  public:
-
48  explicit IRac(const uint16_t pin, const bool inverted = false,
-
49  const bool use_modulation = true);
-
50  static bool isProtocolSupported(const decode_type_t protocol);
-
51  static void initState(stdAc::state_t *state,
-
52  const decode_type_t vendor, const int16_t model,
-
53  const bool power, const stdAc::opmode_t mode,
-
54  const float degrees, const bool celsius,
-
55  const stdAc::fanspeed_t fan,
-
56  const stdAc::swingv_t swingv,
-
57  const stdAc::swingh_t swingh,
-
58  const bool quiet, const bool turbo, const bool econo,
-
59  const bool light, const bool filter, const bool clean,
-
60  const bool beep, const int16_t sleep,
-
61  const int16_t clock);
-
62  static void initState(stdAc::state_t *state);
-
63  void markAsSent(void);
-
64  bool sendAc(void);
-
65  bool sendAc(const stdAc::state_t desired, const stdAc::state_t *prev = NULL);
-
66  bool sendAc(const decode_type_t vendor, const int16_t model,
-
67  const bool power, const stdAc::opmode_t mode, const float degrees,
-
68  const bool celsius, const stdAc::fanspeed_t fan,
-
69  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
70  const bool quiet, const bool turbo, const bool econo,
-
71  const bool light, const bool filter, const bool clean,
-
72  const bool beep, const int16_t sleep = -1,
-
73  const int16_t clock = -1);
-
74  static bool cmpStates(const stdAc::state_t a, const stdAc::state_t b);
-
75  static bool strToBool(const char *str, const bool def = false);
-
76  static int16_t strToModel(const char *str, const int16_t def = -1);
-
77  static stdAc::opmode_t strToOpmode(
-
78  const char *str, const stdAc::opmode_t def = stdAc::opmode_t::kAuto);
-
79  static stdAc::fanspeed_t strToFanspeed(
-
80  const char *str,
-
81  const stdAc::fanspeed_t def = stdAc::fanspeed_t::kAuto);
-
82  static stdAc::swingv_t strToSwingV(
-
83  const char *str, const stdAc::swingv_t def = stdAc::swingv_t::kOff);
-
84  static stdAc::swingh_t strToSwingH(
-
85  const char *str, const stdAc::swingh_t def = stdAc::swingh_t::kOff);
-
86  static String boolToString(const bool value);
-
87  static String opmodeToString(const stdAc::opmode_t mode);
-
88  static String fanspeedToString(const stdAc::fanspeed_t speed);
-
89  static String swingvToString(const stdAc::swingv_t swingv);
-
90  static String swinghToString(const stdAc::swingh_t swingh);
-
91  stdAc::state_t getState(void);
-
92  stdAc::state_t getStatePrev(void);
-
93  bool hasStateChanged(void);
-
94  stdAc::state_t next;
-
95 #ifndef UNIT_TEST
-
96 
-
97  private:
-
98 #endif
-
99  uint16_t _pin;
-
100  bool _inverted;
-
101  bool _modulation;
-
102  stdAc::state_t _prev;
-
103 #if SEND_AIRWELL
-
104  void airwell(IRAirwellAc *ac,
-
105  const bool on, const stdAc::opmode_t mode, const float degrees,
-
106  const stdAc::fanspeed_t fan);
-
107 #endif // SEND_AIRWELL
-
108 #if SEND_AMCOR
-
109  void amcor(IRAmcorAc *ac,
-
110  const bool on, const stdAc::opmode_t mode, const float degrees,
-
111  const stdAc::fanspeed_t fan);
-
112 #endif // SEND_AMCOR
-
113 #if SEND_ARGO
-
114  void argo(IRArgoAC *ac,
-
115  const bool on, const stdAc::opmode_t mode, const float degrees,
-
116  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
117  const bool turbo, const int16_t sleep = -1);
-
118 #endif // SEND_ARGO
-
119 #if SEND_CARRIER_AC64
-
120 void carrier64(IRCarrierAc64 *ac,
-
121  const bool on, const stdAc::opmode_t mode,
-
122  const float degrees, const stdAc::fanspeed_t fan,
-
123  const stdAc::swingv_t swingv, const int16_t sleep = -1);
-
124 #endif // SEND_CARRIER_AC64
-
125 #if SEND_COOLIX
-
126  void coolix(IRCoolixAC *ac,
-
127  const bool on, const stdAc::opmode_t mode, const float degrees,
-
128  const stdAc::fanspeed_t fan,
-
129  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
130  const bool turbo, const bool light, const bool clean,
-
131  const int16_t sleep = -1);
-
132 #endif // SEND_COOLIX
-
133 #if SEND_CORONA_AC
-
134  void corona(IRCoronaAc *ac,
-
135  const bool on, const stdAc::opmode_t mode,
-
136  const float degrees, const stdAc::fanspeed_t fan,
-
137  const stdAc::swingv_t swingv, const bool econo);
-
138 #endif // SEND_CORONA_AC
-
139 #if SEND_DAIKIN
-
140  void daikin(IRDaikinESP *ac,
-
141  const bool on, const stdAc::opmode_t mode, const float degrees,
-
142  const stdAc::fanspeed_t fan,
-
143  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
144  const bool quiet, const bool turbo, const bool econo,
-
145  const bool clean);
-
146 #endif // SEND_DAIKIN
-
147 #if SEND_DAIKIN128
-
148  void daikin128(IRDaikin128 *ac,
-
149  const bool on, const stdAc::opmode_t mode,
-
150  const float degrees, const stdAc::fanspeed_t fan,
-
151  const stdAc::swingv_t swingv,
-
152  const bool quiet, const bool turbo, const bool light,
-
153  const bool econo, const int16_t sleep = -1,
-
154  const int16_t clock = -1);
-
155 #endif // SEND_DAIKIN128
-
156 #if SEND_DAIKIN152
-
157  void daikin152(IRDaikin152 *ac,
-
158  const bool on, const stdAc::opmode_t mode,
-
159  const float degrees, const stdAc::fanspeed_t fan,
-
160  const stdAc::swingv_t swingv,
-
161  const bool quiet, const bool turbo, const bool econo);
-
162 #endif // SEND_DAIKIN152
-
163 #if SEND_DAIKIN160
-
164  void daikin160(IRDaikin160 *ac,
-
165  const bool on, const stdAc::opmode_t mode,
-
166  const float degrees, const stdAc::fanspeed_t fan,
-
167  const stdAc::swingv_t swingv);
-
168 #endif // SEND_DAIKIN160
-
169 #if SEND_DAIKIN176
-
170  void daikin176(IRDaikin176 *ac,
-
171  const bool on, const stdAc::opmode_t mode,
-
172  const float degrees, const stdAc::fanspeed_t fan,
-
173  const stdAc::swingh_t swingh);
-
174 #endif // SEND_DAIKIN176
-
175 #if SEND_DAIKIN2
-
176  void daikin2(IRDaikin2 *ac,
-
177  const bool on, const stdAc::opmode_t mode,
-
178  const float degrees, const stdAc::fanspeed_t fan,
-
179  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
180  const bool quiet, const bool turbo, const bool light,
-
181  const bool econo, const bool filter, const bool clean,
-
182  const bool beep, const int16_t sleep = -1,
-
183  const int16_t clock = -1);
-
184 #endif // SEND_DAIKIN2
-
185 #if SEND_DAIKIN216
-
186 void daikin216(IRDaikin216 *ac,
-
187  const bool on, const stdAc::opmode_t mode,
-
188  const float degrees, const stdAc::fanspeed_t fan,
-
189  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
190  const bool quiet, const bool turbo);
-
191 #endif // SEND_DAIKIN216
-
192 #if SEND_DAIKIN64
-
193  void daikin64(IRDaikin64 *ac,
-
194  const bool on, const stdAc::opmode_t mode,
-
195  const float degrees, const stdAc::fanspeed_t fan,
-
196  const stdAc::swingv_t swingv,
-
197  const bool quiet, const bool turbo,
-
198  const int16_t sleep = -1, const int16_t clock = -1);
-
199 #endif // SEND_DAIKIN64
-
200 #if SEND_DELONGHI_AC
-
201  void delonghiac(IRDelonghiAc *ac,
-
202  const bool on, const stdAc::opmode_t mode, const bool celsius,
-
203  const float degrees, const stdAc::fanspeed_t fan,
-
204  const bool turbo, const int16_t sleep = -1);
-
205 #endif // SEND_DELONGHI_AC
-
206 #if SEND_ELECTRA_AC
-
207 void electra(IRElectraAc *ac,
-
208  const bool on, const stdAc::opmode_t mode,
-
209  const float degrees, const stdAc::fanspeed_t fan,
-
210  const stdAc::swingv_t swingv,
-
211  const stdAc::swingh_t swingh, const bool turbo,
-
212  const bool lighttoggle, const bool clean);
-
213 #endif // SEND_ELECTRA_AC
-
214 #if SEND_FUJITSU_AC
-
215  void fujitsu(IRFujitsuAC *ac, const fujitsu_ac_remote_model_t model,
-
216  const bool on, const stdAc::opmode_t mode, const float degrees,
-
217  const stdAc::fanspeed_t fan,
-
218  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
219  const bool quiet, const bool turbo, const bool econo,
-
220  const bool filter, const bool clean);
-
221 #endif // SEND_FUJITSU_AC
-
222 #if SEND_GOODWEATHER
-
223  void goodweather(IRGoodweatherAc *ac,
-
224  const bool on, const stdAc::opmode_t mode,
-
225  const float degrees,
-
226  const stdAc::fanspeed_t fan,
-
227  const stdAc::swingv_t swingv,
-
228  const bool turbo, const bool light,
-
229  const int16_t sleep = -1);
-
230 #endif // SEND_GOODWEATHER
-
231 #if SEND_GREE
-
232  void gree(IRGreeAC *ac, const gree_ac_remote_model_t model,
-
233  const bool on, const stdAc::opmode_t mode, const bool celsius,
-
234  const float degrees, const stdAc::fanspeed_t fan,
-
235  const stdAc::swingv_t swingv, const bool turbo, const bool light,
-
236  const bool clean, const int16_t sleep = -1);
-
237 #endif // SEND_GREE
-
238 #if SEND_HAIER_AC
-
239  void haier(IRHaierAC *ac,
-
240  const bool on, const stdAc::opmode_t mode, const float degrees,
-
241  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
242  const bool filter, const int16_t sleep = -1,
-
243  const int16_t clock = -1);
-
244 #endif // SEND_HAIER_AC
-
245 #if SEND_HAIER_AC_YRW02
-
246  void haierYrwo2(IRHaierACYRW02 *ac,
-
247  const bool on, const stdAc::opmode_t mode,
-
248  const float degrees, const stdAc::fanspeed_t fan,
-
249  const stdAc::swingv_t swingv,
-
250  const bool turbo, const bool filter,
-
251  const int16_t sleep = -1);
-
252 #endif // SEND_HAIER_AC_YRW02
-
253 #if SEND_HITACHI_AC
-
254  void hitachi(IRHitachiAc *ac,
-
255  const bool on, const stdAc::opmode_t mode,
-
256  const float degrees, const stdAc::fanspeed_t fan,
-
257  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh);
-
258 #endif // SEND_HITACHI_AC
-
259 #if SEND_HITACHI_AC1
-
260  void hitachi1(IRHitachiAc1 *ac, const hitachi_ac1_remote_model_t model,
-
261  const bool on, const bool power_toggle,
-
262  const stdAc::opmode_t mode,
-
263  const float degrees, const stdAc::fanspeed_t fan,
-
264  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
265  const bool swing_toggle, const int16_t sleep = -1);
-
266 #endif // SEND_HITACHI_AC1
-
267 #if SEND_HITACHI_AC344
-
268  void hitachi344(IRHitachiAc344 *ac,
-
269  const bool on, const stdAc::opmode_t mode,
-
270  const float degrees, const stdAc::fanspeed_t fan,
-
271  const stdAc::swingv_t swingv,
-
272  const stdAc::swingh_t swingh);
-
273 #endif // SEND_HITACHI_AC344
-
274 #if SEND_HITACHI_AC424
-
275  void hitachi424(IRHitachiAc424 *ac,
-
276  const bool on, const stdAc::opmode_t mode,
-
277  const float degrees, const stdAc::fanspeed_t fan,
-
278  const stdAc::swingv_t swingv);
-
279 #endif // SEND_HITACHI_AC424
-
280 #if SEND_KELVINATOR
-
281  void kelvinator(IRKelvinatorAC *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, const stdAc::swingh_t swingh,
-
285  const bool quiet, const bool turbo, const bool light,
-
286  const bool filter, const bool clean);
-
287 #endif // SEND_KELVINATOR
-
288 #if SEND_LG
-
289  void lg(IRLgAc *ac, const lg_ac_remote_model_t model,
-
290  const bool on, const stdAc::opmode_t mode,
-
291  const float degrees, const stdAc::fanspeed_t fan);
-
292 #endif // SEND_LG
-
293 #if SEND_MIDEA
-
294  void midea(IRMideaAC *ac,
-
295  const bool on, const stdAc::opmode_t mode, const bool celsius,
-
296  const float degrees, const stdAc::fanspeed_t fan,
-
297  const stdAc::swingv_t swingv, const bool econo,
-
298  const int16_t sleep = -1);
-
299 #endif // SEND_MIDEA
-
300 #if SEND_MITSUBISHI_AC
-
301  void mitsubishi(IRMitsubishiAC *ac,
-
302  const bool on, const stdAc::opmode_t mode,
-
303  const float degrees,
-
304  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
305  const stdAc::swingh_t swingh,
-
306  const bool quiet, const int16_t clock = -1);
-
307 #endif // SEND_MITSUBISHI_AC
-
308 #if SEND_MITSUBISHI112
-
309  void mitsubishi112(IRMitsubishi112 *ac,
-
310  const bool on, const stdAc::opmode_t mode,
-
311  const float degrees, const stdAc::fanspeed_t fan,
-
312  const stdAc::swingv_t swingv,
-
313  const stdAc::swingh_t swingh,
-
314  const bool quiet);
-
315 #endif // SEND_MITSUBISHI112
-
316 #if SEND_MITSUBISHI136
-
317  void mitsubishi136(IRMitsubishi136 *ac,
-
318  const bool on, const stdAc::opmode_t mode,
-
319  const float degrees, const stdAc::fanspeed_t fan,
-
320  const stdAc::swingv_t swingv, const bool quiet);
-
321 #endif // SEND_MITSUBISHI136
-
322 #if SEND_MITSUBISHIHEAVY
-
323  void mitsubishiHeavy88(IRMitsubishiHeavy88Ac *ac,
-
324  const bool on, const stdAc::opmode_t mode,
-
325  const float degrees, const stdAc::fanspeed_t fan,
-
326  const stdAc::swingv_t swingv,
-
327  const stdAc::swingh_t swingh,
-
328  const bool turbo, const bool econo, const bool clean);
-
329  void mitsubishiHeavy152(IRMitsubishiHeavy152Ac *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,
-
333  const stdAc::swingh_t swingh,
-
334  const bool quiet, const bool turbo, const bool econo,
-
335  const bool filter, const bool clean,
-
336  const int16_t sleep = -1);
-
337 #endif // SEND_MITSUBISHIHEAVY
-
338 #if SEND_NEOCLIMA
-
339  void neoclima(IRNeoclimaAc *ac, const bool on, const stdAc::opmode_t mode,
-
340  const float degrees, const stdAc::fanspeed_t fan,
-
341  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
342  const bool turbo, const bool light, const bool filter,
-
343  const int16_t sleep = -1);
-
344 #endif // SEND_NEOCLIMA
-
345 #if SEND_PANASONIC_AC
-
346  void panasonic(IRPanasonicAc *ac, const panasonic_ac_remote_model_t model,
-
347  const bool on, const stdAc::opmode_t mode, const float degrees,
-
348  const stdAc::fanspeed_t fan,
-
349  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
350  const bool quiet, const bool turbo, const bool filter,
-
351  const int16_t clock = -1);
-
352 #endif // SEND_PANASONIC_AC
-
353 #if SEND_SAMSUNG_AC
-
354  void samsung(IRSamsungAc *ac,
-
355  const bool on, const stdAc::opmode_t mode, const float degrees,
-
356  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
357  const bool quiet, const bool turbo, const bool light,
-
358  const bool filter, const bool clean,
-
359  const bool beep, const bool prevpower = true,
-
360  const bool forcepower = true);
-
361 #endif // SEND_SAMSUNG_AC
-
362 #if SEND_SANYO_AC
-
363  void sanyo(IRSanyoAc *ac,
-
364  const bool on, const stdAc::opmode_t mode, const float degrees,
-
365  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
366  const bool beep, const int16_t sleep = -1);
-
367 #endif // SEND_SANYO_AC
-
368 #if SEND_SHARP_AC
-
369  void sharp(IRSharpAc *ac,
-
370  const bool on, const bool prev_power, const stdAc::opmode_t mode,
-
371  const float degrees, const stdAc::fanspeed_t fan,
-
372  const stdAc::swingv_t swingv, const bool turbo, const bool filter,
-
373  const bool clean);
-
374 #endif // SEND_SHARP_AC
-
375 #if SEND_TCL112AC
-
376  void tcl112(IRTcl112Ac *ac,
-
377  const bool on, const stdAc::opmode_t mode, const float degrees,
-
378  const stdAc::fanspeed_t fan,
-
379  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
-
380  const bool turbo, const bool light, const bool econo,
-
381  const bool filter);
-
382 #endif // SEND_TCL112AC
-
383 #if SEND_TECO
-
384  void teco(IRTecoAc *ac,
-
385  const bool on, const stdAc::opmode_t mode, const float degrees,
-
386  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
387  const bool light, const int16_t sleep = -1);
-
388 #endif // SEND_TECO
-
389 #if SEND_TOSHIBA_AC
-
390  void toshiba(IRToshibaAC *ac,
-
391  const bool on, const stdAc::opmode_t mode, const float degrees,
-
392  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
393  const bool turbo, const bool econo);
-
394 #endif // SEND_TOSHIBA_AC
-
395 #if SEND_TROTEC
-
396  void trotec(IRTrotecESP *ac,
-
397  const bool on, const stdAc::opmode_t mode, const float degrees,
-
398  const stdAc::fanspeed_t fan, const int16_t sleep = -1);
-
399 #endif // SEND_TROTEC
-
400 #if SEND_VESTEL_AC
-
401  void vestel(IRVestelAc *ac,
-
402  const bool on, const stdAc::opmode_t mode, const float degrees,
-
403  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
-
404  const bool turbo, const bool filter,
-
405  const int16_t sleep = -1, const int16_t clock = -1,
-
406  const bool sendNormal = true);
-
407 #endif // SEND_VESTEL_AC
-
408 #if SEND_WHIRLPOOL_AC
-
409  void whirlpool(IRWhirlpoolAc *ac, const whirlpool_ac_remote_model_t model,
-
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 turbo, const bool light,
-
413  const int16_t sleep = -1, const int16_t clock = -1);
-
414 #endif // SEND_WHIRLPOOL_AC
-
415 static stdAc::state_t cleanState(const stdAc::state_t state);
-
416 static stdAc::state_t handleToggles(const stdAc::state_t desired,
-
417  const stdAc::state_t *prev = NULL);
-
418 }; // IRac class
-
419 
-
421 namespace IRAcUtils {
-
422  String resultAcToString(const decode_results * const results);
-
423  bool decodeToState(const decode_results *decode, stdAc::state_t *result,
-
424  const stdAc::state_t *prev = NULL);
-
425 } // namespace IRAcUtils
-
426 #endif // IRAC_H_
+
39 #include "ir_Voltas.h"
+
40 #include "ir_Whirlpool.h"
+
41 
+
42 // Constants
+
43 const int8_t kGpioUnused = -1;
+
44 
+
45 // Class
+
47 class IRac {
+
48  public:
+
49  explicit IRac(const uint16_t pin, const bool inverted = false,
+
50  const bool use_modulation = true);
+
51  static bool isProtocolSupported(const decode_type_t protocol);
+
52  static void initState(stdAc::state_t *state,
+
53  const decode_type_t vendor, const int16_t model,
+
54  const bool power, const stdAc::opmode_t mode,
+
55  const float degrees, const bool celsius,
+
56  const stdAc::fanspeed_t fan,
+
57  const stdAc::swingv_t swingv,
+
58  const stdAc::swingh_t swingh,
+
59  const bool quiet, const bool turbo, const bool econo,
+
60  const bool light, const bool filter, const bool clean,
+
61  const bool beep, const int16_t sleep,
+
62  const int16_t clock);
+
63  static void initState(stdAc::state_t *state);
+
64  void markAsSent(void);
+
65  bool sendAc(void);
+
66  bool sendAc(const stdAc::state_t desired, const stdAc::state_t *prev = NULL);
+
67  bool sendAc(const decode_type_t vendor, const int16_t model,
+
68  const bool power, const stdAc::opmode_t mode, const float degrees,
+
69  const bool celsius, const stdAc::fanspeed_t fan,
+
70  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
71  const bool quiet, const bool turbo, const bool econo,
+
72  const bool light, const bool filter, const bool clean,
+
73  const bool beep, const int16_t sleep = -1,
+
74  const int16_t clock = -1);
+
75  static bool cmpStates(const stdAc::state_t a, const stdAc::state_t b);
+
76  static bool strToBool(const char *str, const bool def = false);
+
77  static int16_t strToModel(const char *str, const int16_t def = -1);
+
78  static stdAc::opmode_t strToOpmode(
+
79  const char *str, const stdAc::opmode_t def = stdAc::opmode_t::kAuto);
+
80  static stdAc::fanspeed_t strToFanspeed(
+
81  const char *str,
+
82  const stdAc::fanspeed_t def = stdAc::fanspeed_t::kAuto);
+
83  static stdAc::swingv_t strToSwingV(
+
84  const char *str, const stdAc::swingv_t def = stdAc::swingv_t::kOff);
+
85  static stdAc::swingh_t strToSwingH(
+
86  const char *str, const stdAc::swingh_t def = stdAc::swingh_t::kOff);
+
87  static String boolToString(const bool value);
+
88  static String opmodeToString(const stdAc::opmode_t mode);
+
89  static String fanspeedToString(const stdAc::fanspeed_t speed);
+
90  static String swingvToString(const stdAc::swingv_t swingv);
+
91  static String swinghToString(const stdAc::swingh_t swingh);
+
92  stdAc::state_t getState(void);
+
93  stdAc::state_t getStatePrev(void);
+
94  bool hasStateChanged(void);
+
95  stdAc::state_t next;
+
96 #ifndef UNIT_TEST
+
97 
+
98  private:
+
99 #endif
+
100  uint16_t _pin;
+
101  bool _inverted;
+
102  bool _modulation;
+
103  stdAc::state_t _prev;
+
104 #if SEND_AIRWELL
+
105  void airwell(IRAirwellAc *ac,
+
106  const bool on, const stdAc::opmode_t mode, const float degrees,
+
107  const stdAc::fanspeed_t fan);
+
108 #endif // SEND_AIRWELL
+
109 #if SEND_AMCOR
+
110  void amcor(IRAmcorAc *ac,
+
111  const bool on, const stdAc::opmode_t mode, const float degrees,
+
112  const stdAc::fanspeed_t fan);
+
113 #endif // SEND_AMCOR
+
114 #if SEND_ARGO
+
115  void argo(IRArgoAC *ac,
+
116  const bool on, const stdAc::opmode_t mode, const float degrees,
+
117  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
118  const bool turbo, const int16_t sleep = -1);
+
119 #endif // SEND_ARGO
+
120 #if SEND_CARRIER_AC64
+
121 void carrier64(IRCarrierAc64 *ac,
+
122  const bool on, const stdAc::opmode_t mode,
+
123  const float degrees, const stdAc::fanspeed_t fan,
+
124  const stdAc::swingv_t swingv, const int16_t sleep = -1);
+
125 #endif // SEND_CARRIER_AC64
+
126 #if SEND_COOLIX
+
127  void coolix(IRCoolixAC *ac,
+
128  const bool on, const stdAc::opmode_t mode, const float degrees,
+
129  const stdAc::fanspeed_t fan,
+
130  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
131  const bool turbo, const bool light, const bool clean,
+
132  const int16_t sleep = -1);
+
133 #endif // SEND_COOLIX
+
134 #if SEND_CORONA_AC
+
135  void corona(IRCoronaAc *ac,
+
136  const bool on, const stdAc::opmode_t mode,
+
137  const float degrees, const stdAc::fanspeed_t fan,
+
138  const stdAc::swingv_t swingv, const bool econo);
+
139 #endif // SEND_CORONA_AC
+
140 #if SEND_DAIKIN
+
141  void daikin(IRDaikinESP *ac,
+
142  const bool on, const stdAc::opmode_t mode, const float degrees,
+
143  const stdAc::fanspeed_t fan,
+
144  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
145  const bool quiet, const bool turbo, const bool econo,
+
146  const bool clean);
+
147 #endif // SEND_DAIKIN
+
148 #if SEND_DAIKIN128
+
149  void daikin128(IRDaikin128 *ac,
+
150  const bool on, const stdAc::opmode_t mode,
+
151  const float degrees, const stdAc::fanspeed_t fan,
+
152  const stdAc::swingv_t swingv,
+
153  const bool quiet, const bool turbo, const bool light,
+
154  const bool econo, const int16_t sleep = -1,
+
155  const int16_t clock = -1);
+
156 #endif // SEND_DAIKIN128
+
157 #if SEND_DAIKIN152
+
158  void daikin152(IRDaikin152 *ac,
+
159  const bool on, const stdAc::opmode_t mode,
+
160  const float degrees, const stdAc::fanspeed_t fan,
+
161  const stdAc::swingv_t swingv,
+
162  const bool quiet, const bool turbo, const bool econo);
+
163 #endif // SEND_DAIKIN152
+
164 #if SEND_DAIKIN160
+
165  void daikin160(IRDaikin160 *ac,
+
166  const bool on, const stdAc::opmode_t mode,
+
167  const float degrees, const stdAc::fanspeed_t fan,
+
168  const stdAc::swingv_t swingv);
+
169 #endif // SEND_DAIKIN160
+
170 #if SEND_DAIKIN176
+
171  void daikin176(IRDaikin176 *ac,
+
172  const bool on, const stdAc::opmode_t mode,
+
173  const float degrees, const stdAc::fanspeed_t fan,
+
174  const stdAc::swingh_t swingh);
+
175 #endif // SEND_DAIKIN176
+
176 #if SEND_DAIKIN2
+
177  void daikin2(IRDaikin2 *ac,
+
178  const bool on, const stdAc::opmode_t mode,
+
179  const float degrees, const stdAc::fanspeed_t fan,
+
180  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
181  const bool quiet, const bool turbo, const bool light,
+
182  const bool econo, const bool filter, const bool clean,
+
183  const bool beep, const int16_t sleep = -1,
+
184  const int16_t clock = -1);
+
185 #endif // SEND_DAIKIN2
+
186 #if SEND_DAIKIN216
+
187 void daikin216(IRDaikin216 *ac,
+
188  const bool on, const stdAc::opmode_t mode,
+
189  const float degrees, const stdAc::fanspeed_t fan,
+
190  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
191  const bool quiet, const bool turbo);
+
192 #endif // SEND_DAIKIN216
+
193 #if SEND_DAIKIN64
+
194  void daikin64(IRDaikin64 *ac,
+
195  const bool on, const stdAc::opmode_t mode,
+
196  const float degrees, const stdAc::fanspeed_t fan,
+
197  const stdAc::swingv_t swingv,
+
198  const bool quiet, const bool turbo,
+
199  const int16_t sleep = -1, const int16_t clock = -1);
+
200 #endif // SEND_DAIKIN64
+
201 #if SEND_DELONGHI_AC
+
202  void delonghiac(IRDelonghiAc *ac,
+
203  const bool on, const stdAc::opmode_t mode, const bool celsius,
+
204  const float degrees, const stdAc::fanspeed_t fan,
+
205  const bool turbo, const int16_t sleep = -1);
+
206 #endif // SEND_DELONGHI_AC
+
207 #if SEND_ELECTRA_AC
+
208 void electra(IRElectraAc *ac,
+
209  const bool on, const stdAc::opmode_t mode,
+
210  const float degrees, const stdAc::fanspeed_t fan,
+
211  const stdAc::swingv_t swingv,
+
212  const stdAc::swingh_t swingh, const bool turbo,
+
213  const bool lighttoggle, const bool clean);
+
214 #endif // SEND_ELECTRA_AC
+
215 #if SEND_FUJITSU_AC
+
216  void fujitsu(IRFujitsuAC *ac, const fujitsu_ac_remote_model_t model,
+
217  const bool on, const stdAc::opmode_t mode, const float degrees,
+
218  const stdAc::fanspeed_t fan,
+
219  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
220  const bool quiet, const bool turbo, const bool econo,
+
221  const bool filter, const bool clean);
+
222 #endif // SEND_FUJITSU_AC
+
223 #if SEND_GOODWEATHER
+
224  void goodweather(IRGoodweatherAc *ac,
+
225  const bool on, const stdAc::opmode_t mode,
+
226  const float degrees,
+
227  const stdAc::fanspeed_t fan,
+
228  const stdAc::swingv_t swingv,
+
229  const bool turbo, const bool light,
+
230  const int16_t sleep = -1);
+
231 #endif // SEND_GOODWEATHER
+
232 #if SEND_GREE
+
233  void gree(IRGreeAC *ac, const gree_ac_remote_model_t model,
+
234  const bool on, const stdAc::opmode_t mode, const bool celsius,
+
235  const float degrees, const stdAc::fanspeed_t fan,
+
236  const stdAc::swingv_t swingv, const bool turbo, const bool light,
+
237  const bool clean, const int16_t sleep = -1);
+
238 #endif // SEND_GREE
+
239 #if SEND_HAIER_AC
+
240  void haier(IRHaierAC *ac,
+
241  const bool on, const stdAc::opmode_t mode, const float degrees,
+
242  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
243  const bool filter, const int16_t sleep = -1,
+
244  const int16_t clock = -1);
+
245 #endif // SEND_HAIER_AC
+
246 #if SEND_HAIER_AC_YRW02
+
247  void haierYrwo2(IRHaierACYRW02 *ac,
+
248  const bool on, const stdAc::opmode_t mode,
+
249  const float degrees, const stdAc::fanspeed_t fan,
+
250  const stdAc::swingv_t swingv,
+
251  const bool turbo, const bool filter,
+
252  const int16_t sleep = -1);
+
253 #endif // SEND_HAIER_AC_YRW02
+
254 #if SEND_HITACHI_AC
+
255  void hitachi(IRHitachiAc *ac,
+
256  const bool on, const stdAc::opmode_t mode,
+
257  const float degrees, const stdAc::fanspeed_t fan,
+
258  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh);
+
259 #endif // SEND_HITACHI_AC
+
260 #if SEND_HITACHI_AC1
+
261  void hitachi1(IRHitachiAc1 *ac, const hitachi_ac1_remote_model_t model,
+
262  const bool on, const bool power_toggle,
+
263  const stdAc::opmode_t mode,
+
264  const float degrees, const stdAc::fanspeed_t fan,
+
265  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
266  const bool swing_toggle, const int16_t sleep = -1);
+
267 #endif // SEND_HITACHI_AC1
+
268 #if SEND_HITACHI_AC344
+
269  void hitachi344(IRHitachiAc344 *ac,
+
270  const bool on, const stdAc::opmode_t mode,
+
271  const float degrees, const stdAc::fanspeed_t fan,
+
272  const stdAc::swingv_t swingv,
+
273  const stdAc::swingh_t swingh);
+
274 #endif // SEND_HITACHI_AC344
+
275 #if SEND_HITACHI_AC424
+
276  void hitachi424(IRHitachiAc424 *ac,
+
277  const bool on, const stdAc::opmode_t mode,
+
278  const float degrees, const stdAc::fanspeed_t fan,
+
279  const stdAc::swingv_t swingv);
+
280 #endif // SEND_HITACHI_AC424
+
281 #if SEND_KELVINATOR
+
282  void kelvinator(IRKelvinatorAC *ac,
+
283  const bool on, const stdAc::opmode_t mode,
+
284  const float degrees, const stdAc::fanspeed_t fan,
+
285  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
286  const bool quiet, const bool turbo, const bool light,
+
287  const bool filter, const bool clean);
+
288 #endif // SEND_KELVINATOR
+
289 #if SEND_LG
+
290  void lg(IRLgAc *ac, const lg_ac_remote_model_t model,
+
291  const bool on, const stdAc::opmode_t mode,
+
292  const float degrees, const stdAc::fanspeed_t fan);
+
293 #endif // SEND_LG
+
294 #if SEND_MIDEA
+
295  void midea(IRMideaAC *ac,
+
296  const bool on, const stdAc::opmode_t mode, const bool celsius,
+
297  const float degrees, const stdAc::fanspeed_t fan,
+
298  const stdAc::swingv_t swingv, const bool econo,
+
299  const int16_t sleep = -1);
+
300 #endif // SEND_MIDEA
+
301 #if SEND_MITSUBISHI_AC
+
302  void mitsubishi(IRMitsubishiAC *ac,
+
303  const bool on, const stdAc::opmode_t mode,
+
304  const float degrees,
+
305  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
306  const stdAc::swingh_t swingh,
+
307  const bool quiet, const int16_t clock = -1);
+
308 #endif // SEND_MITSUBISHI_AC
+
309 #if SEND_MITSUBISHI112
+
310  void mitsubishi112(IRMitsubishi112 *ac,
+
311  const bool on, const stdAc::opmode_t mode,
+
312  const float degrees, const stdAc::fanspeed_t fan,
+
313  const stdAc::swingv_t swingv,
+
314  const stdAc::swingh_t swingh,
+
315  const bool quiet);
+
316 #endif // SEND_MITSUBISHI112
+
317 #if SEND_MITSUBISHI136
+
318  void mitsubishi136(IRMitsubishi136 *ac,
+
319  const bool on, const stdAc::opmode_t mode,
+
320  const float degrees, const stdAc::fanspeed_t fan,
+
321  const stdAc::swingv_t swingv, const bool quiet);
+
322 #endif // SEND_MITSUBISHI136
+
323 #if SEND_MITSUBISHIHEAVY
+
324  void mitsubishiHeavy88(IRMitsubishiHeavy88Ac *ac,
+
325  const bool on, const stdAc::opmode_t mode,
+
326  const float degrees, const stdAc::fanspeed_t fan,
+
327  const stdAc::swingv_t swingv,
+
328  const stdAc::swingh_t swingh,
+
329  const bool turbo, const bool econo, const bool clean);
+
330  void mitsubishiHeavy152(IRMitsubishiHeavy152Ac *ac,
+
331  const bool on, const stdAc::opmode_t mode,
+
332  const float degrees, const stdAc::fanspeed_t fan,
+
333  const stdAc::swingv_t swingv,
+
334  const stdAc::swingh_t swingh,
+
335  const bool quiet, const bool turbo, const bool econo,
+
336  const bool filter, const bool clean,
+
337  const int16_t sleep = -1);
+
338 #endif // SEND_MITSUBISHIHEAVY
+
339 #if SEND_NEOCLIMA
+
340  void neoclima(IRNeoclimaAc *ac, const bool on, const stdAc::opmode_t mode,
+
341  const float degrees, const stdAc::fanspeed_t fan,
+
342  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
343  const bool turbo, const bool light, const bool filter,
+
344  const int16_t sleep = -1);
+
345 #endif // SEND_NEOCLIMA
+
346 #if SEND_PANASONIC_AC
+
347  void panasonic(IRPanasonicAc *ac, const panasonic_ac_remote_model_t model,
+
348  const bool on, const stdAc::opmode_t mode, const float degrees,
+
349  const stdAc::fanspeed_t fan,
+
350  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
351  const bool quiet, const bool turbo, const bool filter,
+
352  const int16_t clock = -1);
+
353 #endif // SEND_PANASONIC_AC
+
354 #if SEND_SAMSUNG_AC
+
355  void samsung(IRSamsungAc *ac,
+
356  const bool on, const stdAc::opmode_t mode, const float degrees,
+
357  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
358  const bool quiet, const bool turbo, const bool light,
+
359  const bool filter, const bool clean,
+
360  const bool beep, const bool prevpower = true,
+
361  const bool forcepower = true);
+
362 #endif // SEND_SAMSUNG_AC
+
363 #if SEND_SANYO_AC
+
364  void sanyo(IRSanyoAc *ac,
+
365  const bool on, const stdAc::opmode_t mode, const float degrees,
+
366  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
367  const bool beep, const int16_t sleep = -1);
+
368 #endif // SEND_SANYO_AC
+
369 #if SEND_SHARP_AC
+
370  void sharp(IRSharpAc *ac,
+
371  const bool on, const bool prev_power, const stdAc::opmode_t mode,
+
372  const float degrees, const stdAc::fanspeed_t fan,
+
373  const stdAc::swingv_t swingv, const bool turbo, const bool filter,
+
374  const bool clean);
+
375 #endif // SEND_SHARP_AC
+
376 #if SEND_TCL112AC
+
377  void tcl112(IRTcl112Ac *ac,
+
378  const bool on, const stdAc::opmode_t mode, const float degrees,
+
379  const stdAc::fanspeed_t fan,
+
380  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
381  const bool turbo, const bool light, const bool econo,
+
382  const bool filter);
+
383 #endif // SEND_TCL112AC
+
384 #if SEND_TECO
+
385  void teco(IRTecoAc *ac,
+
386  const bool on, const stdAc::opmode_t mode, const float degrees,
+
387  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
388  const bool light, const int16_t sleep = -1);
+
389 #endif // SEND_TECO
+
390 #if SEND_TOSHIBA_AC
+
391  void toshiba(IRToshibaAC *ac,
+
392  const bool on, const stdAc::opmode_t mode, const float degrees,
+
393  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
394  const bool turbo, const bool econo);
+
395 #endif // SEND_TOSHIBA_AC
+
396 #if SEND_TROTEC
+
397  void trotec(IRTrotecESP *ac,
+
398  const bool on, const stdAc::opmode_t mode, const float degrees,
+
399  const stdAc::fanspeed_t fan, const int16_t sleep = -1);
+
400 #endif // SEND_TROTEC
+
401 #if SEND_VESTEL_AC
+
402  void vestel(IRVestelAc *ac,
+
403  const bool on, const stdAc::opmode_t mode, const float degrees,
+
404  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
405  const bool turbo, const bool filter,
+
406  const int16_t sleep = -1, const int16_t clock = -1,
+
407  const bool sendNormal = true);
+
408 #endif // SEND_VESTEL_AC
+
409 #if SEND_VOLTAS
+
410  void voltas(IRVoltas *ac, const voltas_ac_remote_model_t model,
+
411  const bool on, const stdAc::opmode_t mode,
+
412  const float degrees, const stdAc::fanspeed_t fan,
+
413  const stdAc::swingv_t swingv, const stdAc::swingh_t swingh,
+
414  const bool turbo, const bool econo, const bool light,
+
415  const int16_t sleep = -1);
+
416 #endif // SEND_VOLTAS
+
417 #if SEND_WHIRLPOOL_AC
+
418  void whirlpool(IRWhirlpoolAc *ac, const whirlpool_ac_remote_model_t model,
+
419  const bool on, const stdAc::opmode_t mode, const float degrees,
+
420  const stdAc::fanspeed_t fan, const stdAc::swingv_t swingv,
+
421  const bool turbo, const bool light,
+
422  const int16_t sleep = -1, const int16_t clock = -1);
+
423 #endif // SEND_WHIRLPOOL_AC
+
424 static stdAc::state_t cleanState(const stdAc::state_t state);
+
425 static stdAc::state_t handleToggles(const stdAc::state_t desired,
+
426  const stdAc::state_t *prev = NULL);
+
427 }; // IRac class
+
428 
+
430 namespace IRAcUtils {
+
431  String resultAcToString(const decode_results * const results);
+
432  bool decodeToState(const decode_results *decode, stdAc::state_t *result,
+
433  const stdAc::state_t *prev = NULL);
+
434 } // namespace IRAcUtils
+
435 #endif // IRAC_H_
Class for handling detailed Panasonic A/C messages.
Definition: ir_Panasonic.h:98
-
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:287
+
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:291
Support for Kelvinator A/C protocols.
Class for handling detailed Samsung A/C messages.
Definition: ir_Samsung.h:97
-
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:1056
+
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:1060
Class for handling detailed Toshiba A/C messages.
Definition: ir_Toshiba.h:100
-
decode_type_t
Enumerator for defining and numbering of supported IR protocol.
Definition: IRremoteESP8266.h:721
-
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:130
-
stdAc::state_t getState(void)
Get the current internal A/C climate state.
Definition: IRac.cpp:125
+
decode_type_t
Enumerator for defining and numbering of supported IR protocol.
Definition: IRremoteESP8266.h:736
+
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:131
+
stdAc::state_t getState(void)
Get the current internal A/C climate state.
Definition: IRac.cpp:126
Class for handling detailed Mitsubishi Heavy 152-bit A/C messages.
Definition: ir_MitsubishiHeavy.h:133
-
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:2607
-
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:1132
+
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:2664
+
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:1136
@ kAuto
Support for Electra A/C protocols.
-
void markAsSent(void)
Update the previous state to the current one.
Definition: IRac.cpp:2470
+
void markAsSent(void)
Update the previous state to the current one.
Definition: IRac.cpp:2527
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:676
+
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:680
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:1625
-
Class for handling detailed Daikin 280-bit A/C messages.
Definition: ir_Daikin.h:520
-
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:1238
+
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:1629
+
Class for handling detailed Daikin 280-bit A/C messages.
Definition: ir_Daikin.h:526
+
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:1242
Class for handling detailed Delonghi A/C messages.
Definition: ir_Delonghi.h:102
Class for handling detailed Corona A/C messages.
Definition: ir_Corona.h:93
-
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:1204
-
Class for handling detailed Daikin 312-bit A/C messages.
Definition: ir_Daikin.h:602
+
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:1208
+
Class for handling detailed Daikin 312-bit A/C messages.
Definition: ir_Daikin.h:608
Support for Neoclima protocols. Analysis by crankyoldgit & AndreyShpilevoy.
-
Class for handling detailed Daikin 128-bit A/C messages.
Definition: ir_Daikin.h:863
+
Class for handling detailed Daikin 128-bit A/C messages.
Definition: ir_Daikin.h:869
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:2749
-
whirlpool_ac_remote_model_t
Whirlpool A/C model numbers.
Definition: IRsend.h:152
+
static String fanspeedToString(const stdAc::fanspeed_t speed)
Convert the supplied fan speed enum into the appropriate String.
Definition: IRac.cpp:2814
+
whirlpool_ac_remote_model_t
Whirlpool A/C model numbers.
Definition: IRsend.h:158
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:1901
+
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:1948
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:745
-
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:1719
-
bool sendAc(void)
Send an A/C message based soley on our internal state.
Definition: IRac.cpp:2476
-
static bool cmpStates(const stdAc::state_t a, const stdAc::state_t b)
Compare two AirCon states.
Definition: IRac.cpp:2487
+
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:749
+
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:1907
+
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:1723
+
bool sendAc(void)
Send an A/C message based soley on our internal state.
Definition: IRac.cpp:2533
+
static bool cmpStates(const stdAc::state_t a, const stdAc::state_t b)
Compare two AirCon states.
Definition: IRac.cpp:2544
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:129
-
Class for handling detailed Daikin 64-bit A/C messages.
Definition: ir_Daikin.h:997
+
Class for handling detailed Daikin 64-bit A/C messages.
Definition: ir_Daikin.h:1003
-
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:1860
+
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:1865
Class for handling detailed Hitachi 53-byte/424-bit A/C messages.
Definition: ir_Hitachi.h:313
-
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:512
-
IRac(const uint16_t pin, const bool inverted=false, const bool use_modulation=true)
Class constructor.
Definition: IRac.cpp:51
-
Class for handling detailed Daikin 216-bit A/C messages.
Definition: ir_Daikin.h:698
+
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:516
+
IRac(const uint16_t pin, const bool inverted=false, const bool use_modulation=true)
Class constructor.
Definition: IRac.cpp:52
+
Class for handling detailed Daikin 216-bit A/C messages.
Definition: ir_Daikin.h:704
+
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:135
-
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:1584
-
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:552
+
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:1588
+
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:556
Class for handling detailed Hitachi 224-bit A/C messages.
Definition: ir_Hitachi.h:188
-
const int8_t kGpioUnused
A placeholder for not using an actual GPIO.
Definition: IRac.h:42
-
Common functions for use with all A/Cs supported by the IRac class.
Definition: IRac.cpp:2818
+
const int8_t kGpioUnused
A placeholder for not using an actual GPIO.
Definition: IRac.h:43
+
Common functions for use with all A/Cs supported by the IRac class.
Definition: IRac.cpp:2883
Class for handling detailed Sanyo A/C messages.
Definition: ir_Sanyo.h:98
-
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:987
+
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:991
Class for handling detailed Whirlpool A/C messages.
Definition: ir_Whirlpool.h:91
Class for handling detailed Hitachi 344-bit A/C messages.
Definition: ir_Hitachi.h:401
-
static String boolToString(const bool value)
Convert the supplied boolean into the appropriate String.
Definition: IRac.cpp:2720
-
stdAc::state_t next
The state we want the device to be in after we send.
Definition: IRac.h:94
-
std::string String
Definition: IRremoteESP8266.h:1107
+
static String boolToString(const bool value)
Convert the supplied boolean into the appropriate String.
Definition: IRac.cpp:2785
+
stdAc::state_t next
The state we want the device to be in after we send.
Definition: IRac.h:95
+
std::string String
Definition: IRremoteESP8266.h:1128
Class for handling detailed Mitsubishi 144-bit A/C messages.
Definition: ir_Mitsubishi.h:168
-
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:1823
-
static int16_t strToModel(const char *str, const int16_t def=-1)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:2647
+
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:1828
+
static int16_t strToModel(const char *str, const int16_t def=-1)
Convert the supplied str into the appropriate enum.
Definition: IRac.cpp:2704
Class for handling detailed Amcor A/C messages.
Definition: ir_Amcor.h:81
Class for handling detailed Mitsubishi 122-bit A/C messages.
Definition: ir_Mitsubishi.h:286
Class for handling detailed TCL A/C messages.
Definition: ir_Tcl.h:63
-
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:644
+
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:648
Class for handling detailed Electra A/C messages.
Definition: ir_Electra.h:80
Support for TCL protocols.
-
bool hasStateChanged(void)
Check if the internal state has changed from what was previously sent.
Definition: IRac.cpp:2499
-
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:1024
-
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:715
+
bool hasStateChanged(void)
Check if the internal state has changed from what was previously sent.
Definition: IRac.cpp:2556
+
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:1028
+
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:719
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:1945
+
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:1992
Class for handling detailed Mitsubishi 136-bit A/C messages.
Definition: ir_Mitsubishi.h:232
panasonic_ac_remote_model_t
Panasonic A/C model numbers.
Definition: IRsend.h:141
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:1346
-
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:3155
+
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:1350
+
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:3227
Class for handling detailed Hitachi 104-bit A/C messages.
Definition: ir_Hitachi.h:245
-
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:1166
+
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:1170
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:2824
-
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:589
+
String resultAcToString(const decode_results *const result)
Display the human readable state of an A/C message if we can.
Definition: IRac.cpp:2889
+
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:593
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:74
-
Class for handling detailed Midea A/C messages.
Definition: ir_Midea.h:84
+
Class for handling detailed Midea A/C messages.
Definition: ir_Midea.h:99
Class for handling detailed Kelvinator A/C messages.
Definition: ir_Kelvinator.h:137
-
bool _inverted
IR LED is lit when GPIO is LOW (true) or HIGH (false)?
Definition: IRac.h:100
+
bool _inverted
IR LED is lit when GPIO is LOW (true) or HIGH (false)?
Definition: IRac.h:101
Class for handling detailed Fujitsu A/C messages.
Definition: ir_Fujitsu.h:101
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:105
-
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:1540
-
static String swingvToString(const stdAc::swingv_t swingv)
Convert the supplied enum into the appropriate String.
Definition: IRac.cpp:2771
+
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:1544
+
static String swingvToString(const stdAc::swingv_t swingv)
Convert the supplied enum into the appropriate String.
Definition: IRac.cpp:2836
Support for Mitsubishi protocols. Mitsubishi (TV) decoding added from https://github....
-
A universal/common/generic interface for controling supported A/Cs.
Definition: IRac.h:46
+
A universal/common/generic interface for controling supported A/Cs.
Definition: IRac.h:47
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:949
+
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:953
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:802
-
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:1932
+
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:806
+
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:1979
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:1311
-
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:315
-
Class for handling detailed Airwell A/C messages.
Definition: ir_Airwell.h:55
-
Class for handling detailed Daikin 152-bit A/C messages.
Definition: ir_Daikin.h:937
+
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:1315
+
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:319
+
Class for handling detailed Airwell A/C messages.
Definition: ir_Airwell.h:58
+
Support for Voltas A/C protocol.
+
Class for handling detailed Daikin 152-bit A/C messages.
Definition: ir_Daikin.h:943
Class for handling detailed LG A/C messages.
Definition: ir_LG.h:64
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:217
-
Class for handling detailed Daikin 160-bit A/C messages.
Definition: ir_Daikin.h:754
-
static String opmodeToString(const stdAc::opmode_t mode)
Convert the supplied operation mode into the appropriate String.
Definition: IRac.cpp:2727
+
Class for handling detailed Haier A/C messages.
Definition: ir_Haier.h:244
+
Class for handling detailed Daikin 160-bit A/C messages.
Definition: ir_Daikin.h:760
+
static String opmodeToString(const stdAc::opmode_t mode)
Convert the supplied operation mode into the appropriate String.
Definition: IRac.cpp:2792
Class for handling detailed Sharp A/C messages.
Definition: ir_Sharp.h:108
-
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:1788
+
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:1792
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:347
-
lg_ac_remote_model_t
LG A/C model numbers.
Definition: IRsend.h:158
-
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:1382
+
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:351
+
lg_ac_remote_model_t
LG A/C model numbers.
Definition: IRsend.h:164
+
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:1386
@ kAuto
-
bool _modulation
Is frequency modulation to be used?
Definition: IRac.h:101
-
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:1755
-
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:2505
+
bool _modulation
Is frequency modulation to be used?
Definition: IRac.h:102
+
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:1759
+
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:2562
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:1093
+
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:1097
@ kOff
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:2702
-
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:1417
-
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:2566
+
static bool strToBool(const char *str, const bool def=false)
Convert the supplied str into the appropriate boolean value.
Definition: IRac.cpp:2767
+
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:1421
+
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:2623
Class for handling detailed Vestel A/C messages.
Definition: ir_Vestel.h:116
-
void neoclima(IRNeoclimaAc *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 filter, const int16_t sleep=-1)
Send a Neoclima A/C message with the supplied settings.
Definition: IRac.cpp:1500
+
void neoclima(IRNeoclimaAc *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 filter, const int16_t sleep=-1)
Send a Neoclima A/C message with the supplied settings.
Definition: IRac.cpp:1504
Class for handling detailed Trotec A/C messages.
Definition: ir_Trotec.h:76
Class for handling detailed Teco A/C messages.
Definition: ir_Teco.h:107
-
static String swinghToString(const stdAc::swingh_t swingh)
Convert the supplied enum into the appropriate String.
Definition: IRac.cpp:2795
-
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:775
-
stdAc::state_t _prev
The state we expect the device to currently be in.
Definition: IRac.h:102
-
Class for handling detailed Haier ACYRW02 A/C messages.
Definition: ir_Haier.h:289
-
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:622
-
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:477
-
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)
Initialse the given state with the supplied settings.
Definition: IRac.cpp:82
-
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:1458
+
static String swinghToString(const stdAc::swingh_t swingh)
Convert the supplied enum into the appropriate String.
Definition: IRac.cpp:2860
+
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:779
+
stdAc::state_t _prev
The state we expect the device to currently be in.
Definition: IRac.h:103
+
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:626
+
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:481
+
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)
Initialse the given state with the supplied settings.
Definition: IRac.cpp:83
+
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:1462
@ 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:220
-
Class for handling detailed Gree A/C messages.
Definition: ir_Gree.h:117
-
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:416
-
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:2535
-
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 econo, const int16_t sleep=-1)
Send a Midea A/C message with the supplied settings.
Definition: IRac.cpp:1273
+
Class for handling detailed Gree A/C messages.
Definition: ir_Gree.h:130
+
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:420
+
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:2592
+
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 econo, const int16_t sleep=-1)
Send a Midea A/C message with the supplied settings.
Definition: IRac.cpp:1277
Support for Toshiba protocols.
-
void sharp(IRSharpAc *ac, 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 filter, const bool clean)
Send a Sharp A/C message with the supplied settings.
Definition: IRac.cpp:1667
-
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:907
+
void sharp(IRSharpAc *ac, 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 filter, const bool clean)
Send a Sharp A/C message with the supplied settings.
Definition: IRac.cpp:1671
+
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:911
Structure to hold a common A/C state.
Definition: IRsend.h:97
Class for handling detailed Goodweather A/C messages.
Definition: ir_Goodweather.h:90
Support for Vestel protocols. Vestel added by Erdem U. Altinyurt.
Class for handling detailed Argo A/C messages.
Definition: ir_Argo.h:129
-
void fujitsu(IRFujitsuAC *ac, const fujitsu_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 econo, const bool filter, const bool clean)
Send a Fujitsu A/C message with the supplied settings.
Definition: IRac.cpp:844
+
void fujitsu(IRFujitsuAC *ac, const fujitsu_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 econo, const bool filter, const bool clean)
Send a Fujitsu A/C message with the supplied settings.
Definition: IRac.cpp:848
Class for handling detailed Neoclima A/C messages.
Definition: ir_Neoclima.h:86
-
static bool isProtocolSupported(const decode_type_t protocol)
Is the given protocol supported by the IRac class?
Definition: IRac.cpp:135
-
Class for handling detailed Daikin 176-bit A/C messages.
Definition: ir_Daikin.h:806
+
static bool isProtocolSupported(const decode_type_t protocol)
Is the given protocol supported by the IRac class?
Definition: IRac.cpp:136
+
Class for handling detailed Daikin 176-bit A/C messages.
Definition: ir_Daikin.h:812
Amcor A/C protocol.
-
uint16_t _pin
The GPIO to use to transmit messages from.
Definition: IRac.h:99
+
uint16_t _pin
The GPIO to use to transmit messages from.
Definition: IRac.h:100
+
voltas_ac_remote_model_t
Voltas A/C model numbers.
Definition: IRsend.h:152
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:379
+
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:383
opmode_t
Common A/C settings for A/C operating modes.
Definition: IRsend.h:46