IRremoteESP8266
ir_Mitsubishi.h
Go to the documentation of this file.
1 // Copyright 2009 Ken Shirriff
2 // Copyright 2017-2019 David Conran
3 // Copyright 2019 Mark Kuchel
4 
17 
18 // Supports:
19 // Brand: Mitsubishi, Model: TV (MITSUBISHI)
20 // Brand: Mitsubishi, Model: HC3000 Projector (MITSUBISHI2)
21 // Brand: Mitsubishi, Model: MS-GK24VA A/C
22 // Brand: Mitsubishi, Model: KM14A 0179213 remote
23 // Brand: Mitsubishi Electric, Model: PEAD-RP71JAA Ducted A/C (MITSUBISHI136)
24 // Brand: Mitsubishi Electric, Model: 001CP T7WE10714 remote (MITSUBISHI136)
25 // Brand: Mitsubishi Electric, Model: MSH-A24WV A/C (MITSUBISHI112)
26 // Brand: Mitsubishi Electric, Model: MUH-A24WV A/C (MITSUBISHI112)
27 // Brand: Mitsubishi Electric, Model: KPOA remote (MITSUBISHI112)
28 
29 #ifndef IR_MITSUBISHI_H_
30 #define IR_MITSUBISHI_H_
31 
32 #define __STDC_LIMIT_MACROS
33 #include <stdint.h>
34 #ifndef UNIT_TEST
35 #include <Arduino.h>
36 #endif
37 #include "IRremoteESP8266.h"
38 #include "IRsend.h"
39 #ifdef UNIT_TEST
40 #include "IRsend_test.h"
41 #endif
42 
43 
44 // Constants
45 const uint8_t kMitsubishiAcModeOffset = 3;
46 const uint8_t kMitsubishiAcAuto = 0b100;
47 const uint8_t kMitsubishiAcCool = 0b011;
48 const uint8_t kMitsubishiAcDry = 0b010;
49 const uint8_t kMitsubishiAcHeat = 0b001;
50 const uint8_t kMitsubishiAcPowerOffset = 5;
51 const uint8_t kMitsubishiAcPower = 1 << kMitsubishiAcPowerOffset; // 0x20
52 const uint8_t kMitsubishiAcFanOffset = 0;
53 const uint8_t kMitsubishiAcFanSize = 3; // Mask 0b111
54 const uint8_t kMitsubishiAcFanAuto = 0;
55 const uint8_t kMitsubishiAcFanAutoOffset = 7;
56 const uint8_t kMitsubishiAcFanMax = 5;
57 const uint8_t kMitsubishiAcFanRealMax = 4;
58 const uint8_t kMitsubishiAcFanSilent = 6;
60 const uint8_t kMitsubishiAcMinTemp = 16; // 16C
61 const uint8_t kMitsubishiAcMaxTemp = 31; // 31C
62 const uint8_t kMitsubishiAcVaneBitOffset = 6;
63 const uint8_t kMitsubishiAcVaneOffset = 3;
64 const uint8_t kMitsubishiAcVaneSize = 3;
65 const uint8_t kMitsubishiAcVaneAuto = 0;
66 const uint8_t kMitsubishiAcVaneAutoMove = 7;
67 const uint8_t kMitsubishiAcNoTimer = 0;
68 const uint8_t kMitsubishiAcStartTimer = 5;
69 const uint8_t kMitsubishiAcStopTimer = 3;
70 const uint8_t kMitsubishiAcStartStopTimer = 7;
71 const uint8_t kMitsubishiAcWideVaneAuto = 8;
72 
73 const uint8_t kMitsubishi136PowerByte = 5;
74 const uint8_t kMitsubishi136PowerOffset = 6;
76 const uint8_t kMitsubishi136TempByte = 6;
77 const uint8_t kMitsubishi136MinTemp = 17; // 17C
78 const uint8_t kMitsubishi136MaxTemp = 30; // 30C
80 const uint8_t kMitsubishi136ModeOffset = 0;
81 const uint8_t kMitsubishi136Fan = 0b000;
82 const uint8_t kMitsubishi136Cool = 0b001;
83 const uint8_t kMitsubishi136Heat = 0b010;
84 const uint8_t kMitsubishi136Auto = 0b011;
85 const uint8_t kMitsubishi136Dry = 0b101;
86 const uint8_t kMitsubishi136SwingVByte = 7;
87 const uint8_t kMitsubishi136SwingVLowest = 0b0000;
88 const uint8_t kMitsubishi136SwingVLow = 0b0001;
89 const uint8_t kMitsubishi136SwingVHigh = 0b0010;
90 const uint8_t kMitsubishi136SwingVHighest = 0b0011;
91 const uint8_t kMitsubishi136SwingVAuto = 0b1100;
93 // FanMask = 0b00000110;
94 const uint8_t kMitsubishi136FanOffset = 1;
95 const uint8_t kMitsubishi136FanSize = 2; // Bits
96 const uint8_t kMitsubishi136FanMin = 0b00;
97 const uint8_t kMitsubishi136FanLow = 0b01;
98 const uint8_t kMitsubishi136FanMed = 0b10;
99 const uint8_t kMitsubishi136FanMax = 0b11;
101 
102 // Mitsubishi112
103 
104 // remote_state[5]
105 const uint8_t kMitsubishi112PowerByte = 5;
106 const uint8_t kMitsubishi112PowerOffset = 2; // 0b00000100
107 // remote_state[6]
108 const uint8_t kMitsubishi112ModeByte = 6;
109 const uint8_t kMitsubishi112ModeOffset = 0; // Mask 0b00000111
110 const uint8_t kMitsubishi112Cool = 0b011;
111 const uint8_t kMitsubishi112Heat = 0b001;
112 const uint8_t kMitsubishi112Auto = 0b111;
113 const uint8_t kMitsubishi112Dry = 0b010;
114 // remote_state[7]
115 const uint8_t kMitsubishi112TempByte = 7;
116 const uint8_t kMitsubishi112TempSize = 4; // Mask 0b00001111
117 const uint8_t kMitsubishi112MinTemp = 16; // 16C
118 const uint8_t kMitsubishi112MaxTemp = 31; // 31C
119 // remote_state[8]
120 const uint8_t kMitsubishi112FanByte = 8;
121 const uint8_t kMitsubishi112FanOffset = 0; // Mask 0b00000111;
122 const uint8_t kMitsubishi112FanSize = 3;
123 const uint8_t kMitsubishi112FanMin = 0b010;
124 const uint8_t kMitsubishi112FanLow = 0b011;
125 const uint8_t kMitsubishi112FanMed = 0b101;
126 const uint8_t kMitsubishi112FanMax = 0b000;
129 const uint8_t kMitsubishi112SwingVOffset = 3; // Mask 0b00111000
130 const uint8_t kMitsubishi112SwingVSize = 3; // Mask 0b00111000
131 const uint8_t kMitsubishi112SwingVLowest = 0b101;
132 const uint8_t kMitsubishi112SwingVLow = 0b100;
133 const uint8_t kMitsubishi112SwingVMiddle = 0b011;
134 const uint8_t kMitsubishi112SwingVHigh = 0b010;
135 const uint8_t kMitsubishi112SwingVHighest = 0b001;
136 const uint8_t kMitsubishi112SwingVAuto = 0b111;
137 // remote_state[12]
138 const uint8_t kMitsubishi112SwingHByte = 12;
139 const uint8_t kMitsubishi112SwingHSize = 4;
140 const uint8_t kMitsubishi112SwingHOffset = 2; // Mask 0b00111100
141 const uint8_t kMitsubishi112SwingHLeftMax = 0b0001;
142 const uint8_t kMitsubishi112SwingHLeft = 0b0010;
143 const uint8_t kMitsubishi112SwingHMiddle = 0b0011;
144 const uint8_t kMitsubishi112SwingHRight = 0b0100;
145 const uint8_t kMitsubishi112SwingHRightMax = 0b0101;
146 const uint8_t kMitsubishi112SwingHWide = 0b1000;
147 const uint8_t kMitsubishi112SwingHAuto = 0b1100;
148 
149 // Legacy defines (Deprecated)
150 #define MITSUBISHI_AC_VANE_AUTO_MOVE kMitsubishiAcVaneAutoMove
151 #define MITSUBISHI_AC_VANE_AUTO kMitsubishiAcVaneAuto
152 #define MITSUBISHI_AC_POWER kMitsubishiAcPower
153 #define MITSUBISHI_AC_MIN_TEMP kMitsubishiAcMinTemp
154 #define MITSUBISHI_AC_MAX_TEMP kMitsubishiAcMaxTemp
155 #define MITSUBISHI_AC_HEAT kMitsubishiAcHeat
156 #define MITSUBISHI_AC_FAN_SILENT kMitsubishiAcFanSilent
157 #define MITSUBISHI_AC_FAN_REAL_MAX kMitsubishiAcFanRealMax
158 #define MITSUBISHI_AC_FAN_MAX kMitsubishiAcFanMax
159 #define MITSUBISHI_AC_FAN_AUTO kMitsubishiAcFanAuto
160 #define MITSUBISHI_AC_DRY kMitsubishiAcDry
161 #define MITSUBISHI_AC_COOL kMitsubishiAcCool
162 #define MITSUBISHI_AC_AUTO kMitsubishiAcAuto
163 
164 
169  public:
170  explicit IRMitsubishiAC(const uint16_t pin, const bool inverted = false,
171  const bool use_modulation = true);
172  void stateReset(void);
173  static bool validChecksum(const uint8_t* data);
174 #if SEND_MITSUBISHI_AC
175  void send(const uint16_t repeat = kMitsubishiACMinRepeat);
180  int8_t calibrate(void) { return _irsend.calibrate(); }
181 #endif // SEND_MITSUBISHI_AC
182  void begin(void);
183  void on(void);
184  void off(void);
185  void setPower(const bool on);
186  bool getPower(void);
187  void setTemp(const uint8_t degrees);
188  uint8_t getTemp(void);
189  void setFan(const uint8_t speed);
190  uint8_t getFan(void);
191  void setMode(const uint8_t mode);
192  uint8_t getMode(void);
193  void setVane(const uint8_t position);
194  void setWideVane(const uint8_t position);
195  uint8_t getVane(void);
196  uint8_t getWideVane(void);
197  uint8_t* getRaw(void);
198  void setRaw(const uint8_t* data);
199  uint8_t getClock(void);
200  void setClock(const uint8_t clock);
201  uint8_t getStartClock(void);
202  void setStartClock(const uint8_t clock);
203  uint8_t getStopClock(void);
204  void setStopClock(const uint8_t clock);
205  uint8_t getTimer(void);
206  void setTimer(const uint8_t timer);
207  static uint8_t convertMode(const stdAc::opmode_t mode);
208  static uint8_t convertFan(const stdAc::fanspeed_t speed);
209  static uint8_t convertSwingV(const stdAc::swingv_t position);
210  static uint8_t convertSwingH(const stdAc::swingh_t position);
211  static stdAc::opmode_t toCommonMode(const uint8_t mode);
212  static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed);
213  static stdAc::swingv_t toCommonSwingV(const uint8_t pos);
214  static stdAc::swingh_t toCommonSwingH(const uint8_t pos);
215  stdAc::state_t toCommon(void);
216  String toString(void);
217 #ifndef UNIT_TEST
218 
219  private:
221 #else // UNIT_TEST
222  IRsendTest _irsend;
224 #endif // UNIT_TEST
227  void checksum(void);
228  static uint8_t calculateChecksum(const uint8_t* data);
229 };
230 
233  public:
234  explicit IRMitsubishi136(const uint16_t pin, const bool inverted = false,
235  const bool use_modulation = true);
236  void stateReset(void);
237 #if SEND_MITSUBISHI136
238  void send(const uint16_t repeat = kMitsubishi136MinRepeat);
243  int8_t calibrate(void) { return _irsend.calibrate(); }
244 #endif // SEND_MITSUBISHI136
245  void begin(void);
246  static bool validChecksum(const uint8_t* data,
247  const uint16_t len = kMitsubishi136StateLength);
248  void on(void);
249  void off(void);
250  void setPower(const bool on);
251  bool getPower(void);
252  void setTemp(const uint8_t degrees);
253  uint8_t getTemp(void);
254  void setFan(const uint8_t speed);
255  uint8_t getFan(void);
256  void setMode(const uint8_t mode);
257  uint8_t getMode(void);
258  void setSwingV(const uint8_t position);
259  uint8_t getSwingV(void);
260  void setQuiet(const bool on);
261  bool getQuiet(void);
262  uint8_t* getRaw(void);
263  void setRaw(const uint8_t* data);
264  static uint8_t convertMode(const stdAc::opmode_t mode);
265  static uint8_t convertFan(const stdAc::fanspeed_t speed);
266  static uint8_t convertSwingV(const stdAc::swingv_t position);
267  static stdAc::opmode_t toCommonMode(const uint8_t mode);
268  static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed);
269  static stdAc::swingv_t toCommonSwingV(const uint8_t pos);
270  stdAc::state_t toCommon(void);
271  String toString(void);
272 #ifndef UNIT_TEST
273 
274  private:
276 #else // UNIT_TEST
277  IRsendTest _irsend;
279 #endif // UNIT_TEST
282  void checksum(void);
283 };
284 
287  public:
288  explicit IRMitsubishi112(const uint16_t pin, const bool inverted = false,
289  const bool use_modulation = true);
290  void stateReset(void);
291 #if SEND_MITSUBISHI112
292  void send(const uint16_t repeat = kMitsubishi112MinRepeat);
297  int8_t calibrate(void) { return _irsend.calibrate(); }
298 #endif // SEND_MITSUBISHI112
299  void begin(void);
300  void on(void);
301  void off(void);
302  void setPower(const bool on);
303  bool getPower(void);
304  void setTemp(const uint8_t degrees);
305  uint8_t getTemp(void);
306  void setFan(const uint8_t speed);
307  uint8_t getFan(void);
308  void setMode(const uint8_t mode);
309  uint8_t getMode(void);
310  void setSwingV(const uint8_t position);
311  uint8_t getSwingV(void);
312  void setSwingH(const uint8_t position);
313  uint8_t getSwingH(void);
314  void setQuiet(const bool on);
315  bool getQuiet(void);
316  uint8_t* getRaw(void);
317  void setRaw(const uint8_t* data);
318  static uint8_t convertMode(const stdAc::opmode_t mode);
319  static uint8_t convertFan(const stdAc::fanspeed_t speed);
320  static uint8_t convertSwingV(const stdAc::swingv_t position);
321  static uint8_t convertSwingH(const stdAc::swingh_t position);
322  static stdAc::opmode_t toCommonMode(const uint8_t mode);
323  static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed);
324  static stdAc::swingv_t toCommonSwingV(const uint8_t pos);
325  static stdAc::swingh_t toCommonSwingH(const uint8_t pos);
326  stdAc::state_t toCommon(void);
327  String toString(void);
328 #ifndef UNIT_TEST
329 
330  private:
332 #else // UNIT_TEST
333  IRsendTest _irsend;
335 #endif // UNIT_TEST
338  void checksum(void);
339 };
340 
341 #endif // IR_MITSUBISHI_H_
kMitsubishi112SwingVMiddle
const uint8_t kMitsubishi112SwingVMiddle
Definition: ir_Mitsubishi.h:133
IRMitsubishi112::setMode
void setMode(const uint8_t mode)
Set the operating mode of the A/C.
Definition: ir_Mitsubishi.cpp:1399
kMitsubishi112SwingVLowest
const uint8_t kMitsubishi112SwingVLowest
Definition: ir_Mitsubishi.h:131
kMitsubishi112ModeOffset
const uint8_t kMitsubishi112ModeOffset
Definition: ir_Mitsubishi.h:109
kMitsubishi112SwingVAuto
const uint8_t kMitsubishi112SwingVAuto
Definition: ir_Mitsubishi.h:136
kMitsubishi112FanQuiet
const uint8_t kMitsubishi112FanQuiet
Definition: ir_Mitsubishi.h:127
IRMitsubishi112::stateReset
void stateReset(void)
Reset the state of the remote to a known good state/sequence.
Definition: ir_Mitsubishi.cpp:1295
kMitsubishi112SwingHLeft
const uint8_t kMitsubishi112SwingHLeft
Definition: ir_Mitsubishi.h:142
kMitsubishi136ModeByte
const uint8_t kMitsubishi136ModeByte
Definition: ir_Mitsubishi.h:79
kMitsubishi112FanMed
const uint8_t kMitsubishi112FanMed
Definition: ir_Mitsubishi.h:125
kMitsubishiACStateLength
const uint16_t kMitsubishiACStateLength
Definition: IRremoteESP8266.h:957
kMitsubishiAcHeat
const uint8_t kMitsubishiAcHeat
Definition: ir_Mitsubishi.h:49
kMitsubishiAcAuto
const uint8_t kMitsubishiAcAuto
Definition: ir_Mitsubishi.h:46
IRMitsubishi112::begin
void begin(void)
Set up hardware to be able to send a message.
Definition: ir_Mitsubishi.cpp:1309
kMitsubishi112ModeByte
const uint8_t kMitsubishi112ModeByte
Definition: ir_Mitsubishi.h:108
kMitsubishi112SwingHRight
const uint8_t kMitsubishi112SwingHRight
Definition: ir_Mitsubishi.h:144
kMitsubishiAcFanSilent
const uint8_t kMitsubishiAcFanSilent
Definition: ir_Mitsubishi.h:58
IRMitsubishi112::calibrate
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition: ir_Mitsubishi.h:297
kMitsubishiAcVaneAuto
const uint8_t kMitsubishiAcVaneAuto
Definition: ir_Mitsubishi.h:65
kMitsubishi112SwingHRightMax
const uint8_t kMitsubishi112SwingHRightMax
Definition: ir_Mitsubishi.h:145
IRMitsubishi136::stateReset
void stateReset(void)
Reset the state of the remote to a known good state/sequence.
Definition: ir_Mitsubishi.cpp:874
IRMitsubishiAC::getPower
bool getPower(void)
Get the value of the current power setting.
Definition: ir_Mitsubishi.cpp:454
IRMitsubishi136::begin
void begin(void)
Set up hardware to be able to send a message.
Definition: ir_Mitsubishi.cpp:907
IRMitsubishiAC::getMode
uint8_t getMode(void)
Get the operating mode setting of the A/C.
Definition: ir_Mitsubishi.cpp:498
IRMitsubishiAC::getStopClock
uint8_t getStopClock(void)
Get the desired stop time of the A/C unit.
Definition: ir_Mitsubishi.cpp:574
IRMitsubishi112::getQuiet
bool getQuiet(void)
Get the Quiet mode of the A/C.
Definition: ir_Mitsubishi.cpp:1482
kMitsubishi136MinRepeat
const uint16_t kMitsubishi136MinRepeat
Definition: IRremoteESP8266.h:962
stdAc::swingv_t
swingv_t
Common A/C settings for Vertical Swing.
Definition: IRsend.h:70
kMitsubishiAcFanOffset
const uint8_t kMitsubishiAcFanOffset
Definition: ir_Mitsubishi.h:52
IRMitsubishiAC::stateReset
void stateReset(void)
Reset the state of the remote to a known good state/sequence.
Definition: ir_Mitsubishi.cpp:388
IRMitsubishiAC::setVane
void setVane(const uint8_t position)
Set the requested vane (Vertical Swing) operation mode of the a/c unit.
Definition: ir_Mitsubishi.cpp:520
kMitsubishi136FanMed
const uint8_t kMitsubishi136FanMed
Definition: ir_Mitsubishi.h:98
kMitsubishi136PowerByte
const uint8_t kMitsubishi136PowerByte
Definition: ir_Mitsubishi.h:73
stdAc::fanspeed_t
fanspeed_t
Common A/C settings for Fan Speeds.
Definition: IRsend.h:58
kMitsubishi136PowerBit
const uint8_t kMitsubishi136PowerBit
Definition: ir_Mitsubishi.h:75
IRMitsubishiAC::setStopClock
void setStopClock(const uint8_t clock)
Set the desired stop time of the A/C unit.
Definition: ir_Mitsubishi.cpp:579
kMitsubishi136MaxTemp
const uint8_t kMitsubishi136MaxTemp
Definition: ir_Mitsubishi.h:78
IRMitsubishi136::convertMode
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a stdAc::opmode_t enum into its native mode.
Definition: ir_Mitsubishi.cpp:1046
IRMitsubishiAC::setRaw
void setRaw(const uint8_t *data)
Set the internal state from a valid code for this protocol.
Definition: ir_Mitsubishi.cpp:417
IRMitsubishi136::setFan
void setFan(const uint8_t speed)
Set the speed of the fan.
Definition: ir_Mitsubishi.cpp:967
kMitsubishi112MinRepeat
const uint16_t kMitsubishi112MinRepeat
Definition: IRremoteESP8266.h:965
IRMitsubishi112::setRaw
void setRaw(const uint8_t *data)
Set the internal state from a valid code for this protocol.
Definition: ir_Mitsubishi.cpp:1328
IRMitsubishiAC::setStartClock
void setStartClock(const uint8_t clock)
Set the desired start time of the A/C unit.
Definition: ir_Mitsubishi.cpp:567
kMitsubishi112FanLow
const uint8_t kMitsubishi112FanLow
Definition: ir_Mitsubishi.h:124
IRMitsubishi112::toCommonFanSpeed
static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed)
Convert a native fan speed into its stdAc equivilant.
Definition: ir_Mitsubishi.cpp:1558
kMitsubishi136FanSize
const uint8_t kMitsubishi136FanSize
Definition: ir_Mitsubishi.h:95
IRMitsubishiAC::checksum
void checksum(void)
Calculate and set the checksum values for the internal state.
Definition: ir_Mitsubishi.cpp:422
kMitsubishi136SwingVByte
const uint8_t kMitsubishi136SwingVByte
Definition: ir_Mitsubishi.h:86
kMitsubishi112Heat
const uint8_t kMitsubishi112Heat
Definition: ir_Mitsubishi.h:111
IRMitsubishi136::getMode
uint8_t getMode(void)
Get the operating mode setting of the A/C.
Definition: ir_Mitsubishi.cpp:981
IRMitsubishi136::getTemp
uint8_t getTemp(void)
Get the current temperature setting.
Definition: ir_Mitsubishi.cpp:960
kMitsubishi112SwingHLeftMax
const uint8_t kMitsubishi112SwingHLeftMax
Definition: ir_Mitsubishi.h:141
IRMitsubishi136::getQuiet
bool getQuiet(void)
Get the Quiet mode of the A/C.
Definition: ir_Mitsubishi.cpp:1039
IRMitsubishiAC::validChecksum
static bool validChecksum(const uint8_t *data)
Verify the checksum is valid for a given state.
Definition: ir_Mitsubishi.cpp:429
IRMitsubishiAC::getClock
uint8_t getClock(void)
Get the clock time of the A/C unit.
Definition: ir_Mitsubishi.cpp:550
IRMitsubishi136::calibrate
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition: ir_Mitsubishi.h:243
kMitsubishi112Cool
const uint8_t kMitsubishi112Cool
Definition: ir_Mitsubishi.h:110
kMitsubishi112PowerByte
const uint8_t kMitsubishi112PowerByte
Definition: ir_Mitsubishi.h:105
IRMitsubishi136::setQuiet
void setQuiet(const bool on)
Set the Quiet mode of the A/C.
Definition: ir_Mitsubishi.cpp:1031
IRsend.h
kMitsubishiAcNoTimer
const uint8_t kMitsubishiAcNoTimer
Definition: ir_Mitsubishi.h:67
IRMitsubishi112::send
void send(const uint16_t repeat=kMitsubishi112MinRepeat)
Send the current internal state as an IR message.
Definition: ir_Mitsubishi.cpp:1314
IRMitsubishiAC::getFan
uint8_t getFan(void)
Get the current fan speed setting.
Definition: ir_Mitsubishi.cpp:489
IRMitsubishiAC::setPower
void setPower(const bool on)
Change the power setting.
Definition: ir_Mitsubishi.cpp:448
IRMitsubishi112::toCommonMode
static stdAc::opmode_t toCommonMode(const uint8_t mode)
Convert a native mode into its stdAc equivilant.
Definition: ir_Mitsubishi.cpp:1546
IRMitsubishiAC::calculateChecksum
static uint8_t calculateChecksum(const uint8_t *data)
Calculate the checksum for a given state.
Definition: ir_Mitsubishi.cpp:436
IRsend
Class for sending all basic IR protocols.
Definition: IRsend.h:176
IRMitsubishiAC::getWideVane
uint8_t getWideVane(void)
Get the Wide Vane (Horizontal Swing) mode of the A/C.
Definition: ir_Mitsubishi.cpp:543
IRsend::calibrate
int8_t calibrate(uint16_t hz=38000U)
Calculate & set any offsets to account for execution times during sending.
Definition: IRsend.cpp:207
kMitsubishi136Cool
const uint8_t kMitsubishi136Cool
Definition: ir_Mitsubishi.h:82
kMitsubishi136Dry
const uint8_t kMitsubishi136Dry
Definition: ir_Mitsubishi.h:85
IRMitsubishi112::IRMitsubishi112
IRMitsubishi112(const uint16_t pin, const bool inverted=false, const bool use_modulation=true)
Class constructor.
Definition: ir_Mitsubishi.cpp:1290
IRMitsubishiAC::setClock
void setClock(const uint8_t clock)
Set the clock time on the A/C unit.
Definition: ir_Mitsubishi.cpp:555
kMitsubishiAcPowerOffset
const uint8_t kMitsubishiAcPowerOffset
Definition: ir_Mitsubishi.h:50
IRMitsubishiAC::getStartClock
uint8_t getStartClock(void)
Get the desired start time of the A/C unit.
Definition: ir_Mitsubishi.cpp:562
IRMitsubishi112::getTemp
uint8_t getTemp(void)
Get the current temperature setting.
Definition: ir_Mitsubishi.cpp:1362
String
std::string String
Definition: IRremoteESP8266.h:1128
IRMitsubishiAC
Class for handling detailed Mitsubishi 144-bit A/C messages.
Definition: ir_Mitsubishi.h:168
IRMitsubishiAC::convertSwingV
static uint8_t convertSwingV(const stdAc::swingv_t position)
Convert a stdAc::swingv_t enum into it's native setting.
Definition: ir_Mitsubishi.cpp:631
IRMitsubishiAC::toCommonFanSpeed
static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed)
Convert a native fan speed into its stdAc equivilant.
Definition: ir_Mitsubishi.cpp:674
IRMitsubishi112
Class for handling detailed Mitsubishi 122-bit A/C messages.
Definition: ir_Mitsubishi.h:286
IRMitsubishiAC::setFan
void setFan(const uint8_t speed)
Set the speed of the fan.
Definition: ir_Mitsubishi.cpp:474
IRMitsubishi112::getFan
uint8_t getFan(void)
Get the current fan speed setting.
Definition: ir_Mitsubishi.cpp:1385
kMitsubishi112SwingVLow
const uint8_t kMitsubishi112SwingVLow
Definition: ir_Mitsubishi.h:132
kMitsubishiAcFanSize
const uint8_t kMitsubishiAcFanSize
Definition: ir_Mitsubishi.h:53
IRMitsubishiAC::convertSwingH
static uint8_t convertSwingH(const stdAc::swingh_t position)
Convert a stdAc::swingh_t enum into it's native setting.
Definition: ir_Mitsubishi.cpp:646
IRMitsubishi112::setTemp
void setTemp(const uint8_t degrees)
Set the temperature.
Definition: ir_Mitsubishi.cpp:1353
IRMitsubishiAC::getVane
uint8_t getVane(void)
Get the Vane (Vertical Swing) mode of the A/C.
Definition: ir_Mitsubishi.cpp:536
kMitsubishi112SwingHAuto
const uint8_t kMitsubishi112SwingHAuto
Definition: ir_Mitsubishi.h:147
kMitsubishi112MinTemp
const uint8_t kMitsubishi112MinTemp
Definition: ir_Mitsubishi.h:117
IRMitsubishi136
Class for handling detailed Mitsubishi 136-bit A/C messages.
Definition: ir_Mitsubishi.h:232
IRMitsubishi112::setPower
void setPower(const bool on)
Change the power setting.
Definition: ir_Mitsubishi.cpp:1340
IRMitsubishi112::checksum
void checksum(void)
Calculate the checksum for the current internal state of the remote.
Definition: ir_Mitsubishi.cpp:1303
IRremoteESP8266.h
stdAc::swingh_t
swingh_t
Common A/C settings for Horizontal Swing.
Definition: IRsend.h:83
IRMitsubishiAC::convertMode
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a stdAc::opmode_t enum into its native mode.
Definition: ir_Mitsubishi.cpp:604
IRMitsubishi136::toString
String toString(void)
Convert the internal state into a human readable string.
Definition: ir_Mitsubishi.cpp:1150
kMitsubishi112TempByte
const uint8_t kMitsubishi112TempByte
Definition: ir_Mitsubishi.h:115
kMitsubishiAcStopTimer
const uint8_t kMitsubishiAcStopTimer
Definition: ir_Mitsubishi.h:69
IRMitsubishi112::toString
String toString(void)
Convert the internal state into a human readable string.
Definition: ir_Mitsubishi.cpp:1627
kMitsubishiAcVaneSize
const uint8_t kMitsubishiAcVaneSize
Definition: ir_Mitsubishi.h:64
kMitsubishiAcFanMax
const uint8_t kMitsubishiAcFanMax
Definition: ir_Mitsubishi.h:56
kMitsubishi112SwingVHighest
const uint8_t kMitsubishi112SwingVHighest
Definition: ir_Mitsubishi.h:135
IRMitsubishiAC::toCommonSwingH
static stdAc::swingh_t toCommonSwingH(const uint8_t pos)
Convert a native horizontal swing postion to it's common equivalent.
Definition: ir_Mitsubishi.cpp:702
kMitsubishi136FanLow
const uint8_t kMitsubishi136FanLow
Definition: ir_Mitsubishi.h:97
kMitsubishiACMinRepeat
const uint16_t kMitsubishiACMinRepeat
Definition: IRremoteESP8266.h:959
kMitsubishi136MinTemp
const uint8_t kMitsubishi136MinTemp
Definition: ir_Mitsubishi.h:77
kMitsubishi112SwingVOffset
const uint8_t kMitsubishi112SwingVOffset
Definition: ir_Mitsubishi.h:129
kMitsubishi112SwingVSize
const uint8_t kMitsubishi112SwingVSize
Definition: ir_Mitsubishi.h:130
IRMitsubishi136::toCommonSwingV
static stdAc::swingv_t toCommonSwingV(const uint8_t pos)
Convert a native vertical swing postion to it's common equivalent.
Definition: ir_Mitsubishi.cpp:1112
IRMitsubishi136::IRMitsubishi136
IRMitsubishi136(const uint16_t pin, const bool inverted=false, const bool use_modulation=true)
Class constructor.
Definition: ir_Mitsubishi.cpp:869
IRMitsubishi112::remote_state
uint8_t remote_state[kMitsubishi112StateLength]
The state in code form.
Definition: ir_Mitsubishi.h:337
IRMitsubishiAC::_irsend
IRsend _irsend
Instance of the IR send class.
Definition: ir_Mitsubishi.h:220
kMitsubishi136Auto
const uint8_t kMitsubishi136Auto
Definition: ir_Mitsubishi.h:84
IRMitsubishi112::toCommon
stdAc::state_t toCommon(void)
Convert the current internal state into its stdAc::state_t equivilant.
Definition: ir_Mitsubishi.cpp:1599
kMitsubishi112TempSize
const uint8_t kMitsubishi112TempSize
Definition: ir_Mitsubishi.h:116
kMitsubishi136FanMax
const uint8_t kMitsubishi136FanMax
Definition: ir_Mitsubishi.h:99
IRMitsubishiAC::getRaw
uint8_t * getRaw(void)
Get a PTR to the internal state/code for this protocol.
Definition: ir_Mitsubishi.cpp:410
kMitsubishiAcFanAuto
const uint8_t kMitsubishiAcFanAuto
Definition: ir_Mitsubishi.h:54
IRMitsubishiAC::on
void on(void)
Set the requested power state of the A/C to on.
Definition: ir_Mitsubishi.cpp:441
IRMitsubishiAC::toString
String toString(void)
Convert the internal state into a human readable string.
Definition: ir_Mitsubishi.cpp:742
IRMitsubishi136::toCommon
stdAc::state_t toCommon(void)
Convert the current internal state into its stdAc::state_t equivilant.
Definition: ir_Mitsubishi.cpp:1124
kMitsubishiAcVaneOffset
const uint8_t kMitsubishiAcVaneOffset
Definition: ir_Mitsubishi.h:63
kMitsubishiAcFanQuiet
const uint8_t kMitsubishiAcFanQuiet
Definition: ir_Mitsubishi.h:59
IRMitsubishi112::convertFan
static uint8_t convertFan(const stdAc::fanspeed_t speed)
Convert a stdAc::fanspeed_t enum into it's native speed.
Definition: ir_Mitsubishi.cpp:1502
IRMitsubishi112::convertMode
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a stdAc::opmode_t enum into its native mode.
Definition: ir_Mitsubishi.cpp:1489
kMitsubishiAcWideVaneAuto
const uint8_t kMitsubishiAcWideVaneAuto
Definition: ir_Mitsubishi.h:71
kMitsubishi112PowerOffset
const uint8_t kMitsubishi112PowerOffset
Definition: ir_Mitsubishi.h:106
IRMitsubishi136::send
void send(const uint16_t repeat=kMitsubishi136MinRepeat)
Send the current internal state as an IR message.
Definition: ir_Mitsubishi.cpp:912
kMitsubishi136Fan
const uint8_t kMitsubishi136Fan
Definition: ir_Mitsubishi.h:81
IRMitsubishi112::setFan
void setFan(const uint8_t speed)
Set the speed of the fan.
Definition: ir_Mitsubishi.cpp:1369
IRMitsubishiAC::calibrate
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition: ir_Mitsubishi.h:180
IRMitsubishi112::off
void off(void)
Set the requested power state of the A/C to off.
Definition: ir_Mitsubishi.cpp:1336
IRMitsubishiAC::setMode
void setMode(const uint8_t mode)
Set the operating mode of the A/C.
Definition: ir_Mitsubishi.cpp:504
kMitsubishi136FanOffset
const uint8_t kMitsubishi136FanOffset
Definition: ir_Mitsubishi.h:94
IRMitsubishi112::getRaw
uint8_t * getRaw(void)
Get a PTR to the internal state/code for this protocol.
Definition: ir_Mitsubishi.cpp:1321
IRMitsubishi112::convertSwingH
static uint8_t convertSwingH(const stdAc::swingh_t position)
Convert a stdAc::swingh_t enum into it's native setting.
Definition: ir_Mitsubishi.cpp:1530
IRMitsubishi112::setSwingH
void setSwingH(const uint8_t position)
Set the Horizontal Swing mode of the A/C.
Definition: ir_Mitsubishi.cpp:1443
IRMitsubishi136::toCommonMode
static stdAc::opmode_t toCommonMode(const uint8_t mode)
Convert a native mode into its stdAc equivilant.
Definition: ir_Mitsubishi.cpp:1086
kMitsubishi112SwingVByte
const uint8_t kMitsubishi112SwingVByte
Definition: ir_Mitsubishi.h:128
IRMitsubishiAC::begin
void begin(void)
Set up hardware to be able to send a message.
Definition: ir_Mitsubishi.cpp:398
IRMitsubishi136::remote_state
uint8_t remote_state[kMitsubishi136StateLength]
The state in code form.
Definition: ir_Mitsubishi.h:281
IRMitsubishiAC::IRMitsubishiAC
IRMitsubishiAC(const uint16_t pin, const bool inverted=false, const bool use_modulation=true)
Class constructor.
Definition: ir_Mitsubishi.cpp:383
kMitsubishi112SwingHSize
const uint8_t kMitsubishi112SwingHSize
Definition: ir_Mitsubishi.h:139
kMitsubishi136FanMin
const uint8_t kMitsubishi136FanMin
Definition: ir_Mitsubishi.h:96
kMitsubishi136SwingVAuto
const uint8_t kMitsubishi136SwingVAuto
Definition: ir_Mitsubishi.h:91
kMitsubishiAcVaneBitOffset
const uint8_t kMitsubishiAcVaneBitOffset
Definition: ir_Mitsubishi.h:62
IRMitsubishi112::_irsend
IRsend _irsend
Instance of the IR send class.
Definition: ir_Mitsubishi.h:331
kMitsubishi136Heat
const uint8_t kMitsubishi136Heat
Definition: ir_Mitsubishi.h:83
IRMitsubishi136::setTemp
void setTemp(const uint8_t degrees)
Set the temperature.
Definition: ir_Mitsubishi.cpp:951
IRMitsubishiAC::toCommonMode
static stdAc::opmode_t toCommonMode(const uint8_t mode)
Convert a native mode into its stdAc equivilant.
Definition: ir_Mitsubishi.cpp:662
IRMitsubishi136::checksum
void checksum(void)
Calculate the checksum for the current internal state of the remote.
Definition: ir_Mitsubishi.cpp:884
kMitsubishi112FanMin
const uint8_t kMitsubishi112FanMin
Definition: ir_Mitsubishi.h:123
IRMitsubishi136::getFan
uint8_t getFan(void)
Get the current fan speed setting.
Definition: ir_Mitsubishi.cpp:974
kMitsubishiAcModeOffset
const uint8_t kMitsubishiAcModeOffset
Definition: ir_Mitsubishi.h:45
kMitsubishiAcFanRealMax
const uint8_t kMitsubishiAcFanRealMax
Definition: ir_Mitsubishi.h:57
kMitsubishiAcStartStopTimer
const uint8_t kMitsubishiAcStartStopTimer
Definition: ir_Mitsubishi.h:70
IRMitsubishiAC::convertFan
static uint8_t convertFan(const stdAc::fanspeed_t speed)
Convert a stdAc::fanspeed_t enum into it's native speed.
Definition: ir_Mitsubishi.cpp:616
IRMitsubishiAC::getTimer
uint8_t getTimer(void)
Get the timers active setting of the A/C.
Definition: ir_Mitsubishi.cpp:588
kMitsubishi112FanByte
const uint8_t kMitsubishi112FanByte
Definition: ir_Mitsubishi.h:120
kMitsubishi112SwingVHigh
const uint8_t kMitsubishi112SwingVHigh
Definition: ir_Mitsubishi.h:134
kMitsubishi112SwingHMiddle
const uint8_t kMitsubishi112SwingHMiddle
Definition: ir_Mitsubishi.h:143
IRMitsubishi112::getPower
bool getPower(void)
Get the value of the current power setting.
Definition: ir_Mitsubishi.cpp:1346
kMitsubishi136SwingVLow
const uint8_t kMitsubishi136SwingVLow
Definition: ir_Mitsubishi.h:88
kMitsubishi112FanSize
const uint8_t kMitsubishi112FanSize
Definition: ir_Mitsubishi.h:122
IRMitsubishi136::convertFan
static uint8_t convertFan(const stdAc::fanspeed_t speed)
Convert a stdAc::fanspeed_t enum into it's native speed.
Definition: ir_Mitsubishi.cpp:1059
kMitsubishiAcVaneAutoMove
const uint8_t kMitsubishiAcVaneAutoMove
Definition: ir_Mitsubishi.h:66
IRMitsubishiAC::send
void send(const uint16_t repeat=kMitsubishiACMinRepeat)
Send the current internal state as an IR message.
Definition: ir_Mitsubishi.cpp:403
IRMitsubishi136::getRaw
uint8_t * getRaw(void)
Get a PTR to the internal state/code for this protocol.
Definition: ir_Mitsubishi.cpp:919
IRMitsubishiAC::setWideVane
void setWideVane(const uint8_t position)
Set the requested wide-vane (Horizontal Swing) operation mode of the a/c.
Definition: ir_Mitsubishi.cpp:529
IRMitsubishi136::getSwingV
uint8_t getSwingV(void)
Get the Vertical Swing mode of the A/C.
Definition: ir_Mitsubishi.cpp:1024
kMitsubishi112SwingHByte
const uint8_t kMitsubishi112SwingHByte
Definition: ir_Mitsubishi.h:138
IRMitsubishi112::getSwingV
uint8_t getSwingV(void)
Get the Vertical Swing mode of the A/C.
Definition: ir_Mitsubishi.cpp:1436
kMitsubishi112Auto
const uint8_t kMitsubishi112Auto
Definition: ir_Mitsubishi.h:112
kMitsubishiAcMinTemp
const uint8_t kMitsubishiAcMinTemp
Definition: ir_Mitsubishi.h:60
kMitsubishi136SwingVLowest
const uint8_t kMitsubishi136SwingVLowest
Definition: ir_Mitsubishi.h:87
kMitsubishiAcStartTimer
const uint8_t kMitsubishiAcStartTimer
Definition: ir_Mitsubishi.h:68
IRMitsubishi136::setRaw
void setRaw(const uint8_t *data)
Set the internal state from a valid code for this protocol.
Definition: ir_Mitsubishi.cpp:926
kMitsubishi136FanByte
const uint8_t kMitsubishi136FanByte
Definition: ir_Mitsubishi.h:92
IRMitsubishi136::convertSwingV
static uint8_t convertSwingV(const stdAc::swingv_t position)
Convert a stdAc::swingv_t enum into it's native setting.
Definition: ir_Mitsubishi.cpp:1072
IRMitsubishi112::toCommonSwingV
static stdAc::swingv_t toCommonSwingV(const uint8_t pos)
Convert a native vertical swing postion to it's common equivalent.
Definition: ir_Mitsubishi.cpp:1571
kMitsubishi136PowerOffset
const uint8_t kMitsubishi136PowerOffset
Definition: ir_Mitsubishi.h:74
kMitsubishi112FanMax
const uint8_t kMitsubishi112FanMax
Definition: ir_Mitsubishi.h:126
IRMitsubishi112::on
void on(void)
Set the requested power state of the A/C to off.
Definition: ir_Mitsubishi.cpp:1333
IRMitsubishi136::_irsend
IRsend _irsend
Instance of the IR send class.
Definition: ir_Mitsubishi.h:275
IRMitsubishi136::setSwingV
void setSwingV(const uint8_t position)
Set the Vertical Swing mode of the A/C.
Definition: ir_Mitsubishi.cpp:1006
kMitsubishi136TempByte
const uint8_t kMitsubishi136TempByte
Definition: ir_Mitsubishi.h:76
IRMitsubishiAC::getTemp
uint8_t getTemp(void)
Get the current temperature setting.
Definition: ir_Mitsubishi.cpp:468
kMitsubishi112FanOffset
const uint8_t kMitsubishi112FanOffset
Definition: ir_Mitsubishi.h:121
IRMitsubishiAC::toCommon
stdAc::state_t toCommon(void)
Convert the current internal state into its stdAc::state_t equivilant.
Definition: ir_Mitsubishi.cpp:716
IRMitsubishi136::getPower
bool getPower(void)
Get the value of the current power setting.
Definition: ir_Mitsubishi.cpp:944
kMitsubishi136FanQuiet
const uint8_t kMitsubishi136FanQuiet
Definition: ir_Mitsubishi.h:100
IRMitsubishi112::setQuiet
void setQuiet(const bool on)
Set the Quiet mode of the A/C.
Definition: ir_Mitsubishi.cpp:1472
kMitsubishiAcFanAutoOffset
const uint8_t kMitsubishiAcFanAutoOffset
Definition: ir_Mitsubishi.h:55
IRMitsubishi112::setSwingV
void setSwingV(const uint8_t position)
Set the Vertical Swing mode of the A/C.
Definition: ir_Mitsubishi.cpp:1417
IRMitsubishi136::toCommonFanSpeed
static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed)
Convert a native fan speed into its stdAc equivilant.
Definition: ir_Mitsubishi.cpp:1099
kMitsubishi112SwingHOffset
const uint8_t kMitsubishi112SwingHOffset
Definition: ir_Mitsubishi.h:140
IRMitsubishi112::toCommonSwingH
static stdAc::swingh_t toCommonSwingH(const uint8_t pos)
Convert a native horizontal swing postion to it's common equivalent.
Definition: ir_Mitsubishi.cpp:1585
IRMitsubishi112::getSwingH
uint8_t getSwingH(void)
Get the Horizontal Swing mode of the A/C.
Definition: ir_Mitsubishi.cpp:1464
IRMitsubishi136::off
void off(void)
Set the requested power state of the A/C to off.
Definition: ir_Mitsubishi.cpp:934
IRMitsubishiAC::setTemp
void setTemp(const uint8_t degrees)
Set the temperature.
Definition: ir_Mitsubishi.cpp:460
kMitsubishiAcMaxTemp
const uint8_t kMitsubishiAcMaxTemp
Definition: ir_Mitsubishi.h:61
kMitsubishi136StateLength
const uint16_t kMitsubishi136StateLength
Definition: IRremoteESP8266.h:960
kMitsubishi136SwingVHigh
const uint8_t kMitsubishi136SwingVHigh
Definition: ir_Mitsubishi.h:89
kMitsubishiAcCool
const uint8_t kMitsubishiAcCool
Definition: ir_Mitsubishi.h:47
IRMitsubishiAC::toCommonSwingV
static stdAc::swingv_t toCommonSwingV(const uint8_t pos)
Convert a native vertical swing postion to it's common equivalent.
Definition: ir_Mitsubishi.cpp:688
kMitsubishi112SwingHWide
const uint8_t kMitsubishi112SwingHWide
Definition: ir_Mitsubishi.h:146
IRMitsubishi136::on
void on(void)
Set the requested power state of the A/C to on.
Definition: ir_Mitsubishi.cpp:931
IRMitsubishi112::convertSwingV
static uint8_t convertSwingV(const stdAc::swingv_t position)
Convert a stdAc::swingv_t enum into it's native setting.
Definition: ir_Mitsubishi.cpp:1516
kMitsubishi112Dry
const uint8_t kMitsubishi112Dry
Definition: ir_Mitsubishi.h:113
kMitsubishi136SwingVHighest
const uint8_t kMitsubishi136SwingVHighest
Definition: ir_Mitsubishi.h:90
IRMitsubishi112::getMode
uint8_t getMode(void)
Get the operating mode setting of the A/C.
Definition: ir_Mitsubishi.cpp:1392
IRMitsubishi136::setPower
void setPower(const bool on)
Change the power setting.
Definition: ir_Mitsubishi.cpp:938
kMitsubishiAcPower
const uint8_t kMitsubishiAcPower
Definition: ir_Mitsubishi.h:51
IRMitsubishiAC::setTimer
void setTimer(const uint8_t timer)
Set the timers active setting of the A/C.
Definition: ir_Mitsubishi.cpp:597
stdAc::state_t
Structure to hold a common A/C state.
Definition: IRsend.h:97
IRMitsubishiAC::off
void off(void)
Set the requested power state of the A/C to off.
Definition: ir_Mitsubishi.cpp:444
IRMitsubishiAC::remote_state
uint8_t remote_state[kMitsubishiACStateLength]
The state in code form.
Definition: ir_Mitsubishi.h:226
kMitsubishi112StateLength
const uint16_t kMitsubishi112StateLength
Definition: IRremoteESP8266.h:963
kMitsubishi136ModeOffset
const uint8_t kMitsubishi136ModeOffset
Definition: ir_Mitsubishi.h:80
kMitsubishi112MaxTemp
const uint8_t kMitsubishi112MaxTemp
Definition: ir_Mitsubishi.h:118
IRMitsubishi136::validChecksum
static bool validChecksum(const uint8_t *data, const uint16_t len=kMitsubishi136StateLength)
Verify the checksum is valid for a given state.
Definition: ir_Mitsubishi.cpp:894
kMitsubishiAcDry
const uint8_t kMitsubishiAcDry
Definition: ir_Mitsubishi.h:48
IRMitsubishi136::setMode
void setMode(const uint8_t mode)
Set the operating mode of the A/C.
Definition: ir_Mitsubishi.cpp:988
stdAc::opmode_t
opmode_t
Common A/C settings for A/C operating modes.
Definition: IRsend.h:46