IRremoteESP8266
ir_Fujitsu.h
Go to the documentation of this file.
1 // Copyright 2017 Jonny Graham
2 // Copyright 2018-2022 David Conran
3 // Copyright 2021 siriuslzx
4 
13 
14 // Supports:
15 // Brand: Fujitsu, Model: AR-RAH2E remote (ARRAH2E)
16 // Brand: Fujitsu, Model: ASYG30LFCA A/C (ARRAH2E)
17 // Brand: Fujitsu General, Model: AR-RCE1E remote (ARRAH2E)
18 // Brand: Fujitsu General, Model: ASHG09LLCA A/C (ARRAH2E)
19 // Brand: Fujitsu General, Model: AOHG09LLC A/C (ARRAH2E)
20 // Brand: Fujitsu, Model: AR-DB1 remote (ARDB1)
21 // Brand: Fujitsu, Model: AST9RSGCW A/C (ARDB1)
22 // Brand: Fujitsu, Model: AR-REB1E remote (ARREB1E)
23 // Brand: Fujitsu, Model: ASYG7LMCA A/C (ARREB1E)
24 // Brand: Fujitsu, Model: AR-RAE1E remote (ARRAH2E)
25 // Brand: Fujitsu, Model: AGTV14LAC A/C (ARRAH2E)
26 // Brand: Fujitsu, Model: AR-RAC1E remote (ARRAH2E)
27 // Brand: Fujitsu, Model: ASTB09LBC A/C (ARRY4)
28 // Brand: Fujitsu, Model: AR-RY4 remote (ARRY4)
29 // Brand: Fujitsu General, Model: AR-JW2 remote (ARJW2)
30 // Brand: Fujitsu, Model: AR-DL10 remote (ARDB1)
31 // Brand: Fujitsu, Model: ASU30C1 A/C (ARDB1)
32 // Brand: Fujitsu, Model: AR-RAH1U remote (ARREB1E)
33 // Brand: Fujitsu, Model: AR-RAH2U remote (ARRAH2E)
34 // Brand: Fujitsu, Model: ASU12RLF A/C (ARREB1E)
35 // Brand: Fujitsu, Model: AR-REW4E remote (ARREW4E)
36 // Brand: Fujitsu, Model: ASYG09KETA-B A/C (ARREW4E)
37 // Brand: Fujitsu, Model: AR-REB4E remote (ARREB1E)
38 // Brand: Fujitsu, Model: ASTG09K A/C (ARREW4E)
39 // Brand: Fujitsu, Model: ASTG18K A/C (ARREW4E)
40 // Brand: Fujitsu, Model: AR-REW1E remote (ARREW4E)
41 // Brand: Fujitsu, Model: AR-REG1U remote (ARRAH2E)
42 // Brand: OGeneral, Model: AR-RCL1E remote (ARRAH2E)
43 // Brand: Fujitsu General, Model: AR-JW17 remote (ARDB1)
44 
45 #ifndef IR_FUJITSU_H_
46 #define IR_FUJITSU_H_
47 
48 #define __STDC_LIMIT_MACROS
49 #include <stdint.h>
50 #ifdef ARDUINO
51 #include <Arduino.h>
52 #endif
53 #include "IRrecv.h"
54 #include "IRremoteESP8266.h"
55 #include "IRsend.h"
56 #ifdef UNIT_TEST
57 #include "IRsend_test.h"
58 #endif
59 
62  struct {
65  };
66  struct {
67  // Byte 0~1
68  uint64_t :16; // Fixed header
69  // Byte 2
70  uint64_t :4;
71  uint64_t Id :2; // Device Number/Identifier
72  uint64_t :2;
73  // Byte 3-4
74  uint64_t :16;
75  // Byte 5
76  uint64_t Cmd :8; // short codes:cmd; long codes:fixed value
77  // Byte 6
78  uint64_t RestLength :8; // Nr. of bytes in the message after this byte.
79  // Byte 7
80  uint64_t Protocol :8; // Seems like a protocol version number. Not sure.
81  // Byte 8
82  uint64_t Power :1;
83  uint64_t Fahrenheit :1;
84  uint64_t Temp :6; // Internal representation varies between models.
85  // Byte 9
86  uint64_t Mode :3;
87  uint64_t Clean :1; // Also 10C Heat in ARREW4E.
88  uint64_t TimerType :2;
89  uint64_t :2;
90  // Byte 10
91  uint64_t Fan :3;
92  uint64_t :1;
93  uint64_t Swing :2;
94  uint64_t :2;
95  // Byte 11~13
96  uint64_t OffTimer :11; // Also is the sleep timer value
97  uint64_t OffTimerEnable :1;
98  uint64_t OnTimer :11;
99  uint64_t OnTimerEnable :1;
100  // Byte 14
101  uint64_t :3;
102  uint64_t Filter :1;
103  uint64_t :1;
104  uint64_t unknown :1;
105  uint64_t :1;
106  uint64_t OutsideQuiet :1;
107  // Byte 15
108  uint64_t :0; // Checksum
109  };
110 };
111 
112 // Constants
113 const uint8_t kFujitsuAcModeAuto = 0x0; // 0b000
114 const uint8_t kFujitsuAcModeCool = 0x1; // 0b001
115 const uint8_t kFujitsuAcModeDry = 0x2; // 0b010
116 const uint8_t kFujitsuAcModeFan = 0x3; // 0b011
117 const uint8_t kFujitsuAcModeHeat = 0x4; // 0b100
118 
119 const uint8_t kFujitsuAcCmdStayOn = 0x00; // b00000000
120 const uint8_t kFujitsuAcCmdTurnOn = 0x01; // b00000001
121 const uint8_t kFujitsuAcCmdTurnOff = 0x02; // b00000010
122 const uint8_t kFujitsuAcCmdEcono = 0x09; // b00001001
123 const uint8_t kFujitsuAcCmdPowerful = 0x39; // b00111001
124 const uint8_t kFujitsuAcCmdStepVert = 0x6C; // b01101100
125 const uint8_t kFujitsuAcCmdToggleSwingVert = 0x6D; // b01101101
126 const uint8_t kFujitsuAcCmdStepHoriz = 0x79; // b01111001
127 const uint8_t kFujitsuAcCmdToggleSwingHoriz = 0x7A; // b01111010
128 
129 const uint8_t kFujitsuAcFanAuto = 0x00;
130 const uint8_t kFujitsuAcFanHigh = 0x01;
131 const uint8_t kFujitsuAcFanMed = 0x02;
132 const uint8_t kFujitsuAcFanLow = 0x03;
133 const uint8_t kFujitsuAcFanQuiet = 0x04;
134 
135 const float kFujitsuAcMinHeat = 10; // 10C
136 const float kFujitsuAcMinTemp = 16; // 16C
137 const float kFujitsuAcMaxTemp = 30; // 30C
139 const float kFujitsuAcMinHeatF = 50; // 50F
140 const float kFujitsuAcMinTempF = 60; // 60F
141 const float kFujitsuAcMaxTempF = 88; // 88F
142 const uint8_t kFujitsuAcTempOffsetF = 44;
143 
144 const uint8_t kFujitsuAcSwingOff = 0x00;
145 const uint8_t kFujitsuAcSwingVert = 0x01;
146 const uint8_t kFujitsuAcSwingHoriz = 0x02;
147 const uint8_t kFujitsuAcSwingBoth = 0x03;
148 
149 const uint8_t kFujitsuAcStopTimers = 0b00; // 0
150 const uint8_t kFujitsuAcSleepTimer = 0b01; // 1
151 const uint8_t kFujitsuAcOffTimer = 0b10; // 2
152 const uint8_t kFujitsuAcOnTimer = 0b11; // 3
153 const uint16_t kFujitsuAcTimerMax = 12 * 60;
154 
155 // Legacy defines.
156 #define FUJITSU_AC_MODE_AUTO kFujitsuAcModeAuto
157 #define FUJITSU_AC_MODE_COOL kFujitsuAcModeCool
158 #define FUJITSU_AC_MODE_DRY kFujitsuAcModeDry
159 #define FUJITSU_AC_MODE_FAN kFujitsuAcModeFan
160 #define FUJITSU_AC_MODE_HEAT kFujitsuAcModeHeat
161 #define FUJITSU_AC_CMD_STAY_ON kFujitsuAcCmdStayOn
162 #define FUJITSU_AC_CMD_TURN_ON kFujitsuAcCmdTurnOn
163 #define FUJITSU_AC_CMD_TURN_OFF kFujitsuAcCmdTurnOff
164 #define FUJITSU_AC_CMD_STEP_HORIZ kFujitsuAcCmdStepHoriz
165 #define FUJITSU_AC_CMD_STEP_VERT kFujitsuAcCmdStepVert
166 #define FUJITSU_AC_FAN_AUTO kFujitsuAcFanAuto
167 #define FUJITSU_AC_FAN_HIGH kFujitsuAcFanHigh
168 #define FUJITSU_AC_FAN_MED kFujitsuAcFanMed
169 #define FUJITSU_AC_FAN_LOW kFujitsuAcFanLow
170 #define FUJITSU_AC_FAN_QUIET kFujitsuAcFanQuiet
171 #define FUJITSU_AC_MIN_TEMP kFujitsuAcMinTemp
172 #define FUJITSU_AC_MAX_TEMP kFujitsuAcMaxTemp
173 #define FUJITSU_AC_SWING_OFF kFujitsuAcSwingOff
174 #define FUJITSU_AC_SWING_VERT kFujitsuAcSwingVert
175 #define FUJITSU_AC_SWING_HORIZ kFujitsuAcSwingHoriz
176 #define FUJITSU_AC_SWING_BOTH kFujitsuAcSwingBoth
177 
179 class IRFujitsuAC {
180  public:
181  explicit IRFujitsuAC(const uint16_t pin,
182  const fujitsu_ac_remote_model_t model = ARRAH2E,
183  const bool inverted = false,
184  const bool use_modulation = true);
185  void setModel(const fujitsu_ac_remote_model_t model);
187  void stateReset(void);
188 #if SEND_FUJITSU_AC
189  void send(const uint16_t repeat = kFujitsuAcMinRepeat);
194  int8_t calibrate(void) { return _irsend.calibrate(); }
195 #endif // SEND_FUJITSU_AC
196  void begin(void);
197  void stepHoriz(void);
198  void toggleSwingHoriz(const bool update = true);
199  void stepVert(void);
200  void toggleSwingVert(const bool update = true);
201  void setCmd(const uint8_t cmd);
202  uint8_t getCmd(void) const;
203  void setTemp(const float temp, const bool useCelsius = true);
204  float getTemp(void) const;
205  void setFanSpeed(const uint8_t fan);
206  uint8_t getFanSpeed(void) const;
207  void setMode(const uint8_t mode);
208  uint8_t getMode(void) const;
209  void setSwing(const uint8_t mode);
210  uint8_t getSwing(void) const;
211  uint8_t* getRaw(void);
212  bool setRaw(const uint8_t newState[], const uint16_t length);
213  uint8_t getStateLength(void);
214  static bool validChecksum(uint8_t* state, const uint16_t length);
215  bool isLongCode(void) const;
216  void setPower(const bool on);
217  void off(void);
218  void on(void);
219  bool getPower(void) const;
220  void setClean(const bool on);
221  bool getClean(void) const;
222  void setFilter(const bool on);
223  bool getFilter(void) const;
224  void set10CHeat(const bool on);
225  bool get10CHeat(void) const;
226  void setOutsideQuiet(const bool on);
227  bool getOutsideQuiet(void) const;
228  uint8_t getTimerType(void) const;
229  void setTimerType(const uint8_t timertype);
230  uint16_t getOnTimer(void) const;
231  void setOnTimer(const uint16_t nr_mins);
232  uint16_t getOffSleepTimer(void) const;
233  void setOffTimer(const uint16_t nr_mins);
234  void setSleepTimer(const uint16_t nr_mins);
235  void setId(const uint8_t num);
236  uint8_t getId(void) const;
237  void setCelsius(const bool on);
238  bool getCelsius(void) const;
239  static uint8_t convertMode(const stdAc::opmode_t mode);
240  static uint8_t convertFan(stdAc::fanspeed_t speed);
241  static stdAc::opmode_t toCommonMode(const uint8_t mode);
242  static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed);
243  stdAc::state_t toCommon(const stdAc::state_t *prev = NULL);
244  String toString(void) const;
245 #ifndef UNIT_TEST
246 
247  private:
249 #else
250  IRsendTest _irsend;
252 #endif
255  uint8_t _cmd;
257  uint8_t _state_length;
260  void checkSum(void);
261  bool updateUseLongOrShort(void);
262  void buildFromState(const uint16_t length);
263  void setOffSleepTimer(const uint16_t nr_mins);
264 };
265 
266 #endif // IR_FUJITSU_H_
FujitsuProtocol::OffTimerEnable
uint64_t OffTimerEnable
Definition: ir_Fujitsu.h:97
IRFujitsuAC::setOnTimer
void setOnTimer(const uint16_t nr_mins)
Set the On Timer setting of the A/C.
Definition: ir_Fujitsu.cpp:660
IRFujitsuAC::getTemp
float getTemp(void) const
Get the current temperature setting.
Definition: ir_Fujitsu.cpp:488
kFujitsuAcCmdTurnOff
const uint8_t kFujitsuAcCmdTurnOff
Definition: ir_Fujitsu.h:121
IRFujitsuAC::getOnTimer
uint16_t getOnTimer(void) const
Get the On Timer setting of the A/C.
Definition: ir_Fujitsu.cpp:652
kFujitsuAcMinTemp
const float kFujitsuAcMinTemp
Definition: ir_Fujitsu.h:136
kFujitsuAcMinRepeat
const uint16_t kFujitsuAcMinRepeat
Definition: IRremoteESP8266.h:1239
IRFujitsuAC::set10CHeat
void set10CHeat(const bool on)
Set the 10C heat status of the A/C.
Definition: ir_Fujitsu.cpp:594
IRFujitsuAC::_cmd
uint8_t _cmd
Definition: ir_Fujitsu.h:255
FujitsuProtocol::Id
uint64_t Id
Definition: ir_Fujitsu.h:71
IRFujitsuAC::getCmd
uint8_t getCmd(void) const
Set the requested (special) command part for the A/C message.
Definition: ir_Fujitsu.cpp:401
IRFujitsuAC::getTimerType
uint8_t getTimerType(void) const
Get the Timer type of the A/C message.
Definition: ir_Fujitsu.cpp:626
stdAc::fanspeed_t
fanspeed_t
Common A/C settings for Fan Speeds.
Definition: IRsend.h:61
IRFujitsuAC::calibrate
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition: ir_Fujitsu.h:194
IRFujitsuAC::setClean
void setClean(const bool on)
Set the Clean mode of the A/C.
Definition: ir_Fujitsu.cpp:560
IRFujitsuAC::getFanSpeed
uint8_t getFanSpeed(void) const
Get the current fan speed setting.
Definition: ir_Fujitsu.cpp:512
kFujitsuAcCmdToggleSwingVert
const uint8_t kFujitsuAcCmdToggleSwingVert
Definition: ir_Fujitsu.h:125
IRFujitsuAC::getRaw
uint8_t * getRaw(void)
Get a PTR to the internal state/code for this protocol.
Definition: ir_Fujitsu.cpp:257
IRFujitsuAC::setTimerType
void setTimerType(const uint8_t timertype)
Set the Timer type of the A/C message.
Definition: ir_Fujitsu.cpp:637
IRFujitsuAC::getMode
uint8_t getMode(void) const
Get the operating mode setting of the A/C.
Definition: ir_Fujitsu.cpp:527
IRFujitsuAC::toCommon
stdAc::state_t toCommon(const stdAc::state_t *prev=NULL)
Convert the current internal state into its stdAc::state_t equivalent.
Definition: ir_Fujitsu.cpp:810
IRsend.h
IRFujitsuAC::stepVert
void stepVert(void)
Request the A/C to step the Vertical Swing.
Definition: ir_Fujitsu.cpp:348
IRFujitsuAC::isLongCode
bool isLongCode(void) const
Is the current binary state representation a long or a short code?
Definition: ir_Fujitsu.cpp:251
kFujitsuAcMinTempF
const float kFujitsuAcMinTempF
Definition: ir_Fujitsu.h:140
IRFujitsuAC::setCelsius
void setCelsius(const bool on)
Set the Temperature units for the A/C.
Definition: ir_Fujitsu.cpp:745
IRsend
Class for sending all basic IR protocols.
Definition: IRsend.h:237
IRFujitsuAC::convertMode
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a stdAc::opmode_t enum into its native mode.
Definition: ir_Fujitsu.cpp:757
IRFujitsuAC::stateReset
void stateReset(void)
Reset the state of the remote to a known good state/sequence.
Definition: ir_Fujitsu.cpp:101
IRsend::calibrate
int8_t calibrate(uint16_t hz=38000U)
Calculate & set any offsets to account for execution times during sending.
Definition: IRsend.cpp:207
FujitsuProtocol::TimerType
uint64_t TimerType
Definition: ir_Fujitsu.h:88
FujitsuProtocol::Power
uint64_t Power
Definition: ir_Fujitsu.h:82
IRFujitsuAC::getSwing
uint8_t getSwing(void) const
Get the requested swing operation mode of the A/C unit.
Definition: ir_Fujitsu.cpp:556
FujitsuProtocol::Fan
uint64_t Fan
Definition: ir_Fujitsu.h:91
kFujitsuAcFanAuto
const uint8_t kFujitsuAcFanAuto
Definition: ir_Fujitsu.h:129
IRFujitsuAC::setRaw
bool setRaw(const uint8_t newState[], const uint16_t length)
Set the internal state from a valid code for this protocol.
Definition: ir_Fujitsu.cpp:322
String
std::string String
Definition: IRremoteESP8266.h:1521
FujitsuProtocol::OutsideQuiet
uint64_t OutsideQuiet
Definition: ir_Fujitsu.h:106
IRFujitsuAC::getOutsideQuiet
bool getOutsideQuiet(void) const
Get the Outside Quiet mode status of the A/C.
Definition: ir_Fujitsu.cpp:431
IRFujitsuAC::updateUseLongOrShort
bool updateUseLongOrShort(void)
Update the length (size) of the state code for the current configuration.
Definition: ir_Fujitsu.cpp:135
kFujitsuAcMinHeat
const float kFujitsuAcMinHeat
Definition: ir_Fujitsu.h:135
FujitsuProtocol
Native representation of a Fujitsu A/C message.
Definition: ir_Fujitsu.h:61
kFujitsuAcCmdTurnOn
const uint8_t kFujitsuAcCmdTurnOn
Definition: ir_Fujitsu.h:120
IRFujitsuAC::_state_length_short
uint8_t _state_length_short
Definition: ir_Fujitsu.h:258
IRFujitsuAC::getClean
bool getClean(void) const
Get the Clean mode status of the A/C.
Definition: ir_Fujitsu.cpp:568
kFujitsuAcFanHigh
const uint8_t kFujitsuAcFanHigh
Definition: ir_Fujitsu.h:130
FujitsuProtocol::Swing
uint64_t Swing
Definition: ir_Fujitsu.h:93
kFujitsuAcMaxTemp
const float kFujitsuAcMaxTemp
Definition: ir_Fujitsu.h:137
FujitsuProtocol::OffTimer
uint64_t OffTimer
Definition: ir_Fujitsu.h:96
kFujitsuAcModeHeat
const uint8_t kFujitsuAcModeHeat
Definition: ir_Fujitsu.h:117
IRFujitsuAC::setFilter
void setFilter(const bool on)
Set the Filter mode status of the A/C.
Definition: ir_Fujitsu.cpp:577
IRFujitsuAC::convertFan
static uint8_t convertFan(stdAc::fanspeed_t speed)
Convert a stdAc::fanspeed_t enum into it's native speed.
Definition: ir_Fujitsu.cpp:770
IRremoteESP8266.h
FujitsuProtocol::Fahrenheit
uint64_t Fahrenheit
Definition: ir_Fujitsu.h:83
IRFujitsuAC::getPower
bool getPower(void) const
Get the value of the current power setting.
Definition: ir_Fujitsu.cpp:419
IRFujitsuAC::_
FujitsuProtocol _
Definition: ir_Fujitsu.h:254
IRFujitsuAC::stepHoriz
void stepHoriz(void)
Request the A/C to step the Horizontal Swing.
Definition: ir_Fujitsu.cpp:336
kFujitsuAcCmdToggleSwingHoriz
const uint8_t kFujitsuAcCmdToggleSwingHoriz
Definition: ir_Fujitsu.h:127
FujitsuProtocol::Protocol
uint64_t Protocol
Definition: ir_Fujitsu.h:80
IRFujitsuAC::_irsend
IRsend _irsend
Instance of the IR send class.
Definition: ir_Fujitsu.h:248
FujitsuProtocol::OnTimerEnable
uint64_t OnTimerEnable
Definition: ir_Fujitsu.h:99
fujitsu_ac_remote_model_t
fujitsu_ac_remote_model_t
Fujitsu A/C model numbers.
Definition: IRsend.h:140
kFujitsuAcStopTimers
const uint8_t kFujitsuAcStopTimers
Definition: ir_Fujitsu.h:149
IRFujitsuAC::setCmd
void setCmd(const uint8_t cmd)
Set the requested (special) command part for the A/C message.
Definition: ir_Fujitsu.cpp:361
IRFujitsuAC::setOffTimer
void setOffTimer(const uint16_t nr_mins)
Set the Off Timer time for the A/C.
Definition: ir_Fujitsu.cpp:689
IRFujitsuAC::buildFromState
void buildFromState(const uint16_t length)
Build the internal state/config from the current (raw) A/C message.
Definition: ir_Fujitsu.cpp:264
FujitsuProtocol::OnTimer
uint64_t OnTimer
Definition: ir_Fujitsu.h:98
FujitsuProtocol::Mode
uint64_t Mode
Definition: ir_Fujitsu.h:86
FujitsuProtocol::Cmd
uint64_t Cmd
Definition: ir_Fujitsu.h:76
IRFujitsuAC::begin
void begin(void)
Set up hardware to be able to send a message.
Definition: ir_Fujitsu.cpp:123
IRFujitsuAC::setTemp
void setTemp(const float temp, const bool useCelsius=true)
Set the temperature.
Definition: ir_Fujitsu.cpp:444
IRFujitsuAC::setId
void setId(const uint8_t num)
Set the device's remote ID number.
Definition: ir_Fujitsu.cpp:734
IRFujitsuAC::_rawstatemodified
bool _rawstatemodified
Definition: ir_Fujitsu.h:259
kFujitsuAcStateLengthShort
const uint16_t kFujitsuAcStateLengthShort
Definition: IRremoteESP8266.h:1241
IRFujitsuAC
Class for handling detailed Fujitsu A/C messages.
Definition: ir_Fujitsu.h:179
kFujitsuAcCmdStepVert
const uint8_t kFujitsuAcCmdStepVert
Definition: ir_Fujitsu.h:124
IRFujitsuAC::setSwing
void setSwing(const uint8_t mode)
Set the requested swing operation mode of the A/C unit.
Definition: ir_Fujitsu.cpp:533
kFujitsuAcStateLength
const uint16_t kFujitsuAcStateLength
Definition: IRremoteESP8266.h:1240
kFujitsuAcCmdPowerful
const uint8_t kFujitsuAcCmdPowerful
Definition: ir_Fujitsu.h:123
FujitsuProtocol::Temp
uint64_t Temp
Definition: ir_Fujitsu.h:84
IRFujitsuAC::toCommonMode
static stdAc::opmode_t toCommonMode(const uint8_t mode)
Convert a native mode into its stdAc equivalent.
Definition: ir_Fujitsu.cpp:784
IRFujitsuAC::getCelsius
bool getCelsius(void) const
Get the Clean mode status of the A/C.
Definition: ir_Fujitsu.cpp:752
kFujitsuAcCmdStepHoriz
const uint8_t kFujitsuAcCmdStepHoriz
Definition: ir_Fujitsu.h:126
IRFujitsuAC::setMode
void setMode(const uint8_t mode)
Set the operating mode of the A/C.
Definition: ir_Fujitsu.cpp:516
kFujitsuAcSwingHoriz
const uint8_t kFujitsuAcSwingHoriz
Definition: ir_Fujitsu.h:146
kFujitsuAcSwingVert
const uint8_t kFujitsuAcSwingVert
Definition: ir_Fujitsu.h:145
IRFujitsuAC::toCommonFanSpeed
static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed)
Convert a native fan speed into its stdAc equivalent.
Definition: ir_Fujitsu.cpp:797
IRFujitsuAC::getFilter
bool getFilter(void) const
Get the Filter mode status of the A/C.
Definition: ir_Fujitsu.cpp:585
IRFujitsuAC::toggleSwingVert
void toggleSwingVert(const bool update=true)
Request the A/C to toggle the Vertical Swing mode.
Definition: ir_Fujitsu.cpp:352
IRFujitsuAC::get10CHeat
bool get10CHeat(void) const
Get the 10C heat status of the A/C.
Definition: ir_Fujitsu.cpp:614
IRrecv.h
kFujitsuAcMaxTempF
const float kFujitsuAcMaxTempF
Definition: ir_Fujitsu.h:141
FujitsuProtocol::Clean
uint64_t Clean
Definition: ir_Fujitsu.h:87
IRFujitsuAC::toString
String toString(void) const
Convert the current internal state into a human readable string.
Definition: ir_Fujitsu.cpp:862
IRFujitsuAC::getId
uint8_t getId(void) const
Get the current device's remote ID number.
Definition: ir_Fujitsu.cpp:741
kFujitsuAcModeAuto
const uint8_t kFujitsuAcModeAuto
Definition: ir_Fujitsu.h:113
kFujitsuAcMinHeatF
const float kFujitsuAcMinHeatF
Definition: ir_Fujitsu.h:139
IRFujitsuAC::setOutsideQuiet
void setOutsideQuiet(const bool on)
Set the Outside Quiet mode of the A/C.
Definition: ir_Fujitsu.cpp:423
FujitsuProtocol::shortcode
uint8_t shortcode[kFujitsuAcStateLengthShort]
Definition: ir_Fujitsu.h:64
kFujitsuAcSwingOff
const uint8_t kFujitsuAcSwingOff
Definition: ir_Fujitsu.h:144
IRFujitsuAC::setModel
void setModel(const fujitsu_ac_remote_model_t model)
Set the currently emulated model of the A/C.
Definition: ir_Fujitsu.cpp:79
kFujitsuAcModeDry
const uint8_t kFujitsuAcModeDry
Definition: ir_Fujitsu.h:115
ARRAH2E
@ ARRAH2E
(1) AR-RAH2E, AR-RAC1E, AR-RAE1E, AR-RCE1E, AR-RAH2U, AR-REG1U (Default) Warning: Use on incorrect mo...
Definition: IRsend.h:141
kFujitsuAcSleepTimer
const uint8_t kFujitsuAcSleepTimer
Definition: ir_Fujitsu.h:150
IRFujitsuAC::getStateLength
uint8_t getStateLength(void)
Get the length (size) of the state code for the current configuration.
Definition: ir_Fujitsu.cpp:245
kFujitsuAcTempOffsetC
const uint8_t kFujitsuAcTempOffsetC
Definition: ir_Fujitsu.h:138
kFujitsuAcFanMed
const uint8_t kFujitsuAcFanMed
Definition: ir_Fujitsu.h:131
IRFujitsuAC::IRFujitsuAC
IRFujitsuAC(const uint16_t pin, const fujitsu_ac_remote_model_t model=ARRAH2E, const bool inverted=false, const bool use_modulation=true)
Class Constructor.
Definition: ir_Fujitsu.cpp:69
IRFujitsuAC::setSleepTimer
void setSleepTimer(const uint16_t nr_mins)
Set the Sleep Timer time for the A/C.
Definition: ir_Fujitsu.cpp:699
kFujitsuAcTempOffsetF
const uint8_t kFujitsuAcTempOffsetF
Definition: ir_Fujitsu.h:142
kFujitsuAcSwingBoth
const uint8_t kFujitsuAcSwingBoth
Definition: ir_Fujitsu.h:147
IRFujitsuAC::_model
fujitsu_ac_remote_model_t _model
Definition: ir_Fujitsu.h:256
FujitsuProtocol::Filter
uint64_t Filter
Definition: ir_Fujitsu.h:102
kFujitsuAcCmdStayOn
const uint8_t kFujitsuAcCmdStayOn
Definition: ir_Fujitsu.h:119
FujitsuProtocol::unknown
uint64_t unknown
Definition: ir_Fujitsu.h:104
IRFujitsuAC::getModel
fujitsu_ac_remote_model_t getModel(void) const
Get the currently emulated/detected model of the A/C.
Definition: ir_Fujitsu.cpp:98
kFujitsuAcOnTimer
const uint8_t kFujitsuAcOnTimer
Definition: ir_Fujitsu.h:152
IRFujitsuAC::setFanSpeed
void setFanSpeed(const uint8_t fan)
Set the speed of the fan.
Definition: ir_Fujitsu.cpp:501
kFujitsuAcOffTimer
const uint8_t kFujitsuAcOffTimer
Definition: ir_Fujitsu.h:151
IRFujitsuAC::off
void off(void)
Set the requested power state of the A/C to off.
Definition: ir_Fujitsu.cpp:412
IRFujitsuAC::setPower
void setPower(const bool on)
Change the power setting.
Definition: ir_Fujitsu.cpp:407
IRFujitsuAC::on
void on(void)
Set the requested power state of the A/C to on.
Definition: ir_Fujitsu.cpp:415
IRFujitsuAC::send
void send(const uint16_t repeat=kFujitsuAcMinRepeat)
Send the current internal state as an IR message.
Definition: ir_Fujitsu.cpp:128
IRFujitsuAC::setOffSleepTimer
void setOffSleepTimer(const uint16_t nr_mins)
Set the Off/Sleep Timer time for the A/C.
Definition: ir_Fujitsu.cpp:682
IRFujitsuAC::checkSum
void checkSum(void)
Calculate and set the checksum values for the internal state.
Definition: ir_Fujitsu.cpp:170
IRFujitsuAC::validChecksum
static bool validChecksum(uint8_t *state, const uint16_t length)
Verify the checksum is valid for a given state.
Definition: ir_Fujitsu.cpp:711
IRFujitsuAC::getOffSleepTimer
uint16_t getOffSleepTimer(void) const
Get the Off/Sleep Timer setting of the A/C.
Definition: ir_Fujitsu.cpp:672
IRFujitsuAC::_state_length
uint8_t _state_length
Definition: ir_Fujitsu.h:257
kFujitsuAcTimerMax
const uint16_t kFujitsuAcTimerMax
Minutes.
Definition: ir_Fujitsu.h:153
IRFujitsuAC::toggleSwingHoriz
void toggleSwingHoriz(const bool update=true)
Request the A/C to toggle the Horizontal Swing mode.
Definition: ir_Fujitsu.cpp:340
kFujitsuAcModeFan
const uint8_t kFujitsuAcModeFan
Definition: ir_Fujitsu.h:116
stdAc::state_t
Structure to hold a common A/C state.
Definition: IRsend.h:114
kFujitsuAcCmdEcono
const uint8_t kFujitsuAcCmdEcono
Definition: ir_Fujitsu.h:122
kFujitsuAcFanQuiet
const uint8_t kFujitsuAcFanQuiet
Definition: ir_Fujitsu.h:133
FujitsuProtocol::RestLength
uint64_t RestLength
Definition: ir_Fujitsu.h:78
FujitsuProtocol::longcode
uint8_t longcode[kFujitsuAcStateLength]
The state of the IR remote.
Definition: ir_Fujitsu.h:63
kFujitsuAcFanLow
const uint8_t kFujitsuAcFanLow
Definition: ir_Fujitsu.h:132
kFujitsuAcModeCool
const uint8_t kFujitsuAcModeCool
Definition: ir_Fujitsu.h:114
stdAc::opmode_t
opmode_t
Common A/C settings for A/C operating modes.
Definition: IRsend.h:49