IRremoteESP8266
ir_Gree.h
Go to the documentation of this file.
1 // Copyright 2016-2022 David Conran
2 
8 
9 // Supports:
10 // Brand: Ultimate, Model: Heat Pump
11 // Brand: EKOKAI, Model: A/C
12 // Brand: RusClimate, Model: EACS/I-09HAR_X/N3 A/C
13 // Brand: RusClimate, Model: YAW1F remote
14 // Brand: Green, Model: YBOFB remote
15 // Brand: Green, Model: YBOFB2 remote
16 // Brand: Gree, Model: YAA1FBF remote
17 // Brand: Gree, Model: YB1F2F remote
18 // Brand: Gree, Model: YAN1F1 remote
19 // Brand: Gree, Model: YX1F2F remote (YX1FSF)
20 // Brand: Gree, Model: VIR09HP115V1AH A/C
21 // Brand: Gree, Model: VIR12HP230V1AH A/C
22 // Brand: Amana, Model: PBC093G00CC A/C
23 // Brand: Amana, Model: YX1FF remote
24 // Brand: Cooper & Hunter, Model: YB1F2 remote
25 // Brand: Cooper & Hunter, Model: CH-S09FTXG A/C
26 // Brand: Vailland, Model: YACIFB remote
27 // Brand: Vailland, Model: VAI5-035WNI A/C
28 // Brand: Soleus Air, Model: window A/C (YX1FSF)
29 
30 #ifndef IR_GREE_H_
31 #define IR_GREE_H_
32 
33 #define __STDC_LIMIT_MACROS
34 #include <stdint.h>
35 #ifndef UNIT_TEST
36 #include <Arduino.h>
37 #endif
38 #include "IRremoteESP8266.h"
39 #include "IRsend.h"
40 #ifdef UNIT_TEST
41 #include "IRsend_test.h"
42 #endif
43 
47  struct {
48  // Byte 0
49  uint8_t Mode :3;
50  uint8_t Power :1;
51  uint8_t Fan :2;
52  uint8_t SwingAuto :1;
53  uint8_t Sleep :1;
54  // Byte 1
55  uint8_t Temp :4;
56  uint8_t TimerHalfHr :1;
57  uint8_t TimerTensHr :2;
58  uint8_t TimerEnabled:1;
59  // Byte 2
60  uint8_t TimerHours:4;
61  uint8_t Turbo :1;
62  uint8_t Light :1;
63  uint8_t ModelA :1; // model==YAW1F
64  uint8_t Xfan :1;
65  // Byte 3
66  uint8_t :2;
67  uint8_t TempExtraDegreeF:1;
68  uint8_t UseFahrenheit :1;
69  uint8_t unknown1 :4; // value=0b0101
70  // Byte 4
71  uint8_t SwingV :4;
72  uint8_t SwingH :3;
73  uint8_t :1;
74  // Byte 5
75  uint8_t DisplayTemp :2;
76  uint8_t IFeel :1;
77  uint8_t unknown2 :3; // value = 0b100
78  uint8_t WiFi :1;
79  uint8_t :1;
80  // Byte 6
81  uint8_t :8;
82  // Byte 7
83  uint8_t :2;
84  uint8_t Econo :1;
85  uint8_t :1;
86  uint8_t Sum :4;
87  };
88 };
89 
90 // Constants
91 
92 const uint8_t kGreeAuto = 0;
93 const uint8_t kGreeCool = 1;
94 const uint8_t kGreeDry = 2;
95 const uint8_t kGreeFan = 3;
96 const uint8_t kGreeHeat = 4;
97 const uint8_t kGreeEcono = 5;
98 
99 const uint8_t kGreeFanAuto = 0;
100 const uint8_t kGreeFanMin = 1;
101 const uint8_t kGreeFanMed = 2;
102 const uint8_t kGreeFanMax = 3;
103 
104 const uint8_t kGreeMinTempC = 16; // Celsius
105 const uint8_t kGreeMaxTempC = 30; // Celsius
106 const uint8_t kGreeMinTempF = 61; // Fahrenheit
107 const uint8_t kGreeMaxTempF = 86; // Fahrenheit
108 const uint16_t kGreeTimerMax = 24 * 60;
109 
110 const uint8_t kGreeSwingLastPos = 0b0000; // 0
111 const uint8_t kGreeSwingAuto = 0b0001; // 1
112 const uint8_t kGreeSwingUp = 0b0010; // 2
113 const uint8_t kGreeSwingMiddleUp = 0b0011; // 3
114 const uint8_t kGreeSwingMiddle = 0b0100; // 4
115 const uint8_t kGreeSwingMiddleDown = 0b0101; // 5
116 const uint8_t kGreeSwingDown = 0b0110; // 6
117 const uint8_t kGreeSwingDownAuto = 0b0111; // 7
118 const uint8_t kGreeSwingMiddleAuto = 0b1001; // 9
119 const uint8_t kGreeSwingUpAuto = 0b1011; // 11
120 
121 const uint8_t kGreeSwingHOff = 0b000; // 0
122 const uint8_t kGreeSwingHAuto = 0b001; // 1
123 const uint8_t kGreeSwingHMaxLeft = 0b010; // 2
124 const uint8_t kGreeSwingHLeft = 0b011; // 3
125 const uint8_t kGreeSwingHMiddle = 0b100; // 4
126 const uint8_t kGreeSwingHRight = 0b101; // 5
127 const uint8_t kGreeSwingHMaxRight = 0b110; // 6
128 
129 const uint8_t kGreeDisplayTempOff = 0b00; // 0
130 const uint8_t kGreeDisplayTempSet = 0b01; // 1
131 const uint8_t kGreeDisplayTempInside = 0b10; // 2
132 const uint8_t kGreeDisplayTempOutside = 0b11; // 3
133 
134 // Legacy defines.
135 #define GREE_AUTO kGreeAuto
136 #define GREE_COOL kGreeCool
137 #define GREE_DRY kGreeDry
138 #define GREE_FAN kGreeFan
139 #define GREE_HEAT kGreeHeat
140 #define GREE_MIN_TEMP kGreeMinTempC
141 #define GREE_MAX_TEMP kGreeMaxTempC
142 #define GREE_FAN_MAX kGreeFanMax
143 #define GREE_SWING_LAST_POS kGreeSwingLastPos
144 #define GREE_SWING_AUTO kGreeSwingAuto
145 #define GREE_SWING_UP kGreeSwingUp
146 #define GREE_SWING_MIDDLE_UP kGreeSwingMiddleUp
147 #define GREE_SWING_MIDDLE kGreeSwingMiddle
148 #define GREE_SWING_MIDDLE_DOWN kGreeSwingMiddleDown
149 #define GREE_SWING_DOWN kGreeSwingDown
150 #define GREE_SWING_DOWN_AUTO kGreeSwingDownAuto
151 #define GREE_SWING_MIDDLE_AUTO kGreeSwingMiddleAuto
152 #define GREE_SWING_UP_AUTO kGreeSwingUpAuto
153 
154 // Classes
156 class IRGreeAC {
157  public:
158  explicit IRGreeAC(
159  const uint16_t pin,
161  const bool inverted = false, const bool use_modulation = true);
162  void stateReset(void);
163 #if SEND_GREE
164  void send(const uint16_t repeat = kGreeDefaultRepeat);
169  int8_t calibrate(void) { return _irsend.calibrate(); }
170 #endif // SEND_GREE
171  void begin(void);
172  void on(void);
173  void off(void);
174  void setModel(const gree_ac_remote_model_t model);
175  gree_ac_remote_model_t getModel(void) const;
176  void setPower(const bool on);
177  bool getPower(void) const;
178  void setTemp(const uint8_t temp, const bool fahrenheit = false);
179  uint8_t getTemp(void) const;
180  void setUseFahrenheit(const bool on);
181  bool getUseFahrenheit(void) const;
182  void setFan(const uint8_t speed);
183  uint8_t getFan(void) const;
184  void setMode(const uint8_t new_mode);
185  uint8_t getMode(void) const;
186  void setLight(const bool on);
187  bool getLight(void) const;
188  void setXFan(const bool on);
189  bool getXFan(void) const;
190  void setSleep(const bool on);
191  bool getSleep(void) const;
192  void setTurbo(const bool on);
193  bool getTurbo(void) const;
194  void setEcono(const bool on);
195  bool getEcono(void) const;
196  void setIFeel(const bool on);
197  bool getIFeel(void) const;
198  void setWiFi(const bool on);
199  bool getWiFi(void) const;
200  void setSwingVertical(const bool automatic, const uint8_t position);
201  bool getSwingVerticalAuto(void) const;
202  uint8_t getSwingVerticalPosition(void) const;
203  void setSwingHorizontal(const uint8_t position);
204  uint8_t getSwingHorizontal(void) const;
205  uint16_t getTimer(void) const;
206  void setTimer(const uint16_t minutes);
207  void setDisplayTempSource(const uint8_t mode);
208  uint8_t getDisplayTempSource(void) const;
209  static uint8_t convertMode(const stdAc::opmode_t mode);
210  static uint8_t convertFan(const stdAc::fanspeed_t speed);
211  static uint8_t convertSwingV(const stdAc::swingv_t swingv);
212  static uint8_t convertSwingH(const stdAc::swingh_t swingh);
213  static stdAc::opmode_t toCommonMode(const uint8_t mode);
214  static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed);
215  static stdAc::swingv_t toCommonSwingV(const uint8_t pos);
216  static stdAc::swingh_t toCommonSwingH(const uint8_t pos);
217  stdAc::state_t toCommon(void);
218  uint8_t* getRaw(void);
219  void setRaw(const uint8_t new_code[]);
220  static bool validChecksum(const uint8_t state[],
221  const uint16_t length = kGreeStateLength);
222  String toString(void);
223 #ifndef UNIT_TEST
224 
225  private:
227 #else // UNIT_TEST
228  IRsendTest _irsend;
230 #endif // UNIT_TEST
234  void checksum(const uint16_t length = kGreeStateLength);
235  void fixup(void);
236  void setTimerEnabled(const bool on);
237  bool getTimerEnabled(void) const;
238 };
239 
240 #endif // IR_GREE_H_
IRGreeAC::setSwingVertical
void setSwingVertical(const bool automatic, const uint8_t position)
Set the Vertical Swing mode of the A/C.
Definition: ir_Gree.cpp:373
GreeProtocol::ModelA
uint8_t ModelA
Definition: ir_Gree.h:63
kGreeSwingHLeft
const uint8_t kGreeSwingHLeft
Definition: ir_Gree.h:124
GreeProtocol::Temp
uint8_t Temp
Definition: ir_Gree.h:55
GreeProtocol::Mode
uint8_t Mode
Definition: ir_Gree.h:49
IRGreeAC::_
GreeProtocol _
Definition: ir_Gree.h:232
IRGreeAC::getMode
uint8_t getMode(void) const
Get the operating mode setting of the A/C.
Definition: ir_Gree.cpp:306
IRGreeAC::getWiFi
bool getWiFi(void) const
Get the Wifi (enabled) setting of the A/C.
Definition: ir_Gree.cpp:330
kGreeStateLength
const uint16_t kGreeStateLength
Definition: IRremoteESP8266.h:1249
kGreeSwingUp
const uint8_t kGreeSwingUp
Definition: ir_Gree.h:112
stdAc::swingv_t
swingv_t
Common A/C settings for Vertical Swing.
Definition: IRsend.h:74
IRGreeAC::validChecksum
static bool validChecksum(const uint8_t state[], const uint16_t length=kGreeStateLength)
Verify the checksum is valid for a given state.
Definition: ir_Gree.cpp:179
IRGreeAC::toString
String toString(void)
Convert the current internal state into a human readable string.
Definition: ir_Gree.cpp:617
IRGreeAC::off
void off(void)
Change the power setting to Off.
Definition: ir_Gree.cpp:204
kGreeFan
const uint8_t kGreeFan
Definition: ir_Gree.h:95
IRGreeAC::setSwingHorizontal
void setSwingHorizontal(const uint8_t position)
Set the Horizontal Swing mode of the A/C.
Definition: ir_Gree.cpp:415
IRGreeAC::setXFan
void setXFan(const bool on)
Set the XFan (Mould) setting of the A/C.
Definition: ir_Gree.cpp:334
IRGreeAC::toCommonMode
static stdAc::opmode_t toCommonMode(const uint8_t mode)
Convert a native mode into its stdAc equivalent.
Definition: ir_Gree.cpp:533
GreeProtocol::SwingH
uint8_t SwingH
Definition: ir_Gree.h:72
IRGreeAC::getIFeel
bool getIFeel(void) const
Get the IFeel setting of the A/C.
Definition: ir_Gree.cpp:322
kGreeSwingHRight
const uint8_t kGreeSwingHRight
Definition: ir_Gree.h:126
GreeProtocol::SwingV
uint8_t SwingV
Definition: ir_Gree.h:71
stdAc::fanspeed_t
fanspeed_t
Common A/C settings for Fan Speeds.
Definition: IRsend.h:61
IRGreeAC::getLight
bool getLight(void) const
Get the Light (LED) setting of the A/C.
Definition: ir_Gree.cpp:314
GreeProtocol::SwingAuto
uint8_t SwingAuto
Definition: ir_Gree.h:52
GreeProtocol::TempExtraDegreeF
uint8_t TempExtraDegreeF
Definition: ir_Gree.h:67
IRGreeAC::convertMode
static uint8_t convertMode(const stdAc::opmode_t mode)
Convert a stdAc::opmode_t enum into its native mode.
Definition: ir_Gree.cpp:477
kGreeDry
const uint8_t kGreeDry
Definition: ir_Gree.h:94
GreeProtocol::unknown1
uint8_t unknown1
Definition: ir_Gree.h:69
kGreeFanMax
const uint8_t kGreeFanMax
Definition: ir_Gree.h:102
GreeProtocol::Econo
uint8_t Econo
Definition: ir_Gree.h:84
kGreeMaxTempF
const uint8_t kGreeMaxTempF
Definition: ir_Gree.h:107
IRGreeAC::getTimer
uint16_t getTimer(void) const
Get the timer time value from the A/C.
Definition: ir_Gree.cpp:432
IRGreeAC::setMode
void setMode(const uint8_t new_mode)
Set the operating mode of the A/C.
Definition: ir_Gree.cpp:287
GreeProtocol::Fan
uint8_t Fan
Definition: ir_Gree.h:51
IRGreeAC::toCommon
stdAc::state_t toCommon(void)
Convert the current internal state into its stdAc::state_t equivalent.
Definition: ir_Gree.cpp:586
GreeProtocol::WiFi
uint8_t WiFi
Definition: ir_Gree.h:78
kGreeEcono
const uint8_t kGreeEcono
Definition: ir_Gree.h:97
gree_ac_remote_model_t
gree_ac_remote_model_t
Gree A/C model numbers.
Definition: IRsend.h:155
IRGreeAC::convertSwingH
static uint8_t convertSwingH(const stdAc::swingh_t swingh)
Convert a stdAc::swingh_t enum into it's native setting.
Definition: ir_Gree.cpp:518
IRGreeAC::send
void send(const uint16_t repeat=kGreeDefaultRepeat)
Send the current internal state as an IR message.
Definition: ir_Gree.cpp:142
kGreeSwingUpAuto
const uint8_t kGreeSwingUpAuto
Definition: ir_Gree.h:119
kGreeDisplayTempOutside
const uint8_t kGreeDisplayTempOutside
Definition: ir_Gree.h:132
kGreeSwingHAuto
const uint8_t kGreeSwingHAuto
Definition: ir_Gree.h:122
IRGreeAC::fixup
void fixup(void)
Fix up the internal state so it is correct.
Definition: ir_Gree.cpp:131
GreeProtocol::remote_state
uint8_t remote_state[kGreeStateLength]
The state in native IR code form.
Definition: ir_Gree.h:46
kGreeSwingDownAuto
const uint8_t kGreeSwingDownAuto
Definition: ir_Gree.h:117
IRsend.h
IRGreeAC::setPower
void setPower(const bool on)
Change the power setting.
Definition: ir_Gree.cpp:209
IRGreeAC::setTimerEnabled
void setTimerEnabled(const bool on)
Set the timer enable setting of the A/C.
Definition: ir_Gree.cpp:424
IRGreeAC::getRaw
uint8_t * getRaw(void)
Get a PTR to the internal state/code for this protocol.
Definition: ir_Gree.cpp:149
IRsend
Class for sending all basic IR protocols.
Definition: IRsend.h:237
GreeProtocol::Turbo
uint8_t Turbo
Definition: ir_Gree.h:61
IRsend::calibrate
int8_t calibrate(uint16_t hz=38000U)
Calculate & set any offsets to account for execution times during sending.
Definition: IRsend.cpp:207
String
std::string String
Definition: IRremoteESP8266.h:1521
kGreeDisplayTempSet
const uint8_t kGreeDisplayTempSet
Definition: ir_Gree.h:130
kGreeSwingHMiddle
const uint8_t kGreeSwingHMiddle
Definition: ir_Gree.h:125
kGreeSwingHMaxRight
const uint8_t kGreeSwingHMaxRight
Definition: ir_Gree.h:127
GreeProtocol::TimerHours
uint8_t TimerHours
Definition: ir_Gree.h:60
GreeProtocol::TimerHalfHr
uint8_t TimerHalfHr
Definition: ir_Gree.h:56
kGreeSwingMiddleDown
const uint8_t kGreeSwingMiddleDown
Definition: ir_Gree.h:115
IRGreeAC::IRGreeAC
IRGreeAC(const uint16_t pin, const gree_ac_remote_model_t model=gree_ac_remote_model_t::YAW1F, const bool inverted=false, const bool use_modulation=true)
Class constructor.
Definition: ir_Gree.cpp:112
GreeProtocol::Sum
uint8_t Sum
Definition: ir_Gree.h:86
kGreeFanMed
const uint8_t kGreeFanMed
Definition: ir_Gree.h:101
IRremoteESP8266.h
stdAc::swingh_t
swingh_t
Common A/C settings for Horizontal Swing.
Definition: IRsend.h:100
kGreeSwingMiddleAuto
const uint8_t kGreeSwingMiddleAuto
Definition: ir_Gree.h:118
IRGreeAC::convertFan
static uint8_t convertFan(const stdAc::fanspeed_t speed)
Convert a stdAc::fanspeed_t enum into it's native speed.
Definition: ir_Gree.cpp:490
kGreeHeat
const uint8_t kGreeHeat
Definition: ir_Gree.h:96
IRGreeAC::setSleep
void setSleep(const bool on)
Set the Sleep setting of the A/C.
Definition: ir_Gree.cpp:342
IRGreeAC::begin
void begin(void)
Set up hardware to be able to send a message.
Definition: ir_Gree.cpp:137
kGreeTimerMax
const uint16_t kGreeTimerMax
Definition: ir_Gree.h:108
YAW1F
@ YAW1F
Definition: IRsend.h:156
kGreeMaxTempC
const uint8_t kGreeMaxTempC
Definition: ir_Gree.h:105
IRGreeAC::calibrate
int8_t calibrate(void)
Run the calibration to calculate uSec timing offsets for this platform.
Definition: ir_Gree.h:169
GreeProtocol::Sleep
uint8_t Sleep
Definition: ir_Gree.h:53
kGreeMinTempF
const uint8_t kGreeMinTempF
Definition: ir_Gree.h:106
kGreeDisplayTempOff
const uint8_t kGreeDisplayTempOff
Definition: ir_Gree.h:129
IRGreeAC::setFan
void setFan(const uint8_t speed)
Set the speed of the fan.
Definition: ir_Gree.cpp:274
IRGreeAC::setUseFahrenheit
void setUseFahrenheit(const bool on)
Set the default temperature units to use.
Definition: ir_Gree.cpp:226
IRGreeAC::toCommonFanSpeed
static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed)
Convert a native fan speed into its stdAc equivalent.
Definition: ir_Gree.cpp:546
GreeProtocol::unknown2
uint8_t unknown2
Definition: ir_Gree.h:77
IRGreeAC::getTurbo
bool getTurbo(void) const
Get the Turbo setting of the A/C.
Definition: ir_Gree.cpp:354
GreeProtocol::TimerTensHr
uint8_t TimerTensHr
Definition: ir_Gree.h:57
IRGreeAC::getPower
bool getPower(void) const
Get the value of the current power setting.
Definition: ir_Gree.cpp:218
IRGreeAC::getXFan
bool getXFan(void) const
Get the XFan (Mould) setting of the A/C.
Definition: ir_Gree.cpp:338
IRGreeAC::checksum
void checksum(const uint16_t length=kGreeStateLength)
Calculate and set the checksum values for the internal state.
Definition: ir_Gree.cpp:170
GreeProtocol::Xfan
uint8_t Xfan
Definition: ir_Gree.h:64
GreeProtocol::Light
uint8_t Light
Definition: ir_Gree.h:62
IRGreeAC::setTimer
void setTimer(const uint16_t minutes)
Set the A/C's timer to turn off in X many minutes.
Definition: ir_Gree.cpp:442
IRGreeAC::setModel
void setModel(const gree_ac_remote_model_t model)
Set the model of the A/C to emulate.
Definition: ir_Gree.cpp:187
IRGreeAC::getModel
gree_ac_remote_model_t getModel(void) const
Get/Detect the model of the A/C.
Definition: ir_Gree.cpp:198
kGreeAuto
const uint8_t kGreeAuto
Definition: ir_Gree.h:92
IRGreeAC::setWiFi
void setWiFi(const bool on)
Set the Wifi (enabled) setting of the A/C.
Definition: ir_Gree.cpp:326
IRGreeAC::getFan
uint8_t getFan(void) const
Get the current fan speed setting.
Definition: ir_Gree.cpp:283
IRGreeAC::convertSwingV
static uint8_t convertSwingV(const stdAc::swingv_t swingv)
Convert a stdAc::swingv_t enum into it's native setting.
Definition: ir_Gree.cpp:504
IRGreeAC::getUseFahrenheit
bool getUseFahrenheit(void) const
Get the default temperature units in use.
Definition: ir_Gree.cpp:230
IRGreeAC::setIFeel
void setIFeel(const bool on)
Set the IFeel setting of the A/C.
Definition: ir_Gree.cpp:318
kGreeSwingMiddleUp
const uint8_t kGreeSwingMiddleUp
Definition: ir_Gree.h:113
IRGreeAC::getTemp
uint8_t getTemp(void) const
Get the set temperature.
Definition: ir_Gree.cpp:261
GreeProtocol::IFeel
uint8_t IFeel
Definition: ir_Gree.h:76
kGreeFanMin
const uint8_t kGreeFanMin
Definition: ir_Gree.h:100
kGreeCool
const uint8_t kGreeCool
Definition: ir_Gree.h:93
IRGreeAC::getSwingVerticalPosition
uint8_t getSwingVerticalPosition(void) const
Get the Vertical Swing position setting of the A/C.
Definition: ir_Gree.cpp:407
kGreeSwingMiddle
const uint8_t kGreeSwingMiddle
Definition: ir_Gree.h:114
GreeProtocol
Native representation of a Gree A/C message.
Definition: ir_Gree.h:45
kGreeSwingLastPos
const uint8_t kGreeSwingLastPos
Definition: ir_Gree.h:110
IRGreeAC::setTemp
void setTemp(const uint8_t temp, const bool fahrenheit=false)
Set the temp. in degrees.
Definition: ir_Gree.cpp:238
IRGreeAC::getTimerEnabled
bool getTimerEnabled(void) const
Get the timer enabled setting of the A/C.
Definition: ir_Gree.cpp:428
IRGreeAC::_model
gree_ac_remote_model_t _model
Definition: ir_Gree.h:233
IRGreeAC::getSwingVerticalAuto
bool getSwingVerticalAuto(void) const
Get the Vertical Swing Automatic mode setting of the A/C.
Definition: ir_Gree.cpp:403
kGreeSwingHOff
const uint8_t kGreeSwingHOff
Definition: ir_Gree.h:121
IRGreeAC::setTurbo
void setTurbo(const bool on)
Set the Turbo setting of the A/C.
Definition: ir_Gree.cpp:350
kGreeSwingDown
const uint8_t kGreeSwingDown
Definition: ir_Gree.h:116
IRGreeAC::getEcono
bool getEcono(void) const
Get the Econo setting of the A/C.
Definition: ir_Gree.cpp:366
IRGreeAC::toCommonSwingV
static stdAc::swingv_t toCommonSwingV(const uint8_t pos)
Convert a native Vertical Swing into its stdAc equivalent.
Definition: ir_Gree.cpp:558
kGreeFanAuto
const uint8_t kGreeFanAuto
Definition: ir_Gree.h:99
GreeProtocol::Power
uint8_t Power
Definition: ir_Gree.h:50
IRGreeAC::toCommonSwingH
static stdAc::swingh_t toCommonSwingH(const uint8_t pos)
Convert a native Horizontal Swing into its stdAc equivalent.
Definition: ir_Gree.cpp:572
IRGreeAC::getSleep
bool getSleep(void) const
Get the Sleep setting of the A/C.
Definition: ir_Gree.cpp:346
GreeProtocol::TimerEnabled
uint8_t TimerEnabled
Definition: ir_Gree.h:58
kGreeSwingHMaxLeft
const uint8_t kGreeSwingHMaxLeft
Definition: ir_Gree.h:123
kGreeMinTempC
const uint8_t kGreeMinTempC
Definition: ir_Gree.h:104
IRGreeAC::getDisplayTempSource
uint8_t getDisplayTempSource(void) const
Get the temperature display mode. i.e. Internal, External temperature sensing.
Definition: ir_Gree.cpp:472
IRGreeAC::setDisplayTempSource
void setDisplayTempSource(const uint8_t mode)
Set temperature display mode. i.e. Internal, External temperature sensing.
Definition: ir_Gree.cpp:465
GreeProtocol::UseFahrenheit
uint8_t UseFahrenheit
Definition: ir_Gree.h:68
kGreeSwingAuto
const uint8_t kGreeSwingAuto
Definition: ir_Gree.h:111
IRGreeAC
Class for handling detailed Gree A/C messages.
Definition: ir_Gree.h:156
GreeProtocol::DisplayTemp
uint8_t DisplayTemp
Definition: ir_Gree.h:75
kGreeDisplayTempInside
const uint8_t kGreeDisplayTempInside
Definition: ir_Gree.h:131
IRGreeAC::stateReset
void stateReset(void)
Reset the internal state to a fixed known good state.
Definition: ir_Gree.cpp:120
stdAc::state_t
Structure to hold a common A/C state.
Definition: IRsend.h:114
IRGreeAC::setRaw
void setRaw(const uint8_t new_code[])
Set the internal state from a valid code for this protocol.
Definition: ir_Gree.cpp:156
IRGreeAC::_irsend
IRsend _irsend
Instance of the IR send class.
Definition: ir_Gree.h:226
IRGreeAC::on
void on(void)
Change the power setting to On.
Definition: ir_Gree.cpp:201
IRGreeAC::setEcono
void setEcono(const bool on)
Set the Econo setting of the A/C.
Definition: ir_Gree.cpp:358
IRGreeAC::setLight
void setLight(const bool on)
Set the Light (LED) setting of the A/C.
Definition: ir_Gree.cpp:310
IRGreeAC::getSwingHorizontal
uint8_t getSwingHorizontal(void) const
Get the Horizontal Swing position setting of the A/C.
Definition: ir_Gree.cpp:411
kGreeDefaultRepeat
const uint16_t kGreeDefaultRepeat
Definition: IRremoteESP8266.h:1251
stdAc::opmode_t
opmode_t
Common A/C settings for A/C operating modes.
Definition: IRsend.h:49